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

User-visible changes in ZenIRC 3.0:

* 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.
