diff options
author | Nickolay V. Shmyrev <nshmyrev@yandex.ru> | 2005-04-07 15:28:06 (GMT) |
---|---|---|
committer | Nickolay V. Shmyrev <nshmyrev@src.gnome.org> | 2005-04-07 15:28:06 (GMT) |
commit | c3e1500a4815225f08e1b20dd066559e8c92c280 (patch) | |
tree | 7474fe16fce807cda4845df116fec07c60b161e6 /dvi/mdvi-lib/hash.h | |
parent | 52f67b9ce7a9f2282b2c85139d1d10f8c4df5786 (diff) |
Recent files support.
2005-04-07 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* cut-n-paste/recent-files/Makefile.am:
* data/evince-ui.xml, shell/Makefile.am:
* shell/ev-application.c, shell/ev-application.h:
* shell/ev-window.c: Recent files support.
* configure.ac: Added "ru" to ALL_LINGUAS.
* dvju: new backend to support DJVU files.
* dvi: new backend to support DVI.
* configure.ac, Makefile.am, shell/Makefile.am, ev-window.c:
* ev-application.c: Support for new backends.
* help, ev-window.c, main.c shell/Makefile.am:
Diffstat (limited to 'dvi/mdvi-lib/hash.h')
-rw-r--r-- | dvi/mdvi-lib/hash.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/dvi/mdvi-lib/hash.h b/dvi/mdvi-lib/hash.h new file mode 100644 index 0000000..b10afd6 --- /dev/null +++ b/dvi/mdvi-lib/hash.h @@ -0,0 +1,49 @@ +#ifndef MDVI_HASH +#define MDVI_HASH + +/* Hash tables */ + + +typedef struct _DviHashBucket DviHashBucket; +typedef struct _DviHashTable DviHashTable; + +/* + * Hash tables + */ + +typedef Uchar *DviHashKey; +#define MDVI_KEY(x) ((DviHashKey)(x)) + +typedef Ulong (*DviHashFunc) __PROTO((DviHashKey key)); +typedef int (*DviHashComp) __PROTO((DviHashKey key1, DviHashKey key2)); +typedef void (*DviHashFree) __PROTO((DviHashKey key, void *data)); + + +struct _DviHashTable { + DviHashBucket **buckets; + int nbucks; + int nkeys; + DviHashFunc hash_func; + DviHashComp hash_comp; + DviHashFree hash_free; +}; +#define MDVI_EMPTY_HASH_TABLE {NULL, 0, 0, NULL, NULL, NULL} + +#define MDVI_HASH_REPLACE 0 +#define MDVI_HASH_UNIQUE 1 +#define MDVI_HASH_UNCHECKED 2 + +extern void mdvi_hash_init __PROTO((DviHashTable *)); +extern void mdvi_hash_create __PROTO((DviHashTable *, int)); +extern int mdvi_hash_add __PROTO((DviHashTable *, DviHashKey, void *, int)); +extern int mdvi_hash_destroy_key __PROTO((DviHashTable *, DviHashKey)); +extern void mdvi_hash_reset __PROTO((DviHashTable *, int)); +extern void *mdvi_hash_lookup __PROTO((DviHashTable *, DviHashKey)); +extern void *mdvi_hash_remove __PROTO((DviHashTable *, DviHashKey)); +extern void *mdvi_hash_remove_ptr __PROTO((DviHashTable *, DviHashKey)); + +#define mdvi_hash_flush(h) mdvi_hash_reset((h), 1) +#define mdvi_hash_destroy(h) mdvi_hash_reset((h), 0) + +#endif + |