TinyMUX 2.9: CHANGES
Last Update: July 2012

Major changes that may affect performance and require softcode tweaks:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 -- None.


Feature Additions:
~~~~~~~~~~~~~~~~~
 -- Add ip_address configuration option for boxes with multiple IP
    addresses (several per card, several cards, tunnels, vpn, etc.)
 -- Added handling for variable number of to/from arguments to edit().
 -- Also look for MySQL under /usr/local (Issue 612).
 -- Add DIGEST() softcode function (Issue 476).


Bug Fixes:
~~~~~~~~~
 -- CMuxAlarm destructor was prepared to wait longer than 15 seconds.
 -- Use mode 5 for rounding instead of mode 3 (Issue 295).
 -- Fix @mail folders (Issue 560).
 -- Change Modified and Created to be AF_CONST instead of AF_GOD.
 -- Include utf8tables.h in the releases.
 -- Command-line option table was defined one element too large.
 -- @list process showed negative values on 64-bit FreeBSD.
 -- Fix use of uninitialized memory in mux_strlwr(), mux_strupr(), and
    mux_foldpunc() (Issue 562).
 -- VisibleLock not treated as such by lock() and elock() (Issue 570).
 -- Include iso8859-2 value to three other affected configuration
    options.
 -- Most of charset_nametab[] options are not unique in the first five
    characters.
 -- Fix color_convert() to use all of the 2*LBUF_SIZE buffer
    (Issue 443).
 -- Add boundary to avoid crash with v(-1) (Issue 580).
 -- Assertions while processing an assertion would nest recursively.
 -- In CONFIGURATION readme, use starting_pay and find_money_chance
    instead of paystart and payfind (Issue #589).
 -- Fix wild1() to handle ? with Color and Unicode (Issue 590).
 -- Fix behavior of insert(,1,Apple,|) (Issue #598).
 -- Non-player objects owning channels works with @cchown (Issue 565).
 -- ./Backup script didn't work on OS X (Issue 604).
 -- Throttle use of @reference (Issue 587).
 -- Add missing attributes to muxattrs.dat.
 -- Fix heap corruption bug in edit() codepath.
 -- Fix @dbclean to not strip attribute owner and flags on attributes
    that it re-numbers (Issue 621).
 -- Fix access of uninitialized memory during dbconvert when @queuemax
    is set on player object (Issue 623).
 -- db_check could potentially crash if exit destination is HOME.
 -- Stricter parsing of telnet options.
 -- Special case for space delimiter (Issues 620, 628, 629, 630, 631,
    632, 633, and 634).
 -- Change CXXCPP to CXX in modules sub-build.
 -- Clean target should not remove sqlproxy.so or sqlslave.so.
 -- Protect ConvertToLatin() from buffer overflow.
 -- LINEWRAP needs to be 71 character to be compatible with existing
    FiranMUX content.
 -- Update @pemit topic to reflect that @pemit/list does not require
    the list items to be dbrefs.
 -- The 'Input already pending.' check in @program must occur before
    A_PROGCMD is set.
 -- Protect ConvertToAscii() from buffer overflow.
 -- Fix overflow from 2.2250738585072011e-308.
 -- Avoid operation outside the domain of modulus.
 -- Fix/include/enable Windows version of boot_slave() so reverse-DNS
    works.
 -- Create I/O Completion port just once.
 -- mux_string::transform's use of scratch_htab needs hashflush()
    instead of hashreset().
 -- Fix struct mail and MAILBODY leak in MailList::RemoveAll -- only
    affects @mail/nuke.
 -- Fix crashbug in TruncateToBuffer. This is probably the one, or one
    of the ones I've been looking for for a year.
 -- Fix crashbug in @reference.
 -- memset calls were being called with an incorrect number of bytes.
 -- Remove import of libiomp5md.dll from 64-bit libmux.dll.
 -- Have sqlslave automatically reconnect if mysql itself doesn't do it.


Performance Enhancements:
~~~~~~~~~~~~~~~~~~~~~~~~
 -- Use run-length encoded Unicode tables to save space.


Cosmetic Changes:
~~~~~~~~~~~~~~~~
 -- Change default fixed_tel_message and fixed_home_message
    (Issue 579).
 -- Fix @dolist help topic (Issue 593)
 -- Change reference to no_program which should be no_command.
 -- Topic reference should be to 'regexp syntax'.
 -- Fix typo in substitutions3 (Issue 605).
 -- Fix typo on help @lock compound (Issue 606).
 -- Clarify use of see_all @power (Issue 584).
 -- Remove reference to STRINGS in FAILURE help topic.
 -- Fix connects/disconnects typo in @ADISCONNECT topic.


Miscellaneous:
~~~~~~~~~~~~~
 -- Split, rename, refactor, and generally rearrange things.
 -- When OpenSSL is enabled, use its SHA1 routines instead of the one
    bundled with MUX.
 -- Use mux_vsprintf() implementation of *printf() functionality.
 -- Firan is now using 24000-byte buffers.
 -- Suppress GCC 4 warnings about sentinels.
 -- Fix compiler warning in slave.cpp about unused return value.
 -- Move CLog from svdhash.cpp to log.cpp.
 -- Fix compiler warnings in CLog about unused return values.
 -- Let indent have a little of its way with log.cpp.
 -- Simplify is_prefix_cmd().
 -- Minimum version of Visual Studio is now 2005 (from 2003).
