cdb_hash.c
changeset 0 eeadadee24f6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cdb_hash.c	Fri Oct 19 11:01:15 2007 +0200
@@ -0,0 +1,21 @@
+/* Public domain. */
+
+#include "cdb.h"
+
+uint32 cdb_hashadd(uint32 h,unsigned char c)
+{
+  h += (h << 5);
+  return h ^ c;
+}
+
+uint32 cdb_hash(char *buf,unsigned int len)
+{
+  uint32 h;
+
+  h = CDB_HASHSTART;
+  while (len) {
+    h = cdb_hashadd(h,*buf++);
+    --len;
+  }
+  return h;
+}