simplify hashes.
[apps/madmutt.git] / lib-lib / hash.h
index 3fdba21..546b665 100644 (file)
@@ -32,7 +32,9 @@ struct hash_elem {
 };
 
 typedef struct {
-    int nelem, curnelem;
+    unsigned dupes : 1;
+    int nelem;
+    int curnelem;
     struct hash_elem **table;
 } HASH;
 
@@ -42,10 +44,10 @@ typedef struct {
 #define hash_delete(table,key,data,destroy) \
     hash_delete_hash(table, hash_string((unsigned char *)key, table->nelem), key, data, destroy)
 
-HASH *hash_create(int nelem);
+HASH *hash_create(int nelem, int allow_dup);
 int hash_string(const unsigned char *s, int n);
-int hash_insert(HASH *table, const char *key, void *data, int allow_dup);
-HASH *hash_resize(HASH *table, int nelem);
+int hash_insert(HASH *table, const char *key, void *data);
+void hash_resize(HASH *table, int nelem);
 void *hash_find_hash(const HASH *table, int hash, const char *key);
 void hash_delete_hash(HASH *table, int hash, const char *key,
                       const void *data, void (*destroy)(void *));