#include <search.h>
-libc_hidden_proto(hcreate_r)
-libc_hidden_proto(hdestroy_r)
-libc_hidden_proto(hsearch_r)
/* [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986
[Knuth] The Art of Computer Programming, part 3 (6.4) */
indexing as explained in the comment for the hsearch function.
The contents of the table is zeroed, especially the field used
becomes zero. */
+libc_hidden_proto(hcreate_r)
int hcreate_r (size_t nel, struct hsearch_data *htab)
{
/* Test for correct arguments. */
#ifdef L_hdestroy_r
/* After using the hash table it has to be destroyed. The used memory can
be freed and the local static variable can be marked as not used. */
+libc_hidden_proto(hdestroy_r)
void hdestroy_r (struct hsearch_data *htab)
{
/* Test for correct arguments. */
libc_hidden_proto(strcmp)
libc_hidden_proto(strlen)
+libc_hidden_proto(hsearch_r)
int hsearch_r (ENTRY item, ACTION action, ENTRY **retval,
struct hsearch_data *htab)
{
{
/* If table is full and another entry should be entered return
with error. */
- if (action == ENTER && htab->filled == htab->size)
+ if (htab->filled == htab->size)
{
__set_errno (ENOMEM);
*retval = NULL;