pre-release versions of eggdrop...

v0.9t  [1feb96]

* Tcl 'dcclist' was not giving the full list (fixed)  [found by andy]
* added "splt" and "rejn" bindings for splits and rejoins on the channel
* SIGWINCH was causing hpux heart problems -- changed to SIGCHLD
* revenge comments include a timestamp now  [suggested by romulus]
* tries to gracefully recover if it suddenly realizes it's on a channel
  but was never notified that it had joined
* sharebots were crashing while sending the userfile (fixed)
* throws out join notices that it receives while the channel is pending
* failed DNS lookup on server connect would cause crash (fixed)  [found
  by curt lewis]
* Tcl bindings now require exact flag matching now -- masters don't
  automatically trigger them
* was crediting uploads to nickname instead of handle (fixed)  [found by
  trojan]
* better botnet safety
* tried to make channel assoc's be more killable
* wasn't clearing status flags on people returning from splits (fixed)
* '.trace' wasn't working (fixed)

v0.9s  [27jan96]

* could remote boot the bot owner (fixed)  [found by flyin lion]
* if one master on the channel places a ban on another master, the bot
  will not reverse the ban nor auto-kick (just sit and watch the fun)
* binds that matched against wildcards were calling the first match
  then quitting, instead if triggering all the binds that matched (fixed)
* spoofed eggnet commands are no longer allowed
* new Tcl command 'gethosts'
* improved method of displaying long outputs from '.tcl' and stopped it
  from being able to corrupt variables
* notes were echoing, regardless of the 'echo' setting (fixed)
* sometimes binds were overlapping (fixed i think)
* checks the 'eggdrop.pid' file to prevent multiple loading of the same
  bot
* was kicking users off the party line if they lost +p, which broke the
  pinvite script (fixed)  [found by gord-]
* only masters can see who's in the file area in '.who' again now
* was masking off +j flag when saving the userfile (fixed)
* 'topc' binds are triggered when the bot joins a channel now, with "*" as
  the nickname -- if the channel already has a topic
* was spending lots of time connecting to servers without checking other
  things -- now cycles thru normal checks after every connection attempt
* a little less crashy under "dalnet" nicks but probably not much (no major
  support for that network is planned)
* notes from bots to users in reference to failed attempted links, etc,
  were coming in from "bot@bot" instead of "bot" (fixed)
* new Tcl commands 'hand2nick' and 'nick2hand'  [suggested by answer]
* each bind to a single command can keep its own flags now (whew)
* made a change in 'home-channel' take effect immediately
* excessive join floods would cause the bot to ban the same host over and
  over again, causing its OWN flood (fixed)
* tcl 'addban' with no comment caused a crash (fixed)  [found by rich]
* unknown tandem commands are no longer logged
* added tcl commands: 'isvoice', 'dcclist', 'dccused', 'getfileq'
* pid file uses bot's nickname now so more than one bot can be run from
  one directory
* Tcl 'setchan' wouldn't accept -1 or "off" (fixed)  [found by mjg]
* wasn't using channel key when switching channels (fixed)  [found by
  skyline]
* wasn't erasing /tmp file when a file transfer failed before starting
  (fixed)  [found by mohammad ali rezaei]
* won't complain about killmember/nonexistant if it still hasn't finished
  getting the /who list yet
* sends message to random (nonexistant) nickname every 5 minutes to keep
  from being idle
* boots were getting mislogged (fixed)  [found by gord-]
* telnet new user was allowing 10-character nicks (fixed)  [found by imoq]
* Tcl 'chanlist' can have optional argument allowing flags now
* added Tcl commands 'chhandle', 'chpass', 'link', 'unlink'
* can set the timeout for server connects in eggdrop.h now (default is 15
  seconds)
* '.boot <user>@<localbot>' was exploding (fixed)  [found by answer]
* msg commands from the bot to itself are now ignored
* 'topc' bindings are triggered when joining the channel and there is no
  topic set (sends "" to the proc)
* does not complain to the user any more when removing a user-placed ban
  while forbid-bans is on  [suggested by keith tyler]
* userlist is always stored in the original order now instead of reversing
  [prodded by gord-]
* can define SHAREBOT_BOOTS in eggdrop.h to restrict remote boots to share
  bots  [suggested by bill-tcl]
* kickbans weren't working on 10-character usernames (fixed)  [found by
  steve govenar
* people with +x could dcc chat the bot and enter a limbo file area even
  if the file area was not defined in the config file (fixed)  [found by
  scipio]
* doesn't go psycho on TS-server deops now  [found by partek]
* 'topc' bindings weren't sending a correct "handle" parameter (fixed)
  [found by david brown]
* party-line chatter starting with ' is local-only  [patch by answer]
* removed crusty routine that asked other bots for ops in clumsy ways

v0.9r  [1dec95]

* if you changed the server list in the config file and rehashed, the
  bot would sometimes crash (fixed)  [found by partek]
* thought it was losing memory but it wasn't (fixed)
* '.chat' wasn't taking you back to the party line any more (fixed)
* ctcp/ctcr bindings passed an incorrect parameter (fixed)
* file bindings would always assume you were leaving the file area (fixed)
* remote 'unlink' commands were getting sent incorrectly
* no longer sends 'trying'/'*trying' across the botnet (they weren't being
  interpreted anyway)
* the +h flag on bots actually works now
* added builtin strcasecmp so it'll compile for Unixware  [suggested by
  Eden]
* more patches to get around bugs in FreeBSD  [Gisselle]
* Tcl 'dccsimul' and 'sendnote' were letting some parameters be too long
  which would crash the bot sometimes (fixed)  [found by partek]
* added binds for 'chon' (someone joining the party line) and 'chof'
  (someone leaving the party line)
* added binds for 'sent' (file successfully downloaded by a user) and
  'rcvd' (file successfully uploaded by a user)
* three last user-defined flags: '8', '9', '0'
* server list was getting traversed in basically random order (fixed) 
  (the list is actually loaded in forward now for the first time ever)
* 'console' for masters wasn't doing the +/- thing right (fixed)  [found
  by eden]
* new binding 'chat' which is triggered by chatter on the botnet
* could add bans that were long enough to crash the bot (fixed)  [found
  by tris]
* tcl 'ispermban' wasn't working right (fixed)  [found by seljo]
* maskhost wasn't quoting embedded '*' and '?' in the username (fixed)
  [found by jonte]
* revenge routine wasn't checking attributes correctly (fixed)  [found by
  imoq]
* handle could be too long when telneting in (fixed)
* Tcl 'botname' wasn't getting set until it joined a channel (fixed)  [found
  by seljo]
* new tcl command 'bots' which returns a list of the bots connected
  [suggested by seljo]
* after much work and prototype adding, it compiles cleanly with '-Wall'
  for me (using tcl)
* improved the link/unlink/expired-fork code a little bit and made forks
  expire after 5 minutes instead of 10 (it could probably even be lowered
  to something like 2-3)
* removed the crappy editor, made a tcl equivalent in 'lamestbot'
* fixed bug with removing channel associations
* began attempted support for linux threading
* added janitor (j) flag which gives master-access to a user while they're
  in the file area
* removed useless '-s' option (investigation revealed it no longer did a
  single thing)
* better documentation, i think

v0.9q  [10nov95]

* 'help' doesn't respond to unknown people any more [suggested by jonte]
* 'rmdir' was sometimes failing to correctly remove the directory's entry
  in the file list (fixed)  [found by del carter]
* better check for osf/1  [suggested by brian]
* more dprintf'ized (that is, people using Mac telnet should get a MUCH
  more comprehendable output)
* fixed for Solaris (i hope)
* correct value of '$telnet' was getting lost on rehash (fixed)  [found
  by fred1]
* excessively long return values from '.tcl' were overflowing the buffer
  (fixed)
* remote unlink requests could sometimes cause the confirmation/rejection
  message to get sent to the wrong place (fixed)
* '.+ban' was logging the ban comment with little squiggles instead of
  spaces (fixed)  [found by fred1]
* flag 't' changed to 'b' to make it more intuitive (bot flag)
* two new user-defined flags: '6' & '7' (flag6, flag7) for tcl
* new bot flag 'h' -- a bot with the 'h' flag is only auto-connected if
  there are no other bots connected that also have the 'h' flag (ie, you
  can have several bots marked +ah, and once one is connected, none of
  the others will be auto-connected)
* trying to change a user-defined flag to an invalid character will now
  immediately fail (instead of reverting later) -- the return value for
  the 'set' command will be the old value if the new one was rejected
* the 'idx' paramater sent to controlling functions (using Tcl 'control')
  was incorrect (fixed)  [found by seljo]
* if an error occurs in your Tcl config file, it will now log (and dump
  to stderr) a reverse stack trace of the error, and try to go on anyway
* some bindings can be "stacked" (see tcl-commands.doc) so that more than
  one Tcl proc will be called when they're triggered
* new Tcl commands: 'handonchan', 'unbind', 'sendnote', 'putcmdlog',
  'putxferlog', 'save'
* the 'forbid-bans' options wasn't working on non-Tcl bots (fixed)
* makes an automatic backup of your userfile every night at midnight
* new user field "xtra" for use in Tcl scripts
* new command '.assoc' which lets you associate a name with a chat channel
  (and use it in '.chat')

v0.9p  [12oct95]

* local users can see who's in the file area with '.who'
* was interpreting telnet codes via relay (fixed)
* '.kickban' will now deop at the same time it bans, if the target had ops
  [suggested by sloot]
* was converting chars to 7-bit before checking for avalanche (fixed)  [found
  by Mikael]
* file area 'pending' now shows file transfers that are currently active, and
  'cancel' will let you abort them
* '.edit' was crashing on an empty file (fixed)  [found by ragtop]
* '.match' was sometimes claiming to have only 1 match (fixed)  [found by
  ragtop]
* created dcc commands '.info' and '.email' to let party line users change
  their own info and email address  [suggested by softlord]
* removed '.-info' command and added '.chinfo' and '.chemail' for masters to
  change the email address and info of users (this now conforms to the way the
  rest of the bot works)
* '.chpass' wasn't checking to make sure the password wasn't too long (fixed)
  [found by fred1]
* jumping to a specific server would sometimes cause the bot to give up pre-
  maturely (fixed)
* compile-time option to use slower pings on the botnet  [suggested by fred1]
* new config-file setting 'keep-nick' which will alow you to turn off the bot's
  wish to always keep the same nickname
* new command 'echo' lets you turn on or off the echoing of your own chatter
  on the party line (default is on)
* no longer says "no access" on a failed dcc chat -- has cuter phrases
* logfile modes can be edited, and changing a logfile to no modes will make
  the bot stop logging there at all  [suggested by bill]
* tcl 'exec' command no longer disabled
* tcl join bindings are called AFTER adding the nick to the channel list now
  (but still before updating the laston time)  [suggested by hoopycat]
* new binding 'mode' (apparently long awaited)
* logging of kicked bot was garbled (fixed)  [found by fred1]
* sets last-on date/time to current date/time when a user does 'hello'
  [suggested by sloot]
* ctcp finger response no longer has the nick automatically listed
* checks every 5 minutes to make sure the server hasn't zoned out; if it has,
  the bot will automatically jump
* think i fixed the net.c crash bug
* new tcl 'idx2hand' and 'hand2idx' to make conversions easier
* new 'configure' script which should make compilation easier for most people
* tried to make code more portable and standardize the locations of function
  prototypes
* moved to outdated "USER username hostname servername :userinfo" format
  because some grumpy servers are trying to detect bots that way
* new method of including "tcl.h" to fix some systems where the default
  path contains a broken copy of the file
* added tcl bindings 'ctcp' (ctcp in message) and 'ctcr' (ctcp in notice)
* '+user' and '+bot' were letting you use handles that were too long (fixed)
  [found by poseidon-]
* writes out an 'eggdrop.pid' file now, which is used by botchk  [patch by
  thembones, script patch by bill]
* fixed bug in match.c that made it mess up for ircII (eggdrop usage was
  fine, though, so unless you were using match.c to speed up your ircII,
  you won't notice any difference)  [patch by fred1]
* osf/1 compile errors (fixed)  [patch by thembones]
* '.bots' was overflowing on super-large botnets (fixed)  [found by chaos]
* tcl 'dccsend' will queue a file now if there are too many current xfers
  to the user
* notes limited to 450 characters so the bot won't crash
* invalid 'nlinked' command thru botnet could crash lots of bots (fixed)
  [found by wrath]
* 'configure' detects osf/1  [thanks to thembones]
* TCL 'passwdok' wasn't working (fixed)  [found by piglet]
* solaris already has a struct queue, so that had to be changed (grr)
* '.set' with no parameters was truncating the 'info globals' output to
  512 chars (fixed)  [found by dalbien]
* TCL command 'userlist' added  [suggested by moonwolf, sorta]
* when adding hostmasks, redundant old hostmasks are removed  [patch by
  fred1]
* net.c had a small bug that caused big problems (fixed, i hope)
* fixes new bans places by users that don't have '!' or '@' now (also bans
  from tcl scripts)
* leading and trailing control characters on parameters to dcc commands
  were getting lost (fixed)  [found by troy]
* when fixing bogus bans, it wasn't checking to make sure that its fix
  wasn't just a bunch of wildcards (fixed)  [found by jerrold]
* mass-destination ($*) messages, notices, and ctcps from irc ops are
  logged but not processed
* 'ident' from unknown person just gets ignored now
* new variable 'ctcp-userinfo' which allows you to set the response to a
  CTCP USERINFO request

v0.9o  [8jun95]

* new TCL command 'control' which lets a TCL command parse input from a 
  dcc user (allowing interactive scripts)
* idle-kick now exempts +m/+f/+o/+t users
* fixed solaris ucb weirdness  [thanks to sandvik]
* removed all "system" calls except the one in 'exec'
* new binding 'bot' which intercepts commands coming from other bots
* new TCL commands "putbot" and "putallbots" which send commands of the type
  intercepted by the 'bot' binding -- "putbot" sends to an individual bot
  somewhere on the botnet, and "putallbots" broadcasts to all bots
* Fred1 improved the matching system considerably -- TCL bindings that use
  wildcards can now also use '%' which will match non-space characters
  (similar to ircII)
* master messages (',') on the party line were getting sent to masters with
  chat off (fixed)  [found by xerxes]
* better checking of which connections should get telnet codes checked
* notes sent via msg weren't very private (fixed)
* file queueing system implemented, to allow 'get *' (etc) to have files
  queued for later transfer, and transfer only 3 or so files at once
* new file-area commands 'pending' and 'cancel' to list and remove files from
  the queue, respectively
* when a ban is added, and members of the channel are kicked for matching
  the ban, the kicks are sent out paced instead of immediately -- which will
  make the kicking much slower but will prevent the bot getting flooded off,
  which is more important
* avalanche gets you ignored now
* revised socket control (mtgets) to not attempt reads on listening sockets,
  since this was causing SVR4 to block  [found by shovon]
* memory manager thought memory was misplaced when it wasn't (fixed)
* chattr now assumes + if you forget to specify a +/-
* TCL wasn't allowing masters to run commands that required flags they didn't
  have (fixed)
* protect-ops wasn't working (fixed)
* was letting people do 'get' with nicknames that were too long to fit in
  the dcc table (fixed)
* more HPUX fixes (geez...)
* 'simul' wasn't checking dcc types completely (fixed)
* 'match' command has optional start and limit parameters now
* masters don't get penalized for flooding
* new TCL commands 'getchanidle' and 'killdcc'
* won't echo password when telnetting in any more  [thanks to fred1 for the
  rfc's]
* commas in a hostname are masekd out with '?' now  [found by ragtop]
* new set 'forbid-bans' which will refuse to let non-masters place bans
  directly on the channel (used to be part of 'bitch')  [suggested by eye]
* 'bind nick' and 'bind topc' actually check the flags now (oops)
* file area 'mkdir' can take an optional parameter now, to set the required
  flags to see/access that directory
* file area 'import' can take an optional parameter now, to set the required
  flags to see/access any imported directories
* ESC char is stripped from text on the party line now  [suggested by xian]
* can send notes to multiple users at once now, separating nicks with a comma
  [suggested by xerxes]
* file area 'desc' will take wildcards now
* extended dcc timeout to 5 minutes (from 3)
* relay wasn't showing the "join" messages correctly when it ended (fixed)
* dcc transfers were timing out when 2 acks were sent at once (fixed)  [thanks
  to fx2 for helping test]
* file descriptions are formatted better when entering now -- will try to
  word-wrap a long description into multiple lines (up to 5) -- can force
  a linebreak with '|' in the description
* multi-line comments are copied correctly now during cp and mv

v0.9n  [21may95]

* '.adduser' wasn't using the default flags (fixed)
* new setting 'open-telnets' which allows people to enter 'NEW' when
  telnetting in -- new way for users to introduce themselves (no hostmask)
* '.desc <filename>' will now erase a file's description
* compile-time option to enable an "owner" flag (n) which will have exclusive
  use of the 'define' (non-TCL), 'die', 'edit', 'exec', 'set', 'simul', and
  'tcl' commands  [original patch by fred1]
* with owner defined, non-owners can't affect the owner/master/share flags
  with the builtin 'chattr' command
* when kicking +k users, will use the user's comment as the kick reason,
  if present  [suggested by xerxes]
* remote boot typo bug fixed
* external editor and exec's weren't getting correctly identified in the
  fork structure (fixed)
* idle time for channel users is kept track of now
* new config-file variable 'idle-kick' which controls the number of minutes
  a user can be idle on the channel before he/she is kicked
* new config-file variables 'ctcp-finger' and 'ctcp-version' to change the
  bot's responses to those ctcp requests  [original patch by shrike]
* OSF/1 people don't have to deal with UAC anymore  [thanks to eden]
* remote 'who', 'botinfo', 'trace', 'motd', 'link', 'unlink', and 'whom'
  commands are tagged with socket number now to distinguish when the same
  nickname is logged into the bot more than once
* Ultrix machines were getting a WAIT_T warning (fixed)
* new config-file variable 'dcc-block' to set the block size for dcc file
  transfers
* userfile transfer was truncating records of users on the channel and in
  the channel cache (fixed)
* /msg GO command requires +o now
* does chmod 600 to the userfile after saving now
* changed internal binding table -- builtin functions can be aliased and
  their access levels changed on the fly
* new console mode 'x' where all file transfer logs go
* some special characters couldn't be used in uploaded files (fixed)
* wasn't checking for two files being uploaded at the same time with the
  same name (and therefore overwriting each other) (fixed)
* 'adduser' would let you add a user record for someone on the channel who
  already matched a hostmask for a different user (fixed)
* STILL wasn't resetting cache on nick change (fixed)  [found by eden]
* remote boot was messing up (fixed)  [found by wrath]
* was checking for dead sockets of type fork, which could cause a crash
  (fixed)  [found by debaser]
* help files and motd files are checked to make sure they're normal files
  before displaying  [suggested by fred1]
* new directory setting 'textdir' which specifies the directory for various
  text files which are dumped
* fixed up HPUX stuff  [submitted by manual hernandez]
* removes any beeps after the first 3 in a dcc message
* TCL 'timer' command returns a timerID now, which is also a new third
  parameter in the results of the 'timers' command
* new TCL command 'killtimer' which will remove a timer by its ID
* only asks tandem bots for ops if they have +o flag
* better checking of signoff message for splits (more reliable)
* doesn't /msg a user about stored notes when they join, if they're already
  on the party line  [suggested by sloot]
* intercepts telnet negotiation codes, and responds to 'ayt'
* can use TCL to specify names and flags for the 5 user-defined flags
* won't accept links from other tandembots until it's been online for
  at least a minute
* TCL 'rehash' command removed (was causing crashes)
* doesn't allow share-bots to alter a user's +t flag
* removed outdated '+attr' and '-attr' tandem commands
* when receiving a nick change from another sharebot, will now update the
  dcc entries  [found by fred1]
* 'channel' header is more readable
* non-ops weren't requiring +x flag to enter file area (fixed)  [found by
  hdclown]
* was deopping itself when op'd by a fake op (Fixed)  [found by tolim]
* only whines once about "Active channel, no ops"
* wouldn't let people change the descriptions of files they uploaded (fixed)
* better case checking in file area
* new variable 'owner' which is a list of users who can not have their +n
  flag removed
* new TCL command 'console' which changes a user's console mode
* file transfers can now timeout during the actual transfer
* new variable 'dcc-maxsize' which is the largest allowable file size (in k)

v0.9m  [6apr95]

* does not automatically remove all server bans anymore, that was lame
* eggstat had the wrong header (fixed)  [found by gwyn]
* bitch mode will still let masters place bans now  [found by hdclown]
* got-op was broken (fixed)
* compile-time option to have the bot die when receiving HUP or TERM
  [suggested by modus]
* won't contradict ops placed by a master now
* dccSimul 'quit' will work now
* small bug with HPUX compilation (fixed)  [found by rick cuoto]
* TCL 'addban' and 'addpermban' now send the ban to the channel and recheck
  the channel against the ban list (if the bot it op'd)
* was letting helpbot name be defined too long in non-TCL (fixed)
* better length control in defining builtin TCL vars
* memory allocation fixed for solaris and other int-is-not-four-bytes
  machines (oops)  [found by jay maynard]
* new TCL commands: dccbroadcast, getidx, getchan, setchan, dccputchan
* wasn't resetting cache on nick change (fixed)  [found by eden]
* was messing up displaying bans with long comments (fixed)  [found by eden]
* msgm and pubm were blocking normal logging (fixed)  [found by julie]
* '.me' was echoing to all chats locally (fixed)  [found by miltrypet]
* '.kick' would kick itself (fixed)  [found by d-e-m]
* better cache maintenance while userfile transferring
* won't revenge on a kick from a master or friend
* '.who' shows people in the file area
* tandem bots exempt from flood control and mass deop protection  [suggested
  by xerxes]
* buffer wasn't big enough when saving bans (fixed)  [found by eden]
* wrong error message when it didn't recognize a common-site user in ident
  (fixed)  [found by archimede]
* wasn't using enough buffer space when transferring bans during userfile
  sharing (fixed)

v0.9l  [20mar95]

* was crashing during some cache lookups (fixed)
* '.chan' was misleading (fixed)
* was updating laston before activing TCL bindings for sign and part (fixed)
  [found by denali]
* will try not to op/deop people it has already sent out a mode +o/-o for
  [suggested by denali]
* will toss incoming telnets from sites that are on the ignore list  [suggested
  by coop]
* in files, was showing descriptions for files that didn't match in 'ls' with
  a wildcard (fixed)  [patch by xian]
* msg 'who' is only answered for ops, friends, or masters if the channel mode
  is currently +p or +s  [suggested by gavroche]
* will kick people off the party line if their access is removed, ditto for
  file section  [found by gavroche]
* wasn't even letting fellow bots place bans with bitch mode on (fixed)  [found
  by hdclown]
* compile-time option of allowing remote boots
* check-lonely-channel doesn't count split users now when deciding to try to
  regain channel ops
* kickban wasn't flushing the ban mode (fixed)  [found by dracwolf]
* extended limit of ban comments to 70 characters (including nickname)
* now removes any server bans that aren't in the ban list
* 'weed' was removing bots with no password set for :a option (fixed)
* makes sure it has absorbed all channel info now before doing routine things
  like checking for lonely channel or doing chan update log entries
* ban and ignore list are part of the cache now
* new tcl bindings: kick, nick, raw
* 'chattr' will no longer let you add or remove the 'b' or 'i' flags, and
  will not let you change attributes on *users (ie the ban and ignore lists)
* console can be modified with +/-, or can be viewed by setting it blank
* '+host' won't let you add a hostmask that's already in the record for that
  user  [suggested by sloot]
* TCL ctime function had extra linefeed  [found by julie]
* bind sign will now give the reason when calling procs (may break old code)
* new tcl command: rand
* detects when its nick has been changed against its will

v0.9k  [2mar95]

* was showing chat-off people in a 'whom *' (fixed)
* maskhost was crashing if there was no '.' in the hostname (fixed)  [found
  by denali]
* new tcl bindings: sign, topc
* wasn't reopping any more when an op got deopped (oops!) (fixed)
* new mode ("bitch") where the bot will not let anyone get chop besides people
  specifically marked as +o
* changed never-give-up into a config-file setting instead of a compile-time
  option (so you can change your mind after the bot's compiled)
* mtgets now flushes buffered data from sockets no longer being checked
* defining an external editor actually keeps it from compiling the doofy
  editor now (oops!)
* started support for NO_IRC mode, where the bot floats in limbo, not on a
  server or channel -- obviously many things are disabled that way
* '.kickban' was sometimes putting the nick who requested the kickban into
  the kick comment (fixed)  [found by ClearlyJa]
* ctcp chat to the bot will make it offer you a dcc chat if you have access
* hprintf (and the TCL "puthelp") will now store things on the help queue
  even if you have no helpbot (for using different queues)
* bitch mode will ignore commands from ops who don't have a password set, and
  reject party line connections until they set one
* would leave a 0-byte file in /tmp after a failed connection for an upload
  (fixed)
* 'weed' script now has ":a" option to weed out any users with no password
  set  [suggested by Sandoz]
* 'unlink' command will automatically propagate if necessary  [suggested by
  Fred1]
* 'adduser' will, if that nick is already in the user list, add the hostmask
  to the user record instead
* was only removing server bans against ops -- now does it for friends and
  masters too, like it should  [found by larry]
* msg 'go' command built in now
* bots will attempt to send 'go' to each other if the channel is opless but
  crowded now (and everyone on the channel is a bot)
* CTCP EGGDROP removed  [abused by digital]
* members of the channel have their user records cached now for quicker
  access (in general)
* 'periodic-save' removed
* various streamlining attempts to make user lookups occur less often (and
  conserve cpu time)
* new TCL commands: rehash, ispermban
* small bug with arguments to bound TCL functions (fixed)
* removed all the outdated '+friend' etc commands (but they are in the 'compat'
  script if you really want them)
* HUP signal makes bot rehash

v0.9j  [5feb94]

* '.chat' now lets you change channels
* wasn't clearing /tmp directory on timed out file transfers, or aborted ones
  (fixed)  [found by gwyn]
* sometimes returned wrong dcc index for a nextbot serarch (fixed)
* puts IP address in the dcc table for telnets and dcc gets now
* updated online help files and finished them up
* %V in motd and help files now shows version in the short format (ie,
  "eggdrop v0.9i")
* can do '.away' when you're off the party line now, and auto-unaway when
  you rejoin  [suggested by guy]
* 'whom' was not showing local users correctly for channels (fixed)
* tried to make Solaris compilation less of a headache  [patch by John Fulton]
* '.botinfo' results are much more concise now and exclude admin info
* expired/retired processes were getting their process records removed
  prematurely (fixed)
* discards avalanches (excessive beeps, ctcp's, control codes within a single
  msg) and, if it was to a channel, kicks the offender  [suggested by fred1]
* new TCL commands: ctime, myip, dccsend
* 'whom' can now be used with an argument: 'whom 3' tells you who's on channel
  3, net-wide; 'whom *' tells you everyone everywhere, but not their channel
  (instead, it marks users who are on the party line)
* was barfing on a server list with only one server (fixed)  [found by modus
  operandi]
* crashed when you tried to remove a binding that didn't exist (fixed)  [found
  by jordan]
* was crashing or acting strange when relaying (fixed)  [found by denali]
* file area 'cp' and 'mv' commands work as expected now
* file area 'import' command will import directories too
* 'help' commands ignore embedded '/' now  [found by eden]
* during massive mode changes, the bot might kick someone who matches a ban,
  then (because they're +o) remove the ban (fixed)  [found by neuro, tolim]
* 'bans' can take a wildcard as a parameter now, and will show only the bans
  that match that wildcard (against all bans, active or not)
* 'nick' and 'handle' now take care of fixing the nicks of every copy of the
  user on dcc chat to the bot  [found by eden]
* some systems crashed after dcc file transfers (fixed)  [found by fred1]

v0.9i  [27jan95]

* motd is shown to file-area users if they don't have party line access
* time limit for becoming officially "idle" changed from 3 minutes to 5 minutes
* new TCL binds: 'join' and 'part'
* new TCL commands: getinfo, getdccdir, getcomment, getemail, getlaston,
  setinfo, setdccdir, setcomment, setemail, addban, addpermban, delban,
  isban, matchban, timers, isop, jump
* /msg hello wasn't working for common-site users (fixed)
* now saves the user file right after getting its first master with the -m
  option  [suggested by gavroche]
* when msgQ overflows, it will only log it once until the msgQ drops back down
  to a managable level (then if it overflows again, you'll get another log
  entry)
* CTCP FINGER and VERSION changed to not give away the fact that it's a bot
  (so nosy ircops won't kill based on CTCP VERSION results)
* new CTCP EGGDROP added to get true version info
* small memory leak when re-away'ing yourself (fixed)
* users who match a ban from the permban list can't use "hello"  [suggested
  by gwyn]
* when first starting the bot, won't save the userfile until you actually have
  at least one user
* new console mode 'b' (for ops and masters) which shows tandem-bot info,
  like links and userfile sharing
* if the ban list or ignore list comes up in a '.whois' or '.match', it won't
  show the (ugly) user record, but will just say "[ban list] -> use '.bans'"
* remote '.whom' and '.who' and '.botinfo' aren't logged any more
* removed party-line blinding
* '.die' allows a die comment now, which is logged and broadcast
* +channels are supported now, but i can't see much point in running a bot on
  a +channel since they don't support modes
* tried to fix timer drift problem
* various efficiency changes  [patch by Fred1]
* '.comment' was pretending to be successful even on nonexistant users (fixed)
  [found by guy]
* doesn't spend more than 15 seconds trying a server connection now
* if the bot somehow misses a minute, it will trigger the timer twice (or
  however many times it needs to trigger to catch up)
* after sending a file, the copy is erased from /tmp now (oops!)
* possibly fixed the problem where uploaded files on some systems were not
  being copied into the directory

v0.9h  [12jan95]

* '.chpass' would pretend to change passwords of nonexistant users (fixed)
  [found by miltrypet]
* changes control characters to '?' in '.handle' and '.nick'  [suggested
  by fred1]
* '.motd' can be used to get motd's from other linked bots  [suggested by
  offspring]
* successful tandem 'op' is logged now, and checks for various reasons why
  it possibly shouldn't bother trying  [patch by fred1, modified]
* when refreshing a ban and kicking, if a ban comment exists for that ban,
  it will be used as the kick comment  [patch by fred1]
* was crashing when '.edit' was invoked without parameters (fixed)  [found
  by clusters]
* small annoying memory fault when un-awaying yourself (fixed)
* '.invite' invites someone to the channel now, not the party line
* bogus debans will not cause that user to get kicked off now, if that ban
  actually existed, of if the user is +o, +m, or +f  [suggested by fred1]
* control characters can not be put in an info line any more  [suggested by
  fred1]
* notes are no longer erased automatically after you read them  [suggested by
  denali]
* new commands '.notes' and /msg notes to manipulate the stored notes
* was giving pointer warning in tcl.c (fixed)
* was crashing on super-long input thru a dcc socket (fixed)
* /msg whois will now identify masters
* sends out the ban faster on join flood now  [found by fred1]
* replaced many redundant lookups by hostname -- should cause a noticable
  speed increase
* new reg.c for slightly faster matching  [by fred1]
* Tcl 'dccSimul' & 'putdcc' check for out-of-range and illegal dcc handles
* changed resolve_dir() so it might not crash under BSD any more
* new Tcl command 'timer' which adds a command to the timer queue, to be
  executed N minutes later
* two new binding types possible: 'pubm' and 'msgm' which match the whole
  string in a msg or pub (example: bind msgm - "*bot*" msg_bot)
* three new Tcl commands: 'unixtime' (returns a long int), 'time' (returns
  something like "14:15"), and 'date' (returns something like "21 Dec 1994")
* finally, '.exec' works again
* removed some redundancy in userrec.c
* removed the REBOOT option, since it was causing problems -- use a crontab
  entry instead  [found by vassago]
* was setting the purge flag when changing handles (fixed) -- this sometimes
  caused bot records to be erased
* was crashing sometimes when ignores or bans expired (fixed)
* '.rehash' no longer adds a bogus entry to the server list
* when manually adding bans (ie '+ban'), if a user gets kicked because of the
  new ban, the ban comment will now be used
* was sometimes sending out "fake bot notice" messages when the bots were
  re-arranging their links (fixed)  [found by fred1]
* doesn't ask for ops if there are no ops on the channel  [suggested by
  gavroche]
* three new user flags defined (see eggdrop.h)
* added the '.chattr' command so you don't have to use '.tcl chattr' any more
* can't use '@' in a handle any more with '.nick' or '.handle'
* doesn't kill your talk/ntalk window if you're in via telnet (aka relay)
  [patch by fred1]
* wasn't correctly passing permanent ignores between sharebots (fixed)
  [found by tolim]
* was putting a space in the log filename in keep-all-logs-mode sometimes
  (fixed)  [found by tolim]
* wasn't trapping notes between users on the same bot when the recipient
  was away (fixed)  [found by guy]
* if an "unlink" request is received for a bot that doesn't exist, it will
  still send out an "unlinked" notice to other bots to clear bogus entries
  (ie "???")
* 'chpass' doesn't log the new password any more  [suggested by scipio]

v0.9g  [15nov94]

* disabled Tcl 'exec' command (possible hole)
* '.define' no longer exists with Tcl compiled (it's pointless)
* '.status all' will give a much more detailed list
* it will tell you if you try to 'ident' from a nonexistant nickname, and
  it already knows you  [suggested by kibbles]
* new matching function (10% faster on average)
* wrapper function for the string matcher, to catch obvious unmatched
  strings earlier (hopeful speed increase)
* in msg 'who', should correctly identify itself and fellow share-bots,
  instead of "No info"
* msg 'whois' will check if the nick specified is not a valid handle, but
  is a nick for someone on the channel, and will try to find a match from
  there
* '.bans' will no longer show the complete ban list -- it leaves out bans
  which the bot is protecting but are not active on the channel -- new
  command '.bans all' to show the full list (which may be very long)
  [suggested by fred1]
* Tcl will auto-add the trailing '/' on paths now (bug fix)
* Tcl can determine if 'helpbot' config has changed state, and will load
  or kill the helpbot accordingly
* when compiling with Tcl, the '.set' command is now just a shortcut to
  viewing and assigning any Tcl variable
* was losing sockets during dcc file sends (fixed)
* wasn't letting you change chanmode properly (fixed)  [found by miltrypet]
* wasn't starting on the first server (fixed)
* no longer supports external telnet or compiles "eggtel" -- consider it
  an experiment that proved pointless
* motd file is filtered through the same filter that the help files go
  through (ie, %-codes are now interpreted there)  [suggested by redbird]
* new %-code: %T is current time in a form like "16:35"
* new set 'upload-to-cd' which, if true, lets users upload to whatever
  directory they happen to be in, in the file area -- in this case, the
  'dcc-incoming' variable is ignored of course  [suggested and partially
  coded by modus operandi]
* default values for some variables were getting scrambled under Tcl (fixed)
* uploads and downloads are stored in the temp dir now
* when copying or moving files in the file area, the "# of downloads" field
  no longer gets reset
* uploads and downloads first go to the temp directory, then uploads are
  moved to the destination directory (downloads just sit there till the
  temp dir is cleared)
* common-host users can no longer change their info, email, or password
  [found by sloot]
* couldn't accurately reverse a mode +l 0 (fixed)  [found by miltrypet]
* a variety of the more obvious fake tandembot-codes are detected now, and
  emit warnings
* wasn't refreshing a ban quickly enough (fixed)  [found by fred1]
* if user was on the channel in the past 3 minutes, the bot won't re-
  display the user's info-line  [suggested by denali]
* no longer interprets a dcc-chat line as a command if it starts with '/'
  (however, '///' will still invoke the talk-script support)
* detects and tries to correct a situation where an auto-linked sharebot
  is in the bot-chain, but not directly connected
* tandem-bot user records are no longer transfered across share-bot links:
  each bot is responsible for its own tandem-bot list
* requests ops from other bots tandem-linked which are on the same channel
  (not via /msg any more)  [suggested by fred1]
* was showing '@' from info to the channel (fixed)
* wasn't checking for too-long nickname in '.handle' (fixed)
* new command '.nick' which lets ops change their handle on the party line --
  both commands (nick and handle) will now notify the party line if a nick
  change affects someone on the party line
* sends CTCP AWAKE to itself every 5 minutes to keep server from thinking
  it's idle

v0.9f  [10oct94]

* seems to compile on most linux systems again now
* forgot tclhash.c #include (doh!): fixed
* when using '.jump' with a parameter, sometimes the bot would prematurely
  decide no servers would accept it: fixed  [found by vern-n]
* helpbot always operates in never-give-up mode now
* helpbot is pinged once a minute now, and if it gets too lagged (more than
  60 second response time) or netsplit, the helpbot will be forced to jump
  servers, in order to keep it on the same side of a netsplit
* crappy "eggutil" program no longer needed: use "eggdrop -m" to create a
  userfile, and follow the directions (ie, /msg bot hello)
* chanmode could have the same setting + and - (like "+i-i"): fixed
* "you have 3 note37248 waiting" madness fixed
* tandem bots were getting deflected to the file area if require-p was set,
  and the bot had op flag too: fixed  [found by jordan/fred1]
* some small memory leaks fixed
* two new Tcl commands: addhost and delhost
* made the auto-connect code a bit better (was sometimes locking onto one
  sharebot, to the exclusion of all else)
* special stuff added for suns so it should compile under sunos without
  further modification

v0.9e  [27sep94]

* new #define in 'eggdrop.h' which will let you compile an eggdrop that
  never gives up on the server list (keeps trying forever if necessary)
* errors in the src/Makefile weren't letting Sun compile with Tcl
* party line members telnetting in were appearing to be ops: fixed  [found
  by rastam0n]
* log wasn't working in mem.c: fixed
* memory tracking in tcl.c/tclhash.c wasn't working correctly: fixed
* public commands can no longer be truncated (was causing confusion)
* binding a command to '#' will remove that binding (if it existed)
* os info displayed with 'status' and 'botinfo' will now indicate whether
  Tcl was linked in
* the command-line arguments to Tcl commands are now passed as a single
  variable (fixes a problem with Tcl interpreting special symbols) -- this
  may require small changes to some scripts
* new #define HUNT_ZOMBIES in eggdrop.h, in case you have trouble with zombies
  on your system (this should help)
* added master command '.banner' to display a message to everyone on the party 
  line
* tried to make it compile under a larger variety of machines by putting some
  #defines in eggdrop.h

v0.9d  [17sep94]

* uses more compatable 'sigaction' now instead of sigvec
* actually uses TABLESIZE in net.c now (oops!)
* uses sigemptyset() instead of setting sigmal mask to 0 (more compatable)
* wasn't checking that it had ops before trying to remove channel bans with
  perm-bans off: fixed  [found by denali]
* changed format of '.ignores' to be more consistant  [suggested by miltrypet]
* '.handle' wasn't giving any error messages: fixed  [found by denali]
* '.chpass' would let you change nonexistant password: fixed  [found by denali]
* added '.topic' command to change the channel's topic
* new user flag 'common' (c) which marks a common/public irc site -- users who
  match a common record can still introduce themselves to the bot, and it will
  remember them by nick!user@host instead of user@host
* wasn't fixing bogus bans correctly: fixed  [found by denali]
* when someone joins who matches a ban (enforce-bans is on), bot will refresh
  the ban BEFORE kicking the user  [suggested by denali]
* sometimes was mistaken about what its user@host was: now gets this info from
  the server whenever it joins a channel  [found by miltrypet]
* 'exec' hadn't worked in a long time (oops!): fixed  [found by miltrypet]
* notices weren't showing up correctly: fixed
* could '.+ban' without any parameters: fixed  [found by miltrypet]
* finally fixed crash under linux with expired ignores
* "I am here", etc, in server list was flaky: fixed  [found by miltrypet]
* when doing '+op', etc, will now say "Nothing changed." instead of "Failed."
  when an attribute change is pointless  [suggested by miltrypet]
* average hop count now shown in '.bottree'
* a LOT of stuff added for Tcl support -- see the README file

v0.9c  [17aug94]

* when dying, tells people on the party line (local and remote)
* used to crash when receiving bogus 'reject' notices: fixed
* optional 'exec-telnet' can be defined now to let you use eggtel, a small
  utility for making dcc chat connections
* '.kick' had become "ambiguous" in 9b: fixed
* besides checking once a minute, it now checks whenever someone leaves,
  signs off, netsplits, or is kicked off the channel -- to see if the bot
  is the only one on the channel (and if so, and the bot is not op'd, it
  will leave and rejoin)
* '+user' and '+bot' would crash the bot if used incorrectly: fixed  [found
  by miltrypet]
* when finding a bot to autolink, a bot marked as 'share' will take pre-
  cedence now
* 'away' wasn't re-announcing you (bug from 9b)  [found by miltrypet]
* new set 'perm-bans' which, if set off, will make all bans expire after 10
  minutes (permbans will still be stored by the bot, however; and if a user
  joins who matches a permban, she will be kicked off, and the ban will be
  reinstated for 10 minutes)  [suggested by miltrypet]
* when connected successfully to another bot, it will kill any pending forked
  processes that are trying to link to that bot
* bots send 'trying' notices to each other to notify about link attempts
  (currently these notices are ignored)  [suggested by trey]
* OS info shown in 'status', 'botinfo' and 'who' now
* tandem incoming connections are now refused from bots already connected
* auto-kicks users who join with bogus usernames (control characters in the
  nick!user@host)  [suggested by fred1]
* should compile for AIX now  [thanks to trey for providing the account to
  test this on]
* userfile is written on HUP/TERM signals and during the '.die' command --
  if periodic save is on  [suggested by axel_v]
* wasn't correctly removing bans against op-listed people on the channel:
  fixed [found by lasher-]
* 'you have # notes waiting' message is more clear about what bot to connect to
* no more confusing msgs like "[TexSrv] Hi Robey!  I'm Slurpee..."
* put a bunch of context markers in unprog-ban to track down a rare segv crash
  under linux when ignores expire
* new defines: 'ban-time' (# minutes an automatic ban lasts) and 'ignore-time'
  (# minutes an auto ignore lasts) -- 'ban-time' is also how long channel bans
  will last with 'set perm-bans off'  [suggested by miltrypet]
* won't kick itself for removing a bogus ban any more  [found by fred1]
* error reported if we get a SIGCHLD signal and there are no children waiting
* 'sharing' notices passed between tandem-bots to alert them to make sure new
  passwords match
* won't flood check itself anymore  [found by fred1]
* might have fixed a bug with autoconnecting clonebots
* when a sharing bot changes its password, bot will change the password for
  a record for itself too (this is confusing, but necessary) (ie, if vasha
  and valis are sharing, and vasha says "my new password is gyx" -- valis
  will change the password to "gyx" for vasha AND valis (assuming valis has
  a user record for itself, which it should if it's sharing)
* wasn't showing directories with raw-files on: fixed  [found by gwyn]
* clonebot bans were getting automatically expired immediately: fixed  [found
  by clearlyja]
* sometimes the bot wasn't recognizing a banned user when she joined: fixed
* could infinitely try same failing tandembot connection forever nonstop:
  fixed

v0.9b  [3aug94]  (happy birthday to me!) ;)

* no longer wipes dcc records in child processes (was causing rare crashes
  when a dcc chat or likewise failed)
* split up dcc.c (was too big)
* flood-msg setting used to determine dcc chat flooding now
* 'rm <dir>' was going crazy: fixed  [found by denali]
* superfluous handle changes were being sent between clone bots: fixed
  [found by trey]
* child processes aren't caught instantly any more, they're marked and
  finished up a few microseconds later when the bot is ready (was making
  a lot of important data volatile and causing odd crashes)
* new command '.botinfo' and corresponding tandem notice 'info?' which will
  return the first two lines of the '.who' response from each bot linked in
  [suggested by trey]
* 'whom' was showing up in the log for isolated bots, even when not responding:
  fixed
* could remove your away multiple times: fixed
* sending an action wouldn't remove your away: fixed
* no longer sends 'killuser' for removing bans or ignores [found by trey]
* would crash when resetting bans more than 20 characters long: fixed [found
  by fred1]
* will detect bogus bans (+b and -b) now and kick the offender
* wasn't correctly detecting a server-made (fake) op with the new mode code:
  fixed  [found by fred1]
* will only try one auto-connect at a time, and will check for new auto-
  connect attempts every time a successful link is made (should alleviate
  duplicate connection problems)  [suggested by trey]

v0.9a  [26jul94]

* third-party dcc gets ('get <file> <nick>') were claiming to send to the
  wrong person: fixed
* '.deop' works again  [found by neuro]
* new set 'raw-files' which bypasses the use of the file catalog ('.files')
  and just directly reads the directories (useful for making your dcc dir
  point to a pre-existing file library)  [suggested by trey/gwyn]
* can have multiple server entries that are identical now (if you only want
  your bot to connect to one server, put that server in the list 5-6 times)
  [suggested by denali]
* can set your email address via msg now (msg 'email')  [suggested by neuro]
* email address shows up in msg 'whois'
* could change someone's handle using '.handle' to a pre-existing handle:
  fixed
* three-way userfile sharing wasn't properly propagating info: fixed
* '-party' didn't work: fixed
* wasn't sending out help if helpbot was undefined: fixed  [found by gwyn]
* does a close and shutdown on dcc sockets when closing them
* '.console' echos back what you typed
* wasn't closing sockets on expired forks: fixed
* new bot attribute 'reject' (r) which will reject that bot if it appears
  anywhere on the botnet
* '.boot' can have a comment

v0.9  [23jul94]

* file section compiles under sunos again now
* bot would crash if a server changed channel mode to +i -- fixed
* automatically sends out a 'trace' for each 'linked' now, in order to
  have all the data needed to eventually display a bot tree on demand
* once each 5 minutes, a "pong" is sent out to the server to make sure
  the socket is still alive
* pipe error now tries to recover by checking fcntl, just like is done
  on a select error (since the select error bit seems to work well)
* notify-newusers can have multiple targets now, separated by commas
* "/msg pass" works by your hostmask instead of nickname
* msg commands now logged as: (nick!user@host) !handle! command...
* bots trying to connect with a bad password get "badpass" so they'll know
  what's going on
* "/msg whois" will tell you if the user is a bot
* doesn't send out "newuser" notices for *ban or *ignore
* slightly more sanity checking of user records when loading them (will try
  to ignore corrupt & duplicate user records instead of crashing)
* '.kickban', '.op', '.deop', '.kick' won't try unless the bot is a chanop
* new 'set' variable: 'keep-all-logs' -- if on, old logfiles will be renamed
  to "<logfile>.<date>" instead of "<logfile>.yesterday" and no logfiles will
  EVER be erased, no matter how old they are (otherwise, logfiles older than
  one day old are erased)
* '+xfer'/'-xfer' will have immediate effect on people on the party line now
* msg commands are hashed now and referenced via a table (see hash.h)
* put '+kick'/'-kick' back in
* 'jump' more effective now (closes connection manually after 1 second)
* dcc commands are hashed now (see hash.h again)
* away status shown in 'whom' now
* totally different dcc structure internally now...  WHEEE
* 'whom' will add "[idle]" if a user is over 3 minutes idle
* will check environment variable HOSTNAME for a valid hostname
* can send ',' master notices from inside the file system now (and receive
  them)
* userfile transmit and receives (from and to clonebots) are now done
  from separate buffers for each bot
* dumps a process list to the log if a child process' record can't be
  found (for debugging)
* file area 'get' can be used with wildcards now for multi-send
* file area 'ls' can take a parameter now to limit the file listing
* bans and ignores are passed between clonebots by their active-time now
  instead of their timestamp (keeps timezone differences from screwing
  things up)
* CPU usage shown in 'status' now
* will try to match truncated commands
* keeps a buffer for clonebots 15 minutes after they disconnect, and will
  try to resync if the bots reconnect during that time
* msg 'who' will tack on a line listing all the people on the channel who
  have no info stored
* file area 'get' and 'ls' can use relative directories now
* a passive bot will accept a resync request even if it has no resync buffer
  ready
* in msg 'whois', if the requested user is on the channel (and recognized),
  the bot will say so
* stored notes from people on bots were sometimes getting mangled -- fixed
* removed set 'open-channel'  (chanmode replaces it)
* file area 'hide' can use wildcards
* non-masters can set the description for files they uploaded
* removed '-console' and '+console'
* 'console' now specifies a set of console flags, not a simple on/off switch,
  and can be used to set other people's console flags via 'console <who> <fl>'
* configfile definition 'console' is now simply the default for masters
* forked processes will expire after 10 minutes
* won't attempt to auto-link to a bot if it's already forking out
* tandem link A--B--C--D--E; if C/D disconnected, C would remove E's entry
  from the bot table but wouldn't pass on an 'unlinked' notice: fixed
* USR1 signal updated to use fcntl and new dccstat format
* new command '.bottree' which shows a little chart of the tandem links
* new set 'chan-updates' which can turn off the 5-minute display
* now passes nextbot info along with the 'linked' notice, in a new 'nlinked'
  notice
* more robust reading of the user file
* more robust writing of the user file when periodic-save is off
* sends out 'thisbot' notice when connecting, so the bots connecting can
  both agree that they are who they wanted (instead of depending on host/port
  as valid identification)
* file area 'rmdir' will erase the file-catalog (".files") in that directory
  before attempting to remove the directory

to-do:
* make '.match' match possibly by last join time
* easier editing of directory headers
* make kick check chanlist and match wildcards
* finish dprintf'izing the bot
* chon doesn't deal well with dropped dcc's or channel changes
