This is code I wrote *years* ago to help implement CGI-based programs in C.
It has evolved since then, accumulating other bits of code that I've found
useful in CGI-based programs as well as other, non-CGI-based programs.  It's
somewhat of a grabbag of routines here.

bisearch        - binary search that returns both found/not-found indicator,
                 plus the index where it item was found/would have been
                 found.

cgi             - routines to handle CGI variables; both the query string
                 and POST variables are supported, but are kept separate.

chunk           - a simple template system.  Real simple.  It's up to you to
                 provide loops, sub-templates, etc.  All this does is allow
                 you to register callbacks keyed off the text between '%{'
                 and '}%'.  The rest is up to you.

crashreport     - An interface to dump a stacktrace (plus optionally the
                 command line and environment variables) to syslog.

dump            - Routines to generate hex dumps from data.

htmltok         - a simple tag-soup HTML parser.

mail            - a simple interface to sending email

nodelist        - a double-linked list library, based off the old Amiga
                 OS.

pair            - creates name/value pairs and puts them into a list.  It
                 does a linear scan to find pairs.

rfc822          - parses RFC-822 formatted headers.

tree            - an AVL tree implementation.

url             - right now it only parses and creates HTTP based urls,
                 but the infrastructure is there to support more types.

util            - some miscellaneous routines that don't fit elsewhere.