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 GET and POST
                 variables are supported, but not both at the same time.
                 This limitation was one that has never bothered me.

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.

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.

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.