35 self->freedata = freedata;
39 self->frontmask = 0x0;
55 for(i=0;i<table->
size;i++)
113 if(table->
nelem == 0)
123 unsigned long i, l,
max=0;
128 for(i=0;i<table->
size;i++)
131 for(s = table->
tab[i];s != NULL;s=s->
next)
153 unsigned char *s = (
unsigned char *)t;
157 for( i=0; i<len; i++ )
172 *lkey = strlen((
char *) key)+1;
178 for(s = table->
tab[i];s!=NULL;s=s->
next)
183 !memcmp(key,s->
data.
key,*lkey))
193 unsigned long move, last, i, j;
215 table->
tab[last] = table->
tab[i] = NULL;
242 assert (i < table->size && i < table->space);
249 const unsigned long nlist,
int (*maskfun)(
data_u *dat))
257 for(i=0;i<table->
size;i++)
259 for(s = table->
tab[i];s != NULL;s = s->
next)
261 if(maskfun == NULL || maskfun(&(s->
data)))
262 list[n++] = &(s->
data);
265 fprintf(
ioQQQ,
"Too many list items for array provided in makelist\n");
273 const unsigned long nlist,
int (*maskfun)(
data_u *dat))
280 for(i=0;i<table->
size;i++)
282 for(s = table->
tab[i];s != NULL;s = s->
next)
284 if(maskfun == NULL || maskfun(&(s->
data)))
285 list[n++] = s->
data.
p;
288 fprintf(
ioQQQ,
"Too many list items for array provided in makeplist\n");
303 char strings[][15] = {
"Hello",
"Goodbye",
"Thirteen",
"One",
304 "Two",
"Three",
"Four",
"Five",
"Six",
308 for(i=0;i<
sizeof(strings)/15;i++)
310 data =
addentry(strings[i],0,table,&exists);
314 for(i=0;i<
sizeof(strings)/15;i++)
316 data =
lookup(strings[i],0,table);
319 printf(
"Found data %d\n",data->
i);
323 printf(
"Couldn't find data\n");
326 data =
lookup(
"Banana",0,table);
329 printf(
"Found data %d\n",data->
i);
333 printf(
"Couldn't find data (as expected)\n");
335 printf(
"Longest chain is %d\n",
maxchain(table));