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.