POSIX conformance fix: define struct entry in search.h
authorSzabolcs Nagy <nsz@port70.net>
Tue, 29 Oct 2013 20:25:11 +0000 (20:25 +0000)
committerSzabolcs Nagy <nsz@port70.net>
Tue, 29 Oct 2013 20:25:11 +0000 (20:25 +0000)
include/search.h
src/search/hsearch.c

index ebfe08a..27f6107 100644 (file)
@@ -13,7 +13,7 @@ extern "C" {
 typedef enum { FIND, ENTER } ACTION;
 typedef enum { preorder, postorder, endorder, leaf } VISIT;
 
-typedef struct {
+typedef struct entry {
        char *key;
        void *data;
 } ENTRY;
index be856b2..6fe5ced 100644 (file)
@@ -14,14 +14,14 @@ with the posix api items cannot be iterated and length cannot be queried
 #define MINSIZE 8
 #define MAXSIZE ((size_t)-1/2 + 1)
 
-struct entry {
+struct elem {
        ENTRY item;
        size_t hash;
 };
 
 static size_t mask;
 static size_t used;
-static struct entry *tab;
+static struct elem *tab;
 
 static size_t keyhash(char *k)
 {
@@ -37,9 +37,9 @@ static int resize(size_t nel)
 {
        size_t newsize;
        size_t i, j;
-       struct entry *e, *newe;
-       struct entry *oldtab = tab;
-       struct entry *oldend = tab + mask + 1;
+       struct elem *e, *newe;
+       struct elem *oldtab = tab;
+       struct elem *oldend = tab + mask + 1;
 
        if (nel > MAXSIZE)
                nel = MAXSIZE;
@@ -81,10 +81,10 @@ void hdestroy(void)
        used = 0;
 }
 
-static struct entry *lookup(char *key, size_t hash)
+static struct elem *lookup(char *key, size_t hash)
 {
        size_t i, j;
-       struct entry *e;
+       struct elem *e;
 
        for (i=hash,j=1; ; i+=j++) {
                e = tab + (i & mask);
@@ -98,7 +98,7 @@ static struct entry *lookup(char *key, size_t hash)
 ENTRY *hsearch(ENTRY item, ACTION action)
 {
        size_t hash = keyhash(item.key);
-       struct entry *e = lookup(item.key, hash);
+       struct elem *e = lookup(item.key, hash);
 
        if (e->item.key)
                return &e->item;