The code was originally taken from God Wars II, decoupled, changed from C++ to C (as most muds are written in C), then cleaned up and documented.
It adds support for TTYPE, NAWS, MSDP, ATCP, MSSP, MSP, MXP and ECHO, as well as UTF-8 (using CHARSET) and XTerm 256 colors.
Includes generic installation instructions, as well as more specific instructions for Merc, SMAUG, TBA and ROM.
I've released this snippet into the public domain.
Updated 13-Jun-2011 to handle broken packets and resolve a cyclic TTYPE issue with windows telnet.
Updated 28-Aug-2011 to support the latest MSDP specification (including tables, arrays, UNREPORT, RESET and REPORTED_VARIABLES). Also supports the Mudlet autoinstaller, recognises DecafMUD, makes MCCP easier to integrate, addresses an issue with TBA, and fixes several other minor issues (as described in the README.TXT).
Updated 31-Aug-2011 to make a tiny (but essential) bugfix to the AllocString() function added in the previous version: the malloc() call didn't allocate space for the NUL string terminator.
Updated 12-Oct-2011 to fix a minor bug with MSDPSetArray(), update the LIST command to work as an array, clean up some cosmetic ATCP issues, make the MSSP table easier to update, and support both variants of MXP negotiation.
Updated 16-Nov-2011 to fix a minor bug caused by a stray semicolon, make it easier to add MCCP, update some of the installation instructions, and add new instructions for ROM.
Updated 22-Aug-2012 to add client-initiated negotiation, echo, enhanced colour support, client autoconnect fix, and clarified terms of usage.
Updated 28-Oct-2012 to fix an initialisation bug.