EPIC5 Projects, Bugs, and other Errata:

KNOWN ERRATA (eg, bugs, or unresolved requests):
------------------------------------------------
<none>

LOOK FOR IN THE FUTURE
-----------------------
* send_text() needs rework, to add extra /on's so you can flag those special. 
* Lastlog improvements (unified lastlog, refnums, moving between windows, etc)
* Shattah would like something like /window omit <regex> to remove stuff.
* Import utf8 support from ircII OR add support for utf16 (wide chars)
* Import fg/bg color support from ircII
* Cache what files can be /loaded in a hash
* Support loading through ZIP files.
* Some way to call an alias in a variable indirectly
* Output rules
* Support for CNOTICE
* /CTCPs over /DCCs don't match up with their queries very well. (nullie)
* $xform()s for SED and DEF
* str_to_mask() should be silent, callers should be warning.
* Support for 64 bit ints could be more widespread
* Larne wants suppression of duplicated lines (like syslog maybe?)
* Larne and nullie say that stdout can block when running under screen
* Refactor hardcoded uses of select() so select() isn't mandatory.

[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.
* Release epic5-0.3.1
* Fix compile errors for non-openssl users.
* Fix breakage for solaris found by zlonix
* Fix %{2}+ so it behaves like %+ and not like %{1}+, as per the docs.
* Add server states CREATED and DELETED for nullie.
* Add /on operwall and operwall window level for black.
* Fix $levelwindow()
* Finally whack unused /set status_truncate_rhs
* New versions of autojoin and reconnect from nullie
* Fix /xecho -l for larne. yay!
* Fix /whois so trailing spaces don't look like real words.
* Change ltoa() to my_ltoa() for hpux's sake
* Change finite() to isfinite() for hpux's sake
* Add $serverctl(GET refnum ADDRSLEFT) (see UPDATES)
* Fix finite()/isfinite() madness.
* Look for clock_gettime() in -lrt for ubuntu.
* Automatic reconnect from nullie. yay!
* Change /xecho -v to always output to current window if it's visible.
* Fix /on's with arglists, so lower serial nums don't corrupt $*. [rb nullie]
* Fix memory leak with $url(en|de)code() [rb nullie]
* Change /server - so it calls disconnect() directly
* Fix const correctness problems with sha2.c
* Fix typo: HAVE_INFINITE -> HAVE_ISFINITE [rb kev]
* Desupport dwords in a lot of builtin functions (see updates) [nullie]
* Make /window foo kill fail for want of 'foo' (see updates)
* New 'builtins' from blackjac, more modern format, /whowas improvements
* Refactor the serverinfo stuff
* Allow skipping of fields in server descs (see UPDATES)
* Make /window foo kill not fall back to /window describe, for want of 'foo'.
* Add a 'proto' field to server descs (tcp4, tcp6, 4, or 6), see UPDATES.
* Add RESET_LINE keybinding, for tabkey and history recall scripts.
* Add /on channel_lost, from nullie, who needs to write an UPDATES blurb.
* Fix bug with reset_line, found by nullie.
* Finish implementation of /stack push|pop set with symbol table, rb nullie.
* Preliminary work making @#chan public show up in #chan's window.
* Add /ON UNKNOWN_COMMAND from nullie (thanks!)
* Fix valgrind bugs that nullie found (yay!)
* Fix bug with '' in the new math parser being NULL instead of empty string
* Add support for @#chan via notices to show up in #chan's window
* MORON.  Don't replace a 'return' with something that doesn't return!
* Don't call happykey() on a plain text password (valgrind)
* Fixes for two memory leaks from nullie
* New /on, /ON WINDOW_SERVER, from nullie.
* Teach history script to use parsekey reset_line (nullie)
* Fix one bogon (still others left!) in map script
* Improvements to 'save' script (blackjac)
* Change /on unknown_command to include // prefix if that was used (nullie)
* Fix behavior of /set old_server_lastlog_level (rb larne, fixed by nullie)
* Pass double ptr to remove_bindings_recurse() to fix exit-time memory leak.
* Remove /set bad_style, input_aliases, security,  (unused)
* Remove /set ssl_certfile, ssl_keyfile, and ssl_path (unused)
* Add a (ServerInfo) object to (Server), switch to using it.
* Remove a bunch of unused thingees in (Server) while i'm here.
* Restore /set reverse_status_line to a builtin. oh well.
* Make $urlencode() rfc3986-ish, converting all non-unreserved chars
* Change ServerInfo to use const char's since we don't modify them directly.
* Reorganize how ServerInfos are used, into "temporary" and "permanent" types
* Convert Server's use of ServerInfo's into safe permanent types.
* Add /server -update <refnum> <desc> to change server descs on the fly.
* Fix typo in /invite.
* Fix 'country' script by wrapping it with xdebug dwords.
* Fix some problems with /window query (rc kreca)
* Fix cross-matching of ctcp-over-dcc with queries. YAY! (nullie)
* Fix crash when you received ssl-encrypted msgs and you don't have ssl.
* Begin a major project to normalize the behavior of "words" in function calls
* Fix compat issues with 'history' script.
* Fix problem with get_child_exit() can block SIGCHLD.
* Change $mask() so it doesn't require a full $uhc() value, compat with epic4
* Avoid crash by actually removing ssl entries when they're shut down
* Fix replace_line, it wasn't moving the cursor before writing new contents.
* Fix a double SSL_free, from yesterday's fixes.
* Add a WIP document that describes how all functions arglists work.
* Fix a few problematic word manip functions.
* Add a 'vhost' field to server descriptions, for setting per-server vhost.
* Fix $prefix( )
* Add support for "conditional dequoting" in universal_next_arg_count
* Change next_earg() and next_func_arg() to use the conditional dequoting.
* This permits me to implement $qword() which returns a $word() literally! yay!
* Fix 'loadformats' script (rb zlonix)
* Change last_arg() so it dequotes the retval according to the word type
* Change $pop() so it only takes an lvalue
* Change $revw() to use the last_arg() improvements.
* Improve /xdebug so it takes a block as an argument
* Improve $push() so it pushes the whole arguments as dwords
* Add new function $curcmd() for currently executing command (nullie)
* Rewrite $remw() so it uses standard word handling routines.
* Normalize $shift() and $unshift() in the same way as $push() and $pop().
* Fix /eval echo $func($*) at the input prompt causing "add is NULL" panic.
* Put a delay on handling 001 to avoid problem I'm seeing on epicsol.
* Release EPIC5-0.3.2 (1431) (Mitigation)
