Type-generic hash tables

Project page: http://www.repo.hu/projects/genht
VCS: svn://svn.repo.hu/genht/trunk

(If you got your source from git, it is likely outdated, get the newest from
the above svn repository or get stable release tarballs from the above page.)

For examples look at doc/example*.

ht.[ch]           - the actual hash table implementation (type generic); not
                    used directly, used to instantiate type-specific variants
                    like htsi.[ch]; apps may use these to create new typed
                    hash table instances (see ../doc/examplev.c)

ht[a-z][a-z].[ch] - specific key-value type instances that are used commonly
                    by applications, e.g. htsi is key=str val=integer,
                    htpp is key=ptr val=ptr

hash.[ch]         - optional: common hash functions for some basic types so
                    apps don't have to reinvent "string hash" all the time

ht_utils.h        - optional: helper macros that are useful with any hash table

mainsi.c          - example and regression test (../doc has better examples)

siphash.[ch]      - optional: sip hash implementation for binary data

version.h         - API version macros (app can use them for compile time check)

ver_edit          - part of the "build system", ignore

ht_inlines.h      - internal, do not use it directly


Compile time options (feature macros):

GENHT_AUDIT       - when declared: do extra checks to catch corrupt table memory

GENHT_DIAG        - enable diagnostis: create the _verify() call

