Commits

Anonymous committed 6929480

Sync riece with upstream version 1.0.8

Comments (0)

Files changed (61)

+2005-03-06  Daiki Ueno  <ueno@unixuser.org>
+
+	* Riece: Version 1.0.8 released.
+	* configure.ac: Bump up version to 1.0.8.
+
+2005-02-05  Daiki Ueno  <ueno@unixuser.org>
+
+	* Riece: Version 1.0.7 released.
+	* configure.ac: Bump up version to 1.0.7.
+
+2004-12-07  Daiki Ueno  <ueno@unixuser.org>
+
+	* README.ja: New file.
+
 2004-12-07  Norbert Koch  <viteno@xemacs.org>
 
 	* Makefile (VERSION): XEmacs package 1.17 released.
 # This XEmacs package contains the riece IRC client package
 
 VERSION = 1.17
-AUTHOR_VERSION = 1.0.6
+AUTHOR_VERSION = 1.0.8
 MAINTAINER = Daiki Ueno <ueno@unixuser.org>
 PACKAGE = riece
 PKG_TYPE = regular
 
 include ../../Local.rules.inc
 
-ELCS = lisp/riece-compat.elc lisp/riece-xemacs.elc lisp/riece-globals.elc \
-	lisp/riece-options.elc lisp/riece-version.elc lisp/riece-coding.elc \
-	lisp/riece-complete.elc lisp/riece-addon.elc lisp/riece-mode.elc \
-	lisp/riece-identity.elc lisp/riece-channel.elc lisp/riece-user.elc \
-	lisp/riece-misc.elc lisp/riece-signal.elc lisp/riece-layout.elc \
-	lisp/riece-display.elc lisp/riece-server.elc lisp/riece-naming.elc \
-	lisp/riece-message.elc lisp/riece-filter.elc lisp/riece-handle.elc \
-	lisp/riece-000.elc lisp/riece-200.elc lisp/riece-300.elc \
-	lisp/riece-400.elc lisp/riece-500.elc lisp/riece-commands.elc \
-	lisp/riece-irc.elc lisp/riece.elc lisp/riece-ctcp.elc \
-	lisp/riece-highlight.elc lisp/riece-log.elc lisp/riece-mini.elc \
-	lisp/riece-rdcc.elc lisp/riece-url.elc lisp/riece-unread.elc \
-	lisp/riece-doctor.elc lisp/riece-alias.elc lisp/riece-foolproof.elc \
-	lisp/riece-guess.elc lisp/riece-history.elc lisp/riece-button.elc \
-	lisp/riece-keyword.elc lisp/riece-menu.elc lisp/riece-icon.elc \
-	lisp/riece-async.elc lisp/riece-lsdb.elc lisp/riece-xface.elc \
-	lisp/riece-ctlseq.elc lisp/riece-ignore.elc lisp/riece-hangman.elc \
-	lisp/riece-biff.elc lisp/riece-kakasi.elc lisp/riece-yank.elc
+ELCS = lisp/riece-000.elc lisp/riece-200.elc lisp/riece-300.elc	      \
+	lisp/riece-400.elc lisp/riece-500.elc lisp/riece-addon.elc	      \
+	lisp/riece-alias.elc lisp/riece-async.elc lisp/riece-biff.elc	      \
+	lisp/riece-button.elc lisp/riece-channel.elc lisp/riece-coding.elc    \
+	lisp/riece-commands.elc lisp/riece-compat.elc lisp/riece-complete.elc \
+	lisp/riece-ctcp.elc lisp/riece-ctlseq.elc lisp/riece-debug.elc	      \
+	lisp/riece-display.elc lisp/riece-doctor.elc lisp/riece-emacs.elc     \
+	lisp/riece-eval.elc lisp/riece-filter.elc lisp/riece-foolproof.elc    \
+	lisp/riece-globals.elc lisp/riece-google.elc lisp/riece-guess.elc     \
+	lisp/riece-handle.elc lisp/riece-hangman.elc lisp/riece-highlight.elc \
+	lisp/riece-history.elc lisp/riece-icon.elc lisp/riece-identity.elc    \
+	lisp/riece-ignore.elc lisp/riece-irc.elc lisp/riece-kakasi.elc	      \
+	lisp/riece-keepalive.elc lisp/riece-keyword.elc lisp/riece-layout.elc \
+	lisp/riece-log.elc lisp/riece-lsdb.elc lisp/riece-menu.elc	      \
+	lisp/riece-message.elc lisp/riece-mini.elc lisp/riece-misc.elc	      \
+	lisp/riece-mode.elc lisp/riece-naming.elc lisp/riece-ndcc.elc	      \
+	lisp/riece-options.elc lisp/riece-rdcc.elc lisp/riece-server.elc      \
+	lisp/riece-signal.elc lisp/riece-skk-kakutei.elc		      \
+	lisp/riece-toolbar.elc lisp/riece-unread.elc lisp/riece-url.elc	      \
+	lisp/riece-user.elc lisp/riece-version.elc lisp/riece-xemacs.elc      \
+	lisp/riece-xface.elc lisp/riece-yank.elc lisp/riece.elc
 
 EXTRA_SOURCES = lisp/riece-emacs.el lisp/riece-skk-kakutei.el lisp/url-riece.el
 AUTOLOAD_PATH = lisp
 
 PRELOADS = -eval \("push \"./lisp\" load-path"\)
 
+DATA_1_FILES = $(wildcard lisp/*.xpm)
+
 include ../../XEmacs.rules
 SUBDIRS = lisp doc
-EXTRA_DIST = INSTALL-CVS
+EXTRA_DIST = INSTALL-CVS README.ja NEWS.ja
 AUTOMAKE_OPTIONS = no-dependencies
 
 if XEMACS
+* Major changes in 1.0.8
+
+** Mitigate file locking scheme of riece-log. (ueno)
+
+** Format idle seconds in human readable form. (ueno)
+
+** Separate riece-obarray into riece-channel-obarray and
+   riece-user-obarray. (kaoru)
+
+** Fixed bugs caused by mishandling of channel names (which should be
+   case insensitive.) (ueno)
+
+** Support SXEmacs version names. (Steve Youngs)
+
+** Support CTCP TIME. (Steve Youngs)
+
+** Ignore directories under ~/.riece/addons. (kaoru)
+
+** Fixed wrong-number-of-arguments error on riece-command-part. (yoichi)
+
+** Fixed a bug which assumes existence of ~/.riece/addons when
+   startup. (ueno)
+
+* Major changes in 1.0.7
+
+** New add-on riece-toolbar. (ueno)
+   riece-toolbar displays icons on toolbar.  Currently not all the
+   icons are included.
+
+** New add-on riece-keepalive. (ueno)
+   riece-keepalive spontaneously sends a PING message to server to
+   keep an IRC connection.
+
+** New add-on riece-google. (bg66)
+   riece-google searches on Google and sends the result to the channel.
+
+** New add-on riece-eval. (bg66)
+   riece-eval evaluates elisp expression and sends the result to the channel.
+
+** Some add-ons are enabled by default. (ueno)
+   riece-log, riece-alias, riece-ctlseq, and riece-keyword are now
+   enabled by default.
+
+** New command riece-command-suspend-resume. (ueno)
+   riece-command-suspend-resume saves or restores the current window
+   configuration.
+
+** Preserve cursor position when clicking button widget. (ueno)
+
+** Decorate modeline indicator with faces. (ueno)
+
+** Count users in NAMES reply. (ueno)
+
+** New user option riece-part-message. (ueno)
+
+** Add-ons located in riece-addon-directory are automatically enabled. (ueno)
+
+** Default value of riece-buffer-dispose-function is now kill-buffer. (ueno)
+
+** Backtrace when encountered an error in process-filter. (ueno)
+
+** Ask channel key to user when it is required. (ueno)
+
+** Automatic buffer shrinking is now disabled by default. (ueno)
+
+** New directory structure for riece-log. (ueno)
+
+** Fixed a bug in user-renamed signal-filter. (kaoru)
+
+** Fixed a bug in riece-command-enable-addon and
+   riece-command-disable-addon. (yoichi)
+
+* Major changes in 1.0.6
+
+** Bundle url-riece, a backend of url-irc which comes with the recent
+   GNU Emacs. (Yamato-san)
+
+** New user option riece-url-regexp-alist to allow users to define
+   mapping from arbitrary strings (such as "Bug#12345") to URL. (This
+   feature is a backport from Liece) (ueno)
+
+** New modeline indicator which represents user's channel operator
+   status in the current channel. (ueno, thanks to k-to)
+
+** Remove multiple lines at a time when shrinking channel buffers.
+   Number of lines to be removed is controlled by
+   riece-shrink-buffer-remove-lines option. (ueno, thanks to ysjj)
+
+** riece-alias-alist now works again. (ueno)
+
+** Fixed a bug in flow control for sending long messages, introduced
+   in 1.0.4. (ueno)
+
+** New command riece-submit-bug-report to generate a template for good
+   problem report. (ueno)
+
+** Accept radical IRC proxy programs which break with tradition of the
+   original IRC server implementation. (ueno, thanks to k-to san)
+
+** New key bind C-c # <number> to switch channel by number. (ueno,
+   thanks to ysjj)
+
+** If a prefix-argument is given, riece-yank sends message as a NOTICE. (bg66)
+
+* Major changes in 1.0.5
+
+** Added some test cases. (ueno)
+
+** Alternate separator string for channel names. (ueno)
+   In case riece-alias-alternate-separator set to "@", rewriting will
+   be done as follows:
+
+   "#riece" -> "#riece"
+   "#riece localhost" -> "#riece@localhost"
+   "#ch@nnel" -> "#ch@@nnel"
+   "#ch@nnel localhost" -> "#ch@@nnel@localhost"
+
+** Fixed interop bug in DCC. (ueno)
+
+** New add-on riece-yank to send strings from kill-ring. (by Yamato-san)
+
+** English translation of texinfo document is included. (ueno)
+
+* Major changes in 1.0.4
+
+** Do "flow control" to avoid flooding. (ueno)
+
+** Automatically open servers when joining channels at startup.  Users
+   can now omit riece-startup-server-list settings. (ueno)
+
+** riece-mini provides a command to browse recent messages. (bg66)
+
+* Major changes in 1.0.3
+
+NOTE: This release includes some fixes to long standing bugs in essential features.  I recommend to upgrade from the older versions.
+
+** Remove nonexistent users from user list.  (Thanks to Yamashita-san)
+
+** Improved line truncation customizability.  Users can now control it
+   by simply setting truncate-lines on each buffer.  (Thanks to
+   Yamashita-san)
+
+** Added new user option riece-window-center-line to control buffer
+   scrolling behavior.
+
+** Fixed completion bug in command buffer.  (Thanks to Yamashita-san)
+
+** Remove chat partner from channel list when he/she resigned from
+   IRC.  (Thanks to Morimoto-san)
+
+** Exit immediately after an error occurred in connecting to the
+   default IRC server.  (Thanks to k-to san)
+
+* Major changes in 1.0.2
+
+** Fixed problem hiding menubar menus when riece-url is enabled.
+
+** Split IRC protocol interface from the core modules.
+
+** Fixed minor bugs.
+
+* Major changes in 1.0.1
+
+** Arranged background colors of modeline faces (for XEmacs)
+
+** When changing channel modes, do not prepend ":" to MODE message
+   (Thanks to Yamada-san)
+
+** Added riece-foolproof add-on which prevents miss posting to
+   channels (by Takahashi-san)
+
+** Arranged the order of modeline elements on channel buffers (by
+   Takahashi-san)
+
+** Changed open/close bracket for displaying own notices (by Takahashi-san)
+
+**  Don't register signal-slot functions duplicatedly.
+
+** New user command riece-command-beginning-of-buffer bound to C-c Home.
+
+** For frozen channels, preserve cursor position of channel buffers
+   while zapping between other channels.
+
+** Follow the change in emacs-cvs, check the return value of
+   current-word (by Nakayama-san)
+
+** Fixed random number generation logic for riece-hangman (by Takahashi-san)
+
+** Signal "No text to send" error if user types C-c p on an empty line.
+
+** New user option riece-startup-ignored-user-list: which can be used
+   to set up riece-ignored-user-list in ~/.riece/init.el.
+
+** Allow sending/receiving files whose names contain whitespaces.
+
+* Major changes in 1.0.0
+
+** New UI for enabling/disabling add-ons (to enter this mode, C-c ^)
+
+** Fixed bug that a user couldn't quit password input with C-g.
+
+** New add-on "riece-hangman" which allows channel members to play hangman(6).
+
+** Display error message on C-c q when no IRC process are running.
+
+** New add-on "riece-ignore" which allows to ignore messages from
+   particular users.
+
+** Accept nicknames consisting more than 9 letters.
+
+** Avoid duplicate initialization of add-ons.
+
+** New add-on "riece-biff" which displays biff mark ("[R]") on
+   mode-line. (by Ohashi-san)
+
+** New add-on "riece-kakasi" which converts Japanese to roman string.
+
+** Fixed prompt strings to indicate the current action more
+   precisely. (suggested by Yamashita-san)
+
+* Major changes in 0.2.2
+
+** Interpret control sequences used in IRC such as ^B, ^V, ^_, etc.
+   This feature is implemented as an add-on called riece-ctlseq.
+
+** Fixed bug that private messages were not treated as unread.
+
+** Buffer "freeze" status can be toggled in each buffer respectively.
+   (use C-t C-f)
+
+** Use canonicalized channel names to locate directories where log
+   files are stored. (by Ohashi-san)
+
+* Major changes in 0.2.0
+
+** Introduced "signal-slot" (as in Qt, GTK+) mechanism to routing
+   display events.
+
+** When a user requests NAMES, insert nicknames into the channel buffer. 
+
+** Fixed bug in riece-lsdb. (by Nakayama-san)
+
+* Major changes in 0.1.8
+
+** Added riece-lsdb add-on which cooperates with LSDB.
+** Added riece-xface add-on which displays X-Faces in user list buffer.
+
+** Fixed bug that channel names were treated case sensitively.
+
+** Handle messages from other clients which use the same IRC proxy.
+   (by Takahashi-san)
+
+* Major changes in 0.1.7
+
+** Added riece-async add-on which provides safe connection to an IRC
+   server via local proxy which responds to PING requests while Emacs
+   is busy or suspended.
+
+** Fixed changing user away status bug when riece-away-message is set.
+   (Thanks to Fujimura-san)
+
+** Remove side effects on standard-syntax-table when loading.
+   (Thanks to Hori-san)
+
+** Can join channels on several servers at startup by setting
+   riece-startup-server-list as well as riece-startup-channel-list.
+
+** New user option `riece-log-coding-system' to specify default coding
+   system used for log files.
+
+** New user option `riece-keyword-notify-functions' called when
+   someone spoke a message including the specified keyword. Please use
+   it instead of `riece-notify-keyword-functions'(very confusing
+   name!).
+
+** riece-log-flashback also restores faces and buttons.
+
+** riece-{unread,mini} ignores NOTICE and CTCP ACTION messages.
+
+* Major changes in 0.1.6
+
+** Fixed running problems on Emacs 20.7.
+
+** Fixed compilation failure on XEmacs 21.1.
+
+** Allow riece-rdcc to receive large files without memory consumption.
+
+** Check channel modes when joinning if riece-gather-channel-modes == t.
+
+** Fixed run-idle-timer usage to shrink channel buffers.
+
+** Fixed buffer scrolling behavior when switching channels.
+
+** Allow to specify qualified channel names in
+   riece-log-directory-map.  (by Ohashi-san)
+
+* Major changes in 0.1.5
+
+** Added 6 new window layouts.
+
+** Automatically save/restore the current window layout.
+
+** Added riece-icon add-on which decorates buffers with icons.
+
+** Speedup in redrawing the user list buffer.
+
+** Improve usability of CTCP ACTION (Thanks to knu-san)
+
+** Fixed bug in riece-rdcc which causes freeze on DCC SEND.
+
+** When riece server was opened, Do riece-command-configure-windows
+   instead of signaling.  (Thanks to Ohashi-san)
+
+** Fixed bug in C-c o (riece-command-set-operators) and C-c v
+   (riece-command-set-speakers).
+
+** Shrink buffers when they exceeds riece-max-buffer-size.
+
+* Major changes in 0.1.4
+
+** Bind "N" instead of "\C-n" to riece-command-names in channel
+   buffers. (thanks to Takahashi-san)
+
+** Fixed bug causing an error when the user typed C-c C-t a
+   (riece-command-toggle-away). (thanks to Maeda-san)
+
+** Don't redisplay buffers when the current selected window doesn't
+   display Riece buffers.
+
+** Don't reuse buffers created by different programs.  Genereate new
+   buffer in such case.
+
+** Fixed bug which doesn't allow to join a channel whose name is
+   beginning with "!!".
+
+** When riece-keyword is effective, don't check if the message from
+   myself contains given keywords.
+
+** Signal an error when the user issues a command which assumes the
+   current channel though the current channel is not available.
+
+** Added riece-menu add-on which adds a menu entry in the menubar.
+
+* Major changes in 0.1.3
+
+** Treat channel names in PRIVMSG/NOTICE messages case-insensitively.
+
+** When riece-history is effective, mark the last visited channel with "+".
+
+** Added riece-button add-on which decorates buffers with buttons and
+   define some popup-menus.
+
+** Added riece-keyword add-on which notifies the user when the arrived
+   message contains given keywords.
+
+   If you are using XEmacs and want to be notified of keywords with
+   sound, add the following lines to your ~/.riece/init.el:
+
+   (load-default-sounds)
+   (setq riece-keywords '("foo" "bar"))
+   (add-hook 'riece-notify-keyword-functions
+             (lambda (keyword) (play-sound 'cuckoo)))
+
+* Major changes in 0.1.2
+
+** Fixed bug when joinning a channel using a key.
+
+** Revive riece-startup-channel-list.
+
+** New user option riece-rdcc-save-directory is added.
+
+** Fixed unable to interrupt password input.
+
+** Fixed bug in the INVITE handler.
+
+** Prompt a channel name when the user joins the invited channel.
+
+** Fixed bug that occasionally kept riece-channel-list-indicator not
+   up to date.
+
+* Major changes in 0.1.1
+
+** Load some add-ons by default.
+
+** Fixed bug with riece-default-channel-binding not working.
+
+** Mark the current channel with "*" in *Channels* buffer.
+
+** If riece-debug is turned off, don't report connection status when exiting.
+
+** New add-on: riece-history manages channel switching history.
+
+** New add-on: riece-guess offers the next channel user may want to check.
+
+   Tips:
+
+   If you have the following lines in ~/.riece/init.el:
+
+   (setq riece-guess-channel-try-functions
+         '(riece-guess-channel-from-unread
+	   riece-guess-channel-from-history))
+
+   By hitting `C-c g' repeatedly, you can check channels in the
+   following order:
+
+   1. Channels where there is unread message.
+   2. Channels where you have visited recently.
+   3. The rest.
+
+* Major changes in 0.1.0
+
+** Use vectors to represent channels and users.
+
+** Improve process management:
+   -- Server names are now embedded in process names.
+   -- Integrate scattered connection management code into riece-server.el.
+   -- Force disconnect if the server does not respond after sending QUIT.
+
+** New add-on: riece-doctor.el allows to pretended to be a doctor.
+
+** Window configuration can be easily switched by hitting C-c t l.
+
+** New add-on: riece-skk-kakutei.el avoids $B"&(B being included in
+  spoken text, when you are using SKK. (by Takahashi-san)
+
+** New predefined layout which emulates "top" window-style as in Liece.
+   (by Takahashi-san)
+
+* Major changes in 0.0.4
+
+** Added riece-mini add-on which allows conversation through a
+   minibuffer (by Ohashi-san).
+
+** Added log collector add-on (riece-log) (by Ohashi-san).
+
+** riece-command-next-channel (C-c >) and
+   riece-command-previous-channel (C-c <) now follow the channel list
+   circularly (by Nakayama-san).
+
+** When riece-unread is enabled, you can quickly check the unread
+   channels by hitting C-c C-u (by Ohashi-san).
+
+** Display of status indicators obeys some IRC messages.
+
+** Replaced ptexinfmt.el with the version which does not depend on
+   APEL (Thanks to Yamaoka-san).
+
+* Major changes in 0.0.3
+
+** Fix bug connecting to two servers which require passwords (Thanks
+   to Nakayama-san)
+
+** Fix inconsistency when changing case of letters in nickname
+
+** Catch all errors occured in handler hooks
+
+** Support DCC file transfer (riece-ndcc.el, riece-rdcc.el)
+
+** Add "mark unread channels" add-on (riece-unread.el)
+
+** Add Japanese texinfo manual (I'll translate it in the future)
+
+* Major changes in 0.0.2
+
+** Don't use APEL functions (pop, push)
+
+** "depcomp" was missing in the previous archive (sorry!)
+
+** Fix bug building on Windows environment (Thanks to Ohashi-san)
+
+** Fix inconsistency when changing nickname
+
+** Fix bug on C-c C-t u (M-x riece-command-toggle-user-list-mode)
+
+** Provide add-on mechanism
+
+** Partial support for CTCP
+
+** Make font-lock related module (riece-highlight) add-on
+
+** Revive URL collector (formerly liece-url) as add-on
+
+* Major changes in 0.0.1
+
+** Initial release.
+
+* For details of changes, see the file ChangeLog.
+
+Local variables:
+mode: outline
+paragraph-separate: "[  
+end:
+* Riece 1.0.8 $B$N<g$JJQ99E@(B
+
+** riece-log $B$N%m%C%/$N4KOB(B (ueno)
+
+** RPL_WHOISIDLE $B$NIC?t$rF|;~J,IC7A<0$GI=<((B (ueno)
+
+** riece-obarray $B$r(B riece-channel-obarray, riece-user-obarray $B$KJ,N%(B
+   (kaoru)
+
+** $B$$$/$D$+$N8D=j$G%A%c%s%M%kL>$NBgJ8;z>.J8;z$,6hJL$5$l$k%P%0$X$NBP1~(B (ueno)
+
+** SXEmacs $B$N%P!<%8%g%sI=5-$KBP1~(B (Steve Youngs)
+
+** CTCP TIME $B$KBP1~(B (Steve Youngs)
+
+** ~/.riece/addons $B0J2<$N%G%#%l%/%H%j$rFI$_9~$^$J$$$h$&$K$7$?(B (kaoru)
+
+** riece-command-part $B$,%(%i!<$K$J$k%P%0$N=$@5(B (yoichi)
+
+** ~/.riece/addons $B%G%#%l%/%H%j$,$J$$$H5/F0;~$K%(%i!<$K$J$k%P%0$N=$@5(B (ueno)
+
+* Riece 1.0.7 $B$N<g$JJQ99E@(B
+
+** $B?75,%"%I%*%s(B riece-toolbar (ueno)
+   riece-toolbar $B$O%D!<%k%P!<$K%"%$%3%s$rI=<($7$^$9!#8=;~E@$G$OA4$F$N(B
+   $B%"%$%3%s$,4^$^$l$F$$$k$o$1$G$O$"$j$^$;$s!#(B
+
+** $B?75,%"%I%*%s(B riece-keepalive (ueno)
+   riece-keepalive $B$O<+H/E*$K%5!<%P$K(B PING $B%a%C%;!<%8$rAw$k$3$H$G(B IRC
+   $B$N%3%M%/%7%g%s$r;}B3$5$;$^$9!#(B
+
+** $B?75,%"%I%*%s(B riece-google (bg66)
+   riece-google $B$O(B Google $B$G$N8!:w7k2L$r%A%c%s%M%k$KAw$j$^$9!#(B
+
+** $B?75,%"%I%*%s(B riece-eval (bg66)
+   riece-eval $B$O(B elisp $B$N<0$NI>2A7k2L$r%A%c%s%M%k$KAw$j$^$9!#(B
+
+** $B$$$/$D$+$N%"%I%*%s$r%G%U%)%k%H$GM-8z2=(B (ueno)
+   riece-log, riece-alias, riece-ctlseq, riece-keyword $B$,:#2s$+$i%G%U%)(B
+   $B%k%H$GM-8z$K$J$j$^$9!#(B
+
+** $B?75,%3%^%s%I(B riece-command-suspend-resume (ueno)
+   riece-command-suspend-resume $B$O8=:_$N%&%#%s%I%&9=@.$rJ]B8!&:F8=$7$^$9!#(B
+
+** $B%\%?%s%&%#%8%'%C%H%/%j%C%/;~$N%+!<%=%k0\F0$NM^;_(B (ueno)
+
+** $B%b!<%I%i%$%s$N%$%s%8%1!<%?$r(B face $B$GAu>~(B (ueno)
+
+** NAMES $B%j%W%i%$$K4^$^$l$k%f!<%6?t$r?t$($k$h$&$K$J$j$^$7$?(B (ueno)
+
+** $B?75,%f!<%6%*%W%7%g%s(B riece-part-message (ueno)
+
+** riece-addon-directory $B0J2<$KCV$+$l$?%"%I%*%s$r<+F0E*$KM-8z2=(B (ueno)
+
+** riece-buffer-dispose-function $B$N%G%U%)%k%HCM$,:#2s$+$i(B kill-buffer
+   $B$K$J$j$^$7$?(B (ueno)
+
+** process-filter $BFb$G%(%i!<$,H/@8$7$?>l9g!"(Bbacktrace $B$r9T$J$&$h$&$K$J(B
+   $B$j$^$7$?(B (ueno)
+
+** $BI,MW$K1~$8$F%A%c%s%M%k%-!<$rLd$$9g$o$;$k$h$&$K$7$^$7$?(B (ueno)
+
+** $B%P%C%U%!$N<+F0E*$J@Z$j5M$a$r%G%U%)%k%H$G$OL58z2=(B (ueno)
+
+** riece-log $B$N$?$a$N?7$7$$%G%#%l%/%H%j9=@.(B (ueno)
+
+** user-renamed signal-filter $B$N%P%0$r=$@5(B (kaoru)
+
+** riece-command-enable-addon $B$H(B riece-command-disable-addon $B$N%P%0$N(B
+   $B=$@5(B (yoichi)
+
+* Riece 1.0.6 $B$N<g$JJQ99E@(B
+
+** CVS $BHG(B GNU Emacs $B$KF1:-$5$l$?(B url $B%Q%C%1!<%8$N(B irc: $B%9%-!<%^BP1~$N(B
+   $B%P%C%/%(%s%I$H$7$F(B Riece $B$r;HMQ$G$-$k$h$&$K$9$k%W%m%0%i%`(B url-riece $B$r(B
+   $BF1:-(B ($BBgOB$5$s(B)
+
+** "Bug#12345" $B$N$h$&$JJ8;zNs$r(B URL $B$K%^%C%W$9$k%*%W%7%g%s(B
+   riece-url-regexp-alist $B$r?7@_(B (Liece $B$+$i%P%C%/%]!<%H(B) (ueno)
+
+** $B%b!<%I%i%$%s$K<+?H$N%A%c%s%M%k%*%Z%l!<%?$N0u(B(@, +)$B$rI=<($9$k$h$&$K(B
+   $B$7$?(B (ueno, thanks to k-to $B$5$s(B)
+
+** $B%P%C%U%!$r@Z$j5M$a$k:]$K!"0l9T$:$D$G$O$J$/J#?t9T0lEY$K:o=|$9$k$h$&(B
+   $B$K$7$?(B (riece-shrink-buffer-remove-lines $B%*%W%7%g%s$G@_Dj2DG=(B) (ueno,
+   thanks to ysjj $B$5$s(B)
+
+** riece-alias-alist $B$,>e<j$/F0$$$F$$$J$+$C$?IT6q9g$N=$@5(B (ueno)
+
+** 1.0.4 $B0J9_!"(BGNU Emacs $B$G!"%a%C%;!<%8Aw?.;~$N%U%m!<@)8f$,>e<j$/F0$$(B
+   $B$F$$$J$+$C$?IT6q9g$N=$@5(B (ueno)
+
+** $B%P%0Js9pMQ$N%3%^%s%I(B riece-submit-bug-report $B$r?7@_(B (ueno)
+
+** nadoka $B$d(B Tiarra $B$J$I$N(B IRC proxy $B$,!"(BIRC $B%5!<%P<BAu$NEAE}$K1h$o$J(B
+   $B$$%a%C%;!<%8$rJV$9$3$H$X$NBP=h(B (ueno, thanks to k-to $B$5$s(B)
+
+** C-c # $B?t;z$G;XDj$7$?HV9f$N%A%c%s%M%k$K0\F0$G$-$k$h$&$K$7$?(B (ueno,
+   thanks to ysjj $B$5$s(B)
+
+** riece-yank $B$G!"A0CV0z?t$r;XDj$9$k$3$H$K$h$j!"%a%C%;!<%8$r(B NOTICE $B$H(B
+   $B$7$FAw?.$G$-$k$h$&$K$7$?(B (bg66)
+
+* Riece 1.0.5 $B$N<g$JJQ99E@(B
+
+** $B%f%K%C%H%F%9%H$rDI2C!#(B(ueno)
+
+** $BJ#?t%5!<%P@\B3;~$K!"%A%c%s%M%kL>$H%5!<%PL>$N6h@Z$j$K6uGr0J30$NJ8;z(B
+   $BNs$r;H$($k$h$&$K$7$?!#(B(ueno)
+
+   riece-alias-alternate-separator == "@" $B$N;~$NJQ495,B'$O0J2<$NDL$j!'(B
+
+   "#riece" -> "#riece"
+   "#riece localhost" -> "#riece@localhost"
+   "#ch@nnel" -> "#ch@@nnel"
+   "#ch@nnel localhost" -> "#ch@@nnel@localhost"
+
+** DCC $B$,B>$N%/%i%$%"%s%H$H$N4V$G$&$^$/F0$+$J$$IT6q9g$N=$@5!#(B(ueno)
+
+** kill-ring $B$+$iJ8;zNs$rAw?.$9$k%"%I%*%s(B riece-yank $B$rDI2C!#(B(by $BBgOB$5$s(B)
+
+** $B1Q8l$NJ8=q$rDI2C!#(B(ueno)
+
+* Riece 1.0.4 $B$N<g$JJQ99E@(B
+
+** $BBgNL$N%a%C%;!<%8$rAw$k>l9g$K!"%U%m!<@)8f$r9T$&$h$&$K$7$?!#(B(ueno)
+
+** $B5/F0;~$KJ#?t%5!<%P>e$N%A%c%s%M%k$K;22C$9$k@_Dj$G!"(B
+   riece-startup-server-list $B$N@_Dj$r>JN,2DG=$K$7$?!#(B(ueno)
+
+** riece-mini $B;HMQ;~$K2a5n$N%a%C%;!<%8$r1\Mw$9$k5!G=$r@_$1$?!#(B(bg66)
+
+* Riece 1.0.3 $B$N<g$JJQ99E@(B
+
+** NAMES $BH/9T;~$K!V$$$J$$$O$:$N%f!<%6!W$r%f!<%60lMw$+$i=|30$9$k$h$&$K(B
+   $B$7$?(B (Thanks to $B;32<$5$s(B)
+
+** $B9T$N@^$jJV$7$r3F%P%C%U%!$N(B truncate-lines $B$NCM$G%+%9%?%^%$%:$G$-$k(B
+   $B$h$&$K$7$?(B(Thanks to $B;32<$5$s(B)
+
+** $B%A%c%s%M%k%P%C%U%!$N%9%/%m!<%kF0:n$r@)8f$9$k%*%W%7%g%s(B
+   riece-window-center-line $B$rDI2C(B
+
+** $B%3%^%s%I%P%C%U%!$G$NJd40$NIT6q9g$r=$@5(B (Thanks to $B;32<$5$s(B)
+
+** $B0lBP0l$N2qOC$G!"Aj<j$,(B quit $B$7$?>l9g!"%A%c%s%M%k0lMw$+$i=|30$9$k$h(B
+   $B$&$K$7$?(B (Thanks to  $B?9K\$5$s(B)
+
+** $B%G%U%)%k%H$N(B IRC $B%5!<%P$X$N@\B3;~$K%(%i!<$,=P$?>l9g$K$O!"B(:B$K=*N;(B
+   $B$9$k$h$&$K$7$?(B(Thanks to k-to $B$5$s(B)
+
+* Riece 1.0.2 $B$N<g$JJQ99E@(B
+
+** riece-url $B;HMQ;~$K%a%K%e!<%P!<$N%a%K%e!<$,GK2u$5$l$kIT6q9g$N=$@5(B
+
+** Jabber $BBP1~$K8~$1!"%W%m%H%3%k%$%s%?!<%U%'!<%9$rJ,$1$?(B
+
+** $B$=$NB>!";(B?$J=$@5(B
+
+* Riece 1.0.1 $B$N<g$JJQ99E@(B
+
+** XEmacs $B$G!"%b!<%I%i%$%s$KI=<($5$l$k%A%c%s%M%k$NGX7J?'$r%b!<%I%i%$%s(B
+   $B$N?'$K$"$o$;$?(B
+
+** $B%A%c%s%M%k$N%b!<%IJQ99;~$K!"%b!<%I;XDj$N@hF,$K(B ":" $B$rIU$1$FAw$C$F$$(B
+   $B$?IT6q9g$N=$@5(B
+   (Thanks to $B$d$^$@$5$s(B)
+
+** $B%A%c%s%M%k%_%9$rKI$0%"%I%*%s(B riece-foolproof $B$rDI2C(B (by $B9b66$5$s(B)
+
+** $B%A%c%s%M%k%P%C%U%!$N%b!<%I%i%$%s$KI=<($5$l$kMWAG$N=gHV$rJQ99(B (by $B9b66$5$s(B)
+
+** NOTICE $B$GH/8@$7$?;~$NI=<($rJQ99(B (by $B9b66$5$s(B)
+
+** $B:F5/F0;~$K%7%0%J%k4X?t$rFs=E$KEPO?$7$F$$$?IT6q9g$N=$@5(B
+
+** C-c Home $B$G%A%c%s%M%k%P%C%U%!$N@hF,$K%+!<%=%k$r0\F0$9$k%3%^%s%I$rDI2C(B
+
+** $B%U%j!<%:>uBV$N%A%c%s%M%k$G$O!"%A%c%s%M%k$r0\F0$7$F$b%A%c%s%M%k%P%C(B
+   $B%U%!$N%+!<%=%k0LCV$rJ]$D$h$&$K$7$?(B
+
+** CVS $BHG$N(B Emacs $B$G!"0z?t$J$7$N(B current-word $B$,(B nil $B$rJV$9$h$&$K$J$C$?$?$a!"(B
+   riece-command-complete-user $B$,%(%i!<$K$J$kIT6q9g$N=$@5(B (by $BCf;3$5$s(B)
+
+** riece-hangman $B$NMp?tH/@8%m%8%C%/$N=$@5(B (by $B9b66$5$s(B)
+
+** $B6u9T$N>e$G!"(BC-c p $B$G%a%C%;!<%8$rAw$m$&$H$7$?>l9g!"%(%i!<$rDLCN$9$k(B
+   $B$h$&$K$7$?(B
+
+** riece-ignore $B;HMQ;~$K!"@_Dj%U%!%$%k$GL5;k$9$k%f!<%6$r;XDj$G$-$k$h$&!"(B
+   $B%*%W%7%g%s(B riece-startup-ignored-user-list $B$r?7@_(B
+
+** riece-rdcc $B;HMQ;~$K!"%U%!%$%kL>$K6uGr$,F~$C$?%U%!%$%k$rAw<u?.$G$-$k(B
+   $B$h$&$K$7$?(B
+
+* Riece 1.0.0 $B$N<g$JJQ99E@(B
+
+** $B%"%I%*%s$N0lMwI=<(%b!<%I$rDI2C$7!"<B9T;~$K%"%I%*%s$rM-8z2=!&L58z2=(B
+   $B$G$-$k$h$&$K$7$?(B (C-c ^)
+
+** GNU Emacs $B$G!"%Q%9%o!<%IF~NOCf$K(B Quit (C-g) $B$G$-$J$$IT6q9g$N=$@5(B
+
+** $B%A%c%s%M%kFb$G(B hangman(6) $B$GM7$V%"%I%*%s(B riece-hangman $B$rDI2C(B
+
+** $B%W%m%;%9$,0l$D$b$J$$>l9g$K(B C-c q $B$7$?>l9g$N%a%C%;!<%8$rJQ99(B
+
+** $B%f!<%6$rL5;k$9$k%"%I%*%s(B riece-ignore $B$rDI2C(B
+
+** 9 $BJ8;z0J>e$N%K%C%/%M!<%`$b<u$1IU$1$k$h$&$K$7$?(B
+
+** $B:F5/F0$7$?:]$K!"%"%I%*%s$rFs=E$KAH$_9~$^$J$$$h$&$K$7$?(B
+
+** $BB>$N%P%C%U%!$K$$$k;~$KH/8@$,$"$k$H%b!<%I%i%$%s$K0u(B ("[R]") $B$rI=<($9(B
+   $B$k%"%I%*%s(B riece-biff $B$rDI2C(B (by $BBg66$5$s(B)
+
+** $BF|K\8l$NDL$i$J$$C<Kv$G!"F|K\8l$r%m!<%^;z$GI=<($9$k%"%I%*%s(B
+   riece-kakasi $B$rDI2C(B
+
+** $B%3%^%s%I%W%m%s%W%H$K%"%/%7%g%s$r<($9J8;zNs$rDI2C(B (suggested by $B;32<$5$s(B)
+
+* Riece 0.2.2 $B$N<g$JJQ99E@(B
+
+** ^B, ^V, ^_ $B$J$I$N%3%s%H%m!<%k%7!<%1%s%9$K$h$kJ8;zNs$N6/D4$KBP1~(B
+   (riece-ctlseq $B%"%I%*%s$rDI2C(B)
+
+** $B%W%j%V$,L$FI07$$$5$l$J$$IT6q9g$N=$@5(B
+
+** $B%A%c%s%M%k%P%C%U%!!"(B*Others* $B%P%C%U%!$rFHN)$K(B freeze $B$G$-$k$h$&$K$7(B
+   $B$?!#(B($B3F%P%C%U%!$G(B C-t C-f $B$G%H%0%k(B)
+
+** riece-log $B$G!"%m%0$NJ]B8@h%G%#%l%/%H%j$r(B canonicalize $B$7$?%A%c%s%M(B
+   $B%kL>$+$i5a$a$k$h$&$K$7$?!#(B(by $BBg66$5$s(B)
+
+* Riece 0.2.0 $B$N<g$JJQ99E@(B
+
+** Qt $B$d(B GTK+ $B$HF1MM$N%7%0%J%k$rF3F~$7!"ItJ,E*$K:FIA2h$9$k$h$&$K$7$?!#(B
+
+** C-c C-n $B$G!"%A%c%s%M%k%P%C%U%!$K$bL>A0$N0lMw$rI=<($9$k$h$&$K$7$?!#(B
+
+** riece-lsdb $B;HMQ;~$NIT6q9g$N=$@5(B (by $BCf;3$5$s(B)
+
+* Riece 0.1.8 $B$N<g$JJQ99E@(B
+
+** LSDB $B$HO"7H$9$k%"%I%*%s(B riece-lsdb $B$rDI2C(B
+
+** $B%f!<%60lMw$K(B X-Face $B$rI=<($9$k%"%I%*%s(B riece-xface $B$rDI2C(B ($BMW(B LSDB)$B!%(B
+$B%9%/%j!<%s%7%g%C%H!'(B
+http://wiliki.designflaw.org/riece-xface.png
+
+** $B%A%c%s%M%kL>$NBgJ8;z>.J8;z$,6hJL$5$l$F$7$^$&%P%0$r=$@5(B
+
+** IRC proxy $B$KB>$N%/%i%$%"%s%H$H0l=o$K@\B3$7$F$$$k>l9g$G$b!$<+J,$NH/(B
+   $B8@$r$-$A$s$H07$&$h$&$K$7$?(B (by $B9b66$5$s(B)
+
+* Riece 0.1.7 $B$N<g$JJQ99E@(B
+
+** Emacs $B$,(B busy or suspend $B>uBV$K$J$k$3$H$KHw$(!"(B
+   PING $B$K1~Ez$9$k(B local proxy $B7PM3$G(B IRC $B%5!<%P$K@\B3$9$k%"%I%*%s(B
+   riece-async $B$rDI2C(B
+
+** riece-away-message $B$,;XDj$5$l$?>l9g$K(B AWAY $B>uBV$N%H%0%k$K<:GT$9$k%P(B
+   $B%0$r=$@5(B (Thanks to $BF#B<$5$s(B)
+
+** GNU Emacs $B$G!"%m!<%I;~$K(B standard-syntax-table $B$rJQ99$7$F$7$^$&%P%0$r=$@5(B
+   (Thanks to Hori $B$5$s(B)
+
+** riece-startup-channel-list $B$K2C$(!"(Briece-startup-server-list $B$r;XDj(B
+   $B$9$k$3$H$G!"5/F0;~$KJ#?t$N%5!<%P>e$N%A%c%s%M%k$K;22C$G$-$k$h$&$K$7$?(B
+
+** riece-log $B;HMQ;~$K%m%0%U%!%$%k$N(B coding system $B$r;XDj$9$k%*%W%7%g%s(B
+   riece-log-coding-system $B$rDI2C(B
+
+** riece-keyword $B;HMQ;~$K;XDj$7$?%-!<%o!<%I$NH/8@$,$"$C$?;~$K8F$P$l$k(B
+   riece-keyword-notify-functions $B$rDI2C!#4{B8$N(B
+   riece-notify-keyword-functions($B$J$s$FJ6$i$o$7$$L>A0(B!) $B$NBe$o$j$K$3$A$i(B
+   $B$r;HMQ$7$F$/$@$5$$(B
+
+** riece-log $B;HMQ;~$K(B riece-log-flashback $B$,%O%$%i%$%H$d%\%?%s$bI|85$9(B
+   $B$k$h$&$K$7$?(B
+
+** riece-{unread,mini} $B$r(B NOTICE $B$d(B CTCP ACTION $B$K$OH?1~$7$J$$$h$&$K$7$?(B
+
+* Riece 0.1.6 $B$N<g$JJQ99E@(B
+
+** Emacs 20.7 $B$G$&$^$/F0:n$7$J$$IT6q9g$N=$@5!#(B
+
+** XEmacs 21.1 $B$G%3%s%Q%$%k$K<:GT$9$kIT6q9g$N=$@5(B($BF0:n$OL5J]>Z(B)$B!#(B
+
+** riece-rdcc $B$G!"5pBg$J%U%!%$%k$r<u?.$7$F$b%a%b%j$r?)$o$J$$$h$&$K$7$?!#(B
+
+** riece-gather-channel-modes == t $B$N>l9g!"%A%c%s%M%k;22C;~$K%A%c%s%M(B
+   $B%k$N%b!<%I$rD4$Y$k$h$&$K$7$?!#(B
+
+** $B%A%c%s%M%k%P%C%U%!$N%5%$%:$r@Z$j5M$a$k%?%$%_%s%0$r=$@5!#(B
+
+** $B%A%c%s%M%k0\F0;~$K!"%P%C%U%!$,<+F0E*$K%9%/%m!<%k$7$J$$IT6q9g$N=$@5!#(B
+
+** riece-log $B$G!"(Briece-log-directory-map $B$K%5!<%PL>IU$-$N%A%c%s%M%k$r(B
+   $B;XDj$G$-$k$h$&$K$7$?!#(B(by $BBg66$5$s(B)
+
+* Riece 0.1.5 $B$N<g$JJQ99E@(B
+
+** $B%G%U%)%k%H$GMxMQ2DG=$J%&%#%s%I%&%l%$%"%&%H$K!"(B
+   {top,middle,bottom}-{left,right} $B$rDI2C!#(B
+
+** $BA*BrCf$N%&%#%s%I%&%l%$%"%&%H$rJ]B8$9$k$h$&$K$7$?!#(B
+
+** $B%"%$%3%s$rI=<($9$k%"%I%*%s(B (riece-icon) $B$rDI2C!#(B
+   ([http://wiliki.designflaw.org/riecess1.png $B%9%/%j!<%s%7%g%C%H(B])
+
+** $B%f!<%6%j%9%H$N:FIA2h$N9bB.2=!#(B
+
+** CTCP ACTION $B$N2~NI!#(B(Thanks to knu $B$5$s(B)
+
+** riece-rdcc $B$r;H$C$F(B DCC $B$N%U%!%$%kE>Aw$r;O$a$k:]$K!"$?$^$K8G$^$k%P%0$r=$@5!#(B
+
+** $B4{$K(B Riece $B$,5/F0$7$?>uBV$G$b$&0lEY5/F0$7$?>l9g!"%(%i!<$rDLCN$9$k$N(B
+   $B$G$O$J$/!"(Briece-command-configure-windows $B$r8F$V$h$&$K$7$?(B (Thanks
+   to $BBg66$5$s(B)
+
+** C-c o (riece-command-set-operators) $B$H(B C-c v
+   (riece-command-set-speakers) $B$G!"(B3 $B?M0J>e$N%f!<%6$rBP>]$K$7$?>l9g$N%P(B
+   $B%0$r=$@5!#(B
+
+** $B%P%C%U%!$N%5%$%:$,(B riece-max-buffer-size $B$r1[$($?>l9g!"<+F0E*$K@Z$j(B
+   $B5M$a$k$h$&$K$7$?!#(B
+
+* Riece 0.1.4 $B$N<g$JJQ99E@(B
+
+** $B%A%c%s%M%k%P%C%U%!$G(B riece-command-names $B$N%-!<%P%$%s%I$r(B C-n $B$+$i(B
+   N $B$KJQ99!#(B(thanks to $B9b66$5$s(B)
+
+** C-c C-t a (riece-command-toggle-away) $B$,%(%i!<$K$J$k%P%0$r=$@5!#(B
+   (thanks to $BA0ED$5$s(B)
+
+** Riece $B$N%P%C%U%!$rA*Br$7$F$$$J$$;~$K$O!":FIA2h$r9T$o$J$$$h$&$K$7$?!#(B
+
+** $BF1L>$N%P%C%U%!$,(B Riece $B0J30$N%W%m%0%i%`$K;H$o$l$F$$$k;~!"(B
+   generate-new-buffer $B$G?7$7$$%P%C%U%!$r:n@.$7$FMxMQ$9$k$h$&$K$7$?!#(B
+
+** ! $B$G=i$^$k%A%c%s%M%k$r:n@.$G$-$J$$%P%0$r=$@5!#(B
+
+** riece-keyword $B;HMQ;~$K!"<+J,$NH/8@$K4^$^$l$k%-!<%o!<%I$KH?1~$7$J$$(B
+   $B$h$&$K$7$?!#(B
+
+** $B$R$H$D$b%A%c%s%M%k$KF~$C$F$$$J$$;~!"%A%c%s%M%kFb$G$N$_M-8z$J%3%^%s(B
+   $B%I$r<B9T$9$k$H%(%i!<$r=P$9$h$&$K$7$?!#(B
+
+** $B%a%K%e!<%P!<$K%a%K%e!<$rDI2C$9$k%"%I%*%s(B (riece-menu) $B$r?7@_!#(B
+
+* Riece 0.1.3 $B$N<g$JJQ99E@(B
+
+** PRIVMSG $B$d(B NOTICE $B$N<u?.;~$K!$%A%c%s%M%kL>$NBgJ8;z>.J8;z$r6hJL$7$J(B
+   $B$$$h$&$K$7$?!#(B
+
+** riece-history $B;HMQ;~$K!$%R%9%H%j$N@hF,$K$"$k%A%c%s%M%k$K(B "+" $B%^!<%/(B
+   $B$r$D$1$k$h$&$K$7$?!#(B
+
+** $B%\%?%s$H%]%C%W%"%C%W%a%K%e!<$rI=<($9$k%"%I%*%s(B (riece-button) $B$rDI2C!#(B
+
+** $B%-!<%o!<%I$r8!=P$9$k%"%I%*%s(B (riece-keyword) $B$rDI2C!#(B
+
+   XEmacs $B$r$*;H$$$J$i!$0J2<$N@_Dj$r(B ~/.riece/init.el $B$K2C$($k$3$H$G!$(B
+   "$B$[$2(B" $B$d(B "$B$U$,(B" $B$KH?1~$7$F2;$rLD$i$9$3$H$,$G$-$^$9!%(B
+
+   (load-default-sounds)
+   (setq riece-keywords '("$B$[$2(B" "$B$U$,(B"))
+   (add-hook 'riece-notify-keyword-functions
+	     (lambda (keyword) (play-sound 'cuckoo)))
+
+* Riece 0.1.2 $B$N<g$JJQ99E@(B
+
+** $B%Q%9%o!<%IIU$-$N%A%c%s%M%k$K(B JOIN $B$G$-$J$$%P%0$r=$@5(B
+
+** riece-startup-channel-list $B$rI|3h(B
+
+** riece-rdcc-save-directory $B$r?7@_(B
+
+** $B%Q%9%o!<%IF~NO$rCfCG$G$-$J$$%P%0$r=$@5(B
+
+** INVITE $B%O%s%I%i$N%P%0$r=$@5(B
+
+** INVITE $B$5$l$?8e$K(B JOIN $B$9$k>l9g!"%G%U%)%k%H$N%A%c%s%M%kL>$r;H$&$h$&$K$7$?!#(B
+
+** JOIN $B$N%?%$%_%s%0$K$h$j(B riece-channel-list-indicator $B$,99?7$5$l$J$$(B
+   $B%P%0$r=$@5(B
+
+* Riece 0.1.1 $B$N<g$JJQ99E@(B
+
+** $B$$$/$D$+$N%"%I%*%s$r%G%U%)%k%H$GFI$_9~$`$h$&$K$7$?(B
+
+** riece-default-channel-binding $B$,8z$+$J$$%P%0$r<#$7$?(B
+
+** *Channels* $B%P%C%U%!$G!"8=:_$$$k%A%c%s%M%kL>$NF,$K%^!<%/(B "*" $B$rIU$1$k(B
+  $B$h$&$K$7$?(B
+
+** riece-debug == nil $B$N>l9g!"@ZCG;~$N%a%C%;!<%8$r4JN,2=$7$?(B
+
+** $B%A%c%s%M%k0\F0$NMzNr$r4IM}$9$k%"%I%*%s(B riece-history $B$rDI2C(B
+
+** $B0\F0@h$N%A%c%s%M%k$r?dB,$9$k%"%I%*%s(B riece-guess $B$rDI2C(B
+
+Tips:
+
+~/.riece/init.el $B$K0J2<$N$h$&$K;XDj$9$k$H!"(B
+
+  (setq riece-guess-channel-try-functions
+        '(riece-guess-channel-from-unread
+          riece-guess-channel-from-history))
+
+C-c g $B$G0J2<$N=g=x$G0\F0$G$-$^$9!#(B
+
+# $BL$FI$N%a%C%;!<%8$N$"$k%A%c%s%M%k(B
+# $B:G6aK,$l$?%A%c%s%M%k(B
+# $B$=$l0J30(B
+
+* Riece 0.1.0 $B$N<g$JJQ99E@(B
+
+** $B%A%c%s%M%k$NFbItI=8=$rJ8;zNs$+$i%Y%/%?!<$K$h$kI=8=$KJQ99$7$?(B
+
+** $B%W%m%;%94IM}$r$^$H$b$K$7$?(B
+
+*** $B%W%m%;%9L>$G%5!<%P$r<1JL$9$k$h$&$KJQ99$7$?(B
+
+*** $B@\B3!&@ZCG$N=hM}$r(B riece-server.el $B$K$^$H$a$?(B
+
+*** QUIT $B$rEj$2$F$b1~Ez$,$J$$>l9g!"6/@)E*$K@ZCG$9$k$h$&$K$7$?(B
+
+** M-x doctor $B$HO"7H$9$k%"%I%*%s$rDI2C(B
+
+** $BH/8@$K(B SKK $B$NJQ49Cf$N0u"&$,:.$6$i$J$$$h$&$K$9$k%"%I%*%s$rDI2C(B (by $B9b66$5$s(B)
+
+** $B%&%#%s%I%&%l%$%"%&%H$rJQ99$G$-$k$h$&$K$7$?(B (C-c t l)
+
+** Liece $B$N(B "top" $B%9%?%$%k$K;w$?%&%#%s%I%&%l%$%"%&%H$rDI2C(B (by $B9b66$5$s(B)
+
+* Riece 0.0.4 $B$N<g$JJQ99E@(B
+
+** $B%_%K%P%C%U%!$@$1$G(B IRC $B$9$k%"%I%*%s(B riece-mini $B$rDI2C(B (by $BBg66$5$s(B)
+
+** $B%m%0<}=8%"%I%*%s(B riece-log $B$rDI2C(B (by $BBg66$5$s(B)
+
+** riece-command-next-channel (C-c >), riece-command-previous-channel
+   (C-c <) $B$G%A%c%s%M%k$r$0$k$0$k0\F0$G$-$k$h$&$K$7$?(B (by $BCf;3$5$s(B)
+
+** riece-unread $B%"%I%*%s;HMQ;~$KH/8@$N$"$C$?%A%c%s%M%k$K(B C-c C-u $B$G0\(B
+   $BF0$G$-$k$h$&$K$7$?(B (by $BBg66$5$s(B)
+
+** IRC $B%a%C%;!<%8$K=>$C$F%$%s%8%1!<%?$r99?7$9$k$h$&$K$7$?(B
+
+** ptexinfmt.el $B$r(B APEL free $B$J$b$N$KCV$-49$($?(B (Thanks to $B;32,$5$s(B)
+
+* Riece 0.0.3 $B$N<g$JJQ99E@(B
+
+** $B%Q%9%o!<%I$,I,MW$J%5!<%P$KFs$D0J>e@\B3$G$-$J$$%P%0$N=$@5(B (Thanks to
+   $BCf;3$5$s(B)
+
+** $B%K%C%/$NBgJ8;z>.J8;z$@$1$rJQ99$9$k$H0l4S@-$,<:$o$l$kLdBj$r=$@5(B
+
+** $B%O%s%I%i%U%C%/$GH/@8$7$?%(%i!<$rJaB*(B
+
+** DCC $B$K$h$k%U%!%$%kE>Aw$KBP1~(B (riece-ndcc.el, riece-rdcc.el)
+
+** $BH/8@$N$"$C$?%A%c%s%M%k$K(B "!" $B%^!<%/$r$D$1$k%"%I%*%s$NDI2C(B (riece-unread.el)
+
+** $BF|K\8l$N%^%K%e%"%k$NDI2C(B
+
+* Riece 0.0.2 $B$N<g$JJQ99E@(B
+
+** APEL $B$N4X?t(B (pop, push) $B$NB`<#(B
+
+** "depcomp" $B$,F1:-$5$l$J$$LdBj$N=$@5(B (autoreconf $B$N%P%0(B?)
+
+** Windows $B4D6-$G%S%k%I$G$-$J$$IT6q9g$N=$@5(B (Thanks to $BBg66$5$s(B)
+
+** $B%K%C%/JQ99;~$K0l4S@-$,<:$o$l$kLdBj$N=$@5(B
+
+** C-c C-t u (M-x riece-command-toggle-user-list-mode) $B$NIT6q9g$N=$@5(B
+
+** $B%"%I%*%s$NF3F~(B
+
+** CTCP $B$KItJ,E*$KBP1~(B (VERSION $B$H(B PING $B$N$_(B)
+
+** font-lock $B%b%8%e!<%k(B (riece-highlight) $B$N%"%I%*%s2=(B
+
+** URL $B<}=85!G=$N%"%I%*%s2=(B
+
+* Riece 0.0.1 $B$N<g$JJQ99E@(B
+
+** $B:G=i$N%j%j!<%9(B
+
+* For details of changes, see the file ChangeLog.
+
+Local variables:
+mode: outline
+paragraph-separate: "[  
+coding: iso-2022-jp
+end:
 * What's this?
 
-Riece is an IRC client for Emacs.  The development has started to
-redesign the Liece IRC client.
+Riece is an IRC client for Emacs.
 
 Riece provides the following features:
 
 - Setup is easy.  Automatically save/restore the configuration.
 - Riece uses separate windows to display users, channels, and
   dialogues.  The user can select the window layout.
-- Step-by-step instructions (currently written in Japanese) are included.
+- Step-by-step instructions (in info format) are included.
 - Mostly compliant with RFC 2812.
 
 * Directory tree
+* $B$3$l$O2?$+(B?
+
+Riece $B$O(B Emacs $B8~$1(B IRC $B%/%i%$%"%s%H$G$9!#(B
+
+Riece $B$K$O0J2<$K5s$2$kFCD9$,$"$j$^$9(B:
+
+- $BJ#?t$N(B IRC $B%5!<%P$KF1;~$K@\B32DG=(B
+- $B%"%I%*%s$K$h$j5!G=$NDI2C$d<h$j30$7$,2DG=(B
+- $BB>$N(B elisp $B%Q%C%1!<%8$K0MB8$7$J$$$?$a!"%$%s%9%H!<%k$,4JC1(B
+- $B@_Dj$,4JC1$G!"A02s5/F0;~$N@_Dj$r5-O?!&I|85$9$k;EAH$_$rDs6!(B
+- $BCJ3,E*$JA`:n@bL@=q(B (info $B7A<0(B) $B$,ImB0(B
+- $B:G?7$N(B IRC $B$N%/%i%$%"%s%H%W%m%H%3%k(B (RFC2812) $B$K=`5r(B
+
+* $B%G%#%l%/%H%j9=@.(B
+
+$B$3$N%Q%C%1!<%8$O0J2<$N%G%#%l%/%H%j$+$i@.$j$^$9(B:
+
+lisp/ - Emacs Lisp $B$N%U%!%$%k(B
+doc/  - $BJ8=q%U%!%$%k(B
+
+* $BI,MW$J$b$N(B
+
+- Emacs 20.7 $B0J>e!"$^$?$O(B XEmacs 21.4 $B0J>e(B
+- Ruby 1.6 $B0J>e(B ($BG$0U(B)
+
+* $B%$%s%9%H!<%k(B
+
+$ ./configure
+$ sudo make install
+
+XEmacs $B$r;H$C$F$$$F!"%Q%C%1!<%8$H$7$F%$%s%9%H!<%k$7$?$$>l9g$K$O!"(B
+"--with-xemacs" $B%*%W%7%g%s$r(B configure $B%9%/%j%W%H$KM?$($F$/$@$5$$!#(B
+$B$^$?!"(B"install" $B%?!<%2%C%H$NBe$o$j$K(B "install-package" $B$r;H$C$F$/$@$5$$!#(B
+
+* $B%P%0Js9p(B
+
+$B%P%0Js9p$d!"2~A1MW5a$r=q$$$?$i!"$I$&$>(B Liece $B%a!<%j%s%0%j%9%H$KAw$C$F$/$@$5$$!#(B
+
+$B$3$N%a!<%j%s%0%j%9%H$O!">-Mh$N3HD%$d@_DjJ}K!$J$I!"B>$N0lHLE*$J5DO@$K$b(B
+$BMQ$$$i$l$^$9!#(BLiece ML $B$K;22C$9$k$K$O!"K\J8$K(B
+
+     subscribe $B$"$J$?$NL>A0(B
+
+$B$H=q$$$?%a!<%k$r(B
+
+     liece-ctl@unixuser.org
+
+$B$^$GAw$C$F$/$@$5$$!#(B
-AC_DEFUN(AC_DEFINE_GNUS_PRODUCT_NAME,
+AC_DEFUN([AC_DEFINE_GNUS_PRODUCT_NAME],
  [echo $ac_n "defining gnus product name... $ac_c"
   AC_CACHE_VAL(EMACS_cv_GNUS_PRODUCT_NAME,[EMACS_cv_GNUS_PRODUCT_NAME=$1])
   GNUS_PRODUCT_NAME=${EMACS_cv_GNUS_PRODUCT_NAME}
   AC_MSG_RESULT(${GNUS_PRODUCT_NAME})
   AC_SUBST(GNUS_PRODUCT_NAME)])
 
-AC_DEFUN(AC_CHECK_EMACS,
+AC_DEFUN([AC_CHECK_EMACS],
  [dnl Check for Emacsen.
 
   dnl Apparently, if you run a shell window in Emacs, it sets the EMACS
   AC_SUBST(EMACS)
   AC_SUBST(XEMACS)])
 
-AC_DEFUN(AC_EMACS_LISP, [
+AC_DEFUN([AC_EMACS_LISP], [
 elisp="$2"
 if test -z "$3"; then
 	AC_MSG_CHECKING(for $1)
 fi
 ])
 
-AC_DEFUN(AC_CHECK_EMACS_FLAVOR,
+AC_DEFUN([AC_CHECK_EMACS_FLAVOR],
  [AC_MSG_CHECKING([what a flavor does $EMACS have])
 
   dnl Ignore cache.
   esac
   AC_MSG_RESULT($EMACS_cv_SYS_flavor)])
 
-AC_DEFUN(AC_PATH_LISPDIR, [
+AC_DEFUN([AC_PATH_LISPDIR], [
   AC_CHECK_EMACS_FLAVOR
   if test "$prefix" = NONE; then
 	AC_MSG_CHECKING([prefix for your Emacs])
   AC_SUBST(lispdir)
 ])
 
-AC_DEFUN(AC_PATH_ETCDIR, [
+AC_DEFUN([AC_PATH_ETCDIR], [
   AC_ARG_WITH(etcdir,[  --with-etcdir=DIR       Where to install etc files], etcdir=${withval})
   AC_MSG_CHECKING([where etc files should go])
   if test -z "$etcdir"; then
 dnl Check whether a function exists in a library
 dnl All '_' characters in the first argument are converted to '-'
 dnl
-AC_DEFUN(AC_EMACS_CHECK_LIB, [
+AC_DEFUN([AC_EMACS_CHECK_LIB], [
 if test -z "$3"; then
 	AC_MSG_CHECKING(for $2 in $1)
 fi
 dnl
 dnl Perform sanity checking and try to locate the W3 package
 dnl
-AC_DEFUN(AC_CHECK_W3, [
+AC_DEFUN([AC_CHECK_W3], [
 AC_MSG_CHECKING(for acceptable W3 version)
 
 dnl Ignore cache.
 dnl
 dnl Perform sanity checking and try to locate the W3 package
 dnl
-AC_DEFUN(AC_CHECK_URL, [
+AC_DEFUN([AC_CHECK_URL], [
 AC_MSG_CHECKING(for acceptable URL version)
 
 dnl Ignore cache.
 dnl Bitstream Courier.
 dnl
 
-AC_DEFUN(GNUS_CHECK_FONTS, [
+AC_DEFUN([GNUS_CHECK_FONTS], [
 test "$LATEX" = t && LATEX=
 test "$LATEX" || AC_PATH_PROGS(LATEX, latex, no)
 AC_MSG_CHECKING(for available fonts)
 AC_SUBST(USE_FONTS)
 ])
 
-AC_DEFUN(AC_EXAMINE_PACKAGEDIR,
+AC_DEFUN([AC_EXAMINE_PACKAGEDIR],
  [dnl Examine PACKAGEDIR.
   AC_EMACS_LISP(PACKAGEDIR,
     (let (package-dir)\
       (or package-dir \"\")),
     "noecho")])
 
-AC_DEFUN(AC_PATH_PACKAGEDIR,
+AC_DEFUN([AC_PATH_PACKAGEDIR],
  [dnl Check for PACKAGEDIR.
   if test ${EMACS_FLAVOR} = xemacs; then
     AC_MSG_CHECKING([where the XEmacs package is])
   fi
   AC_SUBST(PACKAGEDIR)])
 
-AC_DEFUN(AC_ADD_LOAD_PATH,
+AC_DEFUN([AC_ADD_LOAD_PATH],
  [dnl Check for additional load path.
   AC_ARG_WITH(addpath,
    [  --with-addpath=PATH     search Emacs-Lisp libraries with PATH
-AC_INIT(configure.ac)
-AC_PREREQ(2.50)
-AM_INIT_AUTOMAKE(riece, 1.0.6)
-
-AC_ISC_POSIX
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
+AC_INIT
+AC_CONFIG_SRCDIR([configure.ac])
+AC_PREREQ(2.59)
+AM_INIT_AUTOMAKE(riece, 1.0.8)
 
 AC_CHECK_EMACS
 AC_PATH_LISPDIR
 
 AM_CONDITIONAL(XEMACS, test ${EMACS_FLAVOR} = xemacs)
 
-AC_OUTPUT(Makefile \
+AC_CONFIG_FILES([Makefile
 lisp/Makefile
 lisp/test/Makefile
-doc/Makefile)
+doc/Makefile])
+AC_OUTPUT

doc/riece-en.texi

 @setfilename riece-en.info
 @settitle Riece -- An IRC client for Emacsen --
 @c %**end of header
-@set VERSION 1.0.6
+@set VERSION 1.0.8
 @c @documentlanguage en
 
 @dircategory GNU Emacs Lisp
 @ifinfo
 This file describes Riece.
 
-Copyright (C) 2003,2004 Daiki Ueno.
+Copyright (C) 2003,2004,2005 Daiki Ueno.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 2003 Daiki Ueno.
+Copyright @copyright{} 2003,2004,2005 Daiki Ueno.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 has been unmaintainable for a long time), while providing a user
 interface (mostly) compatible with Liece.
 
-For now it does not have rich functions as an IRC client, but there are
-noteworthy improvements as compared with Liece:
+There are noteworthy improvements as compared with Liece:
 
 @itemize @bullet
 @item
 
 @itemize @bullet
 @item http://www.nongnu.org/riece/
-@item http://wiliki.designflaw.org/index.cgi?Riece&l=jp
-@item http://www.unixuser.org/~ueno/liece/
 @end itemize
 
 @node Getting started, Basic usage, Overview, Top
 commands instead of the above:
 
 @example
-./configure --with-xemacs[=xemacs-21.4.15]
+./configure --with-xemacs[=xemacs-21.4.17]
 make package
 make install-package
 @end example
 put on the left side of the modeline like:
 
 @example
-Riece: --- ueno #Liece [n]
+Riece: --- ueno #Riece [n]
 @end example
 
 In this case, @samp{---} are indicators.  From left to right their

doc/riece-ja.texi

 @setfilename riece-ja.info
 @settitle Riece -- An IRC client for Emacsen --
 @c %**end of header
-@set VERSION 1.0.6
+@set VERSION 1.0.8
 @c @documentlanguage ja
 
 @dircategory GNU Emacs Lisp
 @ifinfo
 This file describes Riece.
 
-Copyright (C) 2003,2004 Daiki Ueno.
+Copyright (C) 2003,2004,2005 Daiki Ueno.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 2003 Daiki Ueno.
+Copyright @copyright{} 2003,2004,2005 Daiki Ueno.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 $B=q$-D>$7$?$b$N$G$9!#%f!<%6%$%s%?!<%U%'!<%9$NBgItJ,$O(B Liece $B$N$b$N$rF'=1(B
 $B$7$F$$$^$9!#(B
 
-$B8=:_$N$H$3$m(B IRC $B%/%i%$%"%s%H$H$7$F$N5!G=$O==J,$G$O$"$j$^$;$s$,!"(BLiece 
-$B$K$O$J$$FCD9$,$$$/$D$+$"$j$^$9!#0J2<$K$=$l$i$N0lIt$r5s$2$^$9!#(B
+Riece $B$K$O(B Liece $B$K$O$J$$FCD9$,$$$/$D$+$"$j$^$9!#(B
+$B0J2<$K$=$l$i$N0lIt$r5s$2$^$9!#(B
 
 @itemize @bullet
 @item $BJ#?t$N(B IRC $B%5!<%P$KF1;~$K@\B32DG=(B
 @item $B%"%I%*%s$K$h$j5!G=$NDI2C$d<h$j30$7$,2DG=(B
 @item $BB>$N(B elisp $B%Q%C%1!<%8$K0MB8$7$J$$$?$a!"%$%s%9%H!<%k$,4JC1(B
 @item $B@_Dj$,4JC1$G!"A02s5/F0;~$N@_Dj$r5-O?!&I|85$9$k;EAH$_$rDs6!(B
-@item $BCJ3,E*$JA`:n@bL@=q(B($B8=:_$OF|K\8l$N$_(B)$B$,ImB0(B
+@item $BCJ3,E*$JA`:n@bL@=q$,ImB0(B
 @item $B:G?7$N(B IRC $B$N%/%i%$%"%s%H%W%m%H%3%k(B (RFC2812) $B$K=`5r(B
 @end itemize
 
 
 @itemize @bullet
 @item http://www.nongnu.org/riece/
-@item http://wiliki.designflaw.org/index.cgi?Riece&l=jp
-@item http://www.unixuser.org/~ueno/liece/
 @end itemize
 
 @node Getting started, Basic usage, Overview, Top
 XEmacs $B$N%Q%C%1!<%8$H$7$F%$%s%9%H!<%k$9$k>l9g$K$O0J2<$N$h$&$K$7$^$9!#(B
 
 @example
-./configure --with-xemacs[=xemacs-21.4.15]
+./configure --with-xemacs[=xemacs-21.4.17]
 make package
 make install-package
 @end example
 $B<+J,$N8=:_$N>uBV$r<($90u$,I=<($5$l$^$9!#(B
 
 @example
-Riece: --- ueno #Liece [n]
+Riece: --- ueno #Riece [n]
 @end example
 
 $B$3$3$G!"(B@samp{---} $B$NItJ,$K$O:8$+$i=g$K0J2<$N0UL#$,$"$j$^$9!#(B
 @item
 @kbd{C-c j} (@code{riece-command-join}) $B$G%A%c%s%M%k$K;22C$7$^$9!#$3$3$G!"(B
 $B%A%c%s%M%kL>$N8e$K6uGr$G6h@Z$C$F%5!<%PL>$rB3$1$^$9!#6uGr$rF~NO$9$k$K$O!"(B
-@kbd{C-q} $B$r;H$$$^$9!#$?$H$($P!"%5!<%P(B @samp{irc6} $B>e$N(B @samp{#Liece} $B$K;22C$9$k$K$O(B @kbd{C-c j #Liece C-q SPC irc6} $B$H%?%$%W$9$k$3$H$K$J$j$^$9!#(B
+@kbd{C-q} $B$r;H$$$^$9!#$?$H$($P!"%5!<%P(B @samp{irc6} $B>e$N(B @samp{#Riece} $B$K;22C$9$k$K$O(B @kbd{C-c j #Riece C-q SPC irc6} $B$H%?%$%W$9$k$3$H$K$J$j$^$9!#(B
 @end enumerate
 
 $B%A%c%s%M%k$KF~$i$:$K%3%^%s%I$rAw$k$K$O!"(B@kbd{C-c M}
 $BF|K\8l$NDL$i$J$$C<Kv$G!"F|K\8l$r%m!<%^;z$GI=<((B
 @item riece-yank
 @kbd{C-c y} $B$G(B kill-ring $B$+$iJ8;zNs$rAw?.(B
+@item riece-toolbar
+$B%D!<%k%P!<$rI=<((B
+@item riece-eval
+$BF~NO$5$l$?J8;zNs$r(B lisp $B%*%V%8%'%/%H$H$7$FI>2A(B
+@item riece-google
+$B%-!<%o!<%I$r(B Google $B$G8!:w(B
+@item riece-keepalive
+IRC $B%5!<%P$H$N@\B3$rJ];}(B
 @end table
 
 $B$3$l$i$N$&$A!"(B@samp{riece-highlight} $B$H(B @samp{riece-ctcp}$B!"(B
 @samp{riece-url}$B!"(B @samp{riece-unread}$B!"(B @samp{riece-guess}$B!"(B
 @samp{riece-history}$B!"(B @samp{riece-button}$B!"(B@samp{riece-menu}$B!"(B
-@samp{riece-ignore} $B$O%G%U%)%k%H$GAH$_9~$^$l$F$$$^$9!#(B
+@samp{riece-ignore}$B!"(B@samp{riece-log}$B!"(B@samp{riece-alias}$B!"(B
+@samp{riece-ctlseq}$B!"(B@samp{riece-keyword} $B$O%G%U%)%k%H$GAH$_9~$^$l$F$$$^$9!#(B
 
 $B%"%I%*%s$rAH$_9~$`$K$O(B @code{riece-addons} $B$r@_Dj$7$^$9!#$?$H$($P(B 
 @samp{riece-alias} $B$rAH$_9~$`>l9g$K$O!"(B@file{~/.riece/init.el} $B$K0J2<$N$h(B
 
 @example
 (setq riece-default-channel-binding
-     '("#Liece" "#emacsen" nil "#debianjp"))
+     '("#Riece" "#emacsen" nil "#debianjp"))
 @end example
 
-1: #Liece, 2: #emacsen, 4: #debianjp $B$N$h$&$K3dEv$F$i$l$^$9!#(Bnil $B$O%G%U%)(B
+1: #Riece, 2: #emacsen, 4: #debianjp $B$N$h$&$K3dEv$F$i$l$^$9!#(Bnil $B$O%G%U%)(B
 $B%k%H$G$O<+F03dEv$F$NBP>]$K$J$i$J$$$3$H0UL#$7!"?7$?$J%A%c%s%M%k$K;22C$7$?(B
 $B>l9g!"$=$N%A%c%s%M%k$,(B 3 $BHVL\$N%A%c%s%M%k$H$7$F07$o$l$^$9!#(B
 
 
 @example
 (setq riece-startup-channel-list
-     '(("#secret" "password") "#Liece"))
+     '(("#secret" "password") "#Riece"))
 @end example
 
 $BJ#?t$N%5!<%P>e$N%A%c%s%M%k$K;22C$9$k$K$O!"(B
 		'riece-emacs)
 	      '(riece-globals
 		riece-options
+		riece-debug
 		riece-version
 		riece-coding
 		riece-complete
 		riece-hangman
 		riece-biff
 		riece-kakasi
-		riece-yank))))
+		riece-yank
+		riece-toolbar
+		riece-eval
+		riece-google
+		riece-keepalive))))
+
+(defvar riece-icons
+  '(riece-command-quit
+    riece-command-join
+    riece-command-part
+    riece-command-previous-channel
+    riece-command-next-channel
+    riece-command-change-layout
+    riece-submit-bug-report))
 
 (defun riece-compile-modules (modules)
-  (let ((load-path (cons nil load-path)))
+  (let ((load-path (cons nil load-path))
+	error-modules)
     (while modules
       (let ((source (expand-file-name
 		     (concat (symbol-name (car modules)) ".el"))))
 	(if (file-newer-than-file-p source (concat source "c"))
 	    (condition-case error
 		(byte-compile-file source)
-	      (error))))
-      (setq modules (cdr modules)))))
+	      (error
+	       (setq error-modules (cons (car modules) error-modules))))))
+      (setq modules (cdr modules)))
+    (if error-modules
+	(princ (concat "\n\
+  WARNING: ---------------------------------------------------------
+  WARNING: Couldn't compile following modules:
+  WARNING: 
+  WARNING:   " (mapconcat #'symbol-name error-modules ", ") "\n\
+  WARNING: 
+  WARNING: You should probably stop here, try \"make distclean\" to clear
+  WARNING: the last build, and then reconfigure.
+  WARNING: ---------------------------------------------------------\n\n")))))
 
 (defun riece-install-modules (modules dest just-print)
   (unless (or just-print (file-exists-p dest))
 			 name)))))
     (setq modules (cdr modules))))
 
+(defun riece-install-icons (icons dest just-print)
+  (unless (or just-print (file-exists-p dest))
+    (make-directory dest t))
+  (while icons
+    (let ((name (symbol-name (car icons))))
+      (when (file-exists-p (expand-file-name (concat name ".xpm")))
+	(princ (format "%s.xpm -> %s\n" name dest))
+	(unless just-print
+	  (copy-file (expand-file-name (concat name ".xpm"))
+		     (expand-file-name (concat name ".xpm") dest)
+		     t t))))
+    (setq icons (cdr icons))))
+
 (defun riece-install-just-print-p ()
   (let ((flag (getenv "MAKEFLAGS"))
 	case-fold-search)
   (riece-install-modules
    riece-modules
    (expand-file-name "riece" (car command-line-args-left))
+   (riece-install-just-print-p))
+  (riece-install-icons
+   riece-icons
+   (expand-file-name "riece" (car command-line-args-left))
    (riece-install-just-print-p)))
 
 (defun riece-compile-package ()
 	   '(auto-autoloads custom-load))
    (expand-file-name "riece"
 		     (expand-file-name "lisp" (car command-line-args-left)))
+   (riece-install-just-print-p))
+  (riece-install-icons
+   riece-icons
+   (expand-file-name "riece"
+		     (expand-file-name "lisp" (car command-line-args-left)))
    (riece-install-just-print-p)))
 
 (defun riece-test ()
   (let ((load-path (cons (expand-file-name "test") (cons nil load-path)))
 	(files (directory-files "test" t "^test-.*\\.el$"))
         suite)
-    (require 'lunit)
+    (require 'lunit-report)
     (setq suite (lunit-make-test-suite))
     (while files
       (when (file-regular-p (car files))
+2005-03-06  Daiki Ueno  <ueno@unixuser.org>
+
+	* Riece: Version 1.0.8 released.
+	* riece-version.el (riece-version-number): Bump up to 1.0.8.
+
+2005-03-06  Daiki Ueno  <ueno@unixuser.org>
+
+	* COMPILE (riece-compile-modules): Print summary.
+
+2005-03-05  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-version.el: Bind emacs-program-version.
+	* riece-debug.el: Require 'riece-options for riece-debug.
+
+	* riece-log.el (riece-log-insinuate): Use user-uid instead of
+	user-login-name and escape system-name for riece-log-lock-file.
+
+2005-03-02  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-log.el (riece-log-lock-file): Define with defvar.
+	(riece-log-display-message-function): Use riece-log-lock-file as
+	LOCKNAME of write-region.
+	(riece-log-insinuate): Generate name for riece-log-lock-file.
+
+2005-02-27  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-300.el (riece-handle-317-message): Format idle seconds in
+	human readable form.
+	(riece-handle-301-message): Don't use riece-user-regexp.
+	(riece-handle-311-message): Ditto.
+	(riece-handle-312-message): Ditto.
+	(riece-handle-317-message): Ditto.
+	(riece-handle-319-message): Ditto.
+
+	* riece-ctcp.el (riece-handle-ctcp-action-request): Prepend target.
+	(riece-command-ctcp-action): Ditto.
+
+2005-02-25  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+	* riece-globals.el (riece-obarray-size, riece-obarray): Abolish.
+	(riece-channel-obarray-size, riece-user-obarray-size)
+	(riece-channel-obaary, riece-user-obarray): New variables.
+	* riece-user.el (riece-find-user, riece-forget-user)
+	(riece-rename-user, riece-get-user): Use `riece-user-obarray'
+	instead of `riece-user-obarray'.
+	* riece-channel.el (riece-find-channel, riece-forget-channel)
+	(riece-get-channel): Use `riece-channel-obarray' instead of
+	`riece-obarray'.
+	* riece-misc.el (riece-get-identities-on-server): Ditto.
+	* riece-server.el (riece-reset-process-buffer): Ditto.
+
+2005-02-24  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-unread.el (riece-unread-after-switch-to-channel-function):
+	Clear riece-unread-channels case insensitively.
+
+	* riece-300.el (riece-handle-353-message): Use
+	riece-identity-assoc to pick an entry from
+	riece-353-message-alist.
+	(riece-handle-366-message): Ditto.
+	Reported by Steve Youngs <steve@sxemacs.org>.
+
+2005-02-19  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-debug.el (riece-funcall-ignore-errors): New function.
+	* riece-signal.el (riece-emit-signal): Use riece-funcall-ignore-errors.
+	* riece-filter.el (riece-handle-numeric-reply): Use
+	riece-funcall-ignore-errors.
+	(riece-handle-message): Ditto.
+	* riece-ctcp.el (riece-handle-ctcp-request): Use
+	riece-funcall-ignore-errors.
+
+2005-02-18  Steve Youngs  <steve@sxemacs.org>
+
+	* riece-ctcp.el (riece-handle-ctcp-time-request): New.
+	(riece-handle-ctcp-time-response): New.
+	(riece-command-ctcp-time): New.
+	(riece-ctcp-enable): Add `riece-command-ctcp-time'.
+	(riece-ctcp-disable): Ditto.
+	
+	* riece-layout.el (riece-layout-alist): Minor doc string fix --
+	escape a couple of parens.
+	
+	* riece-version.el: defvar sxemacs-codename at compile time.
+	(riece-extended-version): Simplify the XEmacs section, add support
+	for SXEmacs.
+
+2005-02-17  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+	* riece-addon.el (riece-resolve-addons): Fixed
+	avoid add directory to addons condition.
+
+2005-02-10  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+	* riece-addon.el (riece-resolve-addons): Don't add directory to
+	addons.
+
+2005-02-09  Yoichi NAKAYAMA  <yoichi@geiin.org>
+
+	* riece-commands.el (riece-command-part): Fix argument.
+
+2005-02-07  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-filter.el (riece-filter): Simplified.
+
+	* riece-addon.el (riece-resolve-addons): Check the existence of
+	riece-addon-directory.
+
+2005-02-06  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-filter.el (riece-filter): Modified regexp.
+
+2005-02-05  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece.el (riece-exit): Clear riece-window-configuration frame
+	parameter.
+	* riece-commands.el (riece-command-suspend-resume): Don't attempt
+	to restore window-configuration if the cdr of
+	riece-window-configuration frame parameter is nil.
+
+	* riece-filter.el (riece-chomp-string): New function.
+	(riece-filter): Use it.
+
+2005-02-05  Daiki Ueno  <ueno@unixuser.org>
+
+	* Riece: Version 1.0.7 released.
+	* riece-version.el (riece-version-number): Bump up to 1.0.7.
+
+2005-02-05  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-keyword.el (riece-keyword-face): Change defface spec for tty.
+
+	* riece-toolbar.el (riece-toolbar-description): New constant.
+
+	* riece-keepalive.el: Require 'riece-options.
+	(riece-keepalive-ping-repeat): Define with defcustom.
+	(riece-keepalive-description): New constant.
+
+	* riece.el (riece-dialogue-mode-map): Bind
+	riece-command-suspend-resume.
+	* riece-commands.el (riece-command-suspend-resume): New command.
+
+	* riece-options.el (riece-addons): Enable riece-keyword by default.
+
+	* riece-button.el (riece-identity-button-popup-menu): Changed
+	interactivbe spect "@e" -> "e".
+	(riece-identity-button-click): New function.
+	(riece-make-identity-button-map): Bind riece-identity-button-click.
+
+2005-02-04  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-options.el (riece-part-message): New user option.
+	(riece-addons): Enable riece-alias and riece-ctlseq by default.
+	(riece-max-buffer-size): Change the default value to nil.
+
+	* riece-commands.el (riece-command-part): Use riece-part-message.
+
+2005-02-04  OHASHI Akira  <bg66@koka-in.org>
+
+	* riece-eval.el (riece-eval-form): New function.
+	(riece-eval-display-message-function): Use it.
+
+2005-02-04  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-000.el (riece-handle-001-message): Use
+	riece-command-join-channel to join startup channels.
+
+	* riece-filter.el (riece-filter): Accept lines which end with LF.
+
+	* riece-300.el (riece-353-message-alist): Renamed from riece-353-users.
+	(riece-handle-353-message): Don't parse the reply.
+	(riece-handle-366-message): Parse 353 replies here; count users.
+
+	* riece-log.el (riece-log-enable): Add debug message.
+
+	* riece-keepalive.el: New add-on.
+	* COMPILE (riece-modules): Add riece-keepalive.
+	* Makefile.am (EXTRA_DIST): Add riece-keepalive.el.
+
+2005-02-04  OHASHI Akira  <bg66@koka-in.org>
+
+	* riece-biff.el (riece-biff-functions): Abolish.
+	(riece-biff-after-display-message-function): Follow the change above.
+
+2005-02-04  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-server.el (riece-close-server-process): Switch to process
+	buffer when running riece-after-close-hook.
+
+	* COMPILE (riece-icons): Add all symbols from riece-toolbar-items.
+
+	* Makefile.am (EXTRA_DIST): Add riece-command-previous-channel.xpm,
+	riece-command-next-channel.xpm, and riece-submit-bug-report.xpm.
+
+	* riece-menu.el (riece-menu-items): Add "Submit Bug Report".
+
+	* riece-toolbar.el (riece-toolbar-items): Add riece-submit-bug-report.
+
+	* riece-compat.el (riece-read-passwd): Changed default value.
+
+	* riece-400.el (riece-handle-475-message): Don't bind inhibit-quit
+	when reading channel key.
+
+	* riece-irc.el (riece-irc-open-server): Don't bind inhibit-quit
+	when reading password.
+
+	* riece-compat.el (riece-read-passwd): Bind inhibit-quit.
+
+	* riece-commands.el (riece-command-join): Abolished prefix-arg
+	(channel key).
+
+	* riece-options.el (riece-buffer-dispose-function): Changed the
+	default value from bury-buffer to kill-buffer.
+	* riece-log.el (riece-log-lock-directory): New user option.
+	(riece-log-enable): Create lock directory.
+	(riece-log-disable): Remove lock directory.
+
+	* riece-addon.el (riece-resolve-addons): Don't use FILES-ONLY
+	argument of directory-files.
+
+2005-02-04  OHASHI Akira  <bg66@koka-in.org>
+
+	* riece-google.el (riece-google-default-lang): Change value.
+	(riece-google-display-message-function): Follow the change above.
+
+2005-02-03  OHASHI Akira  <bg66@koka-in.org>
+
+	* riece-google.el: New add-on.
+	* COMPILE (riece-modules): Add riece-google.
+	* Makefile.am (EXTRA_DIST): Add riece-google.el.
+
+2005-02-03  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-400.el (riece-handle-475-message): New handler; query
+	channel key.
+
+2005-02-03  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-addon.el (riece-resolve-addon-dependencies): Rename from
+	riece-resolve-addon.
+	(riece-resolve-addon): Append add-ons under riece-addon-directory.
+
+2005-02-02  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+	* riece-message.el (riece-display-message): When filter-function
+	return nil, escape from while loop.
+
+2005-02-02  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-debug.el (riece-debug-standard-output-buffer): Use
+	riece-temp-buffer.
+	* riece.el: Add riece-temp-buffer.
+	* riece-globals.el (riece-temp-buffer): New variable.
+
+2005-02-02  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-signal.el (riece-emit-signal): Use riece-ignore-errors.
+
+	* riece-filter.el (riece-handle-numeric-reply): Use
+	riece-ignore-errors.
+	(riece-handle-message): Ditto.
+
+	* riece-ctcp.el (riece-handle-ctcp-request): Use
+	riece-ignore-errors.
+	(riece-handle-ctcp-response): Ditto.
+
+	* riece-debug.el: New file.
+	* COMPILE (riece-modules): Add riece-debug.
+	* Makefile.am (EXTRA_DIST): Add riece-debug.el.
+
+2005-02-02  OHASHI Akira  <bg66@koka-in.org>
+
+	* riece-eval.el (riece-eval-regexp): Fix regexp.
+	(riece-eval-display-message-function): Follow the change above.
+
+2005-02-02  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-server.el (riece-close-server-process): Run
+	riece-after-close-hook.
+
+	* riece-log.el (riece-log-insert): Bind file-name-coding-system
+	and default-file-name-coding-system to nil.
+
+2005-02-01  OHASHI Akira  <bg66@koka-in.org>
+
+	* riece-eval.el: New add-on.
+	* COMPILE (riece-modules): Add riece-eval.
+	* Makefile.am (EXTRA_DIST): Add riece-eval.el.
+
+2005-01-30  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+	* riece-display.el (riece-display-connect-signals): Check nick or
+	channel, before call `riece-channel-get-users'.
+
+2004-12-15  Yoichi NAKAYAMA  <yoichi@geiin.org>
+
+	* riece-addon.el (riece-command-enable-addon): Fixed.
+	(riece-command-disable-addon): Ditto.
+
+2004-12-14  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-alias.el (riece-alias-abbrev-identity-string): Return a
+	copy of a string since text properties will be set on it.
+	(riece-alias-expand-identity-string): Ditto.
+
+	* riece-emacs.el (riece-normalize-modeline-string): Don't
+	concatenate elements in modeline string.
+
+2004-12-13  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-display.el (riece-update-channel-list-indicator):
+	Normalize modeline indicator.
+
+	* riece-xemacs.el (riece-normalize-modeline-string): New alias.
+	* riece-emacs.el (riece-normalize-modeline-string): New function.
+	(riece-normalize-modeline-string-1): New function.
+
+2004-12-13  Daiki Ueno  <ueno@unixuser.org>
+
+	* test/Makefile.am (EXTRA_DIST): Add test-riece.el.
+	* test/test-riece.el: New test cases.
+
+	* riece.el (riece-shrink-buffer): Fixed bug.
+
+	* riece-options.el (riece-username): Changed the default value to
+	user-full-name.
+
+2004-12-12  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-command-previous-channel.xpm: New file.
+	* riece-command-next-channel.xpm: New file.
+
+	* COMPILE (riece-icons): New variable.
+	(riece-install-icons): New function.
+	(riece-install): Install icons.
+	(riece-install-package): Ditto.
+
+2004-12-12  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-options.el (riece-addons): Add riece-toolbar.
+
+	* riece-log.el (riece-log-flashback): Fixed regexp.
+
+	* riece-menu.el (riece-menu-items): Add "Next Channel" and
+	"Previous Channel".
+
+	* riece-toolbar.el: Support XEmacs.
+	(riece-toolbar-items): Renamed from
+	riece-toolbar-item-list.
+	(riece-tool-bar-local-item-from-menu): Abolished.
+	(riece-toolbar-find-menu-item): New function.
+	(riece-make-toolbar-from-menu): New function.
+	(riece-set-toolbar): New function.
+	(riece-toolbar-insinuate-in-command-buffer): Use them.
+
+2004-12-11  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-toolbar.el: New add-on.
+	* COMPILE (riece-modules): Add riece-toolbar.
+	* Makefile.am (EXTRA_DIST): Add riece-toolbar.el.
+
+2004-12-10  Daiki Ueno  <ueno@unixuser.org>
+
+	* test/test-riece-log.el
+	(test-riece-log-display-message-function): "yes" -> "true".
+
+	* test/Makefile.am (EXTRA_DIST): Add lunit-report.el and
+	test-riece-log.el.
+
+2004-12-10  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece.el (riece-shrink-buffer): Shrink buffer based on chars
+	instead of lines.
+
+	* riece-options.el (riece-shrink-buffer-remove-chars): New user option.
+	(riece-shrink-buffer-remove-lines): Abolish.
+
+2004-12-08  Daiki Ueno  <ueno@unixuser.org>
+
+	* test/test-riece-log.el (test-riece-log-delete-directory):
+	Suppress file-name encoding.
+
+	* riece-log.el (riece-log-get-directory): Fixed bug in
+	riece-log-directory-map handling.
+
+	* test/test-riece-log.el
+	(test-riece-log-display-message-function): New test case.
+
+2004-12-08  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-log.el (riece-log-flashback): Fixed custom spec.
+	(riece-log-date-face): New face.
+	(riece-log-insert): Don't append date string to the end of log
+	lines if they arrived today.
+	(riece-log-flashback): Insert "Recent messages ...:"; call
+	riece-after-insert-functions.
+
+	* riece-handle.el (riece-handle-part-message): Call riece-naming
+	assert-part after inserting changes in channel buffers.
+	* riece-display.el (riece-part-channel): Call
+	riece-buffer-dispose-function on parted channel buffer.
+
+2004-12-08  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-log.el (riece-log-display-message-function): Suppress
+	further file-name encoding.
+
+2004-12-07  Daiki Ueno  <ueno@unixuser.org>
+
+	* test/lunit-report.el: New file split from lunit.el.
+
+	* riece-options.el (riece-addons): Add 'riece-log.
+
+	* test/test-riece-log.el (lunit-test-case-setup): #riece -> =23riece.
+
+	* riece-log.el (riece-log-insert): Renamed from
+	riece-log-flashback-1; simplified.
+	(riece-log-get-files): Check existence of directory.
+	(riece-log-get-directory): New implementation.
+	[cf. <Liece:00396>]
+
+2004-12-07  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+	* riece-foolproof.el (riece-foolproof-command-send-message-function): 
+	Check invisible text.
+
+2004-12-07  Daiki Ueno  <ueno@unixuser.org>
+
+	* test/test-riece-log.el (test-riece-log-encode-file-name): New
+	test case.
+	(test-riece-log-encode-file-name-mule): New test case.
+	(test-riece-log-decode-file-name): New test case.
+	(test-riece-log-decode-file-name-mule): New test case.
+
+	* riece-log.el (riece-log-file-name-coding-system): New user option.
+	(riece-log-encode-file-name): New function.
+	(riece-log-decode-file-name): New function.
+
+2004-12-06  Daiki Ueno  <ueno@unixuser.org>
+
+	* test/test-riece-log.el: New test cases.
+
+	* riece-log.el: Collect logs across dates.
+	(riece-log-get-files): New function.
+	(riece-log-flashback-1): New function.
+	(riece-log-flashback): Use it.
+
+2004-12-05  Daiki Ueno  <ueno@unixuser.org>
+
+	* riece-message.el (riece-display-message-1): Call
+	riece-after-display-message-functions in riece-message-buffer.
+	[cf. <Liece:00391>]
+
 2004-12-05  Daiki Ueno  <ueno@unixuser.org>
 
 	* Riece: Version 1.0.6 released.
 EXTRA_DIST = COMPILE ChangeLog ChangeLog.Liece \
 	riece-000.el riece-200.el riece-300.el riece-400.el riece-500.el \
 	riece-addon.el riece-channel.el riece-coding.el riece-commands.el \
-	riece-compat.el riece-complete.el riece-display.el riece-emacs.el \
-	riece-filter.el riece-globals.el riece-handle.el riece-highlight.el \
-	riece-identity.el riece-message.el riece-misc.el riece-mode.el \
-	riece-naming.el riece-options.el riece-server.el riece-signal.el \
-	riece-user.el riece-version.el riece-xemacs.el riece-irc.el riece.el \
-	riece-ctcp.el riece-url.el riece-unread.el \
+	riece-compat.el riece-complete.el riece-debug.el riece-display.el \
+	riece-emacs.el riece-filter.el riece-globals.el riece-handle.el \
+	riece-highlight.el riece-identity.el riece-message.el riece-misc.el \
+	riece-mode.el riece-naming.el riece-options.el riece-server.el \
+	riece-signal.el riece-user.el riece-version.el riece-xemacs.el \
+	riece-irc.el riece.el riece-ctcp.el riece-url.el riece-unread.el \
 	riece-ndcc.el riece-rdcc.el riece-log.el riece-mini.el \
 	riece-doctor.el riece-alias.el riece-layout.el riece-skk-kakutei.el \
 	riece-guess.el riece-history.el riece-button.el riece-keyword.el \
 	riece-menu.el riece-icon.el riece-async.el riece-lsdb.el \
 	riece-xface.el riece-ctlseq.el riece-ignore.el riece-hangman.el \
 	riece-biff.el riece-kakasi.el riece-foolproof.el riece-yank.el \
-	url-riece.el
+	riece-toolbar.el riece-eval.el riece-google.el riece-keepalive.el \
+	url-riece.el \
+	riece-command-previous-channel.xpm riece-command-next-channel.xpm \
+	riece-submit-bug-report.xpm
 
 CLEANFILES = auto-autoloads.el custom-load.el *.elc
 FLAGS ?= -batch -q -no-site-file

lisp/riece-000.el

       (if (equal (riece-identity-server
 		  (setq identity (riece-parse-identity (car entry))))
 		 riece-server-name)
-	  (riece-command-join identity (nth 1 entry)))
+	  (riece-command-join-channel identity (nth 1 entry)))
       (setq channel-list (cdr channel-list))))
   (run-hooks 'riece-after-login-hook))
 

lisp/riece-300.el

     "\n")))
 
 (defun riece-handle-301-message (prefix number name string)
-  (if (string-match (concat "^\\(" riece-user-regexp "\\) :?") string)
+  (if (string-match (concat "^\\([^ ]+\\) :?") string)
       (let ((user (match-string 1 string))
 	    (message (substring string (match-end 0))))
 	(riece-user-toggle-away user t)
 
 (defun riece-handle-311-message (prefix number name string)
   (if (string-match
-       (concat "^\\(" riece-user-regexp
-	       "\\) \\([^ ]+\\) \\([^ ]+\\) \\* :?")
+       (concat "^\\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\* :?")
        string)
       (let ((user (match-string 1 string))
 	    (name (substring string (match-end 0)))
 
 (defun riece-handle-312-message (prefix number name string)
   (if (string-match
-       (concat "^\\(" riece-user-regexp "\\) \\([^ ]+\\) :?")
+       (concat "^\\([^ ]+\\) \\([^ ]+\\) :?")
        string)
       (riece-insert-info
        (list riece-dialogue-buffer riece-others-buffer)
 
 (defun riece-handle-317-message (prefix number name string)
   (if (string-match
-       (concat "^\\(" riece-user-regexp "\\) \\([0-9]+\\) ")
+       (concat "^\\([^ ]+\\) \\([0-9]+\\) ")
        string)
-      (let ((user (match-string 1 string))
-	    (idle (match-string 2 string)))
+      (let* ((user (match-string 1 string))
+	     (seconds (string-to-number (match-string 2 string)))
+	     (units (list (cons (/ seconds 60 60 24) "days")
+			  (cons (mod (/ seconds 60 60) 24) "hours")
+			  (cons (mod (/ seconds 60) 60) "minutes")
+			  (cons (mod seconds 60) "seconds"))))
 	(riece-insert-info
 	 (list riece-dialogue-buffer riece-others-buffer)
 	 (concat
 	  (riece-concat-server-name
-	   (format "%s is %s seconds idle"
+	   (format "%s is %s idle"
 		   (riece-format-identity
 		    (riece-make-identity user riece-server-name)
 		    t)
-		   idle))
+		   (mapconcat #'identity
+			      (delq nil
+				    (mapcar
+				     (lambda (unit)
+				       (if (/= (car unit) 0)
+					   (format "%d %s"
+						   (car unit) (cdr unit))))
+				     units))
+			      " ")))
 	  "\n")))))
 
 (defun riece-handle-319-message (prefix number name string)
-  (if (string-match (concat "^\\(" riece-user-regexp "\\) :?") string)
+  (if (string-match (concat "^\\([^ ]+\\) :?") string)
       (let ((user (match-string 1 string))
 	    (channels
 	     (mapconcat
 		 (substring string (match-end 0))))
 	"\n"))))
 
-(defvar riece-353-users nil)
+(defvar riece-353-message-alist nil)
 (defun riece-handle-353-message (prefix number name string)
   "RPL_NAMREPLY	\"[=\*@] <channel> :[[@|+]<nick> [[@|+]<nick> [...]]]\"."
+  (make-local-variable 'riece-353-message-alist)      
   (if (string-match "^[=\*@] *\\([^ ]+\\) +:?" string)
-      (let ((channel (match-string 1 string))
-	    (start 0)
-	    user)
-	(make-local-variable 'riece-353-users)
-	(setq string (substring string (match-end 0)))
-	(while (string-match
-		(concat "\\([@+]\\)?\\(" riece-user-regexp "\\) *")
-		string start)
-	  (put-text-property (match-beginning 2) (match-end 2)
-			     'riece-identity
-			     (riece-make-identity (match-string 2 string)
-						  riece-server-name)
-			     string)
-	  (setq start (match-end 0)
-		user (if (match-beginning 1)
-			 (if (eq (aref string (match-beginning 1)) ?@)
-			     (list (match-string 2 string) ?o)
-			   (if (eq (aref string (match-beginning 1)) ?+)
-			       (list (match-string 2 string) ?v)))
-		       (list (match-string 2 string)))
-		riece-353-users (cons user riece-353-users)))
-	(let* ((channel-identity (riece-make-identity channel
-						      riece-server-name))
-	       (buffer (riece-channel-buffer channel-identity)))
-	  (riece-insert-info buffer (concat "Users: " string "\n"))
-	  (riece-insert-info
-	   (if (and riece-channel-buffer-mode
-		    (not (eq buffer riece-channel-buffer)))
-	       (list riece-dialogue-buffer riece-others-buffer)
-	     riece-dialogue-buffer)
-	   (concat
-	    (riece-concat-server-name
-	     (format "Users on %s: %s"
-		     (riece-format-identity channel-identity t) string))
-	    "\n"))))))
+      (let* ((channel (match-string 1 string))
+	     (entry (riece-identity-assoc channel riece-353-message-alist t)))
+	(if entry
+	    (setcdr entry
+		    (concat (cdr entry)
+			    (substring string (match-end 0))))
+	  (setq riece-353-message-alist
+		(cons (cons channel (substring string (match-end 0)))
+		      riece-353-message-alist))))))
 
 (defun riece-handle-322-message (prefix number name string)
   (if (string-match "^\\([^ ]+\\) \\([0-9]+\\) :?" string)
 (defun riece-handle-366-message (prefix number name string)
   "RPL_ENDOFNAMES \"<channel> :End of NAMES list\""
   (if (string-match "^\\([^ ]+\\) " string)
-      (let ((channel (match-string 1 string)))
-	(riece-naming-assert-channel-users (nreverse riece-353-users)
-					   channel)))
-  (setq riece-353-users nil))
+      (let* ((channel (match-string 1 string))
+	     (channel-identity (riece-make-identity channel
+						    riece-server-name))
+	     (buffer (riece-channel-buffer channel-identity))
+	     (entry (riece-identity-assoc channel riece-353-message-alist t))
+	     (string (cdr entry))
+	     (start 0)
+	     users)
+	(if entry
+	    (setq riece-353-message-alist
+		  (delq entry riece-353-message-alist)))
+	(while (string-match
+		(concat "\\([@+]\\)?\\(" riece-user-regexp "\\) *")
+		string start)
+	  (put-text-property (match-beginning 2) (match-end 2)
+			     'riece-identity
+			     (riece-make-identity (match-string 2 string)
+						  riece-server-name)