2 * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
4 * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
7 * Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
9 * You may distribute under the terms of the GNU General Public License as
10 * specified in the README file that comes with the CVS source distribution.
14 * The number of buckets for the hash table contained in each list. This
15 * should probably be prime.
24 NT_UNKNOWN, HEADER, ENTRIES, FILES, LIST, RCSNODE,
25 RCSVERS, DIRS, UPDATE, LOCK, NDBMNODE, FILEATTR,
26 VARIABLE, RCSFIELD, RCSCMPFLD
28 typedef enum ntype Ntype;
33 struct hashnode *next;
34 struct hashnode *prev;
35 struct hashnode *hashnext;
36 struct hashnode *hashprev;
41 typedef struct hashnode Node;
46 Node *hasharray[HASHSIZE];
47 struct hashlist *next;
49 typedef struct hashlist List;
51 List *getlist PROTO((void));
52 Node *findnode PROTO((List * list, const char *key));
53 Node *findnode_fn PROTO((List * list, const char *key));
54 Node *getnode PROTO((void));
55 int insert_before PROTO((List * list, Node * marker, Node * p));
56 int addnode PROTO((List * list, Node * p));
57 int addnode_at_front PROTO((List * list, Node * p));
58 int walklist PROTO((List * list, int (*)(Node *n, void *closure), void *closure));
59 int list_isempty PROTO ((List *list));
60 void dellist PROTO((List ** listp));
61 void delnode PROTO((Node * p));
62 void freenode PROTO((Node * p));
63 void sortlist PROTO((List * list, int (*)(const Node *, const Node *)));
64 int fsortcmp PROTO((const Node * p, const Node * q));