EPIC5 Projects, Bugs, and other Errata:

KNOWN ERRATA (eg, bugs, or unresolved requests):
------------------------------------------------
* Shattah would like something like /window omit <regex> to remove stuff.
* Tag each lastlog item with a refnum so it can be tracked
* Create a unified lastlog (across all windows)
* Permit lastlog entries to be moved across windows.
* Refactor hardcoded uses of select() so select() isn't mandatory.
* send_text() needs rework, to add extra /on's so you can flag those 
  differently.

LOOK FOR IN THE FUTURE
-----------------------
* Import utf8 support from ircII OR add support for utf16 (wide chars)
* Import fg/bg color support from ircII
* Allow variables and aliases to be "tainted"
* Cache what files can be /loaded in a hash
* Support loading through ZIP files.
* Make $* a local variable.
* Some way to call an alias in a variable indirectly
* Output rules
* Support for CNOTICE
* /window <refnum> noserv causes bad fd loop.  (can't reproduce?)
* /CTCPs over /DCCs don't match up with their queries very well.
* $xform()s for SED and DEF
* str_to_mask() should be silent, callers should be warning.
* A way to control what counts as a space on the fly (via a /set?)
* Support for 64 bit ints could be more widespread

[See http://www.epicsol.org/PROJECTS for things to come in the future]
[See http://www.epicsol.org/CHANGELOG5 for things that changed in the past]

THE CHANGELOG SINCE THE LAST RELEASE:
-------------------------------------
* Make GET_INT_ARG() support 64 bit ints, for future use
* Make $fseek() support 64 bit file offsets (yay!)
* Begin converting some time_t uses over to 64 bits, Just In Case
* Make $numsort(), $strtol(), $tobase() support 64 bit ints.
* Make $stat() support 64 bit ints where possible.
* Add 'channelmonitor' script from larne.  Thanks!
* Whack /set highlight_char which is no longer being used.
* Move away from calling parse_line() and runcmds(), towards the call_* funcs
* Add provisional support for renumbering windows with channels/logs/timers
* Constify get_*_alias(), so lookups can't modify the actual alias this way.
* Rename parse_command() to parse_statement().
* Create a next_statement() to figure out how long the next stmt is.
* Stop using expand_alias() to rip apart statements. yay!
* Refactor parse_command and parse_statement to better define their roles.
* Push responsibility for expansion to parse_statement, someday, to cmds!
* Push responsibility for handling block statements to parse_statement.
* "Forget" to re-implement /set input_aliases.  I wonder if anyone will notice.
* Change the name of "hist_flag" to "interactive" to reflect its purpose.
* Change /load -std to use parse_statement() instead of parse_line()
* Add a /perl command, just for laughs. Usage: /perl {...}
* Ruby support. yay!
* Add a /tcl command, just for laughs.  Same as perl.
* Trap ruby exceptions, get everything working (sort of)
* Eliminate the third argument to expand_alias(), the statement spanner.
* Rename parse_line() to parse_block() to better reflect its duties.
* Make parse_block() static.  Everything needs to call runcmds() now.
* Eliminate the local-stack-creating feature of parse_block(), callers do this.
* Rename 'line' to 'stmt' in parse_statement().
* Sort of forget to re-implement /set cmdchars.  The / is the cmdchar.
* Try to optimize parse_statement() and next_statement() some.
* Rework configure mojo for perl, ruby, tcl to autogrok compile stuff.
* Run make depend again.
* Update the DCC "last time" value regularly.
* Fix build on freebsd-i386
* Make the ruby support work with ruby-1.6.4 api (for older freebsd)
* Add the 'nickcomp' script contributed by Blackjac. Thanks!
* Create an 'extlang.h' header file for perl/tcl/ruby stuff.
* Clean up warnings and stuff for the external lang support.
* Suspend protocol enforcement when we're processing user input.
* Lay the foundations for nonblocking ssl connection (not supported yet)
* Change SEND_LINE to do SCROLL_FORWARD if we're in scrollback mode
* Add support for maildir mailboxes. 
* Fix crash with 042 numeric.
* Fix buffer overrun with new server state.
* Don't call close_server() for gaps in server list in close_all_servers().
* Support AI_ADDRCONFIG in our builtin AI_MASK/getaddrinfo().
* Make set[_non]_blocking extern.
* Support NEWIO_SSL_CONNECT as a new_open() type.
* Add a new ssl_connect() io callback function for NEWIO_SSL_CONNECT.
* New scripts from weirdo: autojoin, autoquery, floodprot, renumber
* New version of reconnect script from weirdo.
* GC the fixed-alist support (last used by /quote and protocol handler)
* Reorg server SSL negotation stuff to be nonblocking. yay!
* Comment all sorts of stuff in ssl.c.
* Add /set mail_type (MBOX or MAILDIR) to control what we check for mail.
* Make rebuild-scrollback a toggle flag instead of an operation.
* Teach update_all_windows() how to rebuild scrollback
* Write some preliminary code for the unified lastlog
* Add /ON NUMERIC which is thrown if you don't hook the numeric specifically.
* Important changes to autojoin and floodprot scripts.
* Support cast5/blowfish encryption a la ircII.
* Fix build for non-ssl users.
* Add AES256 support.
* Add AESSHA256 support (AES256 using the SHA256 digest of your passkey)
* Rename "EXTCRYPT" to "PROGCRYPT"
* Migrate SED support from crypt.c to crypto.c
* Integrate SED and extprog support into the mainline [de]cipher_message()
* Refactor [de]cipher_message() to be less lame.
* Support "anycrypt" support (AESSHA, AES, BLOWFISH, CAST5, SED, PROG)
* Include sha256 implementation from Karll.  Thanks Karll!
* Unify the ctcp handling of all crypto ctcps
* Add $sha256() function to test sha support (digest)
* Make funcs in crypto.c static and just expose [de]crypt_msg().
* This finishes the divide between crypt.c (front end) and crypto.c (back end)
* Fix a gazillion compiler warnings and sort out const/unsigned char issues.
* Add SEDSHA cipher type, which is better than SED, and always available.
* Add my_sleep|isreadable|iswritable() funcs to phase out rogue selects()h
* Add support for multiple concurrent servers to /encrypt. yay!
* Store the length of the Crypt key within the key itself.
* This moves us closer to being able to decrypt arbitrary data.
* Test all of the cipher types, incl. compat of CAST with ircII.  All set!
* Fix Cut & Paste error.
* DO YOU THINK YOU CAN RE-ORDER AN ARRAY AND NOT CHANGE THE #DEFINES DUMMY?
* Bust do_crypt back into its callers [de]crypt_msg().
* Make lookups between /encrypt flag<->cipher flag<->ctcp table-driven.
* Fix bugs with /crypt -- I think this finishes the project!
* Fix bug that prevented you from deleting a crypto having server desc.
* Add /encrypt -clear so you can purge your crypto list (for debugging)
* Don't output the key for SEDSHA and AESSHA in binary mode (convert to hex)
* Fix external encryption support.
