00001 /* 00002 * Copyright 1993, 1995 Christopher Seiwald. 00003 * 00004 * This file is part of Jam - see jam.c for Copyright information. 00005 */ 00006 00007 /* 00008 * hash.h - simple in-memory hashing routines 00009 * 00010 * Changes: 00011 * 00012 * 11/04/02 (seiwald) - const-ing for string literals 00013 */ 00014 00015 typedef struct hashdata HASHDATA; 00016 00017 struct hash*hash_init( int datalen, const char *name ); 00018 int hash_item( struct hash *hp, HASHDATA **data, int enter ); 00019 void hash_done( struct hash *hp ); 00020 00021 /* I guess this was too hard to comment by the original author */ 00022 # define hash_enter( hp, data ) !hash_item( hp, data, 1 ) 00023 # define hash_check( hp, data ) hash_item( hp, data, 0 )