/* * Copyright 1993, 1995 Christopher Seiwald. * * This file is part of Jam - see jam.c for Copyright information. */ /* * hash.h - simple in-memory hashing routines */ #ifndef BOOST_JAM_HASH_H #define BOOST_JAM_HASH_H typedef struct hashdata HASHDATA; struct hash * hashinit( int datalen, char *name ); int hashitem( struct hash *hp, HASHDATA **data, int enter ); void hashdone( struct hash *hp ); void hashenumerate( struct hash *hp, void (*f)(void*,void*), void* data ); int hash_free( struct hash *hp, HASHDATA *data); # define hashenter( hp, data ) (!hashitem( hp, data, !0 )) # define hashcheck( hp, data ) hashitem( hp, data, 0 ) #endif