EPIC IRC

Site Content
Main Page

Installing EPIC

Getting EPIC
Installing EPIC
Updating EPIC


Using EPIC (You need a script)

EPIC Script Archive
Intro to Scripting
EPIC Mailing List archive (offsite)


About EPIC

What is EPIC?
Who is behind EPIC?
Copyright Info
Noteworthy changes in EPIC
Ask hop
Ideas past and present
EPIC Related Projects


About EPIC5

EPIC5 documentation (wiki)
Browse EPIC5 CVS


About EPIC4

EPIC4 docs in html
Browse EPIC4 CVS
EPIC docs in /HELP Format
Introduction to EPIC4
Detailed EPIC4 Changelog

EPIC CHANGELOG
[ This file contains all of the documented changes during the EPIC4 development
  cycle.  Some things changed and are not mentioned here, because I forgot to
  put them in.  But this makes for interesting history, seeing how things came
  from EPIC3.004 to today.  This file is constructed from the KNOWNBUGS file. ]


THE CHANGELOG FOR EPIC4
-----------------------
0.000 Fixed bug with /set lastlog_level ALL -C (rb crowman)
0.000 Fixed bug with $N and $R (rb wc)
0.000 Fixed lame bug with /leave, /part (rb wc)
0.000 Local variable support
0.000 Import epic3.004-alpha
0.000 Rebuild
0.001 split alias.c->(alias.c/functions.c), rename edit.c->commands.c
0.001 syntax error debugging
0.001 Rebuild
0.002 catalog alias.h, document functions
0.002 rearrange alias.c, seperate interface from internals
0.002 Remove several funcs from alias.c, unneeded
0.002 Rebuild
0.003 Add malloc tracing to new_free, etc.
0.003 Rebuild
0.004 Move stack alias support from stack.c to alias.c
0.004 Make alias_list static to alias.c
0.004 Make x_debug have individual flags
0.004 Make new command /XDEBUG to turn on x_debug flags, rebuild.
0.004 Make Alias static to alias.c, isolates all alias stuff to alias.c
0.004 Unify /alias, /assign, /stub, /local commands
0.004 User functions call execute_alias directly.
0.004 Rebuild
0.005 Add /ON ODD_SERVER_STUFF $0 - server, $1- - stuff.
0.005 Remove ircflush, ``shell' script.
0.005 Remove alarm clock feature.
0.005 Remove ircserv.
0.005 Remove translation tables
0.005 Remove external encryption support
0.005 Hack up configure.in, dont check for POSIX stuff.
0.005 Rebuild
0.006 Cleanup of term.c,
0.006 Import simplified mail checker.
0.006 Support for naked CTCPs over DCC CHAT (lame mIRC hack)
0.006 Added /SETENV command
0.006 Added EXEC -direct for the lazy =)
0.006 Rebuild
0.007 Applied fix from flier (by way of Colten) for split_up_line.
0.007 Most input can be specified in "common" formats (hex, oct, dec).
0.007 Fixed up wserv.c, /window create stuff. Honors XTERM env var.,
0.007 Rebuild
0.008 Fix /alias,/local,/assign,/stub to allow multiple vars per command
0.008 Rebuild
0.009 Removed boot-time MOTD file support
0.009 Removed the -c command line flag
0.009 Rebuild (Released)
0.010 Fix /input char (found by wc)
0.010 Fix some memory leaks with help from wc.
0.010 Fix bugs reported by Colten (different way, though.)
0.010 Rebuild
0.011 Remove NOVICE mode and all its lamage.
0.011 Convert args handling to getopt()
0.011 Seperate the four alias commands, work on updating them
0.011 Start on alist.c, a resizeable binary searched array.
0.011 Convert command searches to use alist stuff.
0.011 Rebuild (except for alias.c)
0.012 Remove legacy pipe() compat in exec.c
0.012 Change all gratuitous uses of sys_errlist to strerror()
0.012 Fix how client deals with broken 333 reply (simon)
0.012 Clean up ircaux.h, irc.h, irc_std.h
0.012 Rebuild (except for alias.c)
0.013 Fix Unix code in connect_by_number
0.013 Change window create and dcc raw code to use connect_by_number
0.013 Added new var "CONNECT_TIMEOUT" for how long to block on connect()s.
0.013 Remove lame broken old signal compat code, only use sigaction
0.013 Rebuild (except for alias.c)
0.014 Syntax mop up in dcc.c, names.c, files.c, funny.c
0.014 Whacked on history.c a good deal
0.014 Add compat code for vsnprintf/snprintf, start using it.
0.014 Clean up configure script.
0.014 Rebuild (except for alias.c)
0.015 Whacked on parse_args()
0.015 Fix memory leak in check_wait_command (Colten)
0.015 Add /xecho -* (/xecho -a) to echo to every window.
0.015 Changed new_realloc() at the suggestion of Colten
0.015 Whacked on code as neccesary to implement above
0.015 Removed pointless /set SEND_IGNORE feature.
0.015 Rebuild (doesnt link)
0.016 Remove all the rest of the __STDC__ usages.
0.016 Remove all uses of lame _(()) macro
0.016 More work on rewriting stuff in alias.c
0.016 Use __attribute__((format)) for GNU cc to catch errors
0.016 Fix lots and lots of ``printf'' type errors.
0.016 Fix /window list code so its more efficient
0.016 Rebuild (doesnt link)
0.017 Write find_in_fixed_array() and make commands and vars use it
0.017 Fixed built in functions from passing function calls to macros
0.017 Change built in function searching to use find_in_fixed_array().
0.017 Fix a lot of null pointer deref bugs with get_string_var
0.017 Continued work on alias.c
0.017 Rebuild (doesnt link)
0.018 Added simple caches for global vars and global cmds.
0.018 Write last major functions in alias.c (yea!)
0.018 Write last minor functions needed to link (woo hoo!)
0.018 Rebuild
0.019 Bug hunting
0.019 Removal of infinite recursion detection.
0.019 Rebuild
0.020 Preliminary profiling.  Very simple and very dramatic improvements.
0.020 Rebuild (release)
0.021 Fix bug with sig.inc being in the dependancies
0.021 Fix bugs with /stub
0.021 Include compat code for LAME SOLARIS THAT DOESNT HAVE SETENV
0.021 Include compat code for LAME SOLARIS THAT DOESNT HAVE SCANDIR
0.022 To get it to work on solaris, you need to use -lbsdmalloc.
0.022 Rebuild (release)
0.023 Roll in changes to make it work on FreeBSD/linux
0.023 Fix malloc fault in /for, reported by bigmac.
0.023 Fix bug with get_subarray_elements that caused /foreach to break
0.023 Added back /set mail 2 in a much simplified form.
0.023 Fix bug with word_count() that counted extended words incorrectly.
0.023 Fix grand mal seiuzure bug that fixes /stub, most known crashes.
0.023 Fix implicit local variable declaration so it works
0.023 Rebuild
0.024 Deconstruct whois.c, roll changes into numbers.c from 4pre1-old
0.024 Remove ``SHOW_AWAY_ONCE'' feature, covered already by scripts.
0.024 Rebuild (release)
0.025 Fix bug with /dcc send being broken.
0.025 Fix bug with escapes not being allowed through (trusted_output = 1)
0.025 Fix bug with /set suppress being not alphabetical order
0.025 Fix some lamages with lastlog levels
0.025 Offer target nickname in /on 312, /on 319.
0.025 Fix bug with /stub alias <short> overriding previous /alias <long>
0.025 Add /ON STATUS_UPDATE and $status() features
0.025 Finalize the use of alloca(), include alloca.o
0.025 Fix insane lamage with ``underline'' display toggle
0.025 Fix stupid bug in streq().
0.025 Rebuild (release) (broken)
0.026 Fix stupid bugs cascaded from bug fix in streq().
0.026 Roll in new who queue, hold off ison and userhost queues for now.
0.026 Added new -line, -end flags for WHO
0.026 Added WHO query when you join channel, cache userhosts for channels
0.026 Change $userhost() to take arguments, use userhost cache.
0.026 Rebuild
0.027 Roll in changes for ISON queue
0.027 Utterly obliterate everything but userhost handling from whois.c
0.027 Fix memory leak with /help.
0.027 Rebuild (release)
0.028 Fix buglet with username handling and also with fencepost lamage.
0.028 Fix bug with /who failing to pop entry after joining channel.
0.028 Fix bug in glob_cmd_alias (Colten)
0.028 Fix bug with handling of numeric 433
0.028 Fix race condition with ons after removing them.
0.028 Rebuild (release)
0.029 Fix outputting of highlighted ignores.
0.029 Fix how header for /timer -list looks
0.029 Change io() to take descriptive arg, hope to trap odd loops
0.029 Commented out FD_SET macros that cause warnings under linux.
0.029 Worked over $numonchannel(), $onchannel(), $chops(), $nochops(), $key().
0.029 Fixed bug where client would crash if server went down.
0.029 Add ``wait for'' support to do something synchronously.
0.029 Fix bug that add_to_window_list() shouldnt nuke win! (Colten)
0.029 doing_privmsg, doing_notice, etc reset while youre /wait'ing.
0.029 Rebuild (release)
0.030 edit.h -> commands.h
0.030 Cleanup in various header files.
0.030 Fix insane bug in glob_cmd_alias (Colten)
0.030 Deal with write() errors in dcc.c, gracefully (sug by Simon)
0.030 Should punt rather than fail if EBADF, ESEARCH on select(). ugh.
0.030 Allow users to hook /on 352 as well as /on who.
0.030 Fix bug in word_count not checking for EOS. (Colten)
0.030 Fix bug that prevented ``local a.'' from working
0.030 Fix really stupid bug/typo that broke /query /command
0.030 Add perl-compatable =~ and !~ operators.
0.030 Fix typo in ``away'' script that broke it
0.030 Fix bug with send_text sending privmsg to privmsg automatically.
0.030 Rebuild (release)
0.031 Fix bug with WARN_OF_IGNORES not being removed in vars.h
0.031 Finally got alists to binary search.
0.031 Fix $aliasctl(), stupid bug.
0.031 Doh!  Forgot to take out new_free(&commence) in forcmd().
0.031 Remove SUMMON and USERS from built in command list, unsupported.
0.031 Finish the new userhost queue.
0.031 Rewrite the USERHOST command to use built in caching if possible
0.031 Include -direct flag for USERHOST
0.031 Rewrite the userhost handler, much cleaner now.
0.031 Eradicate whois.c, whois.h once and for all (Huzzah!)
0.031 $X now uses server-returned userhost if possible.
0.031 DCC file checksumming now can cope with DCC_STORE_DIR.
0.031 Fixed command completion.
0.031 Rebuild (release)
0.032 Arick was unhappy that i removed -c, so i put it back.
0.032 Fix brain dead compiliation problems.
0.032 Fix bug in userhostcmd using wrong local variable (doh!)
0.032 Rebuild (release)
0.033 Check all meaningful write() and read() calls for failure.
0.033 Add /on set for dynamically extending /set capabilities
0.033 Remove usages of set_string_var and set_int_var outside vars.c
0.033 Add new set, /set BANNER controls how *** should look.
0.033 Change the error message for /who *
0.033 Change the two bugs in /userhost that corrupted the output
0.033 Fix it so /set can do argument completion again.
0.033 Fix bug that didnt consider aliases for auto-completion.
0.033 Fix logging so it expands twiddles in log filenames.
0.033 Fix bug with POBJECTS in Makefile (wyv)
0.033 Rebuild (release)
0.034 Fix uninit'd retval in function_onchannel (colten)
0.034 Fix save_message_from() and restore_message_from() (rb Colten)
0.034 Check set variables on startup for alphabetical order
0.034 This fixes the cant do /set notify_on_termination bug
0.034 Roll in function_winchan() from IceKarma, adapt as neccesary.
0.034 Fix find_in_server_list() so above works correctly.
0.034 Fix bugs found by -Wall
0.034 Fix /load so it honors /set input_aliases.
0.034 Deal with broken sunos4 vsprintf. Sigh.
0.034 Fix ``Ambiguous command'' error for unknown commands (rb wyv)
0.034 Fix bug in get_subarray_elements() that caused /foreach to freak out.
0.034 Roll back lsay(), broken broken broken, fixes DCC crashes.
0.034 Fix mail checking for /set mail 1.
0.034 Add /stack set (Colten)
0.034 Add /lastlog -max (Shiek)
0.034 Add $winchan() (IceKarma)
0.034 Add DISPATCH_UNKNOWN_COMMANDS (rb Kasi)
0.034 Rebuild (Release)
0.035 Fix bug with #var
0.035 "IRC log started ...." now includes time zone (rb wc) *
0.035 Add /set QUIT_MESSAGE, makes #define WINTRHAWK obsolete.
0.035 Remove #define HOP, not even I use it any more.
0.035 Fix DISPATCH_UNKNOWN_COMMANDS (rb Kasi) *
0.035 Fix bogus call to get_procss_index() (Colten) *
0.035 Fix for weird input-line-clearing-because-of-blank-on bug *
0.035 Fix Unknown command; message (semicolon was wrong) *
0.035 Change /set lastlog so its global.
0.035 Add /window lastlog to the old /set lastlog semantics.
0.035 Fix memory leak in switchcmd().
0.035 Ok, ok, so main() returns int (Kasi) *
0.035 Fixed $remw(). (rb wc) *
0.035 Rebuild (Release)
0.036 Change pattern matcher so \'s dont quote normal chars.
0.036 More work on wserv.c, use inet sockets, much better, more portable!
0.036 Close semantic weakness for $# and $@.
0.036 Add $findw().  Should suck a good deal less than $rmatch().
0.036 Extraneous comma in numbers.c (kasi) *
0.036 Rebuild
0.037 Added debug_new_free to help wc debug.
0.037 Added /on yell for wc.  I still need to document this.
0.037 Efficiency patch in expr, handle [$0], handle [text], works great.
0.037 All new /if command, lots of new functionality.  See UPDATES file
0.037 Rebuild
0.038 Add padding to MO.  Why does it make it crash less?
0.038 Finally fix how nicknames are handled, much less lame.
0.038 Fix mail checking once and for all
0.038 Fix TOPIC once and for all.
0.038 Allow "IRC_SERVERS_FILE" environment variable for users
0.038 Rebuild (Release)
0.039 Use TIOCSTI to handle /type command while in dumb mode. (bleh)
0.039 Reworked parse_args() to handle env vars more gracefully
0.039 This fixes the "You have entered an invalid nickname" bug.
0.039 If youre running as a bot, send stdout to /dev/null.
0.039 PID and ttyname echoed on bootup.
0.039 Dont open /dev/tty -- only way to term_init is if stdin is already a tty.
0.039 Fall back to dumb mode (dont just die) if cant set up normal display.
0.039 Dont let last_window_refnum get stale, maybe /window killswap wont die.
0.039 Replace all signal handler defns with SIGNAL_HANDLER macro.
0.039 Replace all command defns with BUILT_IN_COMMAND macro.
0.039 Fix a whole multitude of drifting ptr bugs found by -fbounds-checking.
0.039 You can bet ill be looking for lots more, too... =)
0.039 Rebuild (Release)
0.040 Fix bug so USER when using virtual hosts doesnt choke.
0.040 New scandir, should be more portable...
0.040 Fix bug where two trailing *'s or %'s made a regex fail.
0.040 Fix up multitude of bugs in "nban" alias
0.040 Clean up after key bindings, prevents phantom memory leaks.
0.040 Fix /msg /command bug (Matt Carothers)
0.040 Im not seeing memory leaks with local vars any more....
0.040 Fix memory leak in function_pattern.
0.040 Fix array overrun crash that happens when you get rejected from server.
0.040 "Bound" and "Waiting" channels are checked for correct server.
0.040 This fixes the "AUTO_REJOIN to the wrong bound window" problems.
0.040 Fix in remove_channel, ``channel'' might be ``tmp->channel'', kablooie!
0.040 This might be the mysterious "crash on /quit" bug.
0.040 Support added back for AIX 3.2.5, dont trust this forever.
0.040 Remove use of ANSI C function raise() because stupid sunos 4 sucks.
0.040 Send only one JOIN for all channels on reconnect (idea by orabidoo)
0.040 Header line for logs now shows time in "date" format, with timezone.
0.040 Include inet_aton from 4.4BSD for systems that lack it.
0.040 Fix /on yell, dont ask.
0.040 Rebuild (Release)
0.041 Fix scandir so it actually works.
0.041 Remove #define RESTRICTED -- duplicates #define EXEC_COMMAND
0.041 Fix bug when you do /away when not connected (rb wyv)
0.041 Total rewrite how AWAY handling is done, encapsulate.
0.041 Optimize how time_to_next_minute() is computed in normal case.
0.041 Add underlying support for cpu saver mode in irc.c
0.041 Add new /set's, CPU_SAVER_AFTER and CPU_SAVER_EVERY
0.041 Add new status line expando, %L, see below.
0.041 Add new /set, STATUS_CPU_SAVER, controls how %L looks.
0.041 Rebuild (Release)
0.042 Fix bug where "Not registered yet" was your nickname on dcc chats.
0.042 New script "utimes" which does some basic $utime() manipulations.
0.042 Fix get_server_name() when primary_server == -1. (Arnold)
0.042 Support for DALNet /part messages, (suggestion by Crackbaby)
0.042 Fix for /^msg nick text not being quiet (Colten)
0.042 Fix to m_strcat_ues() so /eval echo \ doesnt crash (Colten)
0.042 Fix so /eval echo $ returns empty string, not garbage (idea by Colten)
0.042 Added -H command line flag for virtual hostname (Crackbaby)
0.042 Fix bug so if (false) commands  doesnt execute commands anyways.
0.042 Finish all new dgets(), all buffering in dgets()
0.042 Fix callers to dgets() to handle new semantics (IMPORTANT!)
0.042 Remove duplicate buffer in struct server, dgets() buffers all now.
0.042 Remove duplicate buffer in struct dcc, dgets() buffers for all now.
0.042 Fix bug doing a memory leak in set_waiting_channel (fb Colten)
0.042 Found that really annoying memory leak with local vars (hurrah!)
0.042 Fix bug where send_text() reset message_from even when no msg. (Colten)
0.042 Fix last_arg() so quoted args handled properly, fixes $revw().
0.042 Fix memory leak in function_pattern.
0.042 Remove term_ALDL_scroll from term.c, unused.
0.042 Rebuild
0.100 Release
0.200 Fix -H, add help description (Matt)
0.200 Fix so definitions for alloca() dont choke (Crowman)
0.200 #define strerror shouldnt have ; at the end (Scott Jann)
0.200 Remove two spurious malloc's in TruncateAndQuote.
0.200 Changes to strformat() and double_quote() to remove spurious malloc's.
0.200 Remove spurious third arg to main(), return dummy value from main().
0.200 Fix (apparantly not broken) possible alloca overrun in input.c
0.200 Attempt to more gracefully handle seg faults in irc_exit().
0.200 Clean up stuff malloced by windows on exit
0.200 Rewrote the man page just for the halibut.
0.200 Remove unused rfgets().
0.200 Fix most bogus uses of feof(), fix fgets(), fread() calls.
0.200 Fix bug in dgets() causing infinite looping lossage
0.200 Fix problem with outbound DCC CHATs going to wrong window.
0.200 Fix crash for boneheads who /set -banner ;-) (Crowman)
0.200 In /exec, close unwanted fd's right away, not after dup2()s. (Colten)
0.200 Support for undernet's modified list syntax (Matt)
0.200 Rebuild
1.000 Release (epic4pre1)
-------------------------- EPIC4pre1 was released here -----------------------

1.001 Maintainance in alloca.c
1.001 Use -lncurses and/or -ltinfo to get terminfo instead of termcap.
1.001 No, this is NOT ncurses support, dont bug me about that. ;-P
1.001 Mailbox is found at runtime, rather than at configure time.
1.001 In configure, check for libs BEFORE funcs! (doh!)
1.001 never call exit() after a fork() (should be _exit())
1.001 Im no longer seeing the "Automatically setting +ws for you" bug.
1.001 Added auto-rejoin delay, from Peter Evans.
1.001 Slurp up possible user modes from 004 numeric.
1.001 After dispatching saved usermodes on reconnect, clear usermodes
1.001 Added auto-reconnect delay.
1.001 Trap from_server == -1 in show_notify_list (Colten)
1.001 Add $uhc() from Peter
1.001 Fix memory leaks in remove_numeric_hook, add_cmd_alias
1.001 Release (epic4pre1.001)
---------------------- EPIC4pre1.001 was released here -----------------------

1.002 Fix bug where locops get umode +O, which is not a "valid" umode.
1.002 Fix bug in oh_my_wait() where end_wait_list didnt get reset -> crash
1.002 Fix bug in logger() where say() used after logfile closed -> crash
1.002 Fix overlapping strcpy in make_status 
1.002 Previous three fixes by Jeff DeFouw (thanks a ton!)
1.002 /bind "meta1- " works (eg, spaces in bind sequences)
1.002 Fix bug in my_stricmp() where high bit set->absurdly large u_short. (+)
1.002 Fix bug in do_hook() where 'name' can be free()d early (+)
1.002 Fix bug in stackcmd() where poppping invalid numeric created wild ptr (+)
1.002 Fix bug in find_var_alias() where cache was stale after destroy_alias (+)
1.002 Added /on oper_notice, massed from "*** Notice --" type notices.
1.002 Added /on kill, massaged from "Recieved KILL message" type notices.
1.002 Added ability to specify multiple files for /dcc send nick file <file...>
1.002 Fix support for DALNet's part messages
1.002 CTCP FINGER replies now return virtual (rather than default) hostname.
1.002 Add support for av2.9's SQUERY and SERVLIST commands.
1.002 Add support for u2.10's WALLCHOP command (i bet i get yelled at!)
1.002 Fix rare re-entrancy problem with save_message_from and friends. (+)
1.002 Add /set XTERM to determine what xterm to use, default "xterm"
1.002 Add automatic userhost lookup for notifies, done in batches!
1.002 Add /set NOTIFY_USERHOST_AUTOMATIC to turn this on.
1.002 Fix /on NOTIFY_SIGNON to take two params, 2nd is userhost.
1.002 Add support so redundant /WHO requests can piggyback (eg. /ON JOIN)
1.002 kill_message() returned the wrong logical value (doh!) (wc)
1.002 send_2comm should use next_arg(). (Colten)
1.002 Fix bug in status line %S, doesnt check window->server for -1 (doh!)
1.002 Fix bug where in dgets(), select() should be polling, not blocking!
1.002 Rewrite the make_status_line() func, it was bogus.
1.002 Rewrite the output_line() func, it was super super bogus.
1.002 This makes epic's output completely SANE for the first time.
1.002 Fix bug where if you did /window kill it lost track of bottom line.
1.002 ctcp_unquote_it() should malloc off one more byte than requested (Colten)
1.002 Pass ON/OFF rather than number to set_var_val in /window hold_mode
1.002 Ok, ok. /parsekey send_line in dumb mode shouldnt be fatal.
1.002 Fix bug so client doesnt exit when blank line entered in dumb mode
1.002 Fix bug where [$0] shortcut in next_unit didnt set args_flag.
1.002 Fix $mid() so asking for negative characters returns false value
1.002 Fix $right() and $left() same as for $mid().
1.002 Fix bug where output_line() beeped after every line
1.002 Add $winbound(), window <-> channel name converter.
1.002 Whack on split_up_line so it doesnt malloc() nearly as much.
1.002 More work on split_up_line so its much more efficient.
1.002 Fix bug so /who ** on back of /who * in channel 0 doesnt crash.
1.002 Fix it so doing /quote who * isnt quite as obnoxious
1.002 Fix bug where /echo $USER wrongly completed to USER_INFORMATION
1.002 Add $ftime() -- get the mod-time for a file.
1.002 Add $irclib() -- returns irc_lib
1.002 Write script "MOTD" to reimplement client side MOTD files.
1.002 Add support for timers to be repeated more than once (Idea by Colten)
1.002 Add /timer -REPEAT flag to implement user interface to above. (Matt)
1.002 Significant fixes to the output chain (screen.c)
1.002 Screen does NOT change on a refresh if DISPLAY_ANSI changed! (hurrah!)
1.012 Release 12
1.013 Fixes to output_line so /set indent works again.
1.013 Fixes to output_line so tabs work correctly again.
1.013 Framework support for ^C colors.  No implementation, though.
1.013 Implement support for ^C colors.  Controlled by #define and /set.
1.013 CONTROL_C_COLOR controls whether to render or strip ^C colors.
1.013 If CONTROL_C_COLOR is off, repainting screen doesnt re-render in color.
1.013 Release 13
1.014 Fix bug where swapping in window with double status got corrupted.
1.014 Remove DISPLAY_ANSI support from lastlog, no longer needed.
1.014 More fixes in split_up_line, its limit of 2048 characters gone!
1.014 More fixes in split_up_line, its limit of 40 lines gone!
1.014 Scrollback appears to work better now than before.
1.014 Added put_echo(), no sprintf, so no more limits on /echo AT ALL!
1.014 Change most usages of the bogus word "illegal" to "invalid"
1.014 Release 14
1.015 Fix /dcc send nick file [file] so its not bogus.
1.015 You can filter inbound ESCapes with #define STRIP_ESCAPES
1.015 CTCP PING replies now checked to see if its reasonable
1.015 Newline now honored in output stream (if thats worth anything)
1.015 Fix yet another misplaced status line bug with /window hide
1.015 Fix add_to_crypt(), copied both into new->nick (reported by Loki)
1.015 Release 15
1.016 Exempt CTCP DCC from CTCP_FLOOD control (too many people gripe about it)
1.016 Fix kill_message to work on a copy, rather than munging original.
1.016 Add /xecho -B, displaying BANNER before a line.
1.016 Automatic userhost lookup for notify seems to be working now.
1.016 Fix bug so NOTIFY_INTERVAL is honored. 
1.016 Fix bug where highlights didnt carry from one line to the next
1.016 Fix bug where we were strcat()ing the empty_string (Colten)
1.016 Add $substr() and $subrstr(), searching for string inside string
1.016 Release pre1r2 release candidate
1.016 Fix counting and stripping ^C codes in the status line.
1.016 Fix status line rhs handling so it can handle colors as well.
1.016 Fix status line rhs handling so it truncates at correct place.
1.016 Once and for all get rid of lines starting with (void).
1.016 Release 16
1.017 Add /set CLOCK_FORMAT to allow formatting for status line
1.017 Change update_clock() to use the previous /set.
1.017 Write update_clock_format() in vars.c to update status line right away.
1.017 Offer names replies on joining a channel via /on names. (rb wc)
1.017 Dont even bother with POBJECTS in Makefile any more. (rb Matt)
1.017 Fix add_user_who, didnt alloca() enough memory (Matt)
1.017 Fix ctcp.c:do_sed() so /encrypt over DCC CHAT works again.
1.017 Fix fe() so it more gracefully handles not having vars specified.
1.017 Fixes for strmcat() and strmopencat() (Colten)
1.017 Bunches and bunches of fixes to the window side of output chain.
1.017 Release 17 (not released) (does not link)
1.018 More chunks taken out of rite(), added to add_to_display()
1.018 Split window command into individual handlers
1.018 Massive re-organization of window.c and screen.c
1.018 Massive re-organization of window.h and screen.h, much progress made
1.018 Release 18 (not released) (but it links!)
1.019 Continued changes to screen.c, window.c (sorry, not keeping track)
1.019 Scrolling and scrollback appear to work for single window.
1.019 Scrolling and scrollback appear to work for multiple windows.
1.019 Hold mode appears to work now for any number of windows.
1.019 Not done yet, lots of rough edges, but good enough to test!
1.019 Release 19 
1.020 Fix bug in window_new that hosed making a new window
1.020 Fix english in some comments to remove bogons.
1.020 Fix so new output visible if in scrollback mode and would not scroll.
1.020 Fix compile-time bug if you #undef WINDOW_CREATE
1.020 Remove use of in_help, fix help_put_it so always to correct window.
1.020 Add lastlog level LOG_HELP to make sure help doesnt goto LOG_CURRENT.
1.020 Fix up help so that it works with the new window setup.
1.020 Add /on DCC_LIST, allow users to get info for reformatting.
1.020 Release 20
1.021 Scrollback mode ends automatically when you reach scrollback point.
1.021 Should be able to 'bg' cleanly, and 'fg' later.
1.021 Rewrite recalculate_windows() so rebalancing is proportional
1.021 Write rebalance_windows() for /window balance.  SIZE windows are exempt.
1.021 Fix buffer overrun wrt continued line corrupted output stuff (i think)
1.021 Release 21
1.022 Fix it so referencing $num-vars in expr mode with no args isnt fatal
1.022 Fix scroll-forward.
1.022 Add status line %P to help diagnose scrollback problems.
1.022 Fix recycling of display_lines, causing client to crash.
1.022 Don't "unclear" a window that has been /clear'ed
1.022 Remove wait_new_free() and really_free(), unused.
1.022 Add /set banner_expand for expanding /set banner.
1.022 Add /window fixed (on|off) to set the absolute_size attribute.
1.022 Fix /wait %proc -cmd ... so it throws away the -cmd, which is ignored.
1.022 Fix /wait so it doesnt reset from_server.
1.022 Change 'on' to 'oncmd'.
1.022 Try to make the DCC_TRANSFER status expando more resilient.
1.022 Change bogus uses of status_update() to update_all_status().
1.022 Change add_to_window suppress status updates to avoid race in s_u_l.
1.022 Fix rite() recursively calling split_up_line -> bad.
1.022 A zillion thanks to Colten for pointing that out to me!
1.022 Recursively calling split_up_line is fatal now, watch for that!
1.022 Add the /shook command, *any* hook type can be activated with it.
1.022 Fixes for scrollback_end and scrollback_start (Kevin Buhr)
1.022 Fix pesky bug that let you scroll past scrollback point.
1.022 Interaction while being ^Z appears to be ok now.
1.022 Add /window skip on, window wont be selected for NEXT_WINDOW, etc.
1.022 Release 22
1.023 Fix bug where userhost was lost when someone changed nick.
1.023 Move "NickList" definition from window.h to names.h.
1.023 Convert uses of "ChannelList" to "Channel", now all the same.
1.023 Fix bug where CTCP ECHO and ERRMSG both returned ECHO.
1.023 Punt on server registration if "realname" is empty.
1.023 Convert of names.c to using alist
1.023 Almost totaly rewrite/re-org of names.c
1.023 Add function "is_me" to greatly simplify logic everywhere.
1.023 Add a re-entrant new_traverse_all_windows().
1.023 Re-create old "NickList" as "WNickList" for window.c's nick lists.
1.023 Work on names.c so it compiles, more const correctness
1.023 Fix alist.c and some of window.c so its const-correct.
1.023 Fix wild_match() so arguments can be const.
1.023 Clean up header files so they dont #include unncesary files.
1.023 Clean up names.c, seems to work! =)
1.023 Implement $nohighlight(), make ^B, ^V, etc visible.
1.023 Release 23
1.024 Fix word-wrap algorithm when line has no breaks (Colten)
1.024 Make sure that DCC only shows up on one status line by default.
1.024 Fix SWITCH_CHANNELS
1.024 Fix two race conditions with wserv and /window create.
1.024 Fixed alist so it wasnt automatically case sensitive.
1.024 Fixed names stuff so it takes advantage of above.
1.024 Add "ceiling_of_display" to Window, so when you /clear it stays clear.
1.024 Fix bug in window_list where it had no idea what your servname was.
1.024 Change default 12hour format to "08:00" (grumble)
1.024 Fix my_stricmp, my_strnicmp, so they could be used as sorting routines.
1.024 This fixes $sort() and $numsort()
1.024 Fix create_nick_list, its ok for it to return NULL.
1.024 This fixes $onchannel().
1.024 Some dcc.c host:port reformatting (Yoshi)
1.024 Fix find_event_hook() to gracefully handle NULL argument
1.024 Convert MODE_* macros to const's in names.c, fixes stupid bugs.
1.024 More reorganization of the output stream, extra screens handled better
1.024 Reorg a lot of stuff in output chain, making progress and sanity.
1.024 Got it so /window delete show_others isnt fatal. (hurrah!)
1.024 Roll in changes for /set status_nick (|Rain|)
1.024 Removed the /set scroll feature.
1.024 Each screen now has its own input cursor position.
1.024 Redrawing screen while in "password" mode doesnt blank screen.
1.024 Release 24
1.025 Integrate new traverse_all_windows(), which is "thread safe".
1.025 Fixes to exec.c:do_processes() to support exec lines > 512 chars.
1.025 Remove #define MURPLE and #define PHONE, theyre unused.
1.025 Fix bug in is_me() where it didnt know if it was me! ;-)
1.025 Fix bug in window_check_servers, didnt re-init 'tmp'.
1.025 Release 25
1.026 Fix bogus assumption that all servers must be open (doh!)
1.026 Make the window with LOG_DCC the window to get the dcc progress meter
1.026 Add error(), which gives a load stack dump
1.026 Change DEFAULT_STATUS_MAIL, write "setmail" script, see UPDATES
1.026 Globally keep track of what is being /loaded, for error msgs.
1.026 #define STRIP_ESCAPES should not be the default.
1.026 Fix $S so it returns correct server refnum.
1.026 Fix handling of incoming exec lines, split up on newlines.
1.026 Add /set NO_CONTROL_LOG, (Peter)
1.026 Fix so you can have repeating status chars, even when you use %> (Colten)
1.026 Add $winnicklist() get nick target list for window (Colten)
1.026 Add #ifdef CONTROL_C_COLOR to 'options' file.
1.026 Release 26
1.027 Yes, $servernick() does exist.  You give it a refnum, it gives you a nick
1.027 If cannot open file for /dcc get, echo the full pathname.
1.027 Fix bug where load_depth was decremented bogusly.
1.027 Fix bug in load() where window_display could be set to 0 on exit.
1.027 Fix so you can scroll back while in hold_mode (Colten)
1.027 Fix in parse_line(), load_depth should be checked against -1 (Colten)
1.027 Temporary fix to resize_window_display() so scrollback doesnt unstick
1.027 Lots of work on exec.c
1.027 Add new_open(), adjust new_close() so they abstract 'readables'
1.027 Fix all uses of readables to make use of above abstraction.
1.027 Add /on redirect, dont let /on exec suppress /redirect %proc any more.
1.027 Fix so piggyback who's are cleaned up as well. (Jeff)
1.027 I couldnt find anything wrong with transpose_chars
1.027 I guess the problem with unbalanced {'s is now fixed (arb Murple)
1.027 Fix some of the stupidity in get_connected() that caused channel lossage
1.027 Attempt to make windows move in groups with the server.
1.027 Attempt to make channels move in groups with the server.
1.027 Fix to delete_window() to keep current channels coherent (Colten)
1.027 Fix to switch_channels() based on suggestion by Colten
1.027 Fixes to windows and channels coherency from Colten
1.027 Add /set winchan_hack, reverse semantics for $winchan() and $chanwin().
1.027 Add $info(w) to signify above semantic change in place
1.027 Fix the semantics of RETURN_INT() in functions.c, more sane now.
1.027 In switch_channels, referenced win->refnum when i meant win->server (doh)
1.027 Crashes associated with reconnecting to refused server seem to be gone.
1.027 Fix to find_channel so if channel '*' doesnt crash on channelless win.
1.027 Release 27
1.028 Fix to timer.c to allow both -refnum and -repeat to be used (Colten)
1.028 Add /xquote, a /quote that takes args.
1.028 Add /xquote -server, allow you to /quote to any open server.
1.028 Add /xeval, an /eval that takes args. (idea by Colten)
1.028 Add /xeval -server, allow you to eval in context of another server
1.028 Add /xeval -window, allow you to eval with output to different window.
1.028 Add /set scrollback, set the max size for the scrollback buffer.
1.028 Fix to clean_server_queues, should take a server argument.
1.028 This fixes bug where /disconnect twice crashed.
1.028 Change $notify() to default to current server rather than server 0.
1.028 Add /window noserv, allows you to have a window with no attached server.
1.028 Add /window echo, allows you to echo a line directly to a window.
1.028 Add stuff to support scratch windows, see UPDATES
1.028 Fix to allow you to do $#function_call(...)  (Colten)
1.028 Add /timer -update, allows you to change target time or commands.
1.028 Roll back change to swap_window, dont move channels to new win.
1.028 Fix scratch windows so they repaint ok.  Looking better!
1.028 Fix big memory leak when calling make_string_var (Colten)
1.028 Fix bug in SETUP_IMPLIED not free()ing varname (Colten)
1.028 Add $isconnected(refnum), idea by Colten
1.028 Modify $myservers(arg), idea by Colten
1.028 Add /set status_does_expandos, control whether $s in status format work
1.028 Fix /window so a naked argument can implies -REFNUM <windesc>
1.028 Add $currchans(server), get current channels for a server
1.028 Fix break_up_line() so a comma can be a line-break char (Colten)
1.028 Add $fnexist(), see if a built in function exists (Arcfire)
1.028 Add $cexist(), see if a built in command exists (Arcfire)
1.028 Add list_local_alias(), show local aliases (Colten)
1.028 Fixes so when window is destroyed, *all* channels for window are moved.
1.028 Fix get_channel_window() so that the window is sanity checked for serv.
1.029 Release 28
1.029 Fix to bug in SETUP_IMPLIED -- dont free varname there! (heh)
1.029 Fix memory leak in dcc_really_erase(), should be free()ing dies (Colten)
1.029 Change get_time() so it doesnt call localtime() all the time.
1.029 Fix lots of bugs in window_bind
1.029 Fix calls to set_channel_by_refnum to not presume current window.
1.029 Fix window_channel so you can join channel even if bound to curr_win.
1.029 Fix p_channel to support even more bogus lossage in ef2.9 server.
1.029 Change the lowest size a window can be to 2 lines (from 4)
1.029 Fix very large CPU sucker, dont call waitpid() unless childproc died.
1.029 Fix to waitpid() call, it can return 0 if no children waiting...
1.029 Lots of other smaller CPU sucker fixes.
1.029 Fix $uhc() so it returns empty if no arguments passed.
1.029 Add support to /window to accept (but ignore) -'s before commands.
1.029 Add 'i' flag to $sar(), for case-insensitive searching.
1.029 Fixes so dumb mode works again (i think)
1.029 Add << and >> operators (impetus by Colten)
1.029 Add -B command line flag, load .ircrc before connection
1.029 Fix race condition that might lead to notifies going to wrong server.
1.029 Add functions to support regex (impetus by Arcfire)
1.029 Fix bug in dgets() causing abnormal connection terminations
1.029 Release 29 (recalled)
1.030 Fix bogus bug fix above. ;-) caused failure to detect EOF properly
1.030 Find big CPU-sucking busy loop in new_select.  Not ready w/o newline!
1.030 Fix bogus call to new_free() in << and >> ops.
1.030 Release 30
1.031 Fix to command_exist, forgot to alloca()! erf. =)
1.031 Fix bug when inserting characters, due to alloca() failure. (rb Crack)
1.031 Maintainance on uzfopen(). Minor changes
1.031 Fix the bug where DCCs werent being cleaned up.
1.031 Fix lameness where we're keeping a static localtime pointer. (rb yoshi)
1.031 Fix stale useage of "free_line" in parse_command
1.031 Fix the argument we pass to localtime in update_clock. Blah.
1.031 Add status bar expando %K indicating youre in scrollback mode
1.031 Add /set status_scrollback to determine what %K looks like.
1.031 Fix bug in register_server() with not setting from_server (Colten)
1.031 Fix bug where dead->termsig could be > NSIG (rb Crack)
1.031 Fix new_select() so it doesnt do select() call if some fd's are buffered
1.031 Add demo versions of "break" and "continue", works with /do, /while, /for
1.031 Add demo version of "return" command, works with aliases and ons
1.031 Change FUNCTION_RETURN from special var to local var.
1.031 Change call_function() to handle FUNCTION_RETURN sensibly.
1.031 Fix "return" command to auto-assign to FUNCTION_RETURN (huzzah!)
1.031 Add /set dont_autoclose_servers for nuke.
1.031 Release 31 (with warnings)
1.032 Add /set no_fail_disconnect for nuke.
1.032 Recall /set dont_autoclose_servers, that was bogus.
1.032 Forgot to put return exception handling around function calls. oops =)
1.032 Fix to new_select() for off-by-1 error not unbuffering highest des used.
1.032 Add support for "anonymous functions" in expression-mode. (for Shade)
1.032 Support ~/file in $chmod().
1.032 Add new flag, /xecho -r, outputs raw termcodes, --no backing store!--
1.032 Fix assignment to FUNCTION_RETURN to work in called aliases and on's.
1.032 Fix scratch windows so they correctly keep track of display_buffer_size.
1.032 Fix Makefile to deal correctly with installed compressed scripts.
1.032 If a file "gzip-scripts" is in your script dir, we'll gzip new scripts
1.032 Add $getenv() so you can get env vars that collide with /set's
1.032 Miscelaneous small fixes found by -Wall -W with gcc.
1.032 Change global variable "dumb" to "dumb_mode"
1.032 Fix it so /on ^yell can suppress yell()s.
1.032 Release 32 (with warnings)
1.033 Fix bug where calling user-functions wasnt clearing return_exception.
1.033 Add /bind unclear_screen so chaos will stop griping about /clear. ;-)
1.033 Fix expression optimization to handle [$1-], etc. inline.
1.033 Fix typo with "NO_FAIL_DISCONNET" missing the last C in config.h
1.033 Fix how ^C codes are handles to there is no ambiguity.
1.033 Fix vars.h -- WINCHAN_HACK was out of order.
1.033 Add description of -B to the command line help stuff.
1.033 Convert all uses of u_int -> unsigned.
1.033 Migrate /STACK ON into hook.c
1.033 Migrate definitions of internal hook struct's out of hook.h into hook.c
1.033 Migrate stackcmd() out of stack.c into commands.c
1.033 Blow away stack.c.  stack.h stays, though.
1.033 Fix memory leak in new_close, (Colten)
1.033 Fix find_local_alias, where last_function_call_stack can be -1. (Colten)
1.033 Fix create_new_screen() so new screens go on END of screen_list.
1.033 This fixes deficiency in traverse_all_windows if first screen is dead.
1.033 Fix window_bind() to error and punt if you re-bind a channel twice.
1.033 Release 33 (with warnings)
1.034 Fix bug in window_bind(), not checking for window->bind_channel. doh!
1.034 Add delete_all_windows() to clean up windows on exit.
1.034 Fix window_bind() to return NULL on error when already bound. (Colten)
1.034 Fix bits_to_lastlog_level to not auto-append a trailing space.
1.034 Fix ON CTCP so it only expects 3 args.
1.034 Fix uzfopen() -- cant call path_search() twice in a row.  OOOOOPS!
1.034 Fix register_timer() to save server and window info, and use them.
1.034 Fix add_to_window, and dont call update_status() unless notified! (rb wc)
1.034 Fix all bogus assignments to curr_scr_win.
1.034 Major revamp of hook.c
1.034 Did not re-implement the "server-specific" feature of /ON.
1.034 Get rid of stupid-lame misfeature "in_on_who"
1.034 Remove bogus lamage "protecting" /on input.
1.034 Finish revamp of hook.c.  Much better! =)
1.034 Fix /on type ^"nick" so that it acts just like /on type "nick" #
1.034 Fix /on, so you can do /on pu  and get listings of all the /on pu*'s.
1.034 Dont send QUIT to server in e_quit, let irc_exit() do that.
1.034 Release 34
1.035 Fix buffer overrun in m_strcat_ues, ptr2 pointing past eob.
1.035 Fix a bunch of stale pointer bugs when destroying windows on exit.
1.035 Fix stack_on becuase of a missed negation test.
1.035 Fix bug in add_to_history (Peter)
1.035 In add_to_screen, forcibly inhibit looping to update_all_window()s.
1.035 Fix some bugs in add_to_list in hook.c dumb bug
1.035 Fix bug in set_current_window where current window isnt on a screen
1.035 Fix call to set_current_window for an invisible window in timer code
1.035 Lots of fixes to /stack push|pop on
1.035 Fix keys.h, UNCLEAR_SCREEN was missing
1.035 Minor changes to keys.h, remove 'global' from struct KeyMap.
1.035 Fix to add_numeric_list, was adding in wrong order. OOOPS.
1.035 Fix to add_numeric_list, forgot to link rest of list to item. OOOPS.
1.035 Fixes to /wait %proc so you can use local vars in an /on exec.
1.035 New script, "pipe", allows you to use output from commands as value.
1.035 Fix typo with error when you dcc send a file that doesnt exist.
1.035 Get rid of %D progress meter when last dcc is closed.
1.035 Add /set status_truncate_rhs, determines which side of %> to truncate
1.035 Add /timer -list since i made reference to it in UPDATES
1.035 Fix new_window so first window always has level all.
1.035 Add /on dcc_offer, catch outbound dcc offer reqeusts (bro srfrog)
1.035 Release 35 (with warnings)
1.036 Fix memory leak when you remove an /on.
1.036 Fix send_2comm, where reason can be used un-initialized.
1.036 Throttle error condition when many buffered blocks recvd from server.
1.036 Fix ^C support in the status bars, so theyre counted correctly.
1.036 Change the number of arguments for ctcp_list back to 4.
1.036 Fix fd lossage when exec's are closed. (Colten)
1.036 Remove spurious "_VAR" on "REVERSE_STATUS_LINE_VAR"
1.036 Recall /SET STATUS_TRUNCATE_RHS feature, much lossage.
1.036 Fix nbytes == 0 condition to do recovery rather than aborting.
1.036 Add new function $count().
1.036 Remove unnecesarily limitation in expressions of 511 bytes per term.
1.036 Raise the maximum length of lines that can be /load'ed by 10 times.
1.036 Change /dcc close, can now do '-all' or '*' to close all types or nicks
1.036 Add /timer -window, allow you to specify arbitrary window for timer.
1.036 You can now do ANSI CODES (but not ^O, ^C, etc) in the input prompt.
1.036 Add warn_lastlog_levels to tell you the valid levels on error
1.036 Change use of "invalid lastlog level" to "invalid level" (rb kasi)
1.036 Completely detach the input prompt from the input buffer
1.036 Move all input state information into the screen structure.
1.037 Fixes so hidden windows dont crash any more
1.037 Fixes so status window is full width again
1.037 Fix so /xecho -level <level> doesnt whine at you.
1.037 Work on window.h so curr_scr is not presumed.
1.037 Lots of changes everywhere to convert to current_window.
1.037 I apologize for not documenting this better.
1.037 Dont redraw entire screen when new window swapped in.
1.037 General cleanup of the mess i made.
1.037 Release 37 (with lots of reservations)
1.038 Bug fixes. ugh. i forgot to document them all.  Sorry.
1.038 --- __inline -> __inline__ in irc_std.h
1.038 Catch systems that dont have regex.h.  Blah
1.038 Fix /window swap last, adjust current window if neccesary.
1.038 Dont use named scope in anonymous functions in expr mode (for locals)
1.038 Roll in pav's $igmask() function.
1.038 Clear the WINDOW_NOTIFIED bit when you /clear a hidden window.
1.038 Add $randread(), read a random line from a file (srfrog)
1.038 Add $msar(), a multiply-substituting $sar() (Colten)
1.038 Add unclear_all_windows()
1.038 New flood stuff, more aggressive at tracking flooders.
1.038 Add /UNCLEAR command, just like /CLEAR, only it unclears, got it?
1.038 Add -VISIBLE and -HIDDEN flags to /CLEAR, /UNCLEAR.  Mutually Exclusive
1.038 Fix crash when you /unclear a window without any output in it.
1.038 Catch 377 numeric as well as 372 for SUPPRESS_SERVER_MOTD.
1.038 Ooops. Dont need /bind ALL_OFF, we already have /bind HIGHLIGHT_OFF
1.038 Fix $onchannel(), where $onchannel(nick) would crash client.
1.038 Fix alias.c so that only [A-Z][a-z][0-9]_. are allowed in assigns.
1.038 Changes to keys.c and input.c, now instead of keeping a pointer to
1.038 --possible keybinding, we keep pointers to tables of pointers, so that
1.038 --we can have access to many meta keys, but only actually define the
1.038 --ones we use when we use them.
1.038 Add 10 new meta keys, META10-META19
1.038 Start using the new flood checking, esp CTCP, INVITE, WALL, NOTE.
1.038 Release 38
1.039 Fix bug where we always thought we were being CTCP flooded. ;-)
1.039 Fix bug where we derefed a possible null pointer in keys.c
1.039 Fix bug where /window delete had current_window == NULL
1.039 Re-implement /redirect feature.
1.039 Fix bug where doing completion on a stub that couldnt load segfaulted.
1.039 Try as much as possible to always use off_t when dealing with file sizes
1.039 Rewrite notify.c to use alists instead of linked lists.
1.039 Force channel mode refresh if +k or +l value changes.
1.039 Fix bug in unset_current_window_channel() not stopping at right place.
1.039 When current channel is stolen from window, automatically get a new one.
1.039 Set current_window when you do /xeval -w
1.039 Add $rigmask() per request of wc.
1.039 Add kasi's patches for latest lame av2.9 protocol damage.
1.039 Release 39
1.040 Fix /window channel so that windows reclaim current channel as above.
1.040 Fix /window new so it doesnt break up fixed sized windows.
1.040 Fixes so that /window new forever eventually fails, not crashes
1.040 Remove unused functions in list.c
1.040 Fix wserv to not use writev() because linux's doesnt work.  Suprise.
1.040 Fix isonbase() to auto-split ison queries for us.
1.040 Some fixes to notify.c, more robust now.
1.040 Add built in function $leftpc()
1.040 Add /xecho -n, works like kasi's suggested /secho. /echo w/o logging
1.040 Add /help -wait, allows you to know when help is all done.
1.040 Add "man" script contributed by Dawid Kuroczko.
1.040 Add compat code from Kasi for 4.4's changes to /on join for lame av2.9
1.040 Release 40
1.041 Fix memory leak in update_input wrt the input prompt not being free'd.
1.041 Clean up key binding metamaps on exit
1.041 Change unsplitw() to new_free() off the containing pointer.
1.041 Fix a bug with #define SOFT_SECURE not grokking uid's properly.
1.041 Implement blinking attr, like bold and underline.
1.041 Add /bind X blink,  /set blink_video, etc.
1.041 Implmement $cparse() with info from [nutbar]
1.041 Fix memory leak for dcc_struct->othername never being freed.
1.041 Support ~ expansion in IRC_SERVERS_FILE env var.
1.041 Fix /window swap last double on to do the double on the correct win
1.041 Fix /window scrollback to not obviously be so losing.
1.041 Add /window query, change query for specific window, /query uses it.
1.041 Fix $winnum() and $winnam() to take an argument
1.041 Roll in Matt's /unload stuff.  I made a few changes to it
1.041 Like adding the /package command rather than having it be automatic.
1.041 Brand new non-recursive pattern matcher (new_match).
1.041 Use /xdebug regex to turn it on. let me know about any probblems.
1.041 Add $uname() from crack, get system info
1.041 Add $querywin() -- you give it a query, it gives you a window
1.041 Add $winrefs() -- you give it nothing, it gives you all your refnums
1.041 Make $winchan() and $chanwin() synonyms.  They figure out what you want. 
1.041 Get rid of the /set WINCHAN_HACK now.
1.041 Implement figure_out_address(), replacement for cut_n_fix_glob
1.041 Change /ignore to use figure_out_address()
1.041 Change $uhc() to use figure_out_address()
1.041 Add $mask() function, just like mirc's.  Uses figure_out_address().
1.041 Release 41
1.042 Initialize tmp in function_uname.
1.042 Work on figure_out_address() to improve $mask().
1.042 Fix bug where who -end on piggybacked request didnt work.
1.042 Dont try to reference its_me in p_join before we actually set it.
1.042 Fix figure_out_address: foo.bar.com is a hostname, not a nick!
1.042 Dont have /me intentionally stuff itself when your queried to dcc chat!
1.042 Add $ischanvoice(nick #channel). Returns 1, 0, or -1 for +v status
1.042 Dont tag outbound CTCP ACTIONs over DCC CHAT, as it confuses mirc. blah.
1.042 Blasted irix cc wont let me compare an int to a char *. blah.
1.042 Func pointers in include/term.h should be explicitly extern.
1.042 Remove unused funcs get_server2_8, set_server2_8, in server.c
1.042 Be sure to delete the cmd alias when unstubbing a cmd alias. ;-)
1.042 Fix $cparse() so %N will inhibit clearing the color code at the end.
1.042 Support %P and %p as synonyms for %M and %m in $cparse()
1.042 Fix /on pong to return any arguments passed back. ;-) (for nutbar)
1.042 /on connect is supposed to take two arguments, not one! :P (hook.c)
1.042 Fix new pattern matcher to work if ? is right after *. (rb crack)
1.042 Dont use the DIRSIZ from SCO because it doesnt take an arg (rb FireClown)
1.042 Fixed some signed-ness problems with binding high-bit chars.
1.042 Fix prntdump(), i dont know WHAT i was thinking when i wrote that...
1.042 Fix $cparse() to turn off possible bold attribute before low-int color.
1.042 Add $servports(), gets local and remote port numbers for specified server
1.042 Add support for 'km' termcap which converts alt-p into esc-p 
1.042 Apparantly $mychannels() does take a window refnum arg.
1.042 Fix notify so that it resets from_server when its done. (FireClown)
1.042 Add /set current_window_level, levels to always go to current window
1.042 Status expandoes %3 through %9 go to current window now 
1.042 Write all new figure_out_address(), according to wc's specs.
1.042 Add $chop(N text), removes N chars from end of 'text', default N is 1.
1.042 Fix DCC RAW_LISTEN code to not store bogus portnum in 'write' member.
1.042 Fix $mask() to mangle out any ~'s leading a username.
1.042 Fix from kasi for p_channel and 2.9 mode handling.
1.042 Fix /set -realname so it doesnt crash.
1.042 Hook /on dcc_list with an "end" when the list is all done.
1.042 Handle figure_out_address(foo@bar) not crashing for lack of dot.
1.042 Handle $uhc(*.com) handling the lack of hostname, as $mask() does.
1.042 Make sure to init local var's caches to NULL. ;-)
1.042 Release 42
1.043 Fix remaining losing instances of 'E' in scandir.c
1.043 In do_notify, check to see if the ptr is NULL before derefing it.
1.043 Support the av2.9 no-ident chars in $mask() and friends.
1.043 Nominally protect %+ (mode, eg, +k stuff) 
1.043 Dont crop back channel name in %C if channel_name_width is 0! 
1.043 Fix /fe to guard against mis-counts in word_count
1.043 Fix add_local_alias to guard against NULL values.
1.043 Dont call make_window_current from new_window, window_new instead.
1.043 Fix file_write[b] to fflush() after every call.
1.043 Fix function_mask to enforce a 9-char limit on 'user' field.
1.043 Fix function_mask to convert any nonprintables to a '?'.
1.043 Add /window status_special, set per-window info
1.043 Add %. expando to status bar, get the per-window info.
1.043 Add -s flag to /xecho, wont echo if youre suppressing output with ^.
1.043 Fix p_kick so that /on kick output goes to the right window.
1.043 Note that changing windows in /on kick will do you no good!
1.043 Fix add_var_alias so that assigning to :var makes a local variable.
1.043 Fix disconnectcmd() so it uses close_server().
1.043 This allows /on server_lost to be used everywhere, i hope. ;-)
1.043 Rewrite check_ignore_channel, less CPU usage, less memory wastage.
1.043 Fix how figure_out_address() is used in ignore.c, dont mangle addrs
1.043 Fix unset_window_current_channel, cant set channel->win to NULL!
1.043 Add back call to unhold_windows() in io(), to flush held stuff.
1.043 Fix p_nick to call notify_mark(), trigger notify events there too.
1.043 Fix p_privmsg to check for ctcp's very early, save cpu time.
1.043 Fix do_ctcp to send CTCPs to a channel to that channel's window.
1.043 Fixes from fireclown to get 8 bit characters working again.
1.043 Including new /set high_bit_escape (0|1|2) (no|yes|honor)
1.043 Now forcibly bootstrap all the /set vars on init.
1.043 Remove useless /set exec_protection feature.
1.043 Add $winlevel(), you give it a window desc, it gives you lastlog level
1.043 Remove pointless /set input_protection feature.
1.043 Medium scale cleanup in ignore.c.  Nothing drastic.
1.043 Add $igtype(), you give it an ignore pattern, it gives you whats ignored
1.043 Add $rigtype(), you give it ignore levels, it returns patterns matched
1.043 Removed unused /set hold_mode_max feature.
1.043 Moved "loading_global" variable from vars.c to irc.c
1.043 Fix off-by-one error when figuring out when do start holding output
1.043 Make /window last not panic if last window is now hidden (rb Colten)
1.043 More gracefully handle expanding the "empty" variable. ( eg, $() )
1.043 Add some sanity checks for QuoteAndTruncate and alias_special_char
1.043 Add call to window_check_servers in /disconnect, to update status
1.043 Remove redundant built in /DISCON command.  Completes to /DISCONNECT now.
1.043 Fix userhost mangling when you try to remove an ignore.
1.043 Add call to window_check_servers in do_server for good measure.
1.043 Make a concerted effort to not have any extern var decls in *.c files
1.043 And clean up queue.c and network.c a tad bit while im here...
1.043 Remove incorrectly used #define ALLOW_STOP_IRC in config.h
1.043 Monsterously large patch(es) from fireclown rolled in.  Changes too
1.043 -- numerous and subtle to list here.  Sorry.
1.043 Major things include:
1.043 Dont recompute input prompt when doing input UPDATE_JUST_CURSOR
1.043 Add /who -d (diagnose) and /who -f (flush), to check out who queue
1.043 Fix bug where errors to /who left items on who queue bogusly.
1.043 Fall back to ansi color codes if terminal doesnt appear to be color-aware
1.043 Fix $cparse() to use ansi-order color codes (30-59)
1.043 Release 43 (with warnings)
1.044 A few of fixes from fireclown =)
1.044 Fix skip_ctl_c_seq(), slurp up the rhs of the color, too!
1.044 Fix function_mask to not spit out two **s in the user field.
1.044 Fix ^C codes 1, 3, 4, 5, they were parsed incorrectly
1.044 Support ^C50-57 for background colors as well (in the rhs).
1.044 Fix fallback stuff in term.c to include bold-on in default ansi code.
1.044 Turn reverse off if we're doing a background color.
1.044 Looks like freebsd/sco console doesnt do reversed colors. oh well.
1.044 Cant not recompute input prompt when doing input UPDATE_JUST_CURSOR
1.044 Hideous hack for $uname().
1.044 Release 44-nr
1.044 New functions $getuid(), $getgid(), $getlogin(), $getpgrp().
1.044 Fix $cparse(%N), dont let that bogon get in the retval. :-D
1.044 Fixes for 'tc' script from kasi.
1.044 Blow away any last instances of old 'nelson@cs.uwp.edu' address
1.044 Fix a few egcs inspired warnings, mostly changing int's to size_t's
1.044 Insert a ^C before each new color change, just to make sure.
1.044 Add $iscurchan(), tells you if a channel is current or not.
1.044 Fix indent so it works off of columns, not chars (heh ^B's dont count!)
1.044 Release 44
1.045 Patch #1 -- Fix compat.c so that it includes tparm if you need it
1.045 Patch #2 -- Fix 2.8script to use iscurchan w/o setting bogus /on
1.045 Patch #3 -- Fix bug so $mychannels() doesnt crash if youre not connected
1.045 Patch #4 -- Fix typo with insert_char, calling wrong termcap! (doh!)
1.045 Flush the log after every write (in log.c:add_to_log)
1.045 Fix $uname() finally.
1.045 Add new built in function $channel(), for psykotyk (stop spazzing! =))
1.045 Add 20 new meta maps, meta20-meta39
1.045 Terminfo support!
1.045 To heck with it.  Colors on the status bar will be non-reversed.
1.045 Fix bug in term_insert, dont insert char is we can set insert mode on!
1.045 Throw up more defenses in strip_ansi against bogus ansi codes..
1.045 Dont insert a gratuitous space when /set reverse_status_line off.
1.045 Forcibly assert not-privmsg, not-notice when user presses return.
1.045 Fix $mychannels(). hrm.
1.045 Release 45
1.046 Fix PasteArgs.  Ok. the previous 'fix' was bogus..
1.046 Add new function, $pad(len padc string), allows you to pad w/char
1.046 Add new function, $remws(lhs / rhs), remove all words in lhs from rhs
1.046 Fix bug with \'s inside of \\[...\\] constructs
1.046 Fix $mychannels(), should work w/o any args.
1.046 Add ** operator by request of crackbaby and psykotyk
1.046 Inhibit unnecesary repaint events while doing /window commands
1.046 Obliterate the rest of the useless calls to index().
1.046 Add $printlen(), returns number of printable chars in str
1.046 Add $stripansicodes(), returns text with ansi codes removed or converted.
1.046 Fix that dratted stray ' on terminals w/o a beep char.
1.046 Chop off the 80'th column if EITHER no automargins or we cant set them.
1.046 Release 46
1.047 Fix really stupid bug in scan_channel().
1.047 Fix crash when you hid window and last_window_refnum was also hidden.
1.047 Be sure to return from /who if no args specified! ;-)
1.047 Support ^[[<N>C ansi code for "insert spaces"
1.047 Work on strip_ansi some more, handle highlight chars more gracefully
1.047 Using ^C codes turns off the highlight attribute (bold/blink) for 
1.047 -- whatever you specify.  ^C33 turns off bold, ^C,43 turns off blink
1.047 -- but blink/bold is turned back on when the terminating ^C is done...
1.047 The client attempts to do the right thing if you use ansi codes with
1.047 -- highlights already on, wrt not defeating attributes.  I hope. =)
1.047 Clean up $mask(), add crack's 4 new mask types.
1.047 Work on the reconnect strategy somewhat.  Maybe not better, but a start.
1.047 Add $isnumber() returns 1 if argument is a number, works with any base.
1.047 Rewrite of make_status, infrastructure for multiple status expando maps.
1.047 The syntax of %{N}M where N is number, M is letter, works for above now.
1.047 Fix $pad(). doh.
1.047 Display your nickname on *every* window, not just current one.
1.047 Dont let /dcc resume stuff hork all over in_ctcp_flag. =)
1.047 More work on reconnect strategies.
1.047 Fix $remws(). doh.
1.047 Release 47
1.048 Fix support for ^[[<N>C, counted nargs wrong. ;-)
1.048 Add support for two sets of server flags, for lots more usermodes.
1.048 Fix /disconnect so doing it when not connected does not crash
1.048 When parsing ^CX,  (eg, nothing after comma), dont crash.
1.048 Take out extra code not needed for mangling ^[[1;37m correctly...
1.048 Ok.  I know for sure now epic wont freak out on uppercase usermodes.
1.048 Add ten more /set user_status(10-19).  Get them with %{1}0 ...  %{1}9
1.048 Detect and panic if an /on list is out of order.  Shouldnt happen.
1.048 Fix problem with update_input/FROM_CURSOR not accounting for the prompt
1.048 Add new flag to input, /input -noecho for inputting stuff like passwds
1.048 Rudimentary support for RPONG.  I hope i was close to reality here...
1.048 Lots of work on names.c.  Dont ask. ;-)
1.048 New special char, ^S, denotes a non-destructive space.  Used for ^[[nC
1.048 Convert /help over to using glob() instead of scandir()
1.048 Blow away scandir() in compat.c huzzah!
1.048 Dont use %+ in strftime(), as some systems dont support it (blah!)
1.048 Rename /SET CONTROL_C_COLOR to /SET COLOR
1.048 Put a compatability /set for it in the 2.8script.
1.048 Protect against extraordinarily large <N>'s in ^[[<N>C, max <N> is 256.
1.048 Add new char, 'm' to $info(o) to indicate that we have /set color now
1.048 Call strip_ansi() and output_with_count() on input prompts.
1.048 This allows you to do ^B$C>^B type stuff now.
1.048 Fix really large memory leak with local vars, with help from crackbaby
1.048 Fix a few more memory leaks with help from crackbaby
1.048 Fix possible memory leak with m_s3cat given right conditions.
1.048 Fix bogon where client thought you were +v if you werent on channel.
1.048 Fix bug where client would chop off rightmost char on status line.
1.048 New table-driver for strip_ansi, should be faster, i hope. =)
1.048 Improvements to rsindex(), should make $before/after() faster.
1.048 Allow setting and unsetting specific levels for /window level with +,-
1.048 Allow for more updates to the input line (esp when updating windows)
1.048 Fix bogon that wouldnt properly acknowlege 8-bit was turned off
1.048 Dont crash if we're dcc send'ing a zero-length file.
1.048 Make sure that /on nickname is hooked for yourself always.
1.048 Make strip_ansi more eight-bit aware
1.048 Make term_putchar() strip out escapes again, only used for input.
1.048 Release 48 (are we close to getting done yet?)
1.049 Fix problem where /on's could get registered out of order.
1.049 Fix it again.  Darn C operator precedence! ;-)
1.049 In strip_ansi, reset blink, not bold, when setting bg attr. ;-)
1.049 Dont attempt to parse /on NUM as anything other than decimal. ;-)
1.049 Fix bug where quoted chars (\\*) after an asterisk failed improperly.
1.049 Dont do #ifdef 1 in include/options
1.049 Dont forget to initialize new_server.flags2!
1.049 Widen type used to store channel modes from char (8) to int (32)
1.049 Duh, /on status_update takes three args.
1.049 Rewrite new_next_arg(), dont call sindex().
1.049 Always support '/' as a command char, no matter what
1.049 New internal function, after_expando(), slurps up stuff after $'s.
1.049 Rewrite alias_special_char to use above, cuts down on MatchingBracket
1.049 Rewrite MatchingBracket to be faster (i hope)
1.049 Clear off the status line before outputting it, fixes problems with tabs.
1.049 Dont allow 403 numeric to blow away '*' (literally the channel star)
1.049 Fix possible panic() when doing ${... (no closing })
1.049 Fix /bind meta4 to show all the meta4 bindings.
1.049 Fix /help so /help 5 on exec actually shows that help file.
1.049 Fix bug for infinite loop on passworded servers. (Colten)
1.049 Add support for dalnet channel mode +r.
1.049 Add function_rest, by crackbaby.  Works like $restw() on strings.
1.049 Try to more intelligently recover from KICKs for orphaned channels.
1.049 Fix $isnumber() according to hints from nutbar, honor a base argument
1.049 Implement some of the crazy erfnet/TS4 changes as suggested.
1.049 Clean up a panic() in names.c from when you /window kill closes server.
1.049 Dont use 001, 004, 008 (;-)) in numbers.c
1.049 Offer full name of set in /on set when completion is required
1.049 Change /on dcc_offer for filesends, $3 -> filename, $4 -> file size
1.049 #define MIRC_BROKEN_DCC_RESUME in config.h
1.049 Add /set MIRC_BROKEN_DCC_RESUME, unconditionally defaults to OFF.
1.049 Offer /on disconnect in disconnectcmd if were not really connected
1.049 Dont bother with a gethostbyaddr() when connecting to ip addys.
1.049 -- Update -- Kanan reported this in epic3pre8 (*blush*)
1.049 Fix $tdiff() to make a passing attempt to support decimal numbers.
1.049 New hook, /on unload lets scripts know when theyre about to be nuked
1.049 Make better attempt in strip_ansi to cvt colors when doing bold/blink.
1.049 Fix borked av2.9 damage where channel mode +o doesnt always have an arg
1.049 Include "ircman.c", program from David Welton to read help pages
1.049 Fix some of my damage with calling MatchingBracket.
1.049 Make sure /set status_no_repeat on works when %> is also used
1.049 Fix $(...) so that it always parses insides at least once.
1.049 Fix $tdiff() to properly recognize 0 seconds.
1.049 Back out change to clear status line before output, choppy!
1.049 And handle tabs "correctly" in the status handling code. Ick.
1.049 Support $:var for local only as rval, $::var for global only as rval
1.049 Release 49
1.050 Fix MatchingBracket, i wasnt paying attention to my if/else's. ugh.
1.050 Fix $tdiff(), it wasnt actually copying the decimal part.
1.050 Fix help_me, i wasnt initializing 'entries' before using it.
1.050 Fix some egcs inspired warnings.
1.050 Including the "obvious" fix for $winnames() i missed. doh!
1.050 Fix the bug in new_next_arg where we broke out on any \. (Colten)
1.050 Fix buffer overrun in $jot().
1.050 Add some new cache performance tracking to alias handlers.
1.050 Fix $tdiff(0) so that it works.
1.050 Fix fallback case for MatchingBracket. (Colten)
1.050 Support /msg'ing to dcc raw sockets, ala /msg =6 to talk to fd 6.
1.050 Fix new_next_arg to only honor spaces as spaces.  Fixes lots o stuff.
1.050 Changes from kanan to get /window create working for gnu screen.
1.050 Fix $cparse() so that a leading quoted word acts bitchx-like.
1.050 Fix to $cparse() to make BLINK (%f) work correctly again (|rain|)
1.050 Add /usleep command from rain.
1.050 Mangle 8-bit escape, not 8 bit space. ;-) (rain)
1.050 Add /userip command from rain, works like /userhost.
1.050 Add some extra semicolons for 'make install' for painful shells (rain)
1.050 Some cosmetic changes to Usage: lines suggested by Dawid.
1.050 Always mangle control chars in strip_ansi.
1.050 Fix alias_special_char so that $$ is grokked correctly again.
1.050 \\[...\\] now seems to be working correctly again.
1.050 Handle a naked $chr(27) at the end of the string quasi-reasonably.
1.050 Don't pass a pointer we know is NULL to strchr() (alias_special_char)
1.050 Release 50
1.051 Add missing 'break;' directive for handling of ^[]...
1.051 Dont bother catching 242 numeric, the default is fine.
1.051 Trap requests for METAx where 'x' is out of range.
1.051 Use of $# or $@ causes args_flag to be set, suppressing auto-append.
1.051 Get $# and $@ working together again.
1.051 Avoid a crash when doing /topic when not on a window, null deref.
1.051 Add support for /lastlog -all, also for --msgs to remove 'msgs'.
1.051 Add the -- flag to /xecho, stop parsing args right there
1.051 Unknown args to /xecho stop args parsing and are outputted as well.
1.051 Fix $isnumber() so that it accepts decimal numbers. rhs must be valid.
1.051 Add /set nd_space_max, caps the number of ND_SPACEs per logical line.
1.051 Add some better support for RPONG, help from |rain|.
1.051 Fix some bogons in $msar(), from robohak.
1.051 Prefer to use term_setab to term_setb for doing colors.  I hope. ;-)
1.051 Added -reverse flag to lastlog (RoboHak)
1.051 You know, the end of every case handler should have a break;
1.051 Call replace_color() before each line to booster the current color.
1.051 Dont impose any size limits on windows, they can be 0 height now.
1.051 Output a meaningful error message if HELP_PATH is bogus.
1.051 Fix message_from() to call set_lastlog_msg_level() too. XXX Watch this.
1.051 Thourough scouring of dcc.c.  I know im going to get bit by this
1.051 Removed the -e[ncrypt] flags for DCC commands. Never worked right.
1.051 Add /dcc closeall
1.051 Dont just blindly close first DCC found for /dcc close.
1.051 Add code to support very high /set dcc_sliding_window's w/o blocking
1.051 Add support for /dcc rename -chat oldnick newnick
1.051 Fix /dcc send nick file so it emits a CTCP request every time, not error
1.051 Fix $jot() again, hopefully for the last time.
1.051 Add support for auto timeout-reject, use /set dcc_timeout
1.051 Allow /dcc get nick *  to get all files offered
1.051 Handle filenames with spaces more gracefully in $glob(). (Colten)
1.051 Add /set scrollback_ratio, percentage of window to scroll each time.
1.051 Add support to have the client send rejects for all pending dcc's on exit
1.051 Add $getsets() function (Colten)
1.051 Fix problem in term_reset setting scrollreg with args in wrong order
1.051 Fix /window balance to error out if current_window is hidden.
1.051 Fix uniban alias in 'deban', was $comatch()ing wrong arguments.
1.051 Add support for /on 437, av2.9's new nick collision numeric.
1.051 Add $0 as server name for /on 433/437/438.
1.051 Fix chop() so it doesnt try to chop off some wild pointer.
1.051 Turn off bold between color changes.
1.051 Dont allow windows to be resized that are too small for it.
1.051 Add /package tracking to keybinds, /unload works there, too.
1.051 Hack -- Hook /on set "set-error *" when /set would otherwise output error
1.051 Release 51
1.052 Add support for /on ?type, runtime determines between ^type and -type
1.052 Fix do_hook() to allow @ function_return's in /on ?type
1.052 Fix bogon in dcc.c where accidentally losing track of fd in dcc_close
1.052 Add check to make sure that file is readable before dcc send'ing it
1.052 Add check for SO_SNDLOWAT, linux doesnt have it. ugh.
1.052 Add check to make sure that DCC_SLIDING_WINDOW always at least 1
1.052 Fix expand_alias so $#fn() handled correctly again
1.052 Fix call to update_clock() with a non-bogus value.
1.052 Fix update_clock() so it can properly tell io() when new minute happens
1.052 Fix flag_arg in echocmd, it wasnt being init'd before use
1.052 Fix 'mudirc' script, it works now! woo hoo!
1.052 Add $gettmatch() (Colten)
1.052 Roll back the support for /on 437, kasi says not to do it.
1.052 Fix bogon in vars.c where i wasnt watching my if's around a do_hook
1.052 Fix dcc_send, dont mess around with stat(), just do an access() (texaco)
1.052 Document in source and usage info that -c cla is valid. (texaco)
1.052 Fix printf()s in panic() to output a newline at end. ;-) (texaco)
1.052 Fix rebuild_notify_server() so it doesnt choke on from_server == -1
1.052 Add -s cla, dont connect to server on startup (this and above by Texaco)
1.052 Add special code to trap 9x'_' in reset_nickname to avoid spinning
1.052 Fix /which to call yell() instead of say(), cause DISPLAY is off there.
1.052 Make sure all pertinent windows get updated after /channel.
1.052 Dont skip updating status bars of windows that WANT to be updated (doh)
1.052 Fix /xecho -s, was missing a break causing it to stop parsing args.
1.052 Fix /dcc raw so it accepts the hostname argument again.
1.052 Add /xdebug channels, for watching the "orphaned channel" messages.
1.052 Release 52
1.100 Beta Candidate (Please test!)
1.101 Dont force '/' to be honored as a command char at input line, only script
1.101 Make sure that ^[[0m internally turns off colors as well as attrs.
1.101 Fix get_nicklist_by_window(), returned NULL when it ought not.
1.101 Dont auto-unhold things held while in scrollback mode
1.101 Dont let unhold_windows() return 1 when no windows being unheld!
1.101 Fix check_clock(),  only assert /on idle once per minute at most.
1.101 Fix is_number(), it wasnt doing bounds checking on end of string.
1.101 Fix newio.c, dont assume _SC_OPEN_MAX exists just cause pathconf() does.
1.101 Fix Makefile so make installscript it doesnt choke on weak shells. ;-)
1.101 Fix /describe so it accepts * as a target, as advertized.
1.101 Bumped up the infinite loop check in wild_match to 100,000.
1.101 Dont use \a because of STUPID DIGITAL COMPILERS THAT DONT SUPPORT IT
1.101 Mucked around a bit with in_window_display, didnt mean to break anything.
1.101 Add back missing space at end of /xtype -l in 'tc' script.
1.101 Fix $channel() to grok no args and '*' properly.
1.101 Fix /nick so it doesnt crash when youre not connected.
1.101 Fix $getsets(), i really have no idea why it was free()ing in there.
1.101 Release 53
1.200 Beta Candidate #2 (Please test some more!)
1.201 Always check to make sure a window has non-negative height after resize
1.201 Fix bug in strip_ansi where 8 bit chars not handled correctly.
1.201 Fix wild pointer bug when you output $chr(27)[34
1.201 Remove call to my_isspace in compat.c, thats bogus there.
1.201 Document how to get help files in INSTALL document.
1.201 Fix built_in_alias() -- should return NULL when no valid variable.
1.201 Fix bug in 'tc' script, allowed tablist to grow by one more than max.
1.201 Fix keys.c so it binds all 256 keys, not ignoring 0xFF as it was.
1.201 Fix function_gettmatch(), reverse the arguments to wild_match().
1.201 Fix make_new_Alias, initialize cache_revoked member.
1.201 Removed unused count_ansi and vt100_decode functions
1.201 Fix uzfopen to properly find "~/file.gz" when "~/file" asked for.
1.201 Fixed after_expando to properly figure out $, and $. etc correctly.
1.201 Ignore ~ before username rather than substituting * for it due to gripes
1.201 Fix /usleep only sleeping for 1,000th the time it ought to have been
1.201 Fix source/Makefile.in wserv rule to add missing network.o
1.201 Fix bogon where if you re-assign alias/assign it didnt reset package info
1.201 Fix bug with 'm' alias in 'tc' script with improper quoting.
1.201 Fix term setup to favor TI_setaf over TI_setf.  IceKarma's fault. ;-)
1.201 Fix /usleep to take microseconds, not milliseconds. 
1.201 Add /xdebug unknown, emits a dignostic if unknown function/var used
1.201 Add offer for GET if SEND not taken for /on dcc_connect, compat with bx
1.201 Fix 'killpath' script, several bugs.
1.201 Fix bogus handling for /clear'ing scratch windows (Colten, Robohak)
1.201 Fix $isconnected() to accept zero arguments, defaults to from_server.
1.201 Put back 'window' script in standard script library for typos.
1.201 Add new flag -u-i to /who to handle u2.10.04's new flag to see invisibles
1.201 Add /xdebug all and /xdebug -all to turn all xdebug's on and off.
1.201 Add new function $servernum(), takes server name returns server refnum.
1.201 Fix input_backspace() to properly update the input prompt for TERM=vt100
1.201 Fix input_delete the same way, too.
1.201 Direct all CTCPs sent to non-channels to go to window of person sending
1.201 Set message_from() to the target for /on send_action in describe()
1.201 Dont hook /on send_dcc_chat when sending an action over dcc chat.
1.201 Add /on send_ctcp, hooks for outbound ctcp requests/replies
1.201 Hook /on 433, 437 (nick collisions) even when never connected.
1.201 Add $igetmatches() from crackbaby.  What does this do?
1.201 Add third argument to /on connect, the server's idea of its name.
1.201 Release 54 (please dont shoot me! ;-)
1.202 Fix panic_stack_dump to not freak out when stack frame is negative.
1.202 Fix bogus check for server-connectedness in userhostbase().
1.202 Fix bug with LOG_CRAP not properly re-setting lastlog level.
1.202 The argument to /window channel (eg, /join) is now properly de-quoted
1.202 This means that you can (will have to) backslash quotation marks.
1.202 Fix cursor_in_display() a bit to take a window argument.
1.202 Same thing with cursor_not_in_display(), but it takes a screen arg.
1.202 These allow me to fix the cursor problems in secondary screens.
1.202 Fix $A, so that it reflects from_server, rather then current_window.
1.202 Compiling glob.c is no longer dependant on INCLUDE_FUNCTION_GLOB.
1.202 Fix get_window_by_desc to properly handle window names with leading #
1.202 Fix expand_alias to not spew garbage on $^ degenerate case.
1.202 Add missing #define FLOATING_POINT_SUPPORT in config.h  Ooops. ;-)
1.202 Link compat.o with wserv to get inet_aton for network.o.
1.202 Fix usage line for e_privmsg to indicate dcc_chat usage.
1.202 Change copyright to reflect new BSD licensing (hurray!)
1.202 Fix when user does /set -foobar, to hook /on set "foobar <unset>"
1.202 Fix do_servers() so it doesnt reconnect to a server that rejected you
1.202 Fix parse_args() so 'irc irc.server.com' works w/o a nickname. (Matt)
1.202 Fix typo in 'less' script usage (jvc)
1.202 Add nuke's new langtrans script, replaces old one.
1.202 Change /set show_end_of_numeric so it doesnt inhibit hooking via /on.
1.202 - The above was requested by nutbar and passed by the list.  So there.
1.202 And add $igetrmatches(), i hope i wrote this right...
1.202 Fix e_topic so /topic can unset topics with /topic -#channel
1.202 Add new internal function strcpy_nocolorcodes(), removes ^C codes.
1.202 Add new function, $stripc(), strips control-c color codes out of text
1.202 Release 55
1.300 Beta candidate #3 (Please test!)
1.301 Fix bug in strcpy_nocolorcodes() not stripping out adjacent color codes.
1.301 Fix bogon in m_sprintf() call in ignore_nickname mangling %'s.
1.301 Take out debugging code from /lastlog accidentally left in 300.
1.301 Make sure that windows get redrawn after /parsekey swap_next_window
1.301 Fixed bogus increment of erased->user in dcc_erase for =nick's.
1.301 Fix buffer overflow in strip_ansi that happens when you do ^[[<X>C.
1.301 Fix /disconnect to call get_server_itsname() in case itsname is NULL.
1.301 Fix memory leak in function_glob() (Colten)
1.301 Fix a few bogons for zero height windows not scrolling at all.
1.301 Fix main(), 'nickname' needs to be set before calling build_server_list.
1.301 Add new /xdebug, /xdebug bold_helper, for people with bold problems.
1.301 Release 56
1.400 Beta candidate #4 (this is purely for review.)
1.401 Fix #define HARD_SECURE, we were new_free()ing the wrong value. doh!
1.401 Fix so reconnecting after a server rejcted you doesnt infinite loop (mjr)
1.401 Fix $: so it works again.
1.401 Fix arbitrary filename length restrictions in uzfopen (sb Colten)
1.401 Remove dependancy on fchdir() for older systems.
1.401 Add $G to be compatable with BitchX.
1.401 Fix ExecuteTimers to use current_window if original window is gone.
1.401 Add /set mangle_inbound and /set mangle_outbound.  See UPDATES.
1.401 Add support for mIRC's idiotic "file.ext" bogosity on dcc resume (Colten)
1.401 Add suport for #define SERVERS_FILE to be absolute path, just for debian.
1.401 Add $stripcrap() that works like /set mangle_inbound, See UPDATES
1.401 Release 57
2.000 Beta release #2
-------------------------- EPIC4pre2 was released here --------------------

2.001 Fix bug in uzfopen where it couldnt open compressed files
2.001 Fix bug in iglist(*) returning NULL when no ignores exist.
2.001 Add experimental optimization to alist for binary searching with ints.
2.001 Rewrite $"" to use add_wait_prompt rather than get_line.
2.001 Add $'', which now works like $"", but it waits for just one char.
2.001 Also converted /pause to use add_wait_prompt.
2.001 Removed bletcherous "key_pressed" global variable, unused now.
2.001 Fix memory leak in $getsets() (Colten)
2.001 Fix another memory leak in $msar() (Robohak)
2.001 Fix bug where $(:var) caused "add is NULL" panic
2.001 Fix /on status_update to be thrown even when not in dumb mode.
2.001 Brutal hacks to edit_char, to make /pause work again with /input_char.
2.001 Fix -k handling, the server provides the key, we have to ignore it.
2.001 Add support for .bz2 compressed files (bunzip)
2.001 Added ALL_OFF to the types you can mangle via $stripcrap() et all.
2.001 Add /set mangle_logfiles, works just like /set mangle_inbound, et al.
2.001 Fix how /load handles the ; character at EOL so it's less lame.
2.001 Fix /do ... while and /for to check for TRUE with check_val.
2.001 Fix bug with /topic with no arguments.
2.001 Fix bug with /fe, /do-while, /for, etc, not properly handling /return.
2.001 Fix bug with dcc_check not skipping over bogus (DELETED) entries.
2.001 Remove extraneous yell left in 2.001-nr.
2.001 Fix vars.c to properly initialize /set beep_on_msg default.
2.001 Fix some more ways that the "add is NULL" panic can be tickled.
2.001 Fix bogons in /flush where flushing of held stuff caused a panic.
2.001 Add /bind refresh_status, redraws your status lines and nothing else.
2.001 Add /on switch_channels, $0 is window, $1 is old chan, $2 is new chan.
2.001 Add /on switch_windows, $0 old scr, $1 old win, $2 new scr, $3 new win.
2.001 Removed double-ptr chicanery which caused $listen() dcc's to block.
2.001 Fix main() so it outputs epic version on startup (for output dumps).
2.001 Fix problem where serv 0 channels show up twice with /channel
2.001 Removed unused /on dcc_error hook.
2.001 Fix bug in dcc_check that prevented closed DCCs from being collected.
2.001 Add /xecho -x, allows you to output something w/attrs no matter what.
2.001 -- This isnt as useful as it might otherwise appear.
2.001 Add /set max_reconnect, hard to test this though... defaults to 4.
2.001 Fix update_input so it updates every input line, not just current one
2.001 Roll in the new expression parser.  Turn on with /xdebug new_math
2.001 -- THIS IS NOT TOTALY TESTED!  IT MAY NOT WORK 100%!
2.001 -- Important! -- Contact me if you want to help me test it.
2.001 Fix $uname() to handle bogus solaris errval better (retch)
2.001 Add doc/outputhelp, describes how to get color and latin-1 chars working.
2.001 Fix /window <hidden> delete so it doesnt crash.
2.001 Add /xquote -all, send something to every connected server. (Colten)
2.001 Add $aliasctl(assign match <x>), based on a patch by Colten.
2.001 Remove useless 'away_set' global variable, keep track of away different.
2.001 Fix alist stuff so you can select sensitive or insensitive hashing
2.001 Fix alias,notify,names to use the new alist hashing stuff
2.001 Fix swap_windows to call make_window_current so /on switch_windows hook.
2.001 Fix bug where make_window_current crashes if new curr_win is hidden.
2.001 Fix /set help_path so its figured at runtime rather than compile time
2.001 Removed now unnecesary dependancy that vars.c had on Makefile.
2.001 Fix keys.c so it doesnt bind char 0 (null) by default, too many problems.
2.001 Lots of fixes all over the place to implement per-window status_formats
2.001 Add /window status_format, window_status_format[1|2] per above.
2.001 Lots more fixes to new expression parser.
2.001 Fix send_line so it clears input buffer before calling parse_line
2.001 Dont clear input_line in parse_line -- that should be done in send_line.
2.001 Fix do_history, it wasnt putting a leading / at start of returned line
2.001 Fix do_timer to set from_server to -1 if not connected to server at all.
2.001 Huge overhaul of keys.c, way too much stuff to list here, but...
2.001 -- See the UPDATES file for user-visible updates.
2.001 Add support for /bind -defaults, restores key bindings to default states
2.001 And add /set meta to determine at runtime how many meta states there are.
2.001 Add default bindings for freebsd console pgup/pgdown/end/home keys.
2.001 Fix bug in $glob() where we were free()ing something we ought not have.
2.001 Fix missing newline in the startup output (nutbar)
2.001 Fix $leftpc() so it returns false value if there is no text (Robohak)
2.001 Fix /dcc send nick -p <port> so it works again. How did i miss this?
2.001 Fix repaint_window() so it doesnt call update_window_status uselessly.
2.001 Must remember to not use bzero() and friends. doh. (Starfox)
2.001 Fix build_status_format so a NULL status format isnt fatal.
2.001 Fix a few bogons in traverse_all_channels that was breaking channels.
2.001 Fix create_channel to initlize *all* of the members, fixes much damage.
2.001 Fix input_backspace() so it accounts properly for the input prompt.
2.001 Fix figure_out_address so "!user@host" comes out as "*!user@host".
2.001 Fix new expr parser so #(...) is valid syntax.
2.001 Add $getopt() function (Crackbaby)
2.001 Fix bug where /bind ^x didnt work quite right if ^x was already a meta.
2.001 Fix bug where /dcc close in an /on dcc_* caused a segfault.
2.001 Add '*' dereference operator to math parser.  W/o arg acts like [$*]
2.001 Fix new math parser so $. $, $: $; work again. Ugh. :P
2.001 Bash out a lot of const-correctness all over the place.
2.001 -- Ugh. this was a lot of work, but its worth it, and very overdue.
2.001 Local vars now belong to their atomic scope, not the enclosing scope.
2.001 -- *IMPORTANT* this is a change you should let me know if it breaks you!
2.001 Add new /exec -line(part), /exec -error(part), /exec -end flags.
2.001 Add $isaway() function (nutbar)
2.001 Fix get_server_away() so it checks the server argument (nutbar)
2.001 Add ability of /bind to do auto-meta generation.  /bind ^[[11~ works now.
2.001 Add 'pmatch' verb for $aliasctl (colten, nutbar)
2.001 Fix bug where /set dcc_timeout 0 didnt turn off auto-reject feature.
2.001 Hook /on dcc_lost when client auto-closes an idle dcc session.
2.001 Fix bug where 'foo[$func(args)]' was incorrectly grokked as func call.
2.001 Add /window clear.  How did this get overlooked?
2.001 Fix bug in output_with_count() that didnt count ND_SPACE's.
2.001 Fix bug where a naked * could cause an uninit-ptr to be free()d.
2.001 Fix bug where there was a shadowed local var in $getsets().
2.001 Fix bug where /parsekey cmd didnt properly deal with meta commands.
2.001 Add $maxlen(<word list>) function for knghtbrd.
2.001 Add $prefix(<word list>) function for knghtbrd.  Hope i did this right.
2.001 Fix line wrapping bug with /set indent and first line with one seperator.
2.001 -- This bug caused the first char of the *third* line to be lost.
2.001 Fix $servername(), $servernick(), $servports() to accept no argument.
2.001 Fix help_paused_topic not being reset (Robohak)
2.001 Fix $prefix() not checking its input first. doh. (Crackbaby)
2.001 Fix bug in parse_key where trying to whack on META bindings didnt work.
2.001 Check for ALL_OFF before ALL in the line-mangler decoder. (Robohak)
2.001 Fix /on switch_windows so its hooked for many more situations.
2.001 Fix check_ignore_channel so nuh ignores and channel ignores work together
2.001 Fix off-by-one error in repaint_window causing status bar to disappear
2.001 Add internal function slurp_file(), intended for use in load2.
2.001 Fiddle around with the Makefile so make install works better.
2.001 Fix /join 0 so it works again
2.001 Add some more support for the % user flag that denotes a +h user on TS4.
2.001 Fix a bug with notify that caused people to never be signed off.
2.001 Support ^C16 for compatability with some broken mirc scripts (knghtbrd)
2.001 Fix Makefile, irc.c to not make default ircpath compiled in default.
2.001 Must intialize global status stuff, even when in dumb mode!
2.001 Fix //topic so that it doesnt mangle the argument list spuriously.
2.001 Make sure status-bar clock gets updated if system time goes backwards.
2.001 Add support for dalnet's +R channel mode.
2.001 Change %S status line expando so it displays even when only one server.
2.001 Fix bug where /xecho -r was not careful about where it sent the output
2.001 Fix typo in /stub assign that caused a null deref crash.
2.001 Fix tabkey script to not barf quite so badly on nicks with ^ in them.
2.001 Add a /cycle command since you cant /quote part any more.
2.001 Add completely gratuitous /usrip cmd for incredibly bogus efnet lamage.
2.001 Add /window refnum_or_swap -- go to a window, unswap if neccesary.
2.001 Add support to /on stripped_modes for the new dalnet/ts4 channel modes.
2.001 Add hack to prepare_display to substitute reverse space for $chr(131)
2.001 Remove extraneous (and annoying) about dcc talk not being supported.
2.001 Rewrite figure_out_address to work much more consistently. Fixes ignore.
2.001 Change add_timer() so if the last arg is NULL, it means "dont change win"
2.001 Fix the problem with /help terminating too easily
2.001 Correctly fix the buffer overrun problem with /help.
2.001 NR9 release (first candidate release)
2.001 Remove const from putenv() declaration for solaris' sake.  Oh joy.
2.001 Fix bug in e_topic, missing args to say(). (Robohak)
2.001 Fix stray, bogus \ in Makefile.in that confused bash. (Robohak)
2.001 Fix bug where LICENSE listed after LINKS in command list. doh.
2.001 Remove restrictions on /quote part and /quote join
2.001 Roll back the built in /cycle command.
2.001 Change internal empty() function so a space is not empty
2.001 This permits the use of " " as a non-empty argument to built in funcs.
2.001 Change /redirect, /wait, and /wait -cmd to use PING instead of inv. cmd
2.001 Add $isfunction().  Returns 1 if alias was called as func, 0 otherwise.
2.001 NR10 release
2.001 Fix copy_redux so that /bind ^ binds the ^ rather than the nul char.
2.001 Get /redirect to work again by making sure PING arg is not a prefix.
2.001 Flush out the lameness that svr4 calls env var handling
2.001 And use the bsd stuff from compat.c that has quasi-sane semantics.
2.001 Add #undef OLD_STATUS_S_EXPANDO_BEHAVIOR for old %S status behavior
2.001 Explicitly set current_window while doing input handling.
2.001 Explicitly set current_window while doing status bars, too.
2.001 NR11 release (second candidate release)
2.001 Fix broken func decls in irc.h for the bsd-env stuff.
2.001 Add support for blinking mirc bg colors for pc consoles (knghtbrd)
2.001 Remove a handfull of unused or unuseful globals in server.c
2.001 Fix saving of keybindings so metas dont do a negative array reference.
2.001 Major overhaul of server.c, too much to mention, but
2.001 Fixes to encapsulate server_list to notify.c, server.c, who.c only, and
2.001 Various fixes to make auto-recon and auto-rejoin happier, more consistent.
2.001 Officially, anything bad that happens when you do /flush is not my fault.
2.001 Fix to get_target_by_refnum not checking for NULL before deref (Robohak)
2.001 Add $hash_32bit() function from srfrog.  Converts string to 32 bit int.
2.001 Fix bug in check_window_servers() that was foiling reconnect attempts.
2.001 Add some extra debugging stuff to new_malloc, track files, lines.
2.001 NR12 release
2.001 Fix bug with NOTIFY_SIGNON defaults (srfrog)
2.001 Fix two bugs in window_server() that caused much commotion.
2.001 Fix bug where /server -delete <n> didn't work
2.001 Fix to reconnect_all_channels to support hybrid's painful key semantics.
2.001 Fix for function_hash_32bit to not require a length argument (srfrog)
2.001 Fix for /xquote -s crash (srfrog)
2.001 Add basic syntax functionality for alias argument lists.
2.001 Add basic semantic functionality for alias argument lists.
2.001 Finish implementation of alias argument lists. (See UPDATES for info)
2.001 Fix bug where local stacks were not being cleaned up properly
2.001 Fix buffer underrun when a /window server failed.
2.001 Revamp of the random number generator, support /dev/urandom now
2.001 Add /set random_source to determine where to get random numbers.
2.001 Add my_accept() to avoid accept() race conditions and
2.001 Add /set random_local_ports.  Both for the delusionally paranoid.
2.001 Add new flood/ignore stuff for topics/nicks/joins (srfrog)
2.001 Remove an unnecesary malloc() call in input_backspace.
2.001 Add /set new_server_lastlog_level, new window level after /window server
2.001 Fix the "less" script to keep track of the window to output to.
2.001 Remove the bogus "langtrans.irc" script, don't know why it was there.
2.001 Remove a really bogus use of current_ftarget in commands.c
2.001 Add the <=> (swap rvalues) operator to the new math parser.
2.001 Add some hacks in send_ctcp() to make sure trailing \001 is always there.
2.001 Add support for new ! channels from ircnet2.10 (Kasi)
2.001 NR13 release (please let this be the last one)
2.001 Fix /away's use of current_window->server instead of from_server.
2.001 Fix send_text's use of current_window->server instead of from_server.
2.001 Fix bug with /server -add crashing
2.001 Fix flood.c, so the flood levels are "TOPICS" "NICKS" and "JOINS"
2.001 Fix memory leak with $listen().
2.001 Fix check_channel_type, i had botched up the printf format.
2.001 Fix ExecuteTimers() so it doesnt keep Window pointers around.
2.001 Add int to Window struct to keep track of when it is /window kill'd
2.001 Fix make_window_current to refuse to handle killed windows.
2.001 NR14 release
2.001 Fix various calls to dgets() to make sure buffer is IO_BUFFER_SIZE big
2.001 Many changes to Makefile and source/Makefile and configure
2.001 -- So that configure honors --srcdir and --includedir, for debian (kb)
2.001 Add one more call to check_channel_type() (Kasi)
2.001 Make sure that check_window_servers() is called for every server change.
2.001 Fix userhost_reply to whine about and throw away bogus userhost replies.
2.001 Fix make_window_current_by_refnum to ignore refnum == -1.
2.001 Change help_paused_topic buffer to 500 entries.
2.001 Add panic to help_pause_add_line to protect against a segfault.
2.001 NR15 release
2.001 Fix bug where /alias -foo when 'foo' had been stubbed caused a crash.
2.001 Revamp man page, call it epic.1.  Looks better now.
2.001 Many more fixes to configure, Makefiles, to make knghtbrd happy.
2.001 Added much faster dcc checksum algorithm 
2.001 Minor hack to make dead dcc's clean up immediately.
2.001 Add 'closing' member to server struct to prevent infinite recursion.
2.001 Fix connect_to_new_server to not capriciously re-register.
2.001 Ignore dcc checksums that start with 'x', reserved for future use.
2.001 NR16 release
2.001 A couple of minor changes to the Makefile.in's
2.001 Change p_kick to remove kicked users after /on kick (list decision)
2.002 Beta release
------------------------ EPIC4pre2.002 was released here ------------------
2.003 Three bugs fixed
2.003 Beta release, take two
------------------------ EPIC4pre2.003 was released here ------------------

2.003 Fix for binding of keys ending with ^ (oskar)
2.003 Cast chars to u_char before casting to long in $ascii().
2.003 Change the name of the program from 'irc' to 'epic' in switch_help[].
2.003 Fix create_additional_screen() to not output until it is safe.
2.003 Fix USRIP in the command table so it is in the correct location.
2.003 Fix /on windo so it at least shows what hooks complete the word.
2.003 Rephrase the userhost_returned error message so it is more polite.
2.003 Fix 2.8script, tls scripts to use /xecho -b instead of /echo $o.b().
2.003 Add back /set scroll and /window scroll, in a limited way. NOT SUPPORTED.
2.003 Add nominal support for the 442 numeric to help the client when confused.
2.003 Fix a memory leak in $prefix().
2.003 Add a hack in do_notify to repair notify entries if ison string missing.
2.003 Reset FromUserHost at the end of parse_server, for safety.
2.003 Fix nasty bug with 'alist_stru' not having a hash_type member. ERF!
2.003 Fix $fsize() to accept extended words.
2.003 Fix resize_metamap to actually honor low bounds check (kasi)
2.003 Replace wretched implementation of "mode_list" in names.c.  
2.003 --- This should fix half a dozen obscure bugs, incl. /part and lastlog
2.003 Fix /timer -delete to prefer deleting single timer rather than "ALL".
2.003 Fix /bind delete_previous_word and /bind delete_next_word to be useful.
2.003 Add $aliasctl(* exists *) action, returns 1 if alias exists, 0 if not.
2.003 Add GLOB_INSENSITIVE flag to bsd_glob so i can...
2.003 Fix /help to be case insensitive again as it ought to be.
2.003 Kind of half-fix $rindex() to not walk off front of empty_string.
2.003 Release 19990408 snapshot
2.003 Fix typo in $fexist()
2.003 Fix dumb mode stdin reading handling to not walk off front of string.
2.003 Fix bug in status_server where a NULL pointer was not handled correctly.
2.003 Fix $mychannels() to remove extraneous space at end of retval.
2.003 Really nasty hack in /exec because lame dgets() returns 0 on blank line.
2.003 Fix create_server_list to not append extraneous trailing space.
2.003 Fix bogus handling of 465 numeric not showing k-line reason. (Wuhphy)
2.003 Release 19990416 snapshot
2.003 Remove extraneous "yell" in input.c, in the cut buffer stuff.
2.003 Fix bogus handling of ctcp action over dcc chat (Karmandel)
2.003 Fix $isnumber() so if base == 0, rhs of the dec.point. is done base 10.
2.003 Add 20 new /set status_user's, 20-39, displayed in every window.
2.003 Fix /dcc closeall so it actually does a /dcc close on each connection.
2.003 Add $indextoword(), converts an $index() retval to a $word() argument.
2.003 Add 'dig' and 'debug.irc' scripts from Steve and dracus respectively.
2.003 Add $realpath(), converts a relative pathname to absolute pathname.
2.003 Release 19990507 snapshot
2.003 Require I_DONT_TRUST_MY_USERS to reject dcc's out of /etc.
2.003 Remove bogus checks for "filesize" to determine between DCC GET and CHAT
2.003 Fix dcc_searchlist to never return DELETEd entries. Watch this.
2.003 Fix $winchan(refnum) to work correctly. (sja)
2.003 Fix completion algorithm in find_in_server_list to be a bit smarter.
2.003 Add new features to $line(), see UPDATES.
2.003 Add $lastlog(), see UPDATES.
2.003 Release 19990528 snapshot
2.003 Fix $lastlog(), so it counts from 1 instead of from 0.
2.003 Fix dumb bug that prevented /set mangle_outbound ROM from working.
2.003 Fix some other bug that i seem to have forgot about (sorry)
2.003 Release 19990608 snapshot
2.003 Fix bug where help_prompt set help_window to NULL bogusly (Robohak)
2.003 Fix stray stale reference to 'is_on_who' variable.
2.003 Release Special Commemorative Death-of-DIVX Silver Edition snapshot.
2.003 Fix damage that might be caused by dropping nicks in names reply handler.
2.003 Add $info(v), returns "epic4 pre2 004" to indicate general version info
2.003 Release 19990618 snapshot especially for lice-4.0
2.003 Add /msg server:nick capabilities.  Ugh. I should be shot for doing this.
2.003 Add code to display 437 numeric when its "Can't join channel."
2.003 Fix missing bounds checking for ^[P, ^[G, ^[] in strip_ansi().
2.003 Add knghtbrd's new 'newaway' script, much nicer. =)
2.003 Change all yell()s in /queue to say()s
2.003 Change $'' and $""'s call to add_wait_prompt so third arg isn't NULL.
2.003 Fix /bind delete_previous_word, wouldn't delete all the way to SOL.
2.003 Add /window name -  to permit unsetting a window name.
2.003 Fix replace_color to handle TERM_DOES_BRIGHT_BLINK better (Robohak)
2.003 Remove a bunch of spurious expensive malloc()s in ignore.c
2.003 Add support for /break and /continue in /foreach
2.003 Add support for /break in /switch
2.003 Fix support for 437 numeric (Channel Not Avail) to remove channel.
2.003 Fix bogus checks of Client->flags without mask against DCC_TYPES. doh.
2.003 Add panic in parse_line() to trap for an invalid NULL before a deref.
2.003 Fix bug where unstubbing an alias that wasnt defined could crash.
2.003 Add urlencode/urldecode stuff for DCCs with spaces in filenames (SrFrog)
2.003 Confirmed that the use of arbitrary {...}s always protects against 
2.003 -- double-quoting problems, specifically with /xeval and /timer.
2.003 In parse_server_info, ignore any extra fields (future compatability)
2.003 Release 19990718 snapsnot.
2.003 Import strlcpy() and strlcat() from openbsd, put into compat.c
2.003 Fix possible buffer_underflow in strip_trailing_spaces().
2.003 Fix possible buffer overrun in urldecode (my fault)
2.003 Fix the 'funny' problem with names_channel and mode_channel bogosity
2.003 -- done by using the (otherwise) unused 'waiting' member in Channel.
2.003 -- should be able to join more than one chan at a time now.
2.003 -- and may very well fix a bevy of other problems.  Who knows?
2.003 Fix any remaining bogus uses of 'strncat' or 'strncpy'.  Good riddens.
2.003 Fix a few small things relating to possibly dangerous strcat's and stuff.
2.003 Fix $uniq() to call $findw() isntead of $rmatch(), to support \'s.
2.003 Added $insert() for knghtbrd.  Rather minor addition.
2.003 Added $urlencode() and $urldecode() from srfrog.
2.003 Added /who -nochops for BustaNut.
2.003 Fix add_userhost_to_channel not to whine if channel doesnt exist.
2.003 Add lots of new neat stuff for /save (srfrog)
2.003 Fix how /timer -delete all works, so 'all' as a timer and 'all' both work
2.003 Add /set dcc_user_gateway_addr to tell client to use its "apparant" addr
2.003 Add $stat() call, returns stuff from 'struct stat'.
2.003 Release 19990831 snapshot.
2.003 Fix bug in $uniq() (srfrog)
2.003 Do a strength-of-operation reduction in extract2() to save some CPU.
2.003 Clean up a lot of strcpy()'s, convert to safer calls.
2.003 Clean up a few strcat()'s -- these should all be ok now!
2.003 Release 19990903 snapshot.
2.003 Fix: LOCAL_COPY() must not be used in a function call parameter list.
2.003 Fix $uniq(), add a check for 'text == NULL'
2.003 Fix bug in whobase(), keeping piggybacking from working.
2.003 Fix stray ptr deref in add_userhost_to_channel
2.003 Fix /server +<server>, is now a strict alias for /window server <server>
2.003 -- This fixes a few nasty channel desync bugs by avoiding them.
2.003 Add /set dcc_auto_send_rejects, control if DCC REJECT should be sent
2.003 Fix auto reject code, only send at most one per 2 seconds.
2.003 Fix a few misplaced 'break's in output_with_count().
2.003 Add new arg to uzfopen(), to determine if it yell()s on error or not
2.003 Fix ancient panic() in edit_char(). Mucho thanks, whitefang & srfrog!
2.003 Fix configure --with-termcap so it works again.
2.003 Release 19990927 snapshot.
2.003 Fix bug with scrollback-/clear-scrollforward crashing (|Rain|)
2.003 Fix bug with add_to_screen, calling is_channel with from_server == -1
2.003 Fix bug where video attributes turn on when their /set is off (Robohak)
2.003 Add context sensitivity to status expandos (|Rain|)
2.003 Reword error message in got_my_userhost when hostname is unresolveable.
2.003 Fix buffer underflow in input_backward_word
2.003 Add stpcpy(), idea from glibc.  Should be useful.
2.003 Fix buffer overflow in cut_input (Q)
2.003 Fix bug in alist.h not including irc.h to get u_32int_t
2.003 Fix /window channel to make sure the argument is a valid channel name.
2.003 Add whitefang's new langtrans script, reformat a bit for readability.
2.003 Release 19991021 snapshot
2.003 Fix alternative random number generators to properly pass in arguments.
2.003 Remove unused config.h #define STRIP_ESCAPES
2.003 Remove unused config.h #define EXPERIMENTAL_MATCH_HACK
2.003 Remove unused config.h #define OLD_RANDOM_BEHAVIOR
2.003 Always compile in long-nickname support, remove spurious config.h #define
2.003 Always include $glob() function, not a config.h option any more
2.003 Remove unused config.h #define INCLUDE_GLOB_FUNCTION
2.003 In irc.c, make USE_FLOW_CONTROL default to 1, user can override with -f
2.003 Remove unused config.h #define USE_FLOW_CONTROL
2.003 Fix status_user() to use a lookup table instead of fancy algorithm.
2.003 Re-add whitefang's new langtrans script, i mangled the last one.
2.003 Add some preliminary coping for server-side truncation bug in names.c
2.003 Add check in /redirect to error when from_server == -1, prevents crash.
2.003 Fix /window query to honor extended words.  No good reason why not.
2.003 Release 19991102 (Terrycloth)
2.003 Fix add_to_server_list to initialize s->fudge_factor. bleh.
2.003 Fix some bogons in remove_hook in hook.c (SrfRoG)
2.003 If /window show fails, don't try to make the window visible anyways.
2.003 Fix bug in display_msg, was breaking /stats u.
2.003 Fix typo-laden maddness in status_user.
2.003 Roll in complete terminfo list and assorted changes (|Rain|)
2.003 Fix bug in 'keybindings' script that |rain|'s stuff helped me find.
2.003 Rebuild
2.100 Release (Expectations)
2.101 Applied minor changes to parse.c (srfrog)
2.101 Put back 'termcap', 'termcap2' and 'tptr' varaibles in term.c
2.101 Fix /DCC RESUME (srfrog)
2.101 Fix typo in flood.c (srfrog)
2.101 Add /ignore <pattern> parts (srfrog)
2.101 Rebuild
2.200 Release (Amalgam)
2.201 Fix delete_all_timers() to abend if delete_timer() abends
2.201 Fix connect_to_new_server() to not move channels if new serv is conctd.
	-- This fixes the "phatom channel" bug.
2.201 Fix get_term_capabilities to gracefully handle NULL values w/o crashing
2.201 Fix init_keys2() to be able to gracefully handle NULL values w/o crashing
2.201 Fix some stuff in term.c to handle tcaps[i].ptr better.
2.201 Rebuild
2.300 Release (Discernment)
2.301 Add $getset() function, fixes semantic weakness in $-expando
2.301 Change built_in_alias's first argument to 'short'
2.301 Add $builtin_expando() function, fixes semantic weakness in $-expando
2.301 Remove completely bogus call to query_nick() in window_query().  Sheesh.
2.301 Fix window_query() to use next_in_comma_list().
2.301 Fix Makefile.in to install help to $(helpdir), not $(lib)/help.  Oooops.
2.301 Fix malloc_str2cpy, missing {}s.  Good thing nobody uses this. :-X
2.301 Fix strmopencat, lame typo.  Ick. Bleh.
2.301 Fix ALT_TOG handling to turn on blink properly. Ick.
2.301 Add "support" to ignore OpenProject's "CanTopic" personal channel mode.
2.301 Fix bug where update_input() passed bad get_current_target() to
	-- is_valid_process().  This is a two year old bug.  Found by doing:
        -- /window create delete create delete cerate kill delete kill kill
2.301 Don't destroy_server_channels() for a server that isnt open.
2.301 Add sanity checking all over names.c to prevent negative server refnums
        -- from being passed to traverse_all_channels(), which is bad.
2.301 Make sure to add 1 to the columns in -geom in /window create.
2.301 Permit #define SERVER_FILES to have leading ~'s for homedirs.
2.301 Fix /window channel to set channel's window before outputting ACK.
	-- This sends the "You are talking to .." message to correct window.
2.301 Fix /stack push alias, which was spectacularly broken before
2.301 Rebuild
2.400 Release pre2.400 (Indignation)
2.401 Fix some raging bogons with my (mis)use of ltoa().  Don't ask. ;-)
2.401 Fix bug in strlcpy() not terminating 'dst' if 'siz' == 1.
2.401 Add /set output_rewrite for fancifying your output.
2.401 Make /server -delete on last server an error rather than an implied /quit
2.401 Remove a spurious and bogus free() in create_additional_screen().
2.401 Prevent connect_to_server from re-registering on a registered server.
2.401 Rewrite $sar() in order to fix an infinite loop condition.
2.401 Fix bug where /window server failing caused major colateral damage.
2.401 Rebuild
2.500 Release pre2.500 (Indigestion)
2.501 Fix whoreply to prevent coredump (drslum)
2.501 Fix connect_to_new_server and get_connected() and friends
	-- This might fix most of our reconnect woes.
2.501 Fix set_waiting_channels and clean up a lot of server connection messes
2.501 Add a bit to the server struct to keep /window server from reg'ing twice.
2.501 Rebuild, Release (Anguish)
2.502 Fix a few more bugs from 501, related to primary_server == -1 and stuff.
2.502 Rebuild, Release (Perturbed)
2.503 Fix by |Rain| for display_msg.
2.503 Add /bind -symbolic <longname>, ie, /bind -s key_f1 backward_history
2.503 Fix curious test in is_me().
2.503 Change default for /on msg_group so different from /on public_notice
2.503 When saving channels, just move the current channel and don't worry 
	-- about the others.
2.503 Fix a few more auto-reconnect bogons, revamp p_kill to act more sanely.
2.503 Fix a lot more /server, auto-reconnect, /reconnect bugs.  Much better.
2.503 Permit windows to be unconnected, but retain memory of old server.
2.503 Rebuild, Release (Agog)
2.504 Fix nasty bug where mangle_line could expand, overrun buffer.
2.504 No really, that's it.  What more did you expect?
2.504 Roll 'read' and 'write' members of server struct into 'des', do cleanup.
2.504 Fix bug in server_delete i noticed in the pre3 roll forward
2.504 Fix minor bug introduced by the mangle_line bug fix.
2.504 Try to keep channels moving forward if an attempt to register is rebuffed.
2.504 Add support for dalnet's +c channel mode.
2.504 Fix /set -highlight_char so it doesnt make the client crash.
2.504 Added %{1}S and %{2}S maps per our support (|Rain|)
2.504 Don't *EVER* call parse_line() to run user aliases.  Use call_user_alias()
2.504 Try to mark dcc's as deleted before any /on's, to thwart EPIPE loops.
2.504 Mangle up parse_notice() to support server notices to channels.
2.504 Don't treat { and } as special chars unless they look like they should be.
2.504 Don't not show channels if /set channel_name_width 0
2.504 When a channel is joined that is non-current, make channel window NULL.
2.504 Clean up some other various issues, nothing severe
2.504 Rebuild, Release (Roustabout)
2.505 Change default to #undef BRACE_LOAD_HACK.
2000  Rebuild, Release (Millennium, EPIC4-2000!)
2.505 Fix memory leak, we were never really cleaning up windows on exit
2.505 Fix collateral damage exposed by above bug.
2.505 Add support for ircnet's +I channel mode
2.505 Fix bug where ending a /type args with a ^ or \ caused buffer overrun
2.505 Apparantly a few other changes i forgot to document.
2.505 Rebuild, Release epic4pre2.505
2.506 Attempt to fix /ignore #channel NICKS (sugg. from srfrog)
2.506 Add --with-bc to configure
2.506 Put a copy of strlcpy() in wserv.c to avoid linking with compat.o
2.506 Fix call to split_up_line -- only ever output 79 chars!  Sorry.
2.506 Add /set mail 3, which reset's access and mod times on your maildrop.
2.506 Ignore empty ctcp requests, don't automatically suppress enclosed privmsg.
2.506 Fix bug induced by bogus pointer left behind by /window new_hide kill
  -- this probably fixes a lot of different bugs.
2.506 da5id's bug with $chr(133)/$chr(141) seem to be caused by xterm.
2.506 Permit $chanwin() to work for all channels, not just current channels.
2.506 Treat output to a 0 size scratch window as a no-op.  Prevents panic.
2.506 Prevent attempts to overwrite status bar on scratch window.  for panic.
2.506 Add $notifywindows(), returns the %F status line expando information.
2.506 Add some extra debugging info, to help track down the splitfire bug.
2.506 Make some changes to /dcc list, add speed field. (Jan Leversund)
2.506 Add $loadinfo(), returns $0 - line number $1- - file name being /loaded
2.506 ND_SPACE's _do_ take up a column, count it, so as not to mess up indent.
2.506 Rebuild, Release epic4pre2.506
2.507 Fix crash where $channel(#chan) when in /on join -> null pointer -> boom!
2.507 Don't create new output line after last position if no more text. 
2.507 Rebuild, Release epic4pre2.507
2.508 Don't use usec's for /set mail 3, or utimes() either. linux is weak.
2.508 Fix /who.  Where _did_ that line come from?
2.508 Fix $sort() and $numsort() returning NULL.  Use RETURN_MSTR() elsewhere.
2.508 Remove hype for 'tc' script from the 'tabkey' script.
2.508 On first connect, call e_channel to join -c channel, don't JOIN directly.
2.508 Fix $cparse(%n), buffer overflow.
2.508 Fix unsplitw() to return NULL if 'container' is empty.
2.508 Put a bit more sanity checking in $sort() as well.
2.508 These two above seem to fix the $sort() and axur's crashes-on-join bugs.
2.508 Fix a typo in show_help(), avert a null deref.
2.508 Use RETURN_MSTR() in built in functions more liberaly. fixes couple bugs.
2.508 Try to fix META4 keybinding to actually un-stick itself properly.
2.508 Fix bug in timer argument handling that was causing it not to work.
2.508 Fix wrapping bug so sja and Q don't have to fight to the death. (zinx)
2.508 sja says "window is dead and cannot be made current" panic is fixed.
2.508 Rebuild, Release epic4pre2.508
2.509 Fix $numsort(), don't let it return NULL.
2.509 Fix $winchan() to default to from_server if no server is given.
2.509 Guard against a buffer overrun when output string ends with \e)
2.509 Impose more reasonable constraints on limits of scrollback/forward
2.509 Fix compile bogon when system doesn't have realpath(3).
2.509 Reset from_server after /pretend, since parse_server sets it to -1.
2.509 Add %{1}F status expando, like %F, but shows window names if possible.
2.509 Add "R" character to mode_str in names.c
2.509 Error, don't crash, in figure_out_address, with bogus IP address.
2.509 Added /on channel_sync, as a birthday gift for whitefang.
2.509 Add flag to server struct, to inhibit looping in reset_nickname
2.509 Don't send SIGINT in reset_nickname, looping causes software abort.
2.509 Don't attempt to format !IDchannels at all.  Blame Kurt Roeckx (q@ping.be)
2.509 Fix broken tests in get_term_capbility.  Fix bogus retval on missing type.
2.509 Looks like $rest() is fixed satisfactorally now.
2.509 Add $globi(), case insensitive version of $glob().
2.509 Added %{2}S status expando, like %S, but doesn't crop server name.
2.509 Rewrite parts of p_privmsg so "sed" always gets reset to 0.
2.509 Make a correct, but expensive fix for nonprints in /set continued_line
2.509 Fix busted handling of logical names in /exec's.  Bleh
2.509 Inside /wait %cmd and /exec -end {}, set $* to same as /on exec_exit
2.509 Fix $indextoword() -- how did nobody catch this?
2.509 Add $wordtoindex -- $wordtoindex(2 hello there person) returns 12
2.509 Suppress beeps when repainting windows.
2.509 Add /window hold_interval, controls how often (Hold) on stat bar updates.
2.509 Rebuild, Release epic4pre2.509 -- DIVX2
2.510 Rewrite "word_count" so it is new_next_word compatable, for now.
2.510 Add whitedragon's "grep" script, from phoengold, changes for epic compat.
2.510 Add Q&D hack for expr2.c, to return false-valued operands when in noeval.
2.510 Add zinx's extended-word support -- gotta do more, though.
2.510 Add /xdebug extractw, which turns on zinx's extended word support
2.510 Permit /xdebug extractw to support $0, $1, etc extractions.
2.510 Add $winscrollbacksize(), number of items in scrollback buffer (Liandrin)
2.510 Add $winstatussize(), number of lines in the status bar (Liandrin)
2.510 Add $wincursorline(), the window line where the cursor is. (Liandrin)
2.510 The behavior of /join #chan1,#chan2 is not broken, it has to be that way.
2.510 Add %{1}K, outputs (Scroll: X of Y) with scrollback info.
2.510 Add /set hold_interval, how often the status line should update %H.
2.510 Fix lame_external_resolv() to not do unnecesary ip->host lookup.
2.510 I could not reproduce the /dcc closeall not hooking /on dcc_lost bug.
2.510 Get started on a "vi-like keybindings" script, "vi-binds"
2.510 Attempt to cope gracefully if server presents a worthless 004 numeric.
2.510 Attempt to cope gracefully with all those mutex 437 numerics out there.
2.510 Add my_strerror(), to be used after connect_by_number() fails.
2.510 After connect_by_number() fails, call above to get DNS failure codes.
2.510 Confirm that we only check HOST ORDER port in register_dcc_connection, 
  -- even though we keep the port in network order internally.
  -- This fixes false "port is less than 1024" dcc rejections
2.510 Don't require two <cursor up>'s when something is in the input buffer.
2.510 Rebuild, Release epic4pre2.510
2.511 Begin to de-bogofy $getopt(). Watch this.
2.511 Finish de-bogofying $getopt() -- looks like it works fine now!
2.511 Support for undernet's new /WHO  request flags. /who <mask1> -ux <opts>
2.511 Support for Dalnet's new /WHO request flags. /who -dx <opts> <args>
2.511 Fix for Bruce DeVisser's /help bug (Robohak)
2.511 Rebuild, Release epic4pre2.511
2.512 Fix /who so /who -dx doesn't slurped up by /who -d (Robohak)
2.512 Fix so /window size works in more situations than before (rb jmd)
2.512 Fix bug introduced by /on channel_sync that caused modes to get lost
2.512 Fix bug where $getopt() didn't reset its internal state at end of parsing.
2.512 Fix /on channel_sync (again), remove channel name from ArgList[0].
2.512 Add /set log_rewrite so people will stop asking me for it.
2.512 Rebuild
2.600 Release epic4pre2.600 -- Stable Beta release.
2.601 Fix bug that broke piggybacked who's when fixing /on channel_sync last.
2.601 Fix bug del chars in 1st input line zone bringing in wrong chars.
2.601 Fix raging paranoia bug so /quit %s%s doesn't crash.
2.601 Fix support in new math parser for @ unary operator right before ?
2.601 Fix bug that made assignments in expressions after &&'s or ||'s choke.
2.601 Add inet_aton() compat function into wserv.c for HPUX support.
2.601 Fix bug where hooking /on ctcp_request new_free()d empty_string.
2.601 Fix bug where /set hold_interval 0 or /window hold_interval 0 crashed.
2.601 Fix call of random_number with arg!=0 breaks RANDOM_LOCAL_PORTS (Robohak)
2.601 Fix check of $listen() arg, reject < 1024, not < 1025 (Robohak)
2.601 Fix $winscreen() to check foo->screen before derefing it (IceKarma)
2.601 Cope with non-irc servers that send mode +k, +v, +h w/o args. (zinx)
2.601 Transverse URLENCODE/URLDECODE in the functions list (zinx)
2.601 Fix flood control to only suppress every /SET FLOOD_AFTERth line. (srfrog)
2.601 Update /info and /copyright stuff.
2.601 Rebuild
2.700 Release epic4pre2.700 -- Stable beta release
2.701 Fix /pretend to squeeze args into IO_BUFFER_SIZE buffer.
2.701 Permit /set random_local_ports the chance to use port 65535. (Robohak)
2.701 Temporary fix, in really_save, make that array-of-pointers static.
2.701 Make dcc.c use more consistent types, prevent integer overflow (Robohak)
2.701 Fix 'speed' variable not being init'd in /dcc list (Robohak)
2.701 Be more aggressive about revoking current channel status in names.c
2.701 Always switch away from current channels before nuking them, in window.c
2.701 Always make sure that window->current_channel exists before derefing it.
2.701 Try to match up !IDchans with bound chans or waiting chans (Kurt Roeckx)
2.701 Rebuild
2.800 Release epic4-0.9.0 -- Stable beta release
0.9.0 Switch to new VID here.  EPIC4pre2.800 is the same as EPIC4-0.9.0
0.9.1 Fix bug where joining an !id channel could crash epic.
0.9.1 Only call channel_going_away if the channel belongs to a window.
0.9.1 Throw /on channel_sync in the context of the channel's window.
0.9.1 Rebuild, Release epic4-0.9.1 -- Release candidate
0.9.2 Revamp support for the 437 numeric.  Ugh.  Blech.  Wretch.
0.9.2 Remove spurious "server" in "Connecting to port %d of server %s"
0.9.2 Compensate for nasty ickage in $leftpc() to permit getting 1 char
      -- (whitedrgn)
0.9.2 Fix $cparse() to expand the "" string after interpolation, not before
      -- to be compatable with bitchx.
0.9.2 Punt if the user does /bind metaX where X > MAX_META, don't crash.
0.9.2 Fix probably null deref just after channel_going_away called (Robohak)
0.9.2 Fix segfault handler so it honors /xdebug crash as well.
0.9.2 Fix resize_window to handle RESIZE_ABS more graciously.
0.9.2 Add /xdebug slash_hack, to inhibit $^"(<foo>) and $^"#<foo> 
      -- double quote bogosity.
0.9.2 Release epic4-0.9.2 -- Stable release
0.9.3 Guard against /exec -nonexistantsignal causing a crash on linux. (rain)
0.9.3 Fix both e_channel and window_channel to graciously handle channel names
        and channel keys with double-quotes in them.
0.9.3 Change config.h defines for /set status_format1|2 to end w/space. (zinx)
0.9.3 Fix the line-wrap bug where continued_line > previous line.
0.9.3 Don't clear the input line when doing /wait %cmd, bogus.
0.9.3 Fix possible null deref if /set flood_users > 0 after /set to 0.
0.9.3 Fix bug where putting %%<N> in status format led to %%%<N> in format.
0.9.3 Fix /window size so it outputs how big the window is.
0.9.3 Release epic4-0.9.3 -- Stable release
0.9.4 Fix set_channel_by_refnum to not permit set_channel_window(w, NULL);
0.9.4 Add panic in set_channel_window if channame is NULL, prevents problems.
0.9.4 Add 'hybrid6' script, and 211 numeric handling for 2.8script, from ejb
0.9.4 Fix $#... expando so it always calls TruncateAndQuote.
0.9.4 Fix bogon in loader where //* always turns into a c-like comment.
0.9.4 Add /who -literal, and backport pre3's tolerance of /quote who lameness.
0.9.4 Downgrade /quote who to "deprecated"
0.9.4 Don't clean up in irc_exit if /xdebug crash is on.
0.9.4 Release epic4-0.9.4 -- Stable release
0.9.5 Fix bugs where a channel could be current on more than one window.
0.9.5 Add $aliasctl(* getpackage *), $aliasctl(* setpackage *). (zinx)
0.9.5 Release epic4-0.9.5
0.9.6 Fix bug where /window channel just plain didn't do the right thing.
0.9.6 Fix bug where set_channel_window had a line in the wrong place.
0.9.6 Fix bug where destroy_call_stack() didn't reset wind_index to -1.
0.9.6 Release epic4-0.9.6
0.9.7 Fix nine-year-old ircII bug where /window new move -10 crashed.
0.9.7 Release epic4-0.9.7 -- Release candidate #2
0.9.8 Fix null deref if user does /quote join in an /on raw_irc "% KICK *"
0.9.8 Add /local -dump so users can dump their local variables.
0.9.8 Fix null deref if /window show is done while current_window is hidden
0.9.8 Fix fetch_userhost() to keep looking if first channel has no userhost.
0.9.8 Fix $write() and $writeb() to return -1 if fflush() fails.
0.9.8 Add /set history_circleq, if off, history doesn't act as a circle.
0.9.8 If /set history_circleq if off, then ^U returns history position to end.
0.9.8 Fix $twiddle() (found by Paladin)
0.9.8 Fix a bunch of bogus uses of expand_twiddle().
0.9.8 Fix brain damage caused to channels by /server -delete (found by paladin)
0.9.8 Actually implement /set max_reconnect, throttles auto-reconnects.
0.9.8 Fix connect_to_server() to disqualify all servrefs < 0, not just -1
0.9.8 Fix get_connected() to refrob servrefs < 0 to max servref, ala ircII.
0.9.8 Add /set switch_channels_on_part, ctl whether /part does SWITCH_CHANNELS
0.9.8 Release epic4-0.9.8-NR -- just a testing release.
0.9.9 Release epic4-0.9.9 -- Release candidate #3
0.9.10 Fix panic caused by doing /dcc close within an /on dcc_* type thing.
0.9.10 Fix two possible bugs related to moving channels after reconnect failure.
0.9.10 Defer redraw/resize of screen until it is safe, rather than right away.
0.9.10 Support + channels in /join and /leave alias in 2.8script.
0.9.10 Fix bug in m_strcat_ues when a string ended with a single \
0.9.10 Add referential integrity cks for the window<->channel<->server stuff.
0.9.10 Perform above chks very often to try to track down last ref int failures.
0.9.10 Fix some bugs found by above checks.
0.9.10 Release epic4-0.9.10 -- just a testing release
0.9.11 Fixed typo in p_silence.
0.9.11 Fixed bug in 216 handler in 2.8script.
0.9.11 Fixed bug where /window beep_always induced a null deref.
0.9.11 Prohibit /window channel in disconnected window (Paladin)
0.9.11 In a server kill, actually give the user the kill reason.
0.9.11 In move_window_channels, try harder to move channels on discon windows.
0.9.11 Leave "waiting_channel" alone if it's different from what we just JOINed.
0.9.11 Fix get_boolean() to not do variable assignment until after the say().
0.9.11 This fixes screen corruption bugs where say() can force a redraw and
       the results of get_boolean() haven't been compensated for yet.
0.9.11 Fix /window flush to actually account for lines thrown away.
0.9.11 Yet more attempts to handle the 437 numeric quasi-reasonably.
0.9.11 Release epic4-0.9.11 -- Another testing release
0.9.12 -- This version was never released -- don't ask.
0.9.13 Fix bug where set_channel_by_refnum can cause null deref.
0.9.13 Defer "deleting channels" warning in move_window_channels until needed.
0.9.13 Fix null deref when beep happens on some hidden windows.
0.9.13 Fix null deref when waiting channel != channel being parted.
0.9.13 In get_connected, be more aggressive throwing away closed channels.
0.9.13 Fix header of /window list if /set channel_name_width is 0
0.9.13 Revamp /on 403 support -- check this over for problems!
0.9.13 Nominal support for 402 and 522 numerics for bogus dalnet who requests.
0.9.13 Fix after_expando_special to punt if no lval is found where expected.
0.9.13 Release epic4-0.9.13 -- Release candidate #4
0.9.14 Import into cvs.  No cracks.
0.9.14 Fix 'make install' so it works again.
0.9.14 Work on the man page a bit.
0.9.14 Remove the #define DCC_CHECKSUM feature everybody hates.
0.9.14 Start including a "commit number" in irc.c
0.9.14 In numeric handling, use 'get_server_itsname()' to get server's name
0.9.14 Cope with stupid servers that send void mode changes
0.9.14 Better, working support for dalnet's extended who error replies.
0.9.14 Release epic4-0.9.14 -- Release candidate #5
0.9.15 Fix null deref when reciving some of dalnet's error end-of-who replies.
0.9.15 Fix panic caused by /on switch_windows during /window hide.
0.9.15 Release epic4-0.9.15 -- Release candidate #6
0.9.16 Add some stuff that helps epic cope with server disconnections better.
0.9.16 Add /on error, hooks on an irc protocol ERROR message.
0.9.16 Fix window.c:get_boolean(), passing unitialized 'newval' integer.
0.9.16 Fix path_search() to not blithely assume path != NULL (whitedragon)
0.9.16 New version of the 'hybrid6' script, from is.
0.9.16 Axe the broken "input_timeout" feature that hasn't worked in 6 years.
0.9.16 Add, but #ifdef'd out, a delayed-free mechanism -- strictly experimental.
0.9.16 Add the /defer command, to perform dangerous operations when it's safe.
0.9.16 Many changes from robohak to fix /on channel_* bogons I introduced. ;-)
0.9.16 Lice should now work again with 0.9.16.
0.9.16 Release epic4-0.9.16 -- Release candidate #7
0.9.17 Add $ssl() built in function for lateral compatability with epic-ssl
0.9.17 Whack over my_next_expr().
0.9.17 Add "next_expr_with_type" for use with 'break_args'
0.9.17 Add 'break_args', experimental command-argument tokenizer.
0.9.17 Add /for <var> in (<list>) {<commands>} command
0.9.17 Add /for <var> from <min> to <max> {<commands>} command
0.9.17 Doodle around a bit with /fe, just for yucks.
0.9.17 Change 'autoop', 'fe', 'files', 'ip-to-int', 'ircprimer', 'repeat',
0.9.17       'scandir', 'tc' scripts to use two new /for formats.
0.9.17 Add support for 477 numeric (can't join channel) from dalnet. (adm)
0.9.17 Add /xecho -v (output to a visible window)
0.9.17 Fix /reconnect to supply default quit message ("Reconnecting")
0.9.17 Add $cos(), $sin(), $tan() functions, to do math things
0.9.17 Fix bug in $serverlist() which caused it to always return server list.
0.9.17 Fix history stuff so it doesn't insert duplicate entries (robohak)
0.9.17 Add 'skip_spaces' function, which skips leading spaces in a string.
0.9.17 Change logfile header to output local time and not UTC time.
0.9.17 Fix /window server to clear reconnect counts, thwart throttling.
0.9.17 Change "server_list[%d].itsname is null and it shouldn't be" error msg
0.9.17 Change it to "I don't have %d's real name yet -- using the hostname..."
0.9.17 Fix /server N to not reconnect to N if it's already connected.
0.9.17 Add /ison -d and /ison -f (debug, and flush) for debugging purposes.
0.9.17 Release epic4-0.9.17 -- Release candidate #8
0.9.18 When the server terminates a connection, save channels for reconnect.
0.9.18 Add "dont_save_server_channels" function.
0.9.18 Remove some #ifdef 0'd out code in names.c.
0.9.18 Always specify what we want to be done with channels before calling
0.9.18       close_server() -- failure to do so results in a panic.
0.9.18 Always save channels when an unexpected EOF occurs from the server.
0.9.18 Fix the 010 numeric handler -- don't use ArgList after display_msg, duh!
0.9.18 Fix the 464 numeric handler; that "odd" thing was bogus.
0.9.18 Fix a typo in the 477 numeric handler.
0.9.18 Fix p_privmsg to send public messages to LOG_PUBLIC and not LOG_MSG, duh!
0.9.18 Fix passwd_sendline to get server refnum from "data", not "line", duh!
0.9.18 Passworded servers now are handled correctly. Huzzah!
0.9.18 FD_CLR filedesc's after FD_ISSET in input handlers, to avoid bogons.
0.9.18 -- The above is a legacy ircII bug.
0.9.18 Fix /disconnect to call close_server() and update_status().
0.9.18 Fix who queue damage caused by touching ArgList after display_msg. doh!
0.9.18 Move the "can't join channel" numerics into section #1
0.9.18 Don't delete "can't join" channels if we already joined them!
0.10.0 Release epic4-0.10.0
0.10.1 Permit the "can't join" channel numerics to be hooked.  Oops! ;-)
0.10.1 Release epic4-0.10.1
0.10.2 Fix handling of the 477 numeric to work on ircnet again.
0.10.2 Release epic4-0.10.2 (cvs only)
0.10.2 EPIC4-0.10.* passes election on March 27, 2001!  w00t!
1.0   Release epic4-1.0
1.0.1 Two timers could end up using the same refnum (|Rain|)
1.0.1 Channels could become confused after being klined (HSOC)
1.1.1 Fix crashes from syntax errors "/for i in" and "/for i in (foo) {"
1.1.1 Fix crash if you do /set -status_channel
1.1.1 Crazyeddy's fixes went here -- someone want to describe them?
1.1.1 Internal perl support: $perl(), $perlcall(), $perlxcall() functions. (ce)
1.1.1 Fix $jot() so it works for all cases (ce)
1.1.1 String operation optimizations to speed up epic. (ce)
1.1.1 Rewrite the better part of $uniq() (ce)
1.1.1 Implement a regular version of really_new_realloc(), which is not
1.1.1 -- just a wrapper to malloc/free. (ce)
1.1.1 Permit changes to /set notify_interval to take effect immediately. (ce)
1.1.1 Add an internal file_exists() function, might come in handy some day.
1.1.1 Permit double-quotes around target of /msg, for compat. with /query. 
1.1.1 Fix possible problems in the word breaker in ircaux.c
1.1.1 Fix server assignment in /exec so it works in /on's again.
1.1.1 Fix failsafe declaration for MAXPATHLEN for hurd in irc_std.h and glob.c.
1.1.1 Fixes to make dcc-over-ctcp-over-dcc work again (|Rain|)
1.1.1 Fix $querywin() to take a second argument, a server ref (for scromp)
1.1.1 Add $halfop(), returns +h status (1, 0, -1) (Ay-ar)
1.1.1 Add the 'autoget' script, for autogetting files via dcc chat.
1.1.1 Add /window rebind, which moves a channel binding forcibly to a new window
1.1.1 Add /window rejoin, which joins a channel in the window you want it to go.
1.1.1 Make /join use /window rejoin, you can use it in an /on now! Huzzah!
1.1.1 Fix move_channel_to_window to revoke /window bind when a chan moves away.
1.1.1 Fix null deref in move_channel_to_window when window not bound. (ce)
1.1.1 Fix bogons in /queue to make it play nice with bounds checking gcc.
1.1.1 /Queue names are now case-preserving, not always folded to uppercase.
1.1.1 If you /set -var, give it the actual value NULL, not the empty string (ce)
1.1.1 -- This apparantly fixes /stack push|pop set ... (ce)
1.1.1 Fix /window rejoin to actually slurp it's arguments, not copy them (ce) 
1.1.1 Fix /window rejoin to properly paste channels-to-join together (ce)
1.1.1 Add integrated random local support with firewall holes.
1.1.1 Fix bug with /hostname causing dcc to fail if you gave it a bad hostname.
1.1.1 Add support for server groups; reconnect() takes an extra argument now.
1.1.1 Server group names are strings of any length. 
1.1.1 The server group is specified as a new section at the end of server descs.
1.1.1 The "default" server group's name is the empty string.
1.1.1 The server list file can contain [server group] headers and # comments.
1.1.1 Add $ishalfop() function to get +h channel status for a user.
1.1.1 Add $igetrmatches() function.
1.1.1 Add secnod argument to $querywin(), a server refnum
1.1.1 Fix null deref with $uniq( )
1.1.1 Don't prepend a second / to items coming out of history matching (ce)
1.1.1 Don't skip over most recent entry in history in history matching (ce)
1.1.1 Completely new /lastlog command, it doesn't suck!
1.1.1 Remove all inferences that servers that unnecesarily and gratuitously 
      break client intercompatability by deviating from longstanding historical
      practices are ``broken''.  Done under protest and under duress from 
      Dianora who was beligerantly screaming at me that any problems I had 
      with compatability were entirely my fault because I did not sufficiently 
      test for the unknown.  If you don't like this comment, maybe that will 
      remind you to be more polite and diplomatic about working with your peers
      who judge you based on your behavior towards them.  If you want this to 
      go away, all you have to do is apologize for your thoughtless rudeness.
1.1.1 Make the unused /set notify_handler go away.
1.1.1 Fix null deref if user does /set -channel_format. doh!
1.1.1 Make move_channel_to_window() do automatic de-binding for us.
1.1.1 This means we can fix /window channel to not hunt for the "other" window.
1.1.1 Fix /window channel to use send_to_aserver().
1.1.1 When killing window, move channels before swapping, avoids ref int panic.
1.1.1 Add /set auto_rejoin_connect, idea from David Buckley.
1.1.1 Add support for dalnet channel mode +M, from adm.
1.1.1 Add a whole mess of math functions, from crazyeddy.
1.1.1 Add $unsplit(<sep> <word list>), to join a list of words with a separator.
1.1.1 Release epic4-1.1.1
1.1.2 Add $fskip(), $fseek(), $frewind(), $ferror() and $isfilevalid().
1.1.2 Gid rid of the awful bsd_*env() hacks in compat.c.
1.1.2 Start using getenv() and setenv() like normal programs do.
1.1.2 Fix /setenv so you can unset env variables with /setenv -VARNAME
1.1.2 "Ooops"  I didn't sort fskip/fseek/frewind/ferror in the functions list.
1.1.2 Migrate the io() looper to using 'struct timeval's instead of time_t's
1.1.2 Migrate /timer to use 'struct timeval's instead of time_t's
1.1.2 Make 'start_time' and 'idle_time' struct timeval's, for future use.
1.1.2 Add some functions to ircaux.c to make manipulating timevals easier.
1.1.2 Migrate calc_speed in dcc.c to using 'struct timeval's instead of time_t's
1.1.2 Fix /xecho -v
1.1.2 Make /pause take a fractional argument, ie, /pause 1.5
1.1.2 Make /timer take a fractional argument, ie, /timer 1.5 ....
1.1.2 Implement "redirect sink", nickname 0, causes all output to be suppressed
1.1.2 Implement /flush to use the redir-sink instead of throwing out good data.
  -- This means /flush is safe to use again!  Huzzah!
1.1.2 You can use /REDIRECT 0 WHOIS <nick> for example to suppress extra output
1.1.2 Resizable wserv support, merged from epic5.  "wserv" now called "wserv4"!
1.1.2 Add /set wserv_path to let you choose the wserv you want to use.
1.1.2 New highlight renderer, from epic5.  Touches a lot of stuff.  May break?
1.1.2 Honor attribute markup in /set continued_line
1.1.2 Save attributes from the end of one line to after the continued_Line.
1.1.2 What this means is that attributes in /set continued_line don't "bleed"
1.1.2 Add support for ~/.epicrc which is prefered to ~/.ircrc.
1.1.2 Change the email list address to list@epicsol.org.
1.1.2 Fix the "Warning, file exists" check for dcc to honor /set dcc_store_path.
1.1.2 Add $info(i), which is the commit_id.  I should have added this long ago.
1.1.2 Fix $read() to accept lines of any length (crazyeddy)
1.1.2 Fix window_disp() to pass raw display strings to lastlog and log.
1.1.2 Fix $status() to return a denormalized string.
1.1.2 Fix bug where cursor would not return to input line after status update
1.1.2 Make the output of /query go to the affected window.
1.1.2 Thwart attempts to /JOIN (/window rejoin) to an unconnected server.
1.1.2 Start exposing commit_id to the user, for bug reporting purposes.
1.1.2 Up the precision of floating point results to 999 decimal places (ce)
1.1.2 Add /on general_notice and /on general_privmsg.
1.1.2 Don't hook /on general_notice if user hooks /on kill or /on oper_notice.
1.1.2 Fix bug that showed all timers as having 0 seconds left.
1.1.2 Fix $printlen() -- call normalize_string() before output_with_count()!
1.1.2 Make 'add_to_window' and 'window_disp' static to screen.c again.
1.1.2 "Fix" /WINDOW ECHO to not call add_to_window() but rather use "to_window".
1.1.2 Add support for $write[b]() to logfiles; prefix window refnum with 'w'.
1.1.2 Add support for $write[b]() to global logfile; logref "w-1".
1.1.2 Add $ceil(), $floor(), $abs() (crazyeddy)
1.1.2 Fix $trunc(... 0) to truncate number to an integer (crazyeddy)
1.1.2 Print floating point numbers with up to 50 places of precision.
1.1.2 Add a new argument to /crypt, an external encryption filter.
1.1.2 Add epic-crypt-gpg and epic-crypt-gpg-aa to the script/ directory.
1.1.2 Fix bug with ROM_CHAR handling.
1.1.2 Add MIN()/MAX() macros for systems that don't define one.
1.1.2 Add an exec_pipe() function which returns results of an ext. prog. (ce)
1.1.2 Fix integer math (ce)
1.1.2 Avoid using trunc(3), nonportable; use fmod() isntead (ce)
1.1.2 Always make sure Attributes are initialized before first use.
1.1.2 Add compat hacks for broken systems lacking setenv() and unsetenv().
1.1.2 Treat CTCP SEDs recieved in NOTICEs as CTCP REPLIES not queries. (ce)
1.1.2 Added $encryptparm() -- nick, key, and prog info of /crypt entries (ce)
1.1.2 Fix prepare_display to append a zero-Attribute and not ^O to end of line.
1.1.2 "Fix" /queue so it doesn't double-eval your commands at runtime.
1.1.2 Revert last change
1.1.2 "Fix" /queue so it doesn't double-eval your commands up front.
1.1.2 Fixed ctrl-e (alt-char) problems.  Thanks to desaster and knghtbrd.
1.1.2 Disabled ROM characters.  Many thanks to zinx for figuring it all out.
1.1.2 Add /SET ROM_CHAR, which controls parsing of ^R codes, default is OFF.
1.1.2 Re-enabled ROM characters, now that they can be /SET off.
1.1.2 Remove /SET ROM_CHAR, and the rom_char handling stuff entirely.
1.1.2 Add /SET ALLOW_C1_CHAR which defaults to off, to [dis]allow ascii 128-159.
1.1.2 SSL support (ay-ar)  See "README.SSL"
1.1.2 Add /xdebug ssl to debug SSL stuff, right? (ar)
1.1.2 Add /on ssl_server_cert per above. (ar)
1.1.2 Add /set ssl_certfile, /set ssl_keyfile, and /set ssl_path per above. (ar)
1.1.2 Add /set status_ssl_off and /set status_ssl_on per above. (ar)
1.1.2 Replace $isencrypted() function, per above (ar)
1.1.2 Replace $ssl() function, per above (ar)
1.1.2 Add $cipher() function, per above (ar)
1.1.2 Add %| status bar expando for SSL server connections, per above. (ar)
1.1.2 Maintainance work on the man page, spelling fixes, markup fixes.
1.1.2 Fix the "redirect sink" so it hooks /on redirect, but suppresses output.
1.1.2 Whack up figure_out_address to cope with networks that present hostnames
      -- without dots in them. (wd)
1.1.2 Fix $uhc(), $mask(), and /ignore per above (wd)
1.1.2 New script, 'commandqueues' (ce)
1.1.2 New supplement scripts 'epic-crypt-pgp' and 'epic-crypt-pgp-aa' (ce)
1.1.2 Various Bugs fixed and memory leaks found (ce)
1.1.2 Algorithm improvements, replacements, and enhancements (ce)
1.1.2 Malloc debug tracking -- #define ALLOC_DEBUG (ce)
1.1.2 New command, /ALLOCDUMP, dumps stats about malloc use, per above (ce)
1.1.2 New flag to /XWUOTE, /XQUOTE -U takes url encoded string, dequotes it and
      -- sends it to the server -- useful for sending odd characters. (ce)
1.1.2 /ON CTCP_REPLY changed!  $0 = from; $1 = to; $2 = command; $3- = args
1.1.2 Add ftoa(), used by the math parser to format decmial values. (ce)
1.1.2 Pull the guts of $encode() and $decode() and put them in ircaux.c.
1.1.2 Track flooders by nick!user@host instead of just nickname. (ce)
1.1.2 Add $corpattern() fn - like $copattern(), but $var1 is wildcard pats. (ce)
1.1.2 Add $regmatches() function
1.1.2 Add $servergroup() function - returns the servergroup a servref is in (ce)
1.1.2 Add $serverourname() function - returns ourname for a servref (ce)
1.1.2 Fix $chankey(), $chanmode() to use from_server, not current window's serv
1.1.2 Fix some bugs with how the regex functions work. (ce)
1.1.2 Add support for if (..) {...} elif (...) {...}
1.1.2 Add support for if (..) {...} else if (...) {...}
1.1.2 Output the commit_id with the version id whenever possible.
1.1.2 Save the server's group name in a /SAVE.
1.1.2 Add /lastlog -file to output lastlog to a file. (??)
1.1.2 In $channel() output, put 'h' for half-assed channel ops. (ce)
1.1.2 Fix rebuild_all_notify() -- gah! (ce)
1.1.2 Change /set notify_interval 0 to turn off notify entirely. (ce)
1.1.2 Add send_to_server_raw() internal function (ce)
1.1.2 Add /window notified, turns on the "window notified" flag (ce)
1.1.2 Add support for /msg'ing 0 -- this is a "sink"
1.1.2 /redirect 0 now uses the '/msg 0 sink'
1.1.2 Add support for /msg'ing @<filedesc> -- to write to an $open() file.
1.1.2 This adds support for /msg'ing @w<winref> -- to write to a window logfile
1.1.2 When /redirect'ing to 0 or @<filedesc>, don't output result to screen.
1.1.2 Fix null deref when msg'ing a window's logfile that doesn't exist.
1.1.2 Stop doing special support for numerics 316 and 340 as a favor to kev.
1.1.2 New script, "tabkey.ce" (crazyeddy)
1.1.2 Fix bug in compat stuff for /SETENV (rb da5id)
1.1.2 Remove "scanstr" internal function
1.1.2 Total rewrite of queue.c, and /QUEUE commands.  See UDPATES for details.
1.1.2 Change $channel() indicator for +h users to use '%' insteazd of 'h'
1.1.2 Do repo-direct work: Move the README.SSL file to doc/
1.1.2 Start fixing up some of the documentation for the 1.1.3 release!
1.1.2 Fix race condition in handling signals by blocking them during processing.
1.1.2 Fix 'make installscript' again
1.1.2 Fix /lastlog to use an "real expanded" banner and not just /set banner.
1.1.2 Support double-quoted words in server specifications. (rb wd)
1.1.2 Fix a bug with naked /window channel.  Future improvements likely. (ce)
1.1.2 Fix a bug with the new /queue implementation. (ce)
1.1.2 Add /set status_halfop (ce)
1.1.2 Add new function, $getcommands(), like $getsets(). (ce)
1.1.2 Fix compiler warnings under OS X (ce)
1.1.2 Change /ignore #channel crap to ignore quit message (ce)
1.1.2 Fix a bogon when you try to do /window channel 0.
1.1.2 Add a new field to the end of the server-spec for "protocol".
      -- This can be "irc" or "irc-ssl"
1.1.2 Remove the -ssl flag to /server and /window server.
1.1.2 New built in function, $servertype(), which returns the "protocol"
1.1.2 Add $serverctl(), a general purpose low-level server list manip function.
1.1.2 Fix support for the /dcc * -p option (local port to use)
1.1.3 Release EPIC4-1.1.3 (Statutory)
1.1.4 Fix compile errors if you #undef WINDOW_CREATE
1.1.4 Fix bug with unitialized local var passed to prepare_display (rb da5id)
1.1.4 Fix bug with kb/s not showing up for /DCC GETs
1.1.4 Add a check in configure for sa_len in (struct sockaddr), for linux.
1.1.4
1.1.4 --- Thus begins The Great IPv4 Cleanup ---
1.1.4 Change connect_by_number to take a "family" instead of "protocol" param.
1.1.4 Rename host_to_ip, ip_to_host to inet_hntop, inet_ptohn, add family args
1.1.4 Change inet_anyton to take SA instead of IA.
1.1.4 Add ip_bindery, client_bind, client_connect, connectory, family-ind.
      -- replacements for connect_by_number.
1.1.4 Convert many many IA's to ISA's or even better, to SS's.
1.1.4 Revamp how vhost support is handled -- future support for ipv6 possible.
1.1.4 Nuke LocalHostAddr, supplanted by LocalIPv4Addr for now.
1.1.4 Rewrite how dcc keeps track of ipv4 addresses. Remove redundant data.
1.1.4 Keep ports and addresses together in SA's, don't keep separately.
1.1.4 Ports that are kept separately are kept in host order.
1.1.4 Migrate away from connect_by_number() to the replacement functions in dcc.
1.1.4 Ditto for /window create.
1.1.4 Eliminate superfluous calls to get(peer|sock)name.
1.1.4 Make nearly everything in network.c family-independant capable.
1.1.4 Start using inet_pton() and inet_ntop() isntead of inet_aton() etc.
1.1.4 All this lets me start identifying and documenting hardcoded AF_INET
      -- code and pushing hardcoded assumptions back into "user space"
1.1.4 Add inet_vhostsockaddr() to fill in local sockaddr
1.1.4 Add inet_remotesockaddr() to convert host/port to remote sockaddr.
1.1.4 Don't do reconnect increment before connection -- breaks /server.
1.1.4 Add stuff to configure to check for gethostbyname2, inet_pton, inet_ntop
1.1.4 Add ISC's inet_ntop() and inet_pton() to compat.c, just in case.
1.1.4 I did a checkin somewhere around here.
1.1.4 Fix a few casting bugs found by first wave of testers.
1.1.4 Add a default typedef for socklen_t for those who haven't got one.
1.1.4 Revert ISC's inet_ntop/inet_pton, put in wrappers to inet_(a|n)to(n|a).
1.1.4 Fix API of inet_hntop/inet_ptohn to not use local static vars! yea!
1.1.4 Convert /server and wserv over to "connectory"
1.1.4 Nuke "connect_by_number", huzzah!
1.1.4 Reorder functions in network.c
1.1.4 Convert more (last?) inet_ntoa to inet_ntop, and inet_aton to inet_pton.
1.1.4 Fix bug with $convert() (one_to_another)
1.1.4 Try to make /window create only bind to 127.0.0.1.
1.1.4 Convert $connect() to protocol independance...
1.1.4 This requires converting dcc->offer to a "SS"...
1.1.4 This requires converting dcc_open to working with dcc->offer as an SS...
1.1.4 This makes dcc_open protocol independant (in theory)
1.1.4 Use INADDR_LOOPBACK, if possible, for /window create.
1.1.4 Write connect() wrapper because connect() requires 3rd arg to be correct.
1.1.4 Differentiate between /window noserv and /window discon
1.1.4 Add some larneproofing (protecting against maliciously formatted numerics)
1.1.4 Start pondering a possible DCC REVERSE protocol
1.1.4 Fix $listen() (rb fudd)
1.1.4 Remove some bogus uses of memcpy().  Death to memcpy()!
1.1.4 Half-heartedly add a callback to /DCC stuff, unused for now.
1.1.4 Re-add support for connecting to unix domain sockets.
1.1.4 Better SSL detection (Q)
1.1.4 New functionality for /FE and /FEC -- See UPDATES.
1.1.4 Several more bug fixes.
1.1.4 Release EPIC4-1.1.4
1.1.5 Fix bug
1.1.5 Release EPIC4-1.1.5
1.1.6 Add $killpid() as a favor for Liandrin.
1.1.6 Really fix wserv this time.
1.1.6 Add GETADDR_DOES_NOT_DO_AF_UNIX for KAME, which doesn't do AF_UNIX
1.1.6 Change dcc_raw_connect() to take a string port, not integer
1.1.6 Add LocalIPv6Addr, for IPv6 virtual hostnames
1.1.6 Include <sys/stat.h> in irc_std.h.  Clean up elsewhere later.
1.1.6 Add a bunch of typedefs for IPv6 and stuff.
1.1.6 Change inet_anyton() to take a port string
1.1.6 Change connectory() to take a port string, not a number.
1.1.6 Change my_accept() to Accept()
1.1.6 Add wrappers for getaddrinfo()/freeaddrinfo(), with first letter in caps.
1.1.6 Decouple wserv4 from network.c.  Can do yell() and malloc() in network.c.
1.1.6 Rip a lot of k-rap out of wserv.c that was there only for network.c
1.1.6 Add connectory() (such as it is) to wserv.c.
1.1.6 Change all uses of 'hostname' (a global variable) to 'host'
1.1.6 Rewrite switch_hostname() to use getaddrinfo() + support IPv6 for vhosts
1.1.6 Change LocalIPv4Addr/LocalIPv6Addr to ptrs, manage in switch_hostname()
1.1.6 Remove now unused resolv() function.
1.1.6 Change inet_remotesockaddr() to take a port string, not a number.
1.1.6 Add IPv6 p-addr support to connectory().  Hostnames still default to IPv4.
1.1.6 "EPIC_USE_HIGHPORTS" only works for IPv4 now.
1.1.6 Support IPv6 virtual hosts in inet_vhostsockaddr()
1.1.6 Add IPv6 support to inet_remotesockaddr()
1.1.6 Push AF_UNIX support in inet_remotesockaddr() off to Getaddrinfo().
1.1.6 Convert inet_anyton() to use Getaddrinfo(), which adds IPv6 support.
1.1.6 Add some comments to help me in the future.
1.1.6 Change inet_hntop() to inet_anytop(), inet_ptohn() to inet_anytohn().
1.1.6 Change inet_ntohn() to take a socklen_t, a port buffer/size, and flag arg.
1.1.6 Change inet_ntohn() to use getnameinfo().
1.1.6 Create socklen() which takes an (SA *) and returns the sockaddr's size.
1.1.6 Change dcc inbound connection handler to use extended inet_ntohn() args.
1.1.6 Change $nametoip()/$iptoname() to use inet_anyto(hn|p).
1.1.6 Nuke lookup_host/lookup_addr, last users of gethostby(name|addr).  HUZZAH!
1.1.6 Add AF_UNSPEC support to inet_anyton().
1.1.6 So that means inet_anytop()/inet_anytohn() support ipv6.
1.1.6 Change/break one_to_another() [$convert()]-- fix this later.
1.1.6 Simplify Connect() now that we have socklen().
1.1.6 I never really did like these function names, so...
1.1.6 Change inet_anytop() to inet_hntop(), but still does p->p conversion. :/
1.1.6 Change inet_anytohn() to inet_ptohn(), it does proper p->hn convert. =)
1.1.6 Change inet_anyton() to inet_strton(), "any" is too broad
1.1.6 Change inet_ntohn() to inet_ntostr(), since it does n->p conversions, too!
1.1.6 Add an extra argument to inet_strton(), passed to getaddrinfo().
1.1.6 Remember that inet_ntostr() takes one too, passed to getnameinfo().
1.1.6 Change stuff in dcc.c/functions.c/server.c to accomodate naming changes.
1.1.6 Invert logic in connectory() to use inet_remotesockaddr() to get family.
1.1.6 Fix parse_server_info() to properly handle ipv6 p-addrs
1.1.6 Add support for [<ipv6 p-addr>] to parse_server_info().
1.1.6 Fix an off-by-one error in Getaddrinfo.  Bleh.
1.1.6 Fix a malloc() size mistake in Getaddrinfo.
1.1.6 Clean up configure.in - remove checks for scandir, inet_aton
1.1.6 Convert all uses of inet_pton() to inet_strton()
1.1.6 Convert all uses of inet_ntop() to inet_ntostr()
1.1.6 Remove checks for inet_pton(), inet_ntop(), gethostbyname2() in configure
1.1.6 Remove impls of inet_pton(), inet_ntop(), inet_aton() in compat.c
1.1.6 Alas, inet_strton() must fill in sin_len for 32-bit integer (dcc) case.
1.1.6 Conversion to getaddrinfo()/getnameinfo() complete.  HUZZAH!
1.1.6 Make $connect() family independant.
1.1.6 Add third arg to $connect(), "v4", "v6", or "vu" for IPv4/IPv6/AF_UNSPEC.
1.1.6 This means $connect(::1 ftp v6) works! (IPv6 support) Huzzah!
1.1.6 Remove the 'family' argument in connectory() in wserv4.
1.1.6 Remove the (now) obsolete decl of inet_aton() in ircaux.h.
1.1.6 Allow $iptoname() to accept ipv6 p-addrs as well as ipv4 p-addrs.
1.1.6 Allow $listen() to take a family argument, like $connect().
1.1.6 Add some V6 macros in ircaux.h, modeled after V4 macros.
1.1.6 Add a "family" member to the dcc structure.  Default to AF_INET for now.
1.1.6 Start fetching ports by calling inet_ntostr() instead of peeking directly
      -- into the sockaddr.  This yields protocol independance.
1.1.6 Fix bug where $listen() or /dcc send w/o a virtual host caused NULL deref.
1.1.6 Fix for previous $listen() fix from jm (ce)
1.1.6 Fix /ON ODD_SERVER_STUFF to not have a blank server field (ce)
1.1.6 Fix $chr() so it doesn't have size limits (ce)
1.1.6 Fix get_time() if #undef HAVE_GETTIMEOFDAY (ce)
1.1.6 Addition to tabkey.ce (ce)
1.1.6 Make $listen() and server connections both work at the same time.
1.1.6 Fix decl for 'need_redraw' which is a volatile.
1.1.6 Fix NULL deref if you did /window flush in an empty window (rb adm)
1.1.6 Unbreak larneproofing for /on 367 which was too strict for ircnet. 
1.1.6 Add Getnameinfo(), wrapper for getnameinfo() takes GNI_INTEGER for DCC use
1.1.6 Fix inet_ntostr() to use Getnameinfo() instead of getnameinfo() directly.
1.1.6 Fix inet_ntostr() to return int for success/failure, not hostname.
1.1.6 Fix the DCC handshake generator to use inet_ntostr().
1.1.6 Fix callers of inet_ntostr() to handle integer return values.
1.1.6 Add support in the DCC handshake generator for IPv6 addrs.
1.1.6 Fixed NULL deref if you did /FE with no arguments
1.1.6 Some minor cleanup work in dcc.c, restructure of dcc_open.
1.1.6 Don't outright restrict DCC handshakes to only IPv4.  Getting closer!
1.1.6 Fixes to /fe (ce)
1.1.6 Fix new_next_arg() don't throw away arguments after empty string. (ce)
1.1.6 Add malloc_strcat_c and m_strcat_ues_c, "clued" versions of funcs. (ce)
1.1.6 Fix the variable expansion routines to use the "clued" funcs above. (ce)
1.1.6 Fix "commandqueues" script, move last.qcmd.* -> 1cmd.* (ce)
1.1.6 Add command completion to 'tabkey.ce' (ce)
1.1.6 Add /stack [push|pop|list] bind. (wd)
1.1.6 Trying to get the copyright notices under control now...
1.1.6 Add support for +D channel mode (rb srgeeo)
1.1.6 Fix /defer to pass commands to parse_line() instead of parse_command().
1.1.6 Add support for $* to travel along with /defer
1.1.6 This permits /defer {command;command;...} to work
1.1.6 Add "gailib", a "get(addr|name)info" implementation from the WIDE project
1.1.6 This permits linking on ipv4-only systems. Huzzah!
1.1.6 Fix a bunch of places where ipv4 systems failed to compile
1.1.6 Fix compat setenv() so it doesn't depend on m_sprintf().
1.1.6 Add check for getservbyname() to configure stuff.
1.1.6 Remove /SET RANDOM_LOCAL_PORTS now that it's gone away.
1.1.6 Fix some compile issues in gailib.c, ircsig.c, and keys.c
1.1.6 Add support for 005 numeric in general (ce)
1.1.6 Add support for CHANMODES, PREFIX, and CHANTYPES from 005 (ce)
1.1.6 Add support for UMODES from 005, use $serverctl(get x umodes) to get (ce)
1.1.6 Fix /msg @$fd so $fd must be numer, so /msg @#channel works again (ce)
1.1.6 Add $xdebug(), returns xdebug vals suitable for use with /xdebug (ce)
1.1.6 Fix /xdebug where /xdebug -one,two caused both to turn off (ce)
1.1.6 Fix m_sc3cat_s to call m_c3cat, for optimization purposes (ce)
1.1.6 Change $which() to call path_search directly (ce)
1.1.6 Fix $unsplit() to use the clued-string funcs (ce)
1.1.6 Remove support for UMODES from 005 -- too many servers lie. (ce)
1.1.6 Add two new scripts 'map', a smart mapper, and 'mail', mail checker. (wd)
1.1.6 Fixes to the 'mail' checking script (wd)
1.1.6 Fix chanmodetype() to do map rebuild under more sane (slower) cons. (ce)
1.1.6 Fix for chanmodetype() from MaXxX.
1.1.6 Add channel mode +D to the mode parser. (ce)
1.1.6 Add new test script, 'regress/stat' to test status bar.
1.1.6 Add new script 'mkpdir' to simulate behavior of 'mkdir -p'
1.1.6 Swap mIRC colors 5 and 7, we were using the wrong colors, from MaXxX.
1.1.6 Make /set term_does_bright_blink work again.
1.1.6 Make /timer -update more forgiving, so updating nonexistant timer adds it.
      -- But only as long as you specify all the mandatory fields
1.1.6 Add checks for getaddrinfo() and getnameinfo() in configure.  Oops
1.1.6 Now ipv6 connections to servers work!
1.1.6 Fix $ischannel() so $ischannel() (ie, no args) returns 0 (wd)
1.1.6 Fix $killpid() so you can $killpid(0 <pid>), rb liandrin
1.1.6 Fix warning for /set dcc_use_gateway_addr don't confuse ipv6 server users.
1.1.6 Change warning that unknown channel modes are "type D" not "error" (ce)
1.1.6 Release EPIC4-1.1.6
1.1.7 Rewrote keys.c, completely overhauled the keybinding system. (wd)
1.1.7 Fix all keybinding scripts to no longer use meta states.
1.1.7 Fix window script -- autocompletion of keybindings no longer supprtd (wd)
1.1.7 Release EPIC4-1.1.7
1.1.8 Fix spelling mistake (wd)
1.1.8 Fix bug with bind_string (wd)
1.1.8 Accept +h as a "channel mode with arg" by default (ce)
1.1.8 /exec leak fix for -line, -part, etc. (ce)
1.1.8 /for var from x to y step z works for negative z now. (ce)
1.1.8 Local variable tweaks. (ce)
1.1.8 Fixed $word() to not discard words after a "". (ce)
1.1.8 Fix /userip to use the internal USERHOST queue (ce)
1.1.8 -- You may need to use /userip -direct to avoid the cache (ce)
1.1.8 Karll Array overhaul.  Performance improvements for large arrays. (ce)
1.1.8 Karll arrays now stored unsorted internally (ce)
1.1.8 New funcs $usetitem() and $delitems() work on unsorted karll array (ce)
1.1.8 Karll arrays will be auto-sorted if you do anything that needs it (ce)
1.1.8 Extend karll array funcs to allow for additional item/index args (ce):
      -- $getitem(array $getmatches(array *cat*)) returns all items with "cat"
      -- $getitem(array2 $getmatches(array1 *cat*)) is like $copattern().
1.1.8 Fix the 307 handler (ce)
1.1.8 Better handling for /USRIP, always use the userhost queue (ce)
1.1.8 Add $joinstr() and let $jot() work on floating point variables
1.1.8 Fix expand_twiddle to take a (const char *)
1.1.8 Fix do_log and set_log_file to take a (const char *)
1.1.8 Remove a couple of no-ops in keys.c
1.1.8 Revamp do_log into two parts; open_log,close_log; do_log now a wrapper.
1.1.8 Fix a string that had a newline in it. spotted by Szabolcs Rumi.
1.1.8 Fix /alias /s to use %lu for unsigned longs
1.1.8 Fix ^C so it binds to SELF_INSERT again (wd)
1.1.8 New built in command, /LOG -- general purpose log files
1.1.8 New built in function, $logctl() -- operate on general purpose log files.
1.1.8 Fix add_to_logfiles to handle target == NULL properly. doh!
1.1.8 Add server refnum info to /log list and /log describe
1.1.8 Fix add_to_logfiles, check for log level was inverted.
1.1.8 Switch window/status updates from active to passive-repaint.
1.1.8 -- This reduces unecessary/redundant window/status repaints.
1.1.8 Don't perform useless term_cr()/term_newline() in rite().
1.1.8 Pass 'foreground', not 1 to output_with_count to determine if output ok.
1.1.8 Always use window->screen to determine visibility. Whack 'visible' var.
1.1.8 Rename 'distance_from_display' to 'distance_from_display_ip'
1.1.8 Break add_to_display_list() into add_to_scrollback()/ok_to_output().
1.1.8 Check position of cursor and display_ip at end of window_disp().
1.1.8 Move scrollback trimming to bulk job at end of window_disp().
1.1.8 Don't perform redundant term_flush() at end of window_disp()
1.1.8 Screen no longer needs term_flush().
1.1.8 Don't count lines being held in ok_to_output(). (we can't uncount them)
1.1.8 Whack obsolete 'holding_something', 'held_displayed' 'lines_displayed'
1.1.8 Don't use 'scrollback_point', but rather the flag 'autohold'.
1.1.8 Whack obsolete 'scrollback_point' in (struct window).
1.1.8 Whack obsolete 'lines_scrolled_back' in (struct window)
1.1.8 Don't allow output (ie, scroll window) (ie, window is "held" in place)
   -- If 'hold_mode' (set by /window hold_mode) is on
   -- or 'auto_hold' (set by SCROLL_*) is on
1.1.8 When output is held, you can only move window with scrollback operations.
1.1.8 Fix input.c to call cursor_not_in_display after moving cursor. duh.
1.1.8 Fix screen.c to call cursor_in_display after moving cursor. duh.
1.1.8 Break repaint_window() into repaint_one_line() and repaint_window_body()
1.1.8 If 'window->cursor' == -1, that forces redraw of window body.
1.1.8 repaint_window_body() always redraws entire window body now.
1.1.8 Whack obsolete 'repaint_start' and 'repaint_end' from (struct window)
1.1.8 repaint_one_line() repaints just one line upon request.
1.1.8 Allow /xecho -line on every window (All windows are scratch windows)
1.1.8 Rename 'scratch_line' to 'change_line' in (struct window).
1.1.8 Whack obsolete add_to_scratch_window()
1.1.8 Call update_all_windows() at the end of io() to ensure timely updates.
1.1.8 Move the "update" #define's from window.h to window.c
1.1.8 Add window_body_needs_redraw(), replaces REDRAW_DISPLAY_(FULL|FAST).
1.1.8 Whack no-scroll mode for now, it never did work right.	XXX FIXME XXX
1.1.8 Move add_to_display_list() from screen.c to window.c
1.1.8 Remove distinction between "held buffer" and "scrollback buffer"
1.1.8 Whack unhold_a_window() and unhold_windows(), no more "hold mode"
1.1.8 Whack /SET HOLD_MODE -- use /window hold_mode now (shimmed)
1.1.8 Whack /SET HOLD_INTERVAL -- use /window hold_interval (shimmed)
1.1.8 /CLEAR -U is presently ignored (fixed)
1.1.8 /FLUSH doesn't do /WINDOW FLUSH right now (won't fix this)
1.1.8 Don't unhold after CLEAR_WINDOW and UNCLEAR_WINDOW keybinds. (fixed)
1.1.8 window.c needs putchar_x() now.
1.1.8 Add /WINDOW MOVE_TO <num>, moves window to specific location on screen.
1.1.8 Now stuff is held when you're in scrollback, you scroll all the way down.
1.1.8 Rnm 'recalculate_window_cursor' to 'r_w_c_and_display_ip'
1.1.8 Don't unecessarily call cursor_to_input().
1.1.8 Change last four numbers in geometry info in /WINDOW DESCRIBE
1.1.8 Fix /WINDOW FLUSH to properly flush everything below bottom of screen
1.1.8 If you /WINDOW HOLD_MODE OFF it does an /UNCLEAR
1.1.8 /WINDOW SCRATCH deprecated; takes argument and performs no action.
1.1.8 /WINDOW SCROLL broken; takes argument and performs no action.
1.1.8 /WINDOW SCROLLBACK 0 does a /WINDOW FLUSH. (???)
1.1.8 Add /WINDOW SEARCH_BACK, /WINDOW SEARCH_FORWARD, regex scrollback opers.
1.1.8 Optimize recycling of display lines to avoid one more malloc/free.
1.1.8 Major rewrite of the scrollback/forward/start/end implementation.
1.1.8 Add change_line(), used by /xecho -line to rewrite your scrollback.
1.1.8 Change 'make_status' to take an extra integer argument
1.1.8 Rename 'status_update' to 'permit_status_update'
1.1.8 Add window_statusbar_needs_update(), replaces UPDATE_STATUS
1.1.8 Add window_statusbar_needs_redraw(), replaces REDRAW_STATUS
1.1.8 Whack (redraw|update)_window_statusbar()
1.1.8 Don't bother updating statusbars when it's redundant...
1.1.8 Move logic of whether to calculate status bar into make_status().
1.1.8 Move logic of whether to force redraw status bar into make_status().
1.1.8 Whack %B (always empty string) (fixed)
1.1.8 Change %H so it's on if holding, not if lines held
1.1.8 Make 'never_connected' static to notice.c
1.1.8 Don't use 'never_connected' to figure how to show "can't use nick" nums.
1.1.8 Whack obsolete "redirect" stuff from (struct screen).
1.1.8 Fix some printf-format issues with /alias /s
1.1.8 Make sure we don't pass a negative timeout to select().
1.1.8 Disentagle the key sequence timeout from TimerTimeout().
1.1.8 If you SCROLL_FORWARD to the end, do an /unclear for backwards compat.
1.1.8 Fix /clear -u and /unclear -u to turn off hold mode like they used to.
1.1.8 Fix CLEAR_SCREEN and UNCLEAR_SCREEN keybindings to turn off hold mode
1.1.8 Create /set hold_mode(_interval) compat script shims in 'basical'.
1.1.8 Recalculate the lines_held value when calculating cursor and display_ip.
1.1.8 Fix the lines_held status bar thingee, now full backwards compat.
1.1.8 Fix ok_to_output, update status every /window hold_interval lines, not 10.
1.1.8 Remove K&R support from info.c.sh -- this should make OS X users happy.
1.1.8 Fix bug with SCROLL_FORWARD after doing SCROLL_START.
1.1.8 Fix vhost support so you can turn it off at runtime with /HOSTNAME -
1.1.8 Fix unclear_window() so it calls recalc_cursor_and_display_ip().
1.1.8 Change expand_twiddle(), path_search(), take results as params, int retval
1.1.8 Add normalize_filename(), to do job expand_twiddle() used to do.
1.1.8 Add isdir(), just because
1.1.8 Change /CD, /LOAD, /SAVE, /DCC SEND, /DCC GET, to use normalize_filename.
1.1.8 Change /DCC RESUME, $open(), $which(), $unlink(), use normalize_filename.
1.1.8 Change $rename(), $rmdir(), $fexist(), $fsize() to use normalize_filename.
1.1.8 Change $glob(), $globi(), $mkdir(), $chmod() to use normalize_filename.
1.1.8 Change $ftime(), $randread(), and uzfopen() to use normalize_filename.
1.1.8 Change /LOG, /SET LOGFILE, servers file to use normalize_filename.
1.1.8 Fix /LOG so maximum number of targets per log is a compile time #define.
1.1.8 Revamp expand_twiddle() and uzfopen().
1.1.8 Fix uzfopen() to look for 'bunzip2' in addition to 'bunzip'.
1.1.8 Fix bug with /QUEUE -delete
1.1.8 Remove unused variable in window_scroll().
1.1.8 #include <unistd.h> for configure check for sys_siglist[] for netbsd.
1.1.8 Experimental fix for $indextoword(), worked out with fudd.
1.1.8 Fixed a problem in which dccs failed when dcc_store_path was set (ce)
1.1.8 Fix brain-o that broke /load and a few other non-op changes.
1.1.8 Fix /dcc send breakage (ce)
1.1.8 Move calc of window scrollback buffer before add to screen (didn't fix)
1.1.8 Unify code for /DCC GET and /DCC RESUME (still #ifdef'd and /set off) (ce)
1.1.8 Add checks/workaround for linux's broken realpath(). Bleh.
1.1.8 Add arc4random stuff to compat.c -- will be used later!
1.1.8 Fix $realpath() to use normalize_filename() so it gets realpath() fix.
1.1.8 Add $serverctl(SET <refnum> PRIMARY) to set primary server.  User beware! 
1.1.8 Add /set random_source 3, an arc4random random number generator.
1.1.8 Remove /set suppress_server_motd which didn't really work anyways.
1.1.8 Add function decls for bsd_arc4* to ircaux.c
1.1.8 Always check (window->hold_mode || window->autohold) together!
1.1.8 Unhold_window()s only if both hold_mode and autohold are off!
1.1.8 unhold_window()s instead of doing scrollback_end for robustness.
1.1.8 Attempt to recover from the "output is below bottom of window" bug, whine.
1.1.8 Update copyright notices. erf.
1.1.8 Fix short circuiting in new math parser not to spuriously error
1.1.8 #ifdef out all uses of bogus 'ceiling_of_display' for now.
1.1.8 Pull "initial" part of resize_window_display() into new_window()
1.1.8 Then forcibly call resize_window_display() to update old_display_size.
1.1.8 And then call make_window_current() last, make sure window updates there.
1.1.8 But I think that calling recalc_win_curs_and_disp_ip might be bogus there.
1.1.8 Fix the recovery from the "output below window" bug.
1.1.8 Make notes that calling make_window_current() can kill the window.
1.1.8 Fix /WINDOW NAME take extended-words (/window name "foo bar"), from epic5
1.1.8 Add 'get_geom_by_winref()' for $geom(), 'const'ify things, from epic5
1.1.8 Fix $geom() so it can take a window refnum as an argument, from epic5
1.1.8 Replace $center() with a better one from epic5.
1.1.8 Split apart /ECHO and /XECHO, make /ECHO very streamlined, from epic5
1.1.8 Allow /XECHO -W <#CHANNEL>, (echo to channel's window) from epic5
1.1.8 Make $B, $., $,, $:, $;, $I, /WAIT stuff server specific, from epic5
1.1.8 Make tracking of doing_(privmsg|notice|ctcp) server specific, from epic5
1.1.8 Fixes for Const Correctness.
1.1.8 Implement top-of-minute handling in a system timer
1.1.8 Eliminate top-of-minute handling from io().
1.1.8 Eliminate CPU_SAVER stuff for the time being.
1.1.8 Change time_to_next_minute() to return a (double) not (Timeval)
1.1.8 Change do_input_timeouts() to a timer callback.
1.1.8 Nuke the now unused global /wait stuff
1.1.8 Revamp timer.c so you can add/change/delete/update timers during a timer
1.1.8 Change add_timer() so it takes a winref not a window pointer.
1.1.8 Make the "key timeout" thing happen on demand instead of a recurring timer
1.1.8 Remove the recurring "key timeout" timer.
1.1.8 Remove the 'key timeout' thing from io(), also 'first time' stuff.
1.1.8 Call get_time() after select() in io().
1.1.8 Fix two compile bugs found by larne.
1.1.8 Fix bug when you did /flush on a /clear window.
1.1.8 Uncripple CPU_SAVER mode.  Works fine now!  Huzzah!
1.1.8 Fix /timer -window -1 crash.
1.1.8 Fix /wait (server_hard_wait()) so it tracks/resets from_server (fb CE)
1.1.8 Fix /timer so it tracks from_server properly (fb CE)
1.1.8 Make /lastlog -context work more like grep -<number>
[ce did a bunch of stuff here never added]
1.1.8 Use server_list_size() and not number_of_servers outside of server.c
1.1.8 Use NOSERV and not -1 for "no server"
1.1.8 Use (Timeval) and not (struct timeval)
1.1.8 Fix (get|set)_server_sent_*() et al to take server refnum.
1.1.8 Use parse_server_index() and not my_atol() to parse server refnums
1.1.8 re-indent quotecmd
1.1.8 Rename is_server_connected() to is_server_registered
1.1.8 Make /quote work as long as server is open (not registered)
1.1.8 Use send_to_aserver() when it can avoid setting from_server unecessarily
1.1.8 Change sent_to_server and clear_sent_to_server to (set|get)server_sent().
1.1.8 Change doing_* to get_server_doing_*.
1.1.8 Use (unsigned short) and not (u_short)
1.1.8 Use (unsigned long) and not (u_long)
1.1.8 Make output_reject_ctcp() take a refnum
1.1.8 Lock a dcc while we are connecting it, just in case. ;-)
1.1.8 Fix /dcc send -p <port>
1.1.8 Store protocol enforcements as (get|set)_server_protocol_state().
1.1.8 Use (Stat) and not (struct stat)
1.1.8 Rewrite $timerctl() so it works like $logctl()
1.1.8 Rename is_server_connected() to is_server_registered()
1.1.8 Fix an off-by-one error with /FOR ... IN ...
1.1.8 Keep track of both readable and writable fd's with newio stuff.
1.1.8 Convert server_list to an array of pointers
1.1.8 When user /server -delete's, leave a gap, don't change refnums around.
1.1.8 Nix code that handles deleting server refnums.
1.1.8 New function, new_open_for_writing(), for when we do nonblocking connects.
1.1.8 Change new_open() to deregister fd as "writable"
1.1.8 Renovate the notify stuff to take refnums and not just use from_server.
1.1.8 Renovate /WHO, /ISON, /USERHOST to take refnums not just use from_server.
1.1.8 Make everything that uses server_list[] use get_server() instead.
1.1.8 Make everything capable of dealing with "gaps" in server_list[].
1.1.8 Use a bunch of macros, to handle with getting and setting server attrs.
1.1.8 Make as much as possible use refnums as params and not from_server.
1.1.8 Fix bugs with send_to_aserver(). doh!
1.1.8 Fix /CLEAR so it does an update_all_windows() to actually do the clear!
1.1.8 Keep track of where went into scrollback and only stop at that point.
1.1.8 Remove colon at end of RETURN_MSTR so it is like others.
1.1.8 Unify dgets() and SSL_dgets()
1.1.8 Add a 4th argument to dgets(), an (SSL *) for ssl reads, NULL for normals
1.1.8 Integrate SSL stuff more tightly by removing unecessary #ifdef's
1.1.8 Change 'enable_ssl' to 'try_ssl' to avoid confusion with 'ssl_enabled'
1.1.8 Remove uneccesary members of (Window)
1.1.8 #include "functions.h" in any file implementing built in functions.
1.1.8 panic if ssl op attempted on non-ssl connection.
1.1.8 Don't call functions in RETURN_* macros. (they're evaled twice)
1.1.8 Nuke #ifdef 0'd uses of 'ceiling_of_display'
1.1.8 Fix minor bug with /xquote
1.1.8 Fix minor bug with reconnecting after server write failed.
1.1.8 Set input idle timer better.
1.1.8 Rewrite /stack (push|pop) set so they actually work now.
1.1.8 Release EPIC4-1.1.8
1.1.9 Fix $getset() by using the correct variable to do the lookup. :P
1.1.9 Release EPIC4-1.1.9 (bug fixes)
1.1.10 Fix build error on non-SSL systems.
1.1.10 Fix another build error on non-SSL systems.
1.1.10 Fix all the rest of the build errors now that I am able to.
1.1.10 Release EPIC4-1.1.10 (bug fixes)
1.1.11 Add support for channel mode +C at request of quakenet user.
1.1.11 Allow /redirect =<num> as well as /redirect =<nick> for dcc raw conns
1.1.11 Allow /redirect to use $* if it's available.
1.1.11 Fix $xdebug() to accept wildcard patterns.
1.1.11 Allow /exec -line et al to be changed in already running processes.
1.1.11 next_in_comma_list converted to next_in_div_list, div argument added.
1.1.11 Add /SET FLOATING_POINT_PRECISION, defaults to 6
1.1.11 Change /SET FLOATING_POINT_PRECISION default to 16
1.1.11 Add arg to next_args and new_next args to get a certain number of words
1.1.11 Rewrite /alias xxx (args) handling with next_args_count, not extractw.
1.1.11 Tuned the call.xtrace alias in debug.irc.
1.1.11 Extended $is_on() in guh to allow and return multiple arguments.
1.1.11 Added $is_off() as a compliment to $is_on().
1.1.11 Don't count first incoming line as part of the flood when calcing rate.
1.1.11 Add -l<tcl> to the front of $LIBS so -lm can come after it
1.1.11 Look for SSL stuff in default location before looking in /usr/local.
1.1.11 Reset $withval after perl check so --without-perl doesn't --without-tcl
1.1.11 Make first arg of cvtchar() a (const char *) to silence warning.
1.1.11 Move 'this_sucks' label to a place where it is legal.
1.1.11 Make check_val() cope with NaNs and INFs more graciously...
1.1.11 Fix null deref with /lastlog -c
1.1.11 Update the input line in set_update(), not the caller
1.1.11 Do update the input line when redrawing status
1.1.11 Change make_status() to return a success/failure value.
1.1.11 Don't clear "status line wants redraw" flag if redrawing status fails.
1.1.11 Nuke the now unecessary "in_window_command" global variable.
1.1.11 Fix bug where <scrollback> + <scrollforward> left you in scrollback mode.
1.1.11 Force init of Window->lines_held = 0 even though that shouldnt be needed.
1.1.11 Fix $timerctl() so it actually works (REFNUM/DELETE/GET/SET were broken)
1.1.11 Fix /TIMER -UPDATE so it doesn't reset events to -1 automatically.
1.1.11 Fix panic when you /server over from and to a connected server with chans
1.1.11 Add %{1}R status format, which always gives you the window's refnum.
1.1.11 Updated /redirect usage to reflect features it always had.
1.1.11 Removed size limitations on enquote_it().  This fixes $read().
1.1.11 Fix 'man' script.
1.1.11 Fix /set help_pager off so that it can be used.
1.1.11 Fix status_does_expandos code so it sets from_server to window's server.
1.1.11 Const correctness improvements.
1.1.11 Invert the meaning of 'new_check_flooding' to return TRUE if flooding.
1.1.11 Revamp funny.c, /list, /names, /mode reply handling.
1.1.11 Remove unused joined_nick, public_nick
1.1.11 Change got_initial_version_28() arguments singly and not an array
1.1.11 Change signature of protocol handling to take "command" as an argument
1.1.11 The above change cascades to a lot of other changes.
1.1.11 Allow the /msg'ing of @W<refnum> to msg a window's refnum.
1.1.11 First round of larnification (Protection against unexpected server data)
1.1.11 This involved substantial rewrites of parse.c, and numbers.c
1.1.11 Now "fake" stuff goes through /on odd_server_stuff.
1.1.11 Fix /on invite so it takes 3 arguments, not 2.
1.1.11 Fix targets not being assigned correctly for privmsgs to user.
1.1.11 Send output of who replies to LOG_CRAP as per previous behavior.
1.1.11 Fix /on 368 so it is hooked properly
1.1.11 Call expand_twiddle() and not normalize_filename in $glob[i](). (rb wd)
1.1.11 Fix bug where epic would crash if you try ssl on non-ssl server (wd)
1.1.11 Fix so that stack push set can unset values (thanks to Tyrak).
1.1.11 Fix panic when doing stack push set with an empty set stack or 
       stack pop set with a set stack containing items (thanks to Tyrak).
1.1.11 Fixed ERROR hook to display a star when not connected to a server.
1.1.11 Tuned internal array consistency checking in regression tests.
1.1.11 Added some debugging notices to autoget to warn of common problems.
1.1.11 Rewrite $serverctl() so it matches verbs in a different way.
1.1.11 Add $serverctl(gmatch *pattern*), $serverctl(imatch *pattern*)
1.1.11 Add $serverctl(omatch *pattern*), nix $serverctl(match|pmatch *pattern*)
1.1.11 Add $serverctl(max), returns maximum server refnum.
1.1.11 Change $afterw()/$beforew()/$fromw()/$tow(), use $findw(), not $rmatch()
1.1.11 Fix $writeb() so it dequotes data, so you can write binary data.
1.1.11 Fix /sleep so it takes same arguments as /usleep.
1.1.11 Uniformly use 32 bit file sizes in dcc.  That's the way it has to be.
1.1.11 Split process_incoming_chat into modular functions.  It's an experiment.
1.1.11 Remove the old, #if 0'd dcc_getfile_resume.
1.1.11 Remove the second, redundant warning from /window refnum(_or_swap).
1.1.11 Make the ArgList portion of server messages const.  All const!  Huzzah!
1.1.11 Roll /names, /list, and /mode numeric handlers into numbers.c
1.1.11 Roll "funny" global variables into server-specific variables
1.1.11 Nuke funny.c and funny.h -- huzzah!
1.1.11 /on window_kill provides two args now, $0 is refnum, $1 is name/refnum.
1.1.11 Rename "numeric_banner" to "banner"
1.1.11 Rename "parse_notice" to "p_notice"
1.1.11 In /xecho, rename 'banner' local var to 'want_banner'.
1.1.11 Revamp p_notice to look like and act like p_privmsg as much as possible.
1.1.11 Finish the rest of the larnifications.  Done with phase 1.  Huzzah!
1.1.11 Fixes for NAMES processing, found by paladin (ce)
1.1.11 Fixes for configure to do deeper searching for perl (ce)
1.1.11 Fix /on 311, /on 312. /on 317, /on 353, and /on names.
1.1.11 Split NOTIFY stuff off into its own timer
1.1.11 Add #define MINIMUM_NOTIFY_INTERVAL in config.h
1.1.11 Add set_notify_interval, force that /SET NOTIFY_INTERVAL >= MIN_NOT_INT
1.1.11 Fix default /on 321 output so it doesn't call display_msg.  BAH!
1.1.11 Add $logctl(REFNUMS [ACTIVE|INACTIVE|ALL]), return all logrefs, for wd.
1.1.11 Add an "activity timer" to logfiles to indicate last time written to.
1.1.11 Add /LOG <refnum> ACTIVITY, updates activity timer w/o writing to log.
1.1.11 Add $logctl([GET|SET] <refnum> ACTIVITY) to set/get activity timer. 
1.1.11 Add new script, "suppressmotd" to implemenet /set suppress_server_motd
1.1.11 Don't hook /on names twice in the normal case. (rb void)
1.1.11 Revamp $timerctl() to handle its args like $serverctl() does now.
1.1.11 Add a bunch of new functions in 'functions' script.  See UPDATES.
1.1.11 Experimental change to $glob*() to "dequote" the glob before looking
       for it.  This probably isn't a real answer.  I get the feeling that a 
       new pair of functions that make just one search as keerf suggested is 
       probably the answer.
1.1.11 Set (and destroy) server->funny_match.  Fixes crash using /LIST.
1.1.11 Fix numeric handlers for 313, 317.
1.1.11 Docs say that $info(o) includes 'g' if $glob() is available.  Add it.
1.1.11 Revamp $win(serv|size|chan|bound|level)() to use get_window_by_desc.
1.1.11 Revamp $win(screen)() to use get_window_by_desc.
1.1.11 Use get_window_by_refnum(0) and not 'current_window'
1.1.11 Allow a \ to escape a space where spaces would be stripped.
1.1.11 Above bug fixes things like switch ($foo) {(foo\  ) {...}} to work.
1.1.11 Add handler for /on 330, "user is logged in" numeric in ircu.
1.1.11 Don't honor/ignore "#" in a window name/refnum.  This was lame anways.
1.1.11 Fix is_window_visible/get_window to use get_window_by_desc().
1.1.11 More conversions in functions.c to handle strings-to-winrefs.
1.1.11 Add back support for $mychannels(#winref)
1.1.11 Fix null deref with /LOG KILL
1.1.11 Ignore KICKS based on the victim as well as the kicker.
1.1.11 Don't clobber 'target' in /on general_notice; pass the original target.
1.1.11 Change "word philosophy" in new_next_args() and word_count().  This 
       basically equates to two things..  Quoted words must be seperated by 
       spaces, and the final quote must be present.  Stuff started breaking 
       when I added the second one, so I #if'd it out.
1.1.11 Fixed a leak with "/alias (args) {}".
1.1.11 Fix bogus inverted flood check which broke flood checking.
1.1.11 Add /set flood_ignore (on|off) 
1.1.11 Final changes to $glob*()..  Giving empty string arg will now cause 
       rest of args to be treated as single arg.  
       eg, $glob(""  my "lovely" filename with spaces and quotes.jpg )
       (note spaces at the beginning and end which are part of the filename)
1.1.11 Turned extra options on in the $glob*() glob() call.  Now glob chars 
       may be escaped by preceeding them with slashes, and brace chars
       can be used in this fashion:  file{1,2,33} matches file1, file2, file33.
1.1.11 Cleaned tabkey.ce to deal with violently evil filenames per above.
1.1.11 Added $open(), $read(), $write(), $close() regression tests.
1.1.11 Tuned the autoget script to deal with url quoted dcc requests gracefully.
1.1.11 Got rid of the reference to word_count() in /fe and /fec.
1.1.11 Diked safe_new_next_arg() out and made it use new_next_arg() instead.
1.1.11 Fixed problem that broke ctcp-over-dcc, reported by NSX.
1.1.11 Fixed problem that broke unix socket detection, reported by Q_
1.1.11 Changed the default FLOOD_IGNORE setting to off.
1.1.11 Fixed a bug in the commandqueues script.
1.1.11 Altered 324 processing so that the hook is called when joining a channel.
1.1.11 tabkey.ce alteratered to make input line modification smoother.
1.1.11 Make sure to reset errno before calling strtod() in check_val().
  -- This bug, present from epic4-1.1.1 to commit 470, causes epic to 
     malfunction for a time and can be induced by a remote user.  Be careful.
1.1.11 Ran "Valgrind" over epic which turned up a handful of potential bugs.
1.1.11 Keep two sets of "interesting" fd's, a physical set and a logical set.
1.1.11 This helps us keep track of ``held'' fd's more reasonably.
1.1.11 More minor $dccctl() cleanups.
1.1.11 Changed the log level for when a flood is triggered to CRAP.
1.1.11 Fix $fsize(),$fexists() (for now) to take arg list as filename
1.1.11 In future, look for $glob()s null arg trick for $fsize/fexists().
1.1.11 Fix for an arbitrary select() loop yell from hop and jm.
1.1.11 Fix for a window bug from hop.
1.1.11 More larnifications from rogue servers, reported by cras.
1.1.11 Add extra slop for logically attributed denormalized display strings
1.1.11 Const-ify a few Timevals, just for good measure.
1.1.11 Don't hardcode use of AF_INET in dcc.c, use a global variable for it.
1.1.11 Use "global_family" var to pass hint what proto fam to use. 
1.1.11 Add sanity check just in case window->screen goes NULL in status redraw
1.1.11 Fix several benign compile-time issues.
1.1.11 Reorganize param list to dgets() to include a length argument
1.1.11 Add (set|get)_server_line_length(), the max size of an irc protocol line.
1.1.11 Convert dgets() callers to the new calling style.
1.1.11 Explicitly set "mask" to 0 in cs_alist_hash(), so it is initialized
1.1.11 Change type() to typecmd() to avoid name conflicts.
1.1.11 Change 'dot' to 'dotlocl' to avoid name conflicts.
1.1.11 Change 'op' to 'reduce' to avoid name conflicts.
1.1.11 Fix a typo in the error message from /window kill.
1.1.11 Add a panic to detect larne's recent bug that I fixed, just in case.
1.1.11 Constify the "path" argument to uzfopen().
1.1.11 Make sure return value of strlen() is put in a 'size_t' not an 'int'.
1.1.11 Split load() into load(), load1(); load1() reads a file opened by load().
1.1.11 Now load() is "interpretation-free", and load1() can be replaced.
1.1.11 Fix various minor compile-time issues.
1.1.11 Change %P status line expando to give more useful information.
1.1.11 Make /LOAD locate and open file arguments; and a generic handler
1.1.11 Create loader_which() which a /LOAD handler for /WHICH command
1.1.11 The standard loader is now called "loader_std"
1.1.11 Add an empty next-generation loader called "loader_pf"
1.1.11 Add "loader" info to "load_level" data; It's $2 in $loadinfo().
1.1.11 /LOAD now takes -std and -pf arguments to specify which loader you want.
1.1.11 Implement the "PF" (preformatted) loader.  /LOAD -PF <filename>
1.1.11 Set the "loader type" within each /LOADer
1.1.11 Add proof-of-concept code for /DCC CHAT nick -6 to do ipv6 dcc chat's.
1.1.11 Move add_user_who, add_user_end from parse.c to numbers.c
1.1.11 Add (s|g)et_server_max_cached_chan_size(), max chan size for u@h caching.
1.1.11 Add $serverctl(SET|GET <ref> MAXCACHESIZE), largest chan we do WHO for.
1.1.11 Move 'whobase' call from /on join to /on 324.
1.1.11 Don't call 'whobase' (userhost caching) if too many users on channel.
1.1.11 Fix who replies to use "who target" as target for output.
1.1.11 This makes /ON WHO hook in the correct window.
1.1.11 Add window_scroll_(backward|forward|backwards_lines|forwards_line)
1.1.11 Add /WINDOW SCROLL_BACKWARD, /WINDOW SCROLL_FORWARD
1.1.11 Add /WINDOW SCROLL_START, /WINDOW SCROLL_END
1.1.11 Fix bug that caused cursor to go wacky on screen < 32 columns.
1.1.11 Fix 464 handler to only prompt for password if we're not registered yet.
1.1.11 Fix bug that made ^C,,, slurp up all ,'s after it.
1.1.11 Add /timer -delete_for_window <winref> to delete window's timer.
1.1.11 Enhance my_strerror() to take an EPIC Network Error and an errno.
1.1.11 Enhance Getaddrinfo() to use AF_UNIX path as 'path' not 'host'.
1.1.11 Confirmed that $match("\\[s s1 "s *"\\]" "s s") works like it should now.
1.1.11 Store a "current window priority" number in each window.
1.1.11 Add get_winref_by_servref() returns highest "priority" winref for server.
1.1.11 Have /defer track server, use server's "current window" (per above)
1.1.11 I'd like to have other things use this, like maybe /xeval -s.
1.1.11 Fix a bug with /dcc chat nick -6
1.1.11 Hook up /dcc send nick -6 [filenames] 
1.1.11 Allow $fexist/$fsize/$stat("" <anything>) to work. (ce)
1.1.11 Fix tabkey.ce to take commands that have commands as args, like /eval.
1.1.11 Fix bug with userhost caching.
1.1.11 epic4-1.1.11 (vacuous)
1.1.12 New /set, /SET SWITCH_CHANNELS_BETWEEN_WINDOWS
1.1.12 C language issues (const correctness, integer size correctness)
1.1.12 Revamp channel structure to hold window refnum and not window pointer
1.1.12 Add "current channel counter" to channel structure.
1.1.12 Determine "current channel" by election.
1.1.12 Garbage collect a lot of now unnecessary code.
1.1.12 Add get_echannel_by_refnum(), returns window's "elected" current channel
1.1.12 Add internal function is_waiting_for_channel()
1.1.12 Add internal function move_waiting_channel()
1.1.12 Add internal function get_winref_by_bound_channel()
1.1.12 Add internal function get_bound_channel_by_refnum()
1.1.12 Convert uses of get_channel_by_refnum() to get_echannel_by_refnum()
1.1.12 Fix $winbound() to work when given a window refnum
1.1.12 Fix valgrind issue with $regcomp()
1.1.12 Remove sanity checks from traverse_all_channels(); handled elsewhere now
1.1.12 Change traverse_all_channels() with "this server/not this server" arg
1.1.12 Nuke (Window *)->current_channel.  Handled by channels now.  HUZZAH!
1.1.12 Implement /ON SWITCH_WINDOWS again.
1.1.12 Fix typo in names.h
1.1.12 Don't use isinf(), it's a bsd-ism, use !finite() instead.
1.1.12 Don't hold elections for illegal window refnums.
1.1.12 Channel can't be current if it's not in a window.
1.1.12 Fix status_voice().
1.1.12 Fix $stat() so that it expands ~ correctly.
1.1.12 Fix ctcp over dcc to not coredump.
1.1.12 Fix dcc over dcc to not coredump.  (different issue)
1.1.12 Add %{1}+ as a special favor to howl.
1.1.12 Convert all uses of strcpy() to strlcpy()
1.1.12 Convert all uses of strcat() to strlcat()
1.1.12 Convert all uses of strmcpy() to strlcpy()
1.1.12 Convert all uses of strmcat() to strlcat()
1.1.12 Convert all uses of sprintf() to snprintf()
1.1.12 As much as possible, use 'sizeof var' in snprintf/strlcpy/strlcat.
1.1.12 Qualify the size of some global vars so we can sizeof() them.
1.1.12 Nuke strmcpy(), strmcat(), strmcat_ue(), strmccat(),
1.1.12 Change strmopencat() to strlopencat().
1.1.12 Change strmpcat() to strlpcat().
1.1.12 Fix switch_hostname so it doesn't return a (const) string.
1.1.12 Fix TimerTimeout so it doesn't return a (const) Timeval.
1.1.12 Change things like (ret) to do ret while (0); for when "ret" is "{}".
1.1.12 Fix initialization for load_level
1.1.12 Stop passing in static strings into io(), so we can modify them.
1.1.12 Make messages passed to io() more informative to the user.
1.1.12 Fix CTCP FINGER not to assume (struct pw) strings can be overwritten.
1.1.12 Use (socklen_t) and not an (int) for socket sizes.
1.1.12 Don't return a value in a void function...
1.1.12 Don't use return value of process_dcc_chat_ctcps() for assignment.
1.1.12 Don't put semicolons after function bodies
1.1.12 Fix $getopt() to save 'input_size' so we can use it with strl*().
1.1.12 Convert all uses of stpcpy() to strlcat() and strlopencat().
1.1.12 Nix checks for stpcpy() in configure -- regen configure.
1.1.12 Include strlcpy() in wserv.c for use by gailib.c.
1.1.12 Fixed $prefix() to not return one more char than it should.
1.1.12 Added a $prefix() regression test.
1.1.12 Aesthetic change to /exec pipe cleanups.
1.1.12 Changed nick rolling at 9/NICKLEN chars to handle the two more sensibly.
1.1.12 Move /DCC from commands.c to dcc.c
1.1.12 Nix the "dcc deadlist" crap.  Handle deleted dcc's more sensibly now.
1.1.12 Add a "dequote" internal function that removes "s in extended words.
1.1.12 Add "QWORDS" as new arglist type, for quoted-words with "s left in.
1.1.12 Add "arglist" regression test.
1.1.12 Fix strlcpy() in compat.c so it doesn't walk off end of string.
1.1.12 Implement more sensible "locking" mechanism for dcc's
1.1.12 Nix the nominally unimplemented "encrypt" feature for dcc
1.1.12 Create "dcc_create" to create dcc entry
1.1.12 Remove "creation" functionality from "dcc_searchlist"
1.1.12 Nix global variables 'filesize' and 'global_family' now unneeded.
1.1.12 Change order around of arguments to "dcc_searchlist".
1.1.12 Rename "dcc_opened" to "dcc_connected" since that is what it does.
1.1.12 Add "dcc_garbage_collect" which looks for dcc's that need removal.
1.1.12 Add "get_dcc_by_filedesc" and "get_dcc_by_refnum" to look up dcc's
1.1.12 Add "lock_dcc" and "unlock_dcc" to prevent dcc's from being GC'd.
1.1.12 Double check that all output that occurs in dcc.c goes to LOG_DCC
1.1.12 Use dcc_open in dcc_raw_listen(); dont do the network stuff directly.
1.1.12 Allow "booster ctcp" to be sent for dcc chat re-offerings.
1.1.12 Reorg register_dcc_offer() so it doesn't create dcc until all is well.
1.1.12 Reorganize process_outgoing_file() into sub-functions.
1.1.12 Don't call "dcc_dead" or "dcc_check" in main io() looper.
1.1.12 Fix new_next_arg_count() using real_move_to_abs_word() emulating $1 usage
1.1.12 Fix infinite recursion bug when a channel key contains unmatched (
1.1.12 Add $outputinfo() which outputs "level" and "target".
1.1.12 Add $levelwindow() which returns window refnum for a given level.
1.1.12 Rename 'dcc()' to 'dcc_cmd()' so we can use dcc as variable
1.1.12 Garbage collect unused 'irc_path' global variable.
1.1.12 Add --with-warns to configure to do FreeBSD "WARNS" like compiler checks
1.1.12 Hundreds of changes to improve the "quality of code" in epic, including:
1.1.12 - Treat all literal strings as (const char *) and fix const correctness.
1.1.12 - Mopping up all remaining const-correctness issues
1.1.12 - Don't "launder" a (const char *) to a (char *) in string searches, 
         (ala strchr) but rather return a ssize_t offset value.
1.1.12 - Particular, MatchingBracket() returns (ssize_t) and not (char *).
1.1.12 - Nix all "shadow" variable names by changing them to something else.
1.1.12 - Nix most function decls that do not include a prototype list.
1.1.12 - Add prototypes for all extern functions that are missing them.
1.1.12 - Ensure most function pointers include a prototype list.
1.1.12 - In term.c, most of those (char *)'s are really (const char *)'s.
1.1.12 - Explicitly specify 'static' functions as 'static'
1.1.12 - Ensure every function is either 'static' or has a prototype.
1.1.12 - Nix (unsigned) < (signed) type comparisons.
1.1.12 Hopefully you should not notice any changes!
1.1.12 Fix for $remw() and a corresponding new regression test.
1.1.12 Applied three patches from |rain| to fix perl, dcc and $chr().
1.1.12 The perl one apparently makes it possible to compile for perl 5.8.0.
1.1.12 Made /dcc close use new_next_arg for filenames to make it consistent.
1.1.12 Fixed dcc send resume so that it will resume with mirc.
1.1.12 Change m_strcat_ues_c to take a (char *) "unescape" param and not (int)
1.1.12 Rename m_strcat_ues_c to malloc_strcat_ues_c
1.1.12 Rewrite malloc_strcat_ues_c to support new semantics.
1.1.12 Make sure not to pass 0 to alloca() in ctcp checks
1.1.12 Initialize (DCC)->server [found by valgrind]
1.1.12 Change 'expand_alias' so 'unescape' is (char *) and not (int)
1.1.12 Add extra sanity checks in mangle_line against buffer overruns
1.1.12 Fix window_channel() to use new malloc_strcat_ues() arguments.
1.1.12 Fix the "suppressmotd" script so it actually works.
1.1.12 Fix some casts to update_transfer_buffer() to avoid bad data.
1.1.12 Fix really lame bug I introduced with /eval echo }{.  Don't ask.
1.1.12 Add a kludge to update_all_windows() to thwart infinite recursion.
1.1.12 Add a kludge to update_all_windows() to thwart infinite recursion.
1.1.12 Fix a bug with the HACKED_DCC_WARNING, reported by hsoc.
1.1.12 Add $serverwin(), the server's current window.
1.1.12 epic4-1.1.12 (Innocuous)
1.1.13 Add the 'paste' script, implements "paste only" mode, for anguzhawk.
1.1.13 Prefer (ssize_t) instead of (int) when dealing with string lengths.
1.1.13 New /IGNORE implementation, see UPDATES for all the gory details.
1.1.13 New built in function, $ignorectl(), see UPDATES for gory details.
1.1.13 Add temp strlcpy_c(), strlcat_c(), strlopencat_c() funcs to ircaux.c
1.1.13 Add provisional is_empty() function to ircaux.c for new ignore stuff.
1.1.13 Move the "highlight char" stuff from ignore.c to irc.c and vars.c
1.1.13 Make figure_out_address take a (const char *) since it doesn't change it
1.1.13 Document all the ignore stuff
1.1.13 Fix set_server_away() to accept changed away messages (rb hsoc)
1.1.13 Fix bug reading gzipped files, failed if gunzip was symlink to gzip.
1.1.13 Add 'creation', 'last_used' time and usage counter to ignores
1.1.13 Add support to $ignorectl() to get/set three above values.
1.1.13 Don't do WHOWAS on channels in 401.
1.1.13 Fix $levelwindow() to take a server refnum as the first arg.
1.1.13 Add $dccctl([GET|SET] <refnum> OFFERADDR), the address in the handshake.
1.1.13 Add metric time support -- measured in millidays
1.1.13 Add $metric_time(), which returns <days> <millidays> since epoch.
1.1.13 Add /set metric_time, which makes epic's clock go metric! (default off)
1.1.13 Break update_clock() into three clocks; standard, metric, and broken
1.1.13 Move #define CTCP_* into ctcp.h
1.1.13 Add /xdebug extractw_debug
1.1.13 Move #define LOCAL_COPY and SAFE into irc_std.h
1.1.13 Create compat.h, move all the compat.c decls into there (from ircaux.h)
1.1.13 Create network.h, move all the network.c decls into there (from ircaux.h)
1.1.13 Create words.h, move all the words.c decls into there (from ircaux.h)
1.1.13 Include "compat.h" and "network.h" in ircaux.h
1.1.13 Do another round of make depends
1.1.13 Rename 'search' to 'search_for'.
1.1.13 Fix the metric clock hooking /on timer too much.
1.1.13 Revamp words.c, to support passing word quoter (' or ") as an argument.
1.1.13 Add support for clock_gettime(), a posix version of gettimeofday()
1.1.13 Migrate all use of m_sprintf() over to malloc_sprintf()
1.1.13 Make malloc_sprintf() support NULL first arg to simulate m_sprintf().
1.1.13 Fix some stragglers and GC unused m_sprintf() function.
1.1.13 Fix $serverwin() which was doing a bogus check on server refnums.
1.1.13 Add malloc_strcpy_c, malloc_strcat_c, malloc_strdup, malloc_strdup2,
       malloc_strdup3, malloc_strcat2_c, malloc_strcat_wordlist_c, to ircaux.h.
1.1.13 Fix some pesky const correctness issues with qsort callback args.
1.1.13 Convert m_strdup() to malloc_strdup().
1.1.13 Convert parse_line_with_return() to call_lambda_function().
1.1.13 Nix channel_window, duplicate of get_winref_by_channame()
1.1.13 Make arglist processor panic if it sees an argtype that doesn't exist.
1.1.13 Fix bug with * op in exprs like (a ? b : *c) in new expression parser.
1.1.13 Fix theoretical crash with deleting hooks from /on window. Bleh.
1.1.13 General cleanups in if.c.
1.1.13 Fix /timer -list acting all wacky.
1.1.13 Fix compilation warnings, you know the deal...
1.1.13 Convert m_[s]c3cat[_s]() to malloc_strcat_wordlist_c()
1.1.13 Nix m_e3cat(), m_s3cat(), m_s3cat_s(), m_3cat()
1.1.13 Nix m_ec3cat(), m_sc3cat(), m_sc3cat_s(), m_c3cat().
1.1.13 Convert m_dupchar() to malloc_dupchar().
1.1.13 Convert m_strndup() to malloc_strndup().
1.1.13 Macro malloc_strcpy/malloc_strcat/malloc_strcat2/malloc_strcat_wordlist
1.1.13 Convert m_2dup() to malloc_strdup2().
1.1.13 Convert m_3cat() to malloc_strcat2[_c]().
1.1.13 Convert m_3dup() to malloc_strdup3().
1.1.13 Convert m_ec3cat() to malloc_strcat2_c()
1.1.13 Use strlcat_c() in $repeat() instead of strlcpy(). whee!
1.1.13 Sanity check first arg to $regcomp(), to avoid crashes.
1.1.13 Don't pass NULL to bsearch(), even if 'nmem' is 0 [$remws()]
1.1.13 Nix the original malloc_strcpy (supplanted by malloc_strcpy_c)
1.1.13 Comment out all the deprecated functions
1.1.13 Nix include/crypt.h and do another make depend.
1.1.13 Roll in the new universal_next_arg_count() and attendant macros.
1.1.13 Comment out some deprecated function decls in ircaux.h
1.1.13 Do another round of make depends.
1.1.13 Modify alias arglist code to use the new universal_next_arg_count() stuff
1.1.13 Convert dequote() to dequoter().
1.1.13 Convert new_new_next_arg() into new_new_next_arg_count().
1.1.13 Comment out deprecated functions in ircaux.c -- will be deleted later.
1.1.13 Fix a couple of compiler warnings from freebsd-5
1.1.13 Revamp move_to_prev_word() so its behavior isn't stinky
1.1.13 Same thing with move_to_next_word(), and they need to be commented.
1.1.13 Now move_to_abs_word() doesn't need to skip leading spaces.
1.1.13 Remove now pointless "strip extraneous spaces" feature.
1.1.13 Don't worry about cheating in real_extractw
1.1.13 Fix last_arg() per all of the above
1.1.13 Fix bug where $<num> (as the last word) would chop off the last character
1.1.13 It is necessary to remove trailing spaces for $<num>, backwards compat.
1.1.13 Make /load trap the /return command -- see doc/pf-loader for why.
1.1.13 Add #define MINIMUM_CLOCK_INTERVAL and MINIMUM_MAIL_INTERVAL in config.h
1.1.13 Add #define DEFAULT_CLOCK_INTERVAL and DEFAULT_MAIL_INTERVAL in config.h
1.1.13 Add reset_system_timers(), do_update_clock(), and set_cpu_saver_after()
1.1.13 Add time_to_next_interval(), general form of time_to_next_minute().
1.1.13 Add get_clock() and reset_clock() to replace update_clock().
1.1.13 Make remove_timer() an extern function so i can delete timers. ;-)
1.1.13 Add /SET CLOCK_INTERVAL and /SET MAIL_INTERVAL
1.1.13 Make $T use the static clock.
1.1.13 Reorganize system timers 1 and 2 into four timers:
1.1.13 - CPU SAVER timer, checks for idleness, to turn on cpu saver
1.1.13 - CLOCK timer, updates the status bar clock periodically
1.1.13 - MAIL timer, checks for new mail periodically
1.1.13 - NOTIFY timer, checks for others on irc periodically
1.1.13 The above three honor "cpu saver" mode.
1.1.13 Nix the old "do_every_minute" timer.
1.1.13 Reorganize the clock generation stuff into "reset_*_clock" functions
1.1.13 Generate the clock statically; only update it from the CLOCK timer
1.1.13 Add reset_system_timers() which regenerates all four system timers.
1.1.13 Don't set system timers in main, call reset_system_timers() instead.
1.1.13 Don't enforce "notify interval" in do_notify(), but in NOTIFY timer.
1.1.13 Comment stuff in words.c
1.1.13 Change #define DEFAULT_CPU_SAVER_EVERY to 60, it needs not be 0.
1.1.13 Create 'clock.c', to hold clocks, system timers, cpu saver watchdog
1.1.13 Create notion of "sys(tem)timers", callbacks for mail, notify, clock gen.
1.1.13 Add 'system_timer', generalized callback for all of the system timers.
1.1.13 Fix add_timer() so the 'command' argument does what the docs say it does.
1.1.13 Extern 'timer_exists' so we don't try to remove_timer() and invalid timer
1.1.13 Redo dependancies because clock.h exists.
1.1.13 Add code to bootstrap mail systimer with /set mail
1.1.13 Add code to bootstrap clock generation with /set clock
1.1.13 Add code to bootstrap notify handling with /set notify_interval.
1.1.13 Start enforcing "NOTIFY_INTERVAL" again to avoid excess flood.
1.1.13 Maybe I fixed the "(Mail: )" bug?  Maybe not.
1.1.13 Don't allow user to /window number a window with a channel (avoid panic)
1.1.13 Make check_mail return a (const char *), fix status_mail().
1.1.13 Modularize/reorganize mail checking, with mbox reference implementation.
1.1.13 Automatically /set mail 0 if the user's mbox can't be found.
1.1.13 Fix time functions to take (const Timeval) if they don't change the arg.
1.1.13 Create a special handler for /squit to avoid sending QUIT * to server.
1.1.13 Protect IPv6 stuff i added recently to dcc with #ifdef INET6.  Ooops.
1.1.13 Hack up $repeat(<num><space><space>) so it works again. ugh.
1.1.13 Hack up /set <variable><space><space> so it works again.  ugh.
1.1.13 Dont allow /timer -repeat -1 0 because that busy-loops.
1.1.13 Add shell of $windowctl() which will be filled in going forward.
1.1.13 Add a more sensible 'make installhelp' rule, courtesy of Steven Plunkett
1.1.13 Don't prohibit universal_next_arg_count() from returning empty_string.
1.1.13 Add /set notify, to control whether to do notify or not.
1.1.13 Rework the bug report form to point people to the bugs website
1.1.13 Add /lastlog -target.
1.1.13 Protect against panic if you do dcc while not connected to server
1.1.13 Protect against panic if /set mail 0 is off by default
1.1.13 Add "ON/OFF" toggle set variable to the system timer data.
1.1.13 Create 'update_system_timer' which uses "toggle" to run or stop timer
1.1.13 Merge '(start|stop)_system_timer' into 'update_system_timer'
1.1.13 Nix #define MINIMUM_(NOTIFY|CLOCK|MAIL)_INTERVAL for cause.
1.1.13 Don't enforce mins for /SET *_INTERVAL since user could get around it.
1.1.13 Track "last event" time, maybe I'll use that in the future
1.1.13 Reset "now" global variable before calling timer callback.
1.1.13 Fix null deref bug with $($$)
1.1.13 Add default binding to ^G to "self_insert" for beeps.
1.1.13 Do not enforce MINIMUM_NOTIFY_INTERVAL in do_notify()
1.1.13 Don't include exec.h from screen.c
1.1.13 Add 'number' (floating point) field to /set's
1.1.13 Add FLOAT_TYPE_VAR type for /set's, using 'number' field
1.1.13 Update all the /set entries to include a default 'number' field.
1.1.13 Add get_float_var() to get the 'number' field in a set.
1.1.13 Add set_float_var() to set the 'number' field in a set.
1.1.13 Teach set_variable() about FLOAT_TYPE_VAR sets.
1.1.13 Teach save_variables() about FLOAT_TYPE_VAR sets.
1.1.13 Teach get_string_variable() about FLOAT_TYPE_VAR sets.
1.1.13 Change all /SET callback functions to take (const void *).
1.1.13 Fix some rather obvious bugs.  I take the blame for all this.
1.1.13 Fix $<num> to not have leading/trailing spaces, cause zinx said so. ;-)
1.1.13 Fix real_extract2 because I'm a moron.  Ugh.  (bugref 4)
1.1.13 Add jm's 'tabkey.jm' script.
1.1.13 Fix some compile warnings, use (intptr_t) -- i hope this doesn't bite me.
1.1.13 Fix $push(:foo   ) and $unshift() too, (bugref 5)
1.1.13 Change word handling for eg, [foo   ] so $0 is [foo] and $1 is [  ].
1.1.13 Include <stdint.h> or <inttypes.h> if they exist.
1.1.13 Reorg, documented and generally screwed around with data_array/struct.
1.1.13 Swap <home> and <end> auto-keybindings (wd)
1.1.13 Very minor syntax changes to script/functions and script/deban.
1.1.13 Fix buffer overrun crash with CTCP UTC.
1.1.13 Fix /dcc chat nick -p 4444
1.1.13 Return empty string if you do $aliasctl(pmatch <bogus> <whatever>)
1.1.13 Update some copyright notices.
1.1.13 Fix panic from $push(:foo )
1.1.13 Fix /ON ENCRYPTED_[PRIVMSG|NOTICE] (ce, rb hsoc)
1.1.13 Start getting umodes from 004, via $serverctl([gs]et <ref> umodes) (ce)
1.1.13 Revert all uses of LOG_CURRENT to LOG_CRAP
1.1.13 Change all uses of message_to(0) to message_to(-1)
1.1.13 Fix show_help(), don't change to_window, it don't care about that.
1.1.13 Fix help_put_it(), don't change message_from, don't care about it.
1.1.13 Fix /lastlog to use message_to(0) to send all output to current window.
1.1.13 Don't make output of /log go to current window -- no point to that.
1.1.13 Teach add_to_screen() to honor from_server's currwin for LOG_CURRENT
1.1.13 And for /set current_window_level as well
1.1.13 Fix message_from(), don't save/restore lastlog level, don't care.
1.1.13 All of this pretty much nukes LOG_CURRENT except for /window, HUZZAH!
1.1.13 Make /window swap update the current-window-priority thingee.
1.1.13 Fix /on ctcp_reply so it hooks in the LOG_CTCP context. (rb jm)
1.1.13 Fix my_strnicmp() cause irc servers consider ^ and ~ the same character.
1.1.13 Nominally support /dcc rename <nick> <file> <absolute path>
1.1.13 Fix /set mail 3 so it doesn't panic, fix /set mail 4 so it doesn't panic.
1.1.13 Don't allow the user to /server -delete the last server entry.
1.1.13 Fix @ {<command>} to not infinite loop looking for $FUNCTION_RETURN.
1.1.13 Fix it so you can compile on systems without (intptr_t) again.
1.1.13 Add $servernick(<global>) to return the client's global nickname
1.1.13 Fix /set mangle_inbound, $servernick()
1.1.13 Add new ircII-compatable /window hold_mode thingee.
1.1.13 Add /set hold_slider, /window hold_slider
1.1.13 Add 'hold_mode' script, implements ircII-like /set hold_mode[_interval]
1.1.13 /XEVAL -- ends eval option processing, like how /xecho does it.
1.1.13 Fix $servernick()
1.1.13 Implement "priveleged yells" which lets you do /set debug 7 again.
1.1.13 Fix UNSTOP_ALL_WINDOWS keybinding, reported by ce.
1.1.13 When sending /dcc chat message, make sure to call message_from properly.
1.1.13 Make the int type in the new math parser a typedef so ce can change it.
1.1.13 Set the window's waiting channel before sending out the JOIN
1.1.13 Let <pagedown> and <end> work on hold mode as well as scrollback.
1.1.13 Release 1.1.13 (Insidious)
1.1.14 Allow $serverctl(SET <refnum> UMODES) to work around ratbox-1.2-3.
1.1.14 Work around "(brown paper bag release)" version in 004 in ratbox-1.2-3
1.1.14 Use the server's message in our default 330 output.
1.1.14 Make $numwords() use count_words() as a test.  Looks ok so far...
1.1.14 Make $indextoword() use count_words().
1.1.14 Implement regression tests for $indextoword()
1.1.14 Any further problems with $indextoword() should add regress tests!
1.1.14 Make epic behave like ircII when doing /window create with screen and X.
1.1.14 Make move_to_next_word() stop when it hits a trailing nul, duh!
1.1.14 Add /set wserv_type, either "xterm" or "screen".
1.1.14 Add malloc_strcat_word_c, add a single word to word list, with "" support
1.1.14 Convert a bunch of stuff to use malloc_strcat_word_c to honor ""s right.
1.1.14 GC a bunch of unused code.
1.1.14 Add /on dcc_activity, to allow scripters a way around %D.
1.1.14 Nix the never valid network error code -15 (duplicate of -6)
1.1.14 Sanity check family in a dcc handshake with the bind before sending it.
1.1.14 Add /who -operspy for hybrid opers.
1.1.14 Cleaned data_array and data_struct code and structure up a bit.
1.1.14 Added more hook protection to the debug.irc script.
1.1.14 Release 1.1.14 (Sacrosanct)
1.1.15 Fix bug in tabkey.ce where recursion didn't work in the middle of line.
1.1.15 Make it possible to tab complete /help without having to tab complete
       any of the previous words.  This _may_ not work on all operating systems.
1.1.15 Added the INTFUNC define alongside INTTYPE in expr2.c.
1.1.15 Make setting notify_interval and mail_interval update the system timer. 
1.1.15 Fixed "/exec -line {} %pid" so that the exec hooks are called again.
1.1.15 Fix panic with $joinstr()
1.1.15 Fix compiler warning comparing pointer against integer
1.1.15 Fix word appender to NOT USE DOUBLE QUOTES if /xdebug extractw is off!
1.1.15 Fix the word appender so it actually works right.
1.1.15 Fix urldecode
1.1.15 /lastlog -msgs 3 is obliged to start back 3 msgs, not 3 lastlog entries.
1.1.15 Release 1.1.15 (Fabrication)
1.1.16 Fix $V
1.1.16 Introduce experimental infinite recursion detector and inhibitor.
1.1.16 Release 1.1.16 (Fabrication)
1.1.17 Implement experimental infinte recursion detector, see config.h
1.1.17 current_window_priority should be global variable
1.1.17 Valgrind is my hero -- fix buffer underruns with mangle_line().
1.1.17 Make "current input window" its server's current window on user input.
1.1.17 Fix a possible logic hole in ok_to_output().
1.1.17 Fix /window query, it was a victim of larneproofing.  Ooops!
1.1.17 Hook in $windowctl(), just for fun for now.
1.1.17 Enclose a few more dcc outputs in the target nick context.
1.1.17 Fix panic when you did /clear + <scrollback> + full page of output.
1.1.17 Fix typo that broke /notify on servers other than refnum 0
1.1.17 Release 1.1.17 (Paronymous)
1.2.0 Make /server <host> honor server groups if can't connect to <host>
1.2.0 Make reconnects use the server group of NEW server not OLD server.
1.2.0 Add checks in configure for (long long)
1.2.0 Make support for (long long) unconditional in new math parser
1.2.0 Make 'l' appear in $info(o) if (long long) is used in new math parser.
1.2.0 Make wrapper for atoll() for freebsd-stable and stuff.
1.2.0 Make a more complicated wrapper for atoll() for libc5 and stuff.
1.2.0 Fix panics when changing hidden window's double status bar status.
1.2.0 Fix /lastlog <number> for kanan. 
1.2.0 Add /ON WINDOW_COMMAND, hooked after every /window command, $* is refnum.
1.2.0 Add concept of "fixed" or "frozen" windows when you SKIP ON FIXED ON
1.2.0 Fix /window kill to not kill the last "non-fixed" window
1.2.0 Fix /window hide to not hide the last "non-fixed" window
1.2.0 Allow /window kill to kill a "fixed" window, but not the last window.
1.2.0 (*gulp*) I hope all of the above works!
1.2.0 Fix $windowctl(REFNUM ...) it was out of order with REFNUMS
1.2.0 Make /xecho -l override the "who_from" target and always send to the level
1.2.0 Fix raw listen DCCs not obey /SET DCC_TIMEOUT.
1.2.0 Added outputting of long long ints to new math parser.
1.2.0 Add $windowctl(GET <refnum> DOUBLE) 
1.2.0 Support inbound double quoted filenames in dcc handshakes. bleh.
1.2.0 Fix NULL deref when you kill hidden windows (ie, /window killswap)
1.2.0 Update tabkey.jm one last time
1.2.0 Add 'notify' script, a replacement for the notify command.
1.2.0 Fix $windowctl(GET <refnum> DOUBLE)
1.2.0 Make /on window_command give two refnums, the before and after refnums.
1.2.0 Release 1.2.0 (Parracidal)
1.2.1 Fix the larnfications in numeric_handler(), it was defective all over.
1.2.1 Fix a NULL deref if you do /window when there is no current window (!)
1.2.1 Update notify script from jm, add sping script from jm.
1.2.1 More script changes from jm.  Gotta ask him to stop this. :d
1.2.1 Another round of minor compiler nits.  Nothing worth fretting over.
1.2.1 Fix a couple of minor compiler nits.
1.2.1 Release 1.2.1 (Funambulism)
1.2.2 Add /SET STATUS_NOSWAP
1.2.2 Fix #define DEBUG_EXTRACTW_DEBUG/LASTLOG
1.2.2 Add -o and -O command line options to turn off IEXTEN termio() options
1.2.2 Add /WINDOW SWAPPABLE (defaults to on)
1.2.2 Add %{1}W status expando, expands to /SET STATUS_NOSWAP if SWAPPABLE OFF
1.2.2 Don't allow windows to be swapped in or out if SWAPPABLE OFF
1.2.2 Don't allow windows to be shown or hidden if SWAPPABLE OFF
1.2.2 Do allow windows to be swapped in with WINDOW KILL even if SWAPPABLE OFF
1.2.2 Add $windowctl(GET <refnum> SWAPPABLE)
1.2.2 Fix /window next, /window prev (SWAP_NEXT_WINDOW/SWAP_PREV_WINDOW) to 
      skip non-swappable windows.
1.2.2 Fix /window kill so it doesn't swap in a window too early.
1.2.2 Make NOTICEs from servers to channels (ircnet) go to that channel's win.
1.2.2 Release 1.2.2 (Erstwhile)
1.2.3 Tell getopt about -o and -O
1.2.3 Fix bounds error in /exec -direct
1.2.3 The last argument to open_file_for_write() needs to be lowercase.
1.2.3 Add $numlines() from fudd.
1.2.3 Release 1.2.3 (Petulance)
1.2.4 Fix some issues with $numlines()
1.2.4 Fix DCC events so that they occur in the context of "no server" (FROMSERV)
      rather than the "current server" (NOSERV).  This can fix or completely 
      break certain intermittent scripting problems.
1.2.4 Fixed {f,}q1cmd in commandqueues so that it works properly in the 
      "no server" context.
1.2.4 Make the output-window-searcher ignore from_server for LOG_DCC
1.2.4 Make status_hold and status_hold_lines use scrollback numbers too.
1.2.4 Make add_to_scrollback() redraw status bar if output while scrollbacking.
1.2.4 Do not increment arg_count when ignoring an empty argument in arglists.
1.2.4 Release 1.2.4 (Preparator)
1.2.5 Add /ON WINDOW_BEFOREKILL
1.2.5 Another iteration of the 'notify' script, hooks the system's /ONs now! =)
1.2.5 Put a space in place of a newline in the PF loader.
1.2.5 Always ignore spaces after semicolons in parse_line (the {} parser).
1.2.5 Some compiler warning fixes from rain.
1.2.5 Fix defects and a memory leak in the pf loader.
1.2.5 Fixes to 'less' script from howl
1.2.5 New 'help' script from howl
1.2.5 Add /WINDOW SCROLLADJ.
1.2.5 Make inet_vhostsockaddr() extern so dcc can use it
1.2.5 Make dcc_open() use inet_vhostsockaddr() to bind /hostname to dcc conns
1.2.5 Don't allow -b and -q, or -b -and -s, as they cause deadlocks/panics
1.2.5 Fix casting error that caused $urlencode() of high bit chars to segfault
1.2.5 If swapping in a window that has no room for double status, recalc all
1.2.5 If double-on in a window that has no room for it, recalculate all
1.2.5 Fix for rain's meta-compat script
1.2.5 Change default of /SET AUTO_REJOIN to OFF.
1.2.5 Release 1.2.5 (Functor)
1.2.6 Allow semicolons in the middle of the /switch command.
1.2.6 Release 1.2.6 (Saponin)
1.2.7 Fixed $shuffle*() to respect extractw. (ce)
1.2.7 Make $rest() behave like $right() when given negative value. (ce)
1.2.7 Make $joinstr() acces any number of vars and, and honor extractw (ce)
1.2.7 Fixed an extractw bug in malloc_strcat_word_c while testing above. (ce)
1.2.7 Performance optimisation for $shufflef() (script/functions). (ce)
1.2.7 Add /set dcc_dequote_filenames (ce)
1.2.7 Minor bug fix for script/data_struct. (ce)
1.2.7 Rolled in changes to 005 processing as per discussions with Larne. (ce)
1.2.7 Fix bug with nicks ending with \ in 353 which has trailing space (ce)
1.2.7 Auto-close DCC's that can't send handshakes due to family mismatch. (ce)
1.2.7 Fixed a bug in dcc_spacefix which basically made it inoperable.  (ce)
1.2.7 Added a bit of backstop support for resuming dequoted DCC GETs.  This is 
      not really a fix since both resume and double quoted filenames break 
      protocols.  It is only really designed to work with mIRC. (ce)
1.2.7 Reworked $copattern() so that it could be used with $cofilter(). (ce)
1.2.7 Fix $ischannel(), $ischanop() not require args be precisely spaced. (ce)
1.2.7 Added 005 + tags which permit a tag to be appended to as per discussions 
      with Larne.  It should be noted that there is no protection in this 005 
      system against malicious servers sending large amounts of tag data in an 
      attempt to overflow the clients memory.  This + tag modification also 
      makes it possible for a server to do the same thing with a single tag, 
      but at the same time cause excessive CPU usage in strcat(). (ce)
1.2.7 Updates from jm and howl for their scripts
1.2.7 Add 'urlgrab' script contributed by wc.
1.2.7 Release 1.2.7 (Invidious)
1.2.8 Fix some minor bugs.
1.2.8 Release 1.2.8 (Invidious)
1.2.9 Fix /on ssl_server_cert, from rain's nay-vote, ok'd by ay-ar (ce)
1.2.9 More fixes for filenames-with-spaces and dcc resume.
1.2.9 Fix /WHO arg handling.  The old code wouldn't do /who -oper
1.2.9 Fix \\ handling after * and %.  From zinx's nay-vote.
1.2.9 Fix configure to find tcl 8.4. (ce)
1.2.9 Fix bug with $ at end of string (ie, echo $($))
1.2.9 Fix bug with lines containing only /, from |rain|.
1.2.9 ERASE_LINE doesn't clobber cut buffer if input line is empty. (wd)
1.2.9 Release 1.2.9 (Badger)
2.0 The nick list in 353 is not mandatory (rb deww)
2.0 Fix a NULL deref with /window channel frobnitz hide
2.0 jm wants one more fix to his script
2.0 EPIC4-2.0 VOTE OF CONFIDENCE PASSES 15-0
2.0 Fix some bugs with /dcc send <nick> <non-existant file>
2.0 Fix my_realpath() for linux users.
2.0 Fix many errors using realpath() and normalize_filename().
2.0 EPIC4-2.0 released here
2.1.1 Fix typo for SSL users.
2.1.1 Fix bug with TOGGLE_STOP_SCREEN for Brian Feldman
2.1.1 Fix bug with not redrawing help window for Zlonix
2.1.1 Fix bug with not being able to bind character 255 for Zlonix
2.1.1 Fix bug with indent > screen / 3 truncating to 0 for BlackJac
2.1.1 Implement "unique id" support for ircnet (042 numeric)
2.1.1 You can /nick 0 or /nick <unique_id> for ircnet.
2.1.1 You can use $servertctl([SET|GET] <refnum> UNIQUE_ID) for ircnet.
2.1.1 Allow /userhost <uniqueid> for ircnet.
2.1.1 Allow 'epic 0 <servername>' for ircnet.
2.1.1 Increase buffer for %F (and %{1}F) from 80 bytes to 2k for fudd.
2.1.1 Avoid NULL deref on brok^H^H^H^Hempty numeric replies.
2.1.1 Add %{2}W and %{3}W from epic5 for blackjac.
2.1.1 Fix $stripcrap(ALL,-<type> ...) from epic5 for blackjac.
2.1.1 Add support for +e and +I numeric replies for efnet.
2.1.1 Fix a compile error when doing password protection (bug 12)
2.1.1 When creating the 'epic' symlink, use a relative path for jm. (bug 9)
2.1.1 Fix compile warning for alloca on freebsd-current for blackjac. bleh.
2.1.1 EPIC4-2.1.1 released here
2.1.2 Fix color bleeding with color changes in middle of long words that wrap.
2.1.2 Fix $logctl().
2.1.2 Also fix a bug with % followed by \ i wildcard patterns.
2.1.2 Change mangling so ANSI turns off ALL_OFF unless all attributes are on
2.1.2 Fix brain-damage per above.
2.1.2 Fix space-related panic.  See UPDATES for all the gruesome details.
2.1.2 Add ALT_CHAR to the list of things that can be mangled.
2.1.2 EPIC4-2.1.2 released here
2.1.3 Fix wording of default messages for 347 and 349 numerics.
2.1.3 Fix column alignment for /timer list.
2.1.3 Fix add_to_window() to stop runaway recursion through /set output_rewrite.
2.1.3 Fix bug in expand_alias() -- all output must be privileged_yell()!
2.1.3 Change /on send_to_server so it can't be hooked recursively.
2.1.3 EPIC4-2.1.3 released here
2.2 Use 'numeric' not 'current_numeric' in the numeric handler, doh!
2.2 EPIC4-2.2 was released here
2.4 Fix null deref when you do /window flush while not in hold mode.
2.4 Fix /away -all
2.4 Fix /window <refnum> scroll_[backwards|forwards]
2.4 Fix 353 numeric so channels w/o users on ratbox aren't "odd"
2.4 Fix null deref when you do /window flush while not in hold mode.
2.4 Fix /away -all
2.4 Fix /window <refnum> scroll_[backwards|forwards]
2.4 Fix 353 numeric so channels w/o users on ratbox aren't "odd"
2.4 Fix problems with translation, particular for zlonix.
2.4 A tab between [ref] and pattern in /ignore is visually jarring. Use space.
2.4 Fix problems with LOG_REWRITE and window refnum -1.
2.4 Fix bug with deleting user-created bind functions (wd)
2.4 Fix 'get_local_server_port', add $serverctl(GET * LOCALPORT). (fudd)
2.4 Fix /while et al to not do LOCAL_COPY within an infinite loop, from epic5.
2.4 Fix error messages when you /exec -direct asdf, from epic5.
2.4 Add more gracious support for unique id's and nickname 0, from epic5.
2.4 Fix output from exec to go to correct server
2.4 Fix two 64-bit pointer errors (one in dcc.c, and one in who.c)
2.4 Fix refresh_a_screen() to not pass NULL to recalculate_windows().
2.4 Fix crash caused by out of bounds numeric (only bug found by ircfuzz!)
2.4 Fix two more larnification bugs found by ircfuzz.
2.4 EPIC4-2.4 was released here (Languish)
2.6 Fix crash caused by /NICK <unique id> on ircnet.
2.6 Add support for maildir mail boxes, which must be selected at compile time.
2.6 Add a missing cast for printf when sending a dcc handshake.
2.6 Support isfinite() for hpux/c99 alongside finite() for bsd.
2.6 Fix bug where SIGCHLD can be blocked and never unblocked.
2.6 Fixes to support socks5 again, at least on freebsd.
2.6 Fix crash with $xdebug() with no arguments.
2.6 EPIC4-2.6 was released here (Plebiscite)
2.8 Fix inability to /query an /exec'd process. (rb Godlkworth)
2.8 Add support for +T by special request.
2.8 Fix crash for /parsekey type_text
2.8 Add $windowctl(GET <refnum> CHANNELS) in kindness to BlackJac.
2.8 Fix brain-o in a previous fix.
2.8 Port $strtol() and $tobase() from epic5. On request from |Rain|.
2.8 Fix $tobase() bug - $tobase() now supports negative integers.
2.8 EPIC4-2.8 was released here (Officious)
#End of file