summaryrefslogtreecommitdiff
path: root/libhashtable/libhashtable.h
diff options
context:
space:
mode:
authorEpoch Qwert <epoch@53flpnlls43fcguy.onion>2014-09-07 02:37:46 -0500
committerEpoch Qwert <epoch@53flpnlls43fcguy.onion>2014-09-07 02:37:46 -0500
commitf41ec6d42942f994f762486a9ab525ed8c5506e5 (patch)
tree2834f14db4cdac0a8efb9bb810741af2d38e287d /libhashtable/libhashtable.h
parent5b723a9da5b94d3a99225f43c7dafcffa1f7676b (diff)
downloadsegfault-f41ec6d42942f994f762486a9ab525ed8c5506e5.tar.gz
segfault-f41ec6d42942f994f762486a9ab525ed8c5506e5.zip
took the hashtable stuff out of segfault and put it into a library. good idea? dunno.
Diffstat (limited to 'libhashtable/libhashtable.h')
-rw-r--r--libhashtable/libhashtable.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/libhashtable/libhashtable.h b/libhashtable/libhashtable.h
new file mode 100644
index 0000000..7899124
--- /dev/null
+++ b/libhashtable/libhashtable.h
@@ -0,0 +1,23 @@
+struct entry {//linked list node.
+ char *original;
+ char *target;
+ struct entry *prev;// doubly linked list. why?
+ struct entry *next;
+};
+
+struct hitem {//dunno why I don't just have this as a linked list.
+ struct entry *ll;
+};
+
+struct hashtable {
+ int kl;//number of keys in the table
+ struct hitem **bucket;
+ int *keys;
+};
+unsigned short hash(char *v);//maybe use a seeded rand()? :) Thanks FreeArtMan
+void inittable(struct hashtable *ht);
+int ht_setkey(struct hashtable *ht,char *key,char *value);
+struct entry *ll_getentry(struct entry *start,char *msg);
+struct entry *ht_getentry(struct hashtable *ht,char *key);
+struct entry *ht_getnode(struct hashtable *ht,char *msg);
+char *ht_getvalue(struct hashtable *ht,char *msg);