1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
/* $Id: hash.c,v 1.5 2003/04/07 16:27:10 ukai Exp $ */
#include <string.h>
#include "hash.h"
#include <gc.h>
static unsigned int
hashfunc(char *s)
{
unsigned int h = 0;
while (*s) {
if (h & 0x80000000) {
h <<= 1;
h |= 1;
}
else
h <<= 1;
h += *s;
s++;
}
return h;
}
#define keycomp(x,y) !strcmp(x,y)
/* *INDENT-OFF* */
defhashfunc(char *, int, si)
defhashfunc(char *, char *, ss)
defhashfunc(char *, void *, sv)
defhashfunc_i(int, void *, iv)
/* *INDENT-ON* */
|