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
* 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
* 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
* 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
* 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
* zenirc-klingon.el and zenirc-bork.el are two new sets of language
* /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
* zenirc-history.el gives you shell-like C-p and C-n on C-cC-p and
* 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
* 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
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
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
* 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
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
* zenirc has a new hook, zenirc-mode-hook, that is called at the end of
* 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
* New script, zenirc-random-nick.el, can be used to randomly choose
nicknames for IRC if you are feeling deconstructionist.