pre-release versions of eggdrop...

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
* if user is not on the channel, make 'kickban' do the ban anyway, sending a
  userhost request and banning that
* support gopher-style '.Names' files & converstion to '.files'
* file-area directories which are pointers to other bots
* let people be 'invited' to the party line, and given temporary party line
  access
* USER_REQPW as outlined by fred1
* allow restriction of in/out sharing for user flags

bugs:
* sometimes "???" appears in the tandem chain for no discernable reason
* bizarre file problem on SYSV systems, also telnet doesn't work
* blows up after some dcc/tandem connects
