/* a hash file */ struct Ndbhf { Ndbhf *next; int fd; ulong dbmtime; /* mtime of data base */ int hlen; /* length (in entries) of hash table */ char attr[Ndbalen]; /* attribute hashed */ uchar buf[256]; /* hash file buffer */ long off; /* offset of first byte of buffer */ int len; /* length of valid data in buffer */ }; char* _ndbparsetuple(char*, Ndbtuple**); Ndbtuple* _ndbparseline(char*); #define ISWHITE(x) ((x) == ' ' || (x) == '\t' || (x) == '\r') #define EATWHITE(x) while(ISWHITE(*(x)))(x)++ extern Ndbtuple *_ndbtfree; /* caches */ void _ndbcacheflush(Ndb *db); int _ndbcachesearch(Ndb *db, Ndbs *s, char *attr, char *val, Ndbtuple **t); Ndbtuple* _ndbcacheadd(Ndb *db, Ndbs *s, char *attr, char *val, Ndbtuple *t);