User-visible changes in ZenIRC-2.112:

* Removed new-lines from all the different language catalouge
  entries. zenirc-messages adds this if appropriate.

* zenirc-prime.el, new script. Calculates prime numbers.

* zenirc-eval.el, new script. Evaluate special commands being sent to
  you from other people on IRC. USE WITH CAUTION!

* zenirc-history.el now binds M-p and M-n to previous- and next-line. 

* zenirc-yow-filter.el, new script. Filter out all the annoying
  automated yows.

* zenirc-color.el, new script; colorize your ZenIRC. Should work with
  Emacs-19, Emacs-20 and XEmacs.

* zenirc-8ball.el, new script. Ask 8-ball easy yes/no questions.

* zenirc-trigger.el, new script. Easy creation of triggers to incoming
  messages.

* zenirc-ignore.el is more vocal to the user, also added
  zenirc-ignore-last-privmsg on C-c C-i to ignore the user@host of the
  last seen PRIVMSG. 

  It's also much brighter when it comes to regexp handling.

* zenirc-notify.el, better handling of upper and lower case
  nicknames. Much better command parser when adding and removing
  victims in real time.

* zenirc-random-nick.el, added code do automatically change nickname
  every x number of seconds.

* zenirc-fill.el, rerwritten to look more like the 2.100
  version. Two new ways of filling are added:
  zenirc-wrap-region-dynamic and -wrap-region-static. Added functions
  to fill outgoing messages as well as incoming ones. The filling
  functions now also uses the correct width of the *right* buffer.

* zenirc-example.el, a lot of new examples.

* All special modes can now be turned on and off with zenirc-*-mode.

* zenirc-signal functions are smarter; doesn't beep when it shouldn't
  anymore. 

* zenirc-select uses zenirc-server-alist in a much smarter way.

* zenirc-format-privmsg-or-notice now reckons PRIVMSG's to user@server
  in a better way.

* Better handling of nick!user@host table in zenirc-format.el.

* zenirc-bug, new function.

* zenirc-update-modeline, a function which updates the modeline
  depending on which version of Emacs you are using. Relevant functions
  in ZenIRC now uses this.

* zenirc-channel-list, a list of currently joined channels. If you
  leave your zenirc-current-victim it gets set to the previous channel.
  C-c C-t toggles between all the channels with zenirc-toggle-channel.

* Added a couple of ircII lookalikes:

  zenirc-always-show-channelname, new variable. If set to nil, strip
  out the channelnames from incoming PRIVMSGs and NOTICEs if the
  channelname is the same as the current-victim. 

  zenirc-delete-preceding-whitespaces, newvariable. If set to t, strip
  off leading whitespaces on outgoing messages.

  zenirc-whowas-on-401, new variable. If set to t, ZenIRC will issue a
  WHOWAS command if no information is gained by a WHOIS command.

* More additions to conform with ircd2.9 news.

As of 1996-04-24, Per has taken over primary maintenance of ZenIRC.

User-visible changes in ZenIRC 2.101:

* New function, gnus-bug. Initialize mail to make it easier for user
  to report a newly found bug.

* Comments on how to do automatic things while initializing a server
  connection in zenirc-example.el.

* Takes care of more new irc2.9 NUMERICS.

* Responds to CTCP ECHO queries.

As of 1995-06-28, Per started adding patches to ZenIRC alpha versions.

* All the notify code is stripped out of zenirc.el into a -notify.el
  script. The notify code is able to check user@host info on
  notificated persons. Most of the code is also totally rewritten, 
  some of the features are much better sanity checking.

* /server, a new command using zenirc-select, lets you connect to
  servers in an easy way. /server irc-2.mit.edu 6667 ben
  The command uses zenirc-server-alist, it also defaults to just about
  every setting you can think of.

* zenirc-ignore.el gives you ircII like /ignore and /unignore, an easier
  way to maintain your zenirc-ignore-list in real time. If you use the
  commands with regexps, it doesn't do it the ircII way.

* /resize command in zenirc-fill.el lets you resize the fill values if
  you change the size of your emacsen.

  There also a new way of filling things, based on the first word of the
  string. 

* The variable zenirc-command-char lets you decide which char you want
  to use as a command char. "/" is default and you can change it with
  /commandchar.

* zenirc-klingon.el and zenirc-bork.el are two new sets of language
  catalogs.

* /topic is now able to SHOW the topic as well as set it.

* The Makefile is now able to make and install ZenIRC, it uses 
  zenirc-make.el to do so. Needs some improvment though.

* zenirc-iwantop.el has better documentation for new users.

* ZenIRC is able to display confirmation messages in the echo area
  instead of in the process buffer, at least better than it did before.

* ZenIRC shows idletime in hours:minutes:seconds instead of plain
  seconds.

* zenirc-history.el gives you shell-like C-p and C-n on C-cC-p and
  C-cC-n.

* ZenIRC groks most of the 2.9 news, as well as some ugly additions to
  2.8 by digital and comstud. FOLLOW THE RFC OR DIE.

* There's code in zenirc.el to let you timestamp PRIVMSG/NOTICE, the
  code makes it really easy to add timestamps for other thingies.

* Some of the numeric replies parsing are changed to show relevant
  information. 2.9 changes some of the replies so ZenIRC has to do
  more sanity checking (this is not totally perfect yet).

* New funny files in the doc directory.


As of 1994-10-02, Noah has taken over primary maintenance of zenirc.

User-visible changes in ZenIRC 2.100:

* ZenIRC now configures and installs using an Autoconf-generated configure
  script.  [Makefile is only 4/5 finished 1995-03-27]

* The version number no longer directly corresponds with the RCS revision
  number of zenirc.el.  A separate version number is used, which will only
  change in each release.  As a result, releases won't have arbitrarily
  incremented version numbers.

* The new file zenirc-fill.el provides a minor mode which formats privmsgs,
  notices, and whatever kinds of messages you specify, so that they don't
  exceed the width of your window.  Selective control is provided since
  some tables produced by the server will look terrible if anything
  attempts to fold them.

* It is now possible to load multiple language catalogs and switch between
  them using "/language" or `M-x zenirc-lang-set-current-language'.

* The DCC interface has been largely rewritten.
  It uses the message catalogs and has more hooks.
  Another notable change is the fact that subsequent DCC chat requests from
  the same user are stored and previous requests are discarded.
  This is in case the port number or IP address have changed in the new
  request.

* All the external message catalogs have been renamed by removing the
  `-mode' in their name.  For example, zenirc-latin-mode.el is now
  zenirc-latin.el.  They are updated to use the new catalog mechanism.

* Almost all tables are now implemented as hash tables instead of
  linear lists.  This should speed up searches.

* Line input has been completely reimplemented.  It's now safe to send very
  long lines in private messages and notices; if necessary they are broken
  into multiple chunks and sent separately.

  Also, it's easier to send text line-at-a-time by yanking text into the
  buffer, moving point to the beginning of the new input, and hitting
  return successively.  No excess newlines are inserted any more, and point
  is automatically positioned on the next line of unsent input.

  You can have confirmation of sending go in the echo area instead of
  inserting lines in the buffer.

* /kick, /kill, /notice, /privmsg, and /squit commands are now sent to the
  server in the proper format.

* zenirc-popup is now a minor mode that can be enabled or disabled with the
  `zenirc-popup-mode' command.  It should also work in emacs 18 now.

* The method of display for matching completions can be controlled by the
  user via the variable `zenirc-complete-display-function'.  The default is
  to display completions in the echo area if they will fit.  Otherwise, use
  a portion of the zenirc window.

  The variable `zenirc-complete-add-final-space-p' controls whether a
  trailing space is added to unique completions.  The default is to do so
  since this is consistent with completion in emacs and other GNU programs.

* You can now use `;' and `:' to send a private message to the last person
  you sent a private message to, or who sent you a private message.  These
  keys only have this special meaning if they are the first character of
  your input.

  The other commands which do this used to be bound on `C-c s' and `C-c r'.
  They are now on `C-c C-s' and `C-c C-r', since the former keys are
  reserved for the user's private use.  These commands always insert the
  recipient's name at the beginning of your input, rather than wherever
  point happens to be.

* The mechanism for specifying how to connect to servers is completely
  revamped.  The variable `zenirc-server-alist' is used to specify a list
  of servers (with optional port/password/nick info).  Each one is tried in
  turn until a successful connection is made.  It is initialized from your
  IRCSERVER environment variable, which can have the same format as parsed
  by ircII.

  You can set the variables `zenirc-server-default', `zenirc-nick-default',
  `zenirc-port-default', etc.  Or if these are unset, the appropriate
  environment variables are used.

* By default, any message with more than 4 CTCP queries is ignored.
  This is to avoid being disconnected for flooding.
  To disable this check, remove the appropriate regexp from
  zenirc-ignorance-list.

* A new hook, zenirc-message-hook, is called each time a message is
  inserted in the buffer.  The hook zenirc-send-line-hook is called each
  time you send a line of text.

* If a command hook is nil, the command is just sent directly to the server,
  like /quote.  To keep a command from going to the server at all, put the
  `ignore' function on the appropriate hook.

* The new script zenirc-iwantop.el allows you to accept ctcp queries from
  users and give them channel operator privileges automatically.

* zenirc-fancy-away.el has been renamed to zenirc-away.el.
  zenirc-fancy-format.el has been renamed to zenirc-format.el.
  zenirc-fancy-signal.el has been renamed to zenirc-signal.el.

* Too many bug fixes and other minor improvments to mention here.
  See the ChangeLog for details.


Changes to ZenIRC in version 2.16:

* Added /oper command.


Changes to ZenIRC in version 2.15:

* New scripts: zenirc-popup.el, zenirc-fancy-away.el, and zenirc-yow.el
  The first pops up a window when signals occur and there is presently no
  window displaying that buffer.
  The second insures that you see a user's away message only once, until
  they change it again.
  The last implements the command /yow, and also allows you to
  autoreply to victims with zippy quotes.

* zenirc-complete.el has been completely rewritten.
  The new version is better at insidiously caching data, doesn't tamper
  with the kill-ring, and has fewer bugs.

* Made most files, including zenirc.el, "provide" themselves.
  Also made any scripts which refer to symbols declared in zenirc.el
  require it.

  This means that in emacs 19, you can use M-x unload-feature to easily
  undo most of the effects of loading a package, except for top-level
  forms.

* zenirc has a new hook, zenirc-mode-hook, that is called at the end of
  zenirc-mode.

* Many bugs fixes in process filters to keep point and window display from
  being munged incorrectly, to keep signal hooks from running when not
  appropriate (and also so that other hooks can permanently modify the
  state of buffers if desired).

* Made signal hooks run last, after buffer update has already occured.

* Removed recursion from some basic regexp matching routines.

* Fixed bug in DCC chat code that was occasionally dropping bits of
  incoming lines.

* New script, zenirc-random-nick.el, can be used to randomly choose
  nicknames for IRC if you are feeling deconstructionist.
