Added Riece pkg subtree
authorSteve Youngs <steve@sxemacs.org>
Tue, 14 Jun 2016 03:51:09 +0000 (13:51 +1000)
committerSteve Youngs <steve@sxemacs.org>
Tue, 14 Jun 2016 03:51:09 +0000 (13:51 +1000)
Signed-off-by: Steve Youngs <steve@sxemacs.org>
130 files changed:
xemacs-packages/riece/.cvsignore [new file with mode: 0644]
xemacs-packages/riece/.gitignore [new file with mode: 0644]
xemacs-packages/riece/.gitmodules [new file with mode: 0644]
xemacs-packages/riece/AUTHORS [new file with mode: 0644]
xemacs-packages/riece/ChangeLog-2014 [new file with mode: 0644]
xemacs-packages/riece/Makefile.am [new file with mode: 0644]
xemacs-packages/riece/NEWS [new file with mode: 0644]
xemacs-packages/riece/README [new file with mode: 0644]
xemacs-packages/riece/README-hacking [new file with mode: 0644]
xemacs-packages/riece/acinclude.m4 [new file with mode: 0644]
xemacs-packages/riece/bootstrap [new file with mode: 0755]
xemacs-packages/riece/bootstrap.conf [new file with mode: 0644]
xemacs-packages/riece/configure.ac [new file with mode: 0644]
xemacs-packages/riece/doc/.cvsignore [new file with mode: 0644]
xemacs-packages/riece/doc/Makefile.am [new file with mode: 0644]
xemacs-packages/riece/doc/fdl.texi [new file with mode: 0644]
xemacs-packages/riece/doc/infohack.el [new file with mode: 0644]
xemacs-packages/riece/doc/irchat-copyright.el [new file with mode: 0644]
xemacs-packages/riece/doc/ja/NEWS [new file with mode: 0644]
xemacs-packages/riece/doc/ja/README [new file with mode: 0644]
xemacs-packages/riece/doc/ja/README-hacking [new file with mode: 0644]
xemacs-packages/riece/doc/ptexinfmt.el [new file with mode: 0644]
xemacs-packages/riece/doc/riece-en.texi [new file with mode: 0644]
xemacs-packages/riece/doc/riece-ja.texi [new file with mode: 0644]
xemacs-packages/riece/gnulib [new submodule]
xemacs-packages/riece/lisp/.cvsignore [new file with mode: 0644]
xemacs-packages/riece/lisp/COMPILE [new file with mode: 0644]
xemacs-packages/riece/lisp/ChangeLog-2014 [new file with mode: 0644]
xemacs-packages/riece/lisp/ChangeLog.Liece [new file with mode: 0644]
xemacs-packages/riece/lisp/Makefile.am [new file with mode: 0644]
xemacs-packages/riece/lisp/aproxy.rb [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-000.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-200.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-300.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-400.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-500.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-addon-modules.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-addon.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-alias.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-async.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-biff.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-button.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-cache.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-channel.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-coding.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-command-configure-windows.xpm [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-command-join.xpm [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-command-list-addons.xpm [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-command-next-channel.xpm [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-command-part.xpm [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-command-previous-channel.xpm [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-commands.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-compat.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-complete.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-ctcp.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-ctlseq.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-debug.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-desktop-notify.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-develop.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-display.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-doctor.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-emacs.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-epg.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-eval-ruby.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-eval.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-filter.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-foolproof.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-globals.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-google.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-guess.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-handle.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-hangman.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-highlight.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-history.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-icon.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-identity.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-ignore.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-irc.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-kakasi.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-keepalive.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-keyword.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-layout.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-log.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-lsdb.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-mcat-japanese.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-mcat.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-menu.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-message.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-mini.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-misc.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-mode.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-naming.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-ndcc.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-notify-icon.png [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-options.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-package-info.el.in [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-rdcc.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-ruby.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-server.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-shrink-buffer.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-signal.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-skk-kakutei.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-submit-bug-report.xpm [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-toolbar.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-twitter.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-unread.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-url.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-user.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-version.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-xemacs.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-xface.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-xfaceb.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece-yank.el [new file with mode: 0644]
xemacs-packages/riece/lisp/riece.el [new file with mode: 0644]
xemacs-packages/riece/lisp/server.rb [new file with mode: 0644]
xemacs-packages/riece/lisp/test/.cvsignore [new file with mode: 0644]
xemacs-packages/riece/lisp/test/Makefile.am [new file with mode: 0644]
xemacs-packages/riece/lisp/test/luna.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/lunit-report.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/lunit.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-addon.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-alias.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-cache.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-eval.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-log.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-ruby.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-shrink-buffer.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-url.el [new file with mode: 0644]
xemacs-packages/riece/lisp/test/test-riece-yank.el [new file with mode: 0644]
xemacs-packages/riece/lisp/url-riece.el [new file with mode: 0644]

diff --git a/xemacs-packages/riece/.cvsignore b/xemacs-packages/riece/.cvsignore
new file mode 100644 (file)
index 0000000..e742c1f
--- /dev/null
@@ -0,0 +1,13 @@
+install-sh
+mkinstalldirs
+missing
+Makefile.in
+Makefile
+aclocal.m4
+autom4te.cache
+configure
+config.log
+config.status
+config.cache
+COPYING
+INSTALL
diff --git a/xemacs-packages/riece/.gitignore b/xemacs-packages/riece/.gitignore
new file mode 100644 (file)
index 0000000..73e3d29
--- /dev/null
@@ -0,0 +1,43 @@
+/build-aux
+COPYING
+INSTALL
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache/
+config.log
+config.status
+configure
+doc/Makefile
+doc/Makefile.in
+doc/mdate-sh
+doc/texinfo.tex
+install-sh
+lisp/Makefile
+lisp/Makefile.in
+lisp/riece-package-info.el
+lisp/test/Makefile
+lisp/test/Makefile.in
+missing
+lisp/*.elc
+doc/version-en.texi
+doc/version-ja.texi
+doc/stamp-1
+doc/stamp-vti
+doc/riece-en.info
+doc/riece-ja.info
+lisp/auto-autoloads.el
+lisp/custom-load.el
+lisp/custom-defines.el
+*~
+\#*#
+*.orig
+*.bak
+++*
+,,*
+=*
+/ChangeLog
+/.version
+# We don't import Gnulib modules which use the following directories.
+/lib
+/m4
diff --git a/xemacs-packages/riece/.gitmodules b/xemacs-packages/riece/.gitmodules
new file mode 100644 (file)
index 0000000..2353d78
--- /dev/null
@@ -0,0 +1,3 @@
+[submodule "gnulib"]
+       path = gnulib
+       url = git://git.sv.gnu.org/gnulib
diff --git a/xemacs-packages/riece/AUTHORS b/xemacs-packages/riece/AUTHORS
new file mode 100644 (file)
index 0000000..9824660
--- /dev/null
@@ -0,0 +1,25 @@
+Copyright (C) 1998-2009 Daiki Ueno
+Copyright (C) 1989 Tor Lillqvist
+
+Riece is mainly written by Daiki Ueno <ueno@unixuser.org>.
+
+The development of Riece has started to redesign the Liece IRC client.
+Liece was mainly written by the same author of Riece.  Liece is based
+on Irchat (version 3.01) which has been distributed under GNU General
+Public License version 1 or later.  Tor Lillqvist <tml@iki.fi> is the
+original author of Irchat.  The current Riece source code, however,
+doesn't contain any code from Irchat.  For the historical reason, the
+original copyright statement of Irchat is filed under
+doc/irchat-copyright.el.
+
+Riece has many code borrowed from other GPL'ed elisp packages such as
+Gnus, Emacs-w3m, ECB, and SEMI.  I would like to thank the developers
+of these packages.
+
+Other authors:
+
+TAKAHASHI Kaoru  <kaoru@kaisei.org>
+OHASHI Akira  <bg66@koka-in.org>
+Yoichi NAKAYAMA  <yoichi@geiin.org>
+Masatake YAMATO <jet@gyve.org> (riece-yank.el)
+Steve Youngs <steve@sxemacs.org> (riece-xfaceb.el)
\ No newline at end of file
diff --git a/xemacs-packages/riece/ChangeLog-2014 b/xemacs-packages/riece/ChangeLog-2014
new file mode 100644 (file)
index 0000000..e67cd70
--- /dev/null
@@ -0,0 +1,265 @@
+2012-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 9.0.0 released.
+       * configure.ac: Bump to 9.0.0.
+
+       * NEWS: Add entry for 9.0.0.
+       * NEWS.ja: Ditto.
+
+2011-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 8.0.0 released.
+       * configure.ac: Bump to 8.0.0.
+
+       * NEWS: Add entry for 8.0.0.
+       * NEWS.ja: Ditto.
+
+2010-12-24  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 7.0.3 released.
+       * configure.ac: Bump to 7.0.3.
+
+       * NEWS: Add entry for 7.0.3.
+       * NEWS.ja: Ditto.
+
+2010-12-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 7.0.2 released.
+       * configure.ac: Bump to 7.0.2.
+
+       * NEWS: Add entry for 7.0.2.
+       * NEWS.ja: Ditto.
+
+2010-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 7.0.0 released.
+       * configure.ac: Bump to 7.0.0.
+
+       * NEWS: Add entry for 7.0.0.
+       * NEWS.ja: Ditto.
+
+2010-04-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * NEWS.ja, README.ja, doc/riece-ja.texi: Change the encoding to
+       UTF-8.
+
+2009-09-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 6.1.0 released.
+       * configure.ac: Bump up version to 6.1.0.
+
+2009-05-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 6.0.0 released.
+       * configure.ac: Bump up version to 6.0.0.
+
+2009-04-22  Daiki Ueno  <ueno@unixuser.org>
+
+       * Makefile.am (EXTRA_DIST): Remove INSTALL-CVS.
+       * INSTALL-CVS: Remove; see doc/HACKING instead.
+
+2008-05-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 5.0.0 released.
+       * configure.ac: Bump up version to 5.0.0.
+
+2007-11-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * configure.ac: Use modern AC_INIT.
+
+2007-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 4.0.0 released.
+       * configure.ac: Bump up version to 4.0.0.
+
+2007-01-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.1.2 released.
+       * configure.ac: Bump up version to 3.1.2.
+
+2006-12-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * configure.ac: Generate lisp/riece-package-info.el.
+
+2006-09-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.1.1 released.
+       * configure.ac: Bump up version to 3.1.1.
+
+2006-07-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.1.0 released.
+       * configure.ac: Bump up version to 3.1.0.
+
+2006-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.0.0 released.
+       * configure.ac: Bump up version to 3.0.0.
+
+2005-11-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 2.0.2 released.
+       * configure.ac: Bump up version to 2.0.2.
+
+2005-09-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 2.0.1 released.
+       * configure.ac: Bump up version to 2.0.1.
+
+2005-08-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 2.0.0 released.
+       * configure.ac: Bump up version to 2.0.0.
+
+2005-08-06  Daiki Ueno  <ueno@unixuser.org>
+
+       * Makefile.am (EXTRA_DIST): Add HACKING.ja.
+
+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-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.6 released.
+       * configure.ac: Bump up version to 1.0.6.
+
+2004-11-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.5 released.
+       * configure.ac: Bump up version to 1.0.5.
+
+2004-10-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.4 released.
+       * configure.ac: Bump up version to 1.0.4.
+
+2004-09-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.3 released.
+       * configure.ac: Bump up version to 1.0.3.
+
+2004-08-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.2 released.
+       * configure.ac: Bump up version to 1.0.2.
+
+2004-07-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.1 released.
+       * configure.ac: Bump up version to 1.0.1.
+
+2004-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.0 released.
+       * configure.ac: Bump up version to 1.0.0.
+
+2004-05-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * configure.ac: Set AM_CONDITIONAL XEMACS.
+       * Makefile.am: Emit install-package and package target only if
+       EMACS_FLAVOR = xemacs.
+
+2004-05-04  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.2.2 released.
+       * configure.ac: Bump up version to 0.2.2.
+
+2004-03-09  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.2.1 released.
+       * configure.ac: Bump up version to 0.2.1.
+
+2004-03-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.2.0 released.
+       * configure.ac: Bump up version to 0.2.0.
+
+2004-01-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.8 released.
+       * configure.ac: Bump up version to 0.1.8.
+
+2003-12-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.7 released.
+       * configure.ac: Bump up version to 0.1.7.
+
+2003-11-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.6 released.
+       * configure.ac: Bump up version to 0.1.6.
+
+2003-10-24  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.5 released.
+       * configure.ac: Bump up version to 0.1.5.
+
+2003-10-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.4 released.
+       * configure.ac: Bump up version to 0.1.4.
+
+2003-10-13  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.3 released.
+       * configure.ac: Bump up version to 0.1.3.
+
+2003-10-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.2 released.
+       * configure.ac: Bump up version to 0.1.2.
+
+2003-08-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.1 released.
+       * configure.ac: Bump up version to 0.1.1.
+
+2003-08-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.1.0 released.
+       * configure.ac: Bump up version to 0.1.0.
+
+2003-08-03  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.0.4 released.
+       * configure.ac: Bump up version to 0.0.4.
+
+2003-06-02  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.0.3 released.
+       * configure.ac: Bump up version to 0.0.3.
+
+       * Makefile.am (SUBDIRS): Add doc.
+
+2003-06-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * configure.ac: Simplified.
+       * Makefile.am (SUBDIRS): Remove dcc.
+
+2003-05-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.0.2 released.
+       * configure.ac: Bump up version to 0.0.2.
+
+       * INSTALL-CVS: New file.
+       * Makefile.am (EXTRA_DIST): Add INSTALL-CVS.
+
+2003-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Makefile.am (AUTOMAKE_OPTIONS): Add "no-dependencies".
+
+2003-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 0.0.1 released.
+
diff --git a/xemacs-packages/riece/Makefile.am b/xemacs-packages/riece/Makefile.am
new file mode 100644 (file)
index 0000000..4d1b32a
--- /dev/null
@@ -0,0 +1,50 @@
+SUBDIRS = lisp doc
+AUTOMAKE_OPTIONS = no-dependencies
+
+if XEMACS
+install-package package:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) \
+       done
+endif
+
+changelog_etc =                                        \
+       ChangeLog-2014                          \
+       lisp/ChangeLog-2014                     \
+       lisp/ChangeLog.Liece
+
+ja_docs =                                      \
+       doc/ja/NEWS                             \
+       doc/ja/README                           \
+       doc/ja/README-hacking
+
+BUILT_SOURCES = $(top_srcdir)/.version
+
+EXTRA_DIST =                                   \
+       $(ja_docs)                              \
+       $(changelog_etc)                        \
+       bootstrap                               \
+       bootstrap.conf                          \
+       $(BUILT_SOURCES)
+
+$(top_srcdir)/.version:
+       echo $(VERSION) > $@-t && mv $@-t $@
+
+# Arrange so that .tarball-version appears only in the distribution
+# tarball, and never in a checked-out repository.
+# The perl substitution is to change some key uses of "rm" to "/bin/rm".
+# See the rm_subst comment for details.
+dist-hook: gen-ChangeLog
+       $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
+       $(AM_V_at)perl -pi -e '$(rm_subst)' $(distdir)/Makefile.in
+
+gen_start_date = 2014-04-12
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+       $(AM_V_GEN)if test -d .git; then                                \
+         $(top_srcdir)/build-aux/gitlog-to-changelog                   \
+           --amend=$(srcdir)/build-aux/git-log-fix                     \
+           --since=$(gen_start_date) > $(distdir)/cl-t;                \
+         rm -f $(distdir)/ChangeLog;                                   \
+         mv $(distdir)/cl-t $(distdir)/ChangeLog;                      \
+       fi
diff --git a/xemacs-packages/riece/NEWS b/xemacs-packages/riece/NEWS
new file mode 100644 (file)
index 0000000..632530d
--- /dev/null
@@ -0,0 +1,686 @@
+* Major changes in 9.0.0
+
+** New command to re-order channels is added (ueno)
+   See the doc string of riece-command-reorder-channels.
+
+** Complete multiple channels when joining (ueno)
+
+* Major changes in 8.0.0
+
+** Extend URL regexp used in riece-url (ueno)
+
+** Use lexical binding everywhere (ueno)
+
+** Update doc/ptexinfmt.el (kaoru)
+
+* Major changes in 7.0.3
+
+** Fix freeze behavior when the cursor is on a channel buffer (ueno)
+   riece-shrink-buffer had a bug which moves the cursor to the top or
+   bottom of buffer even when the buffer is frozen.
+
+** Fix out-of-tree build (kaoru, ueno)
+   There were some code not passing srcdir correctly.
+
+** Remove old-style backquotes for Emacs 24 (ueno)
+
+* Major changes in 7.0.2
+
+** Fix bug of reading IRC logs (ueno)
+   If coding-system was not specified when writing log to file, Riece
+   added extra ".nil" to the filename.  That causes erronous behavior
+   on reading the logs back.
+
+** Fix control sequence parsing (ueno)
+
+* Major changes in 7.0.1
+
+** Fix compilation error on Emacs 24. (ueno)
+   Emacs 24 does not have make-local-hook.
+
+** Suppress byte-compile warnings. (kaoru)
+   Suppress "`save-excursion' defeated by `set-buffer'".
+
+** Support "make distcheck". (ueno)
+
+* Major changes in 7.0.0
+
+** Mailing list address changed to riece-discuss@nongnu.org.
+
+** Fix build for XEmacs 21.5. (ueno)
+
+** Fix coloring riece-channel-list-indicator on mode-line. (ueno)
+
+* Major changes in 6.1.0
+
+** Revert to use setq instead of Custom for saved settings. (ueno)
+
+** Add-on management commands can now be usable from the Command buffer. (kaoru)
+
+* Major changes in 6.0.0
+
+** New add-on riece-desktop-notify. (bg66)
+
+** Fix Custom-based setting mechanism.
+
+* Major changes in 5.0.0
+
+** Use Custom for saved settings. (ueno)
+
+** Use stock icons for toolbar. (ueno)
+
+** Follow the procedure recommended in RFC2812 when making a
+   connection to the server.  This change is needed for some IRC
+   servers including TwitterIrcGateway. (ueno)
+
+** Allow non-ASCII realname. (KASUGA Toru)
+
+** Fixed a corner case bug of riece-keywords settings. (Takeru Naito)
+
+* Major changes in 4.0.0
+
+** New add-on riece-twitter. (ueno)
+
+** riece-rdcc can now specify sending ports. (ueno)
+
+* Major changes in 3.1.2
+
+** Message catalog. (ueno)
+
+* Major changes in 3.1.1
+
+** riece-async works again. (ueno)
+
+** riece-shrink-buffer is now enabled by default. (ueno)
+
+** New window layout "spiral". (URABE Shyouhei)
+
+* Major changes in 3.1.0
+
+** Prevent reentrace of message handlers.  This might fix some long
+   standing bug in message handling. (ueno)
+
+** Removed dependency on the calc package from riece-ndcc.el. (ueno)
+
+** Fixed a bug in the 353 message handler. (ueno)
+
+* Major changes in 3.0.0
+
+** Changed the meaning of riece-username.  If you set this option, you
+   will need to set riece-realname instead. (ueno)
+
+** Cause an error if a user requests to close already closed server. (yoichi)
+
+** New add-on riece-epg.el, which enables secure conversation using
+   GnuPG. (ueno)
+
+** Fixed a couple of bugs in inviting users. (Steve Youngs)
+
+** Fixed a redisplay bug when a user leaves a channel. (ueno)
+
+** Reverted the default value of riece-alias-alternate-separator to
+   "@". (ueno)
+
+* Major changes in 2.0.2
+
+** Fixed C-c l (riece-command-list) behavior.  It didn't display
+   channel TOPIC correctly. (ueno)
+
+** Don't alter case of user/channel names when completing user
+   input. (ueno)
+
+** Changed default value of alternate separator of a channel name and an
+   IRC server name to "%". (ueno)
+
+* Major changes in 2.0.1
+
+** If there is a message in previously selected channel, Riece 2.0.0
+   doesn't treat it as an unread channel.  2.0.1 fixes it. (ueno)
+
+** New add-on riece-xfaceb.el, which displays X-Face/Colour Face in
+   IRC buffers. (Steve Youngs)
+
+* Major changes in 2.0.0
+
+** Support multiple coding-systems on a server.
+   You can use different coding-systems for different channels. (ueno)
+   For example:
+   (setq riece-channel-coding-system-alist
+        '(("#euc-jp" . euc-jp)
+          ("#utf-8 irc.freenode.net" . utf-8)))
+
+** Support uninstall, unload (dangerous) operations for add-ons.
+   Now you can fully customize riece-addons in the add-on listing
+   mode. (ueno)
+
+** New mechanism for executing Ruby programs.  To use it, see the
+   commentary section of riece-ruby.el. (ueno)
+
+** New add-on riece-eval-ruby.el, which regards user input prefixed by
+   ",ruby " as a Ruby program and sends the result to the current
+   channel. (ueno)
+
+** New add-on riece-shrink-buffer.el, which now takes care of periodic
+   buffer shrinking.  If you have set riece-max-buffer-size, you will
+   need to enable the riece-shrink-buffer add-on in the add-on listing
+   mode. (ueno)
+
+** Don't signal an error when a user is quitting, and who has joined a
+   channel where you left. (ueno)
+
+** When saving a log file, suffix the name of the coding-system used
+   onto the filename.  This will avoid mojibake even
+   riece-log-coding-system is not set. (ueno)
+
+** While traversing channel list with C-c g, offer channels in order
+   of precedence where they have newer unread messages. (ueno)
+
+** Allow "@" instead of " " as a separator of a channel name and an
+   IRC server name. (ueno)
+
+** Rewrite the Japanese manual (riece-ja.texi) for IRC & Emacs
+   newbies. (ueno)
+
+** Allow users to hide *Others* buffer. (ueno)
+
+** Use seperate buffer to store debugging output. (ueno)
+
+** Added new make rule for byte-compiling elisp files individually.
+   To use it, after configure, do "make compile-individually" in
+   lisp/.  (ueno)
+
+** Include a document for developers (doc/HACKING{,.ja}) (ueno)
+
+* 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 ▽ 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.
+\f
+Local variables:
+mode: text
+mode: outline
+paragraph-separate: "[  \f]*$"
+end:
diff --git a/xemacs-packages/riece/README b/xemacs-packages/riece/README
new file mode 100644 (file)
index 0000000..d9c762c
--- /dev/null
@@ -0,0 +1,45 @@
+* What's this?
+
+Riece is an IRC client for Emacs.
+
+Riece provides the following features:
+
+- Several IRC servers may be used at the same time.
+- Essential features can be built upon the extension framework (called
+  "add-on") capable of dependency tracking.
+- Installation is easy.  Riece doesn't depend on other packages.
+- 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 (in info format) are included.
+- Mostly compliant with RFC 2812.
+
+* Directory tree
+
+This package contains following directories:
+
+lisp/ - Emacs Lisp files.
+doc/  - Documentation files.
+
+* Requirements
+
+- Emacs 20.7 or later / XEmacs 21.4 or later
+- Ruby 1.8 or later (optional)
+
+* Installation
+
+$ ./configure
+$ sudo make install
+
+Add the following line to your Emacs startup file such as ~/.emacs.
+
+  (autoload 'riece "riece" "Start Riece" t)
+
+If you are using XEmacs and want to install as a package, supply
+"--with-xemacs" option to the configure script and use
+"install-package" target instead of "install".
+
+* Manuals
+
+Info manuals are available after installation.  To read, start Emacs
+and type M-x info and select "Riece-en".
diff --git a/xemacs-packages/riece/README-hacking b/xemacs-packages/riece/README-hacking
new file mode 100644 (file)
index 0000000..e3d2524
--- /dev/null
@@ -0,0 +1,432 @@
+-*- mode: outline -*-
+
+This document is for Riece developers or those who are interested in
+the development.
+
+* Development process
+
+** Reporting bugs
+
+If you find a bug, please file it at
+https://savannah.nongnu.org/bugs/?group=riece
+
+** Getting the development source code
+
+We currently use Git.  Follow the instructions below to build the
+development version.
+
+(1) checkout modules
+
+    git clone git://git.sv.gnu.org/riece.git
+
+(2) generate configure script
+
+    ./bootstrap
+
+(3) run the configure script
+
+    ./configure
+
+(4) build and install
+
+    make
+    make install
+
+* Source structure
+
+** Modules
+
+Riece consists of many elisp modules listed below, ordered by the
+number of dependencies they have.
+
+- riece-globals
+  This module defines global variables.
+
+- riece-options
+  This module defines user options.
+
+- riece-version
+  This module defines the version of Riece.
+
+- riece-coding
+  This module provides functions which support character code conversions.
+
+- riece-complete
+  This module provides functions which support tab completion feature
+  in a mini buffer.
+
+- riece-addon
+  This module manages add-ons.
+
+- riece-mode
+  This module manages modes of riece-channel/riece-user objects.
+
+- riece-identity
+  This module defines the riece-identity object type which represents
+  global names of riece-channel/riece-user objects.
+
+- riece-channel
+  This module defines the riece-channel object type.
+
+- riece-user
+  This module defines the riece-user object type.
+
+- riece-misc
+  This module provides miscellaneous functions.
+
+- riece-signal
+  This module defines the riece-signal object type used to manage
+  display events.
+
+- riece-layout
+  This module manages window layouts.
+
+- riece-display
+  This module manages display events.
+
+- riece-server
+  This module manages connections to IRC servers.
+
+- riece-naming
+  This module is a so called the Mediator design pattern.  It knows
+  relationships of riece-channel/riece-user objects.
+
+- riece-message
+  This module defines the riece-message object type.
+
+- riece-filter
+  This module only provides the process filter function.
+
+- riece-handle
+  This module provides handler functions for IRC messages.  These
+  functions are called from riece-filter.
+
+- riece-000
+  This module provides handler functions for numeric replies whose
+  response codes are in 000 to 100 range.  These handlers are called
+  from riece-filter.
+
+- riece-200
+  This module provides handler functions for numeric replies whose
+  response codes are in 200 to 300 range.  These handlers are called
+  from riece-filter.
+
+- riece-300
+  This module provides handler functions for numeric replies whose
+  response codes are in 300 to 400 range.  These handlers are called
+  from riece-filter.
+
+- riece-400
+  This module provides handler functions for numeric replies whose
+  response codes are in 400 to 500 range.  These handlers are called
+  from riece-filter.
+
+- riece-500
+  This module provides handler functions for numeric replies whose
+  response codes are in 500 to 600 range.  These handlers are called
+  from riece-filter.
+
+- riece-commands
+  This module provides user commands.
+
+- riece-irc
+  This module provides the binding for the IRC protocol.
+
+- riece
+  This module is the entry point of M-x riece.
+
+** Namespace management
+
+Riece is capable to connect to several IRC servers.
+
+Riece has separate namespace (obarray) for each connection.  These
+namespaces can be accessed as buffer local variables of process
+buffer.
+
+*** Obtaining server buffer
+
+To access to the buffer local variables of process buffer, it is
+needed to distinguish process object of each connection by its name.
+
+It can be known by:
+
+(1) checking the value of riece-overriding-server-name,
+
+(2) checking the value of riece-server-name,
+    (If the variable riece-server-name is local to the current buffer,
+    you are already in the process buffer.)
+
+(3) or parsing riece-identity objects
+
+Once you get the name of the IRC server, you can get the process
+object by passing the name to the function riece-server-process.
+
+*** riece-identity objects
+
+A riece-identity object represents a name of a channel/user.  It is
+used to distinguish a channel/user among several servers.
+
+A riece-identity object is actually a vector, which consists of two
+elements listed below.
+
+- prefix
+  A channel/user name local to an IRC server.
+
+- server
+  The name of the IRC server.
+
+Methods to manipulate riece-identity object are listed below.
+
+- riece-make-identity prefix &optional server
+  Create a new riece-identity object.  If the server argument is
+  omitted, it sets the server part to the value returned by the
+  riece-find-server-name function.
+
+- riece-identity-prefix identity
+  Return the prefix element from the given riece-identity object.
+
+- riece-identity-server identity
+  Return the server element from the given riece-identity object.
+
+- riece-identity-equal ident1 ident2
+  Return t, if two riece-identity objects are equal.
+
+- riece-identity-equal-no-server ident1 ident2
+  Return t, if two riece-identity objects are equal.  This function
+  only consider a prefix part of a riece-identity object.
+
+- riece-identity-member elt list
+  Return non-nil if a riece-identity object is an element of a list.
+
+*** Channels and users
+
+A riece-channel object provides an abstraction of a channel.
+Likewise, a riece-user object provides an abstraction of a user.
+
+**** riece-channel objects
+
+A riece-channel object has many information about a channel.  A
+riece-channel object is actually a vector whose seven elements are listed
+below.
+
+- users
+  A list of nicknames which are of users in this channel.
+
+- operators
+  A list of nicknames which are of channel operators in this channel.
+
+- speakers
+  A list of nicknames which are of users who have the right to speak
+  in this channel.
+
+- modes
+  An alist which represents modes of this channel.
+
+- banned
+  A list of patterns set by MODE +b.
+
+- invited
+  A list of patterns set by MODE +I.
+
+- uninvited
+  A list of patterns set by MODE +e.
+
+**** riece-user objects
+
+A riece-user object has many information about a user.  A riece-user
+object is actually a vector whose four elements are listed below.
+
+- channels
+  A list of channel names this user is participating.
+
+- user-at-host
+  Connection information of this user, set in "<user>@<host>" format.
+
+- modes
+  An alist which represents modes of this user.
+
+- away
+  A flag represent whether this user is AWAY.
+
+**** The Mediator pattern
+
+The riece-naming module is used to manage relationships between
+channels and users.  It utilizes the Mediator design pattern.
+
+Using the riece-naming module allows to safely access to the namespace
+rather than directly connects riece-channel/riece-user objects.
+
+The riece-naming module provides the following functions.
+
+- riece-naming-assert-join user-name channel-name
+  Assert that a user is a member of a channel.
+
+- riece-naming-assert-part user-name channel-name
+  Assert that a user is no longer a member of a channel.
+
+- riece-naming-assert-rename old-name new-name
+  Assert that a user changed his nickname.
+
+** Signals
+
+There is a mechanism to connect events and display objects (windows,
+buffers, and modeline indicators).  This is done by signals.
+
+When it is needed to redraw, a signal is emitted.  The concept of
+signals is corresponding to signals in generic window system toolkit
+such as Qt or GTK+.
+
+To emit a signal, use riece-emit-signal.
+
+- riece-emit-signal signal-name &rest args
+  Emit a signal named signal-name with args.
+
+To define a function called when a signal is emitted, use
+riece-connect-signal.
+
+- riece-connect-signal signal-name slot-function &optional
+                       filter-function handback
+
+  Give a signal a slot-function.  The slot-function gets two
+  arguments: the signal object itself and a handback object given as
+  the fourth argument of riece-connect-signal.
+
+  If the third argument filter-function is specified, the
+  slot-function is called conditionally.  The filter-function gets the
+  signal object and returns nil or t.  If the return value is nil, the
+  slot-function is not called.
+
+To access to a signal object, use the following functions.
+
+- riece-signal-name signal
+  Return the name of a signal.
+
+- riece-signal-args
+  Return the data of a signal.
+
+Below is a list of signal names reserved.
+
+- channel-list-changed
+  Need update the channel list.
+
+- user-list-changed
+  Need update the user list.
+  (This signal gets a riece-identity object as an argument which
+  represents the channel.)
+
+- channel-switched
+  A user selected another channel.
+
+- user-joined-channel
+  A user joined a channel.
+  (This signal gets two riece-identity objects as arguments
+  corresponding to the user and the channel respectively.)
+
+- user-left-channel
+  A user left a channel.
+  (This signal gets two riece-identity objects as arguments
+  corresponding to the user and the channel respectively.)
+
+- user-renamed
+  A user changed his nickname.
+  (This signal gets two riece-identity objects as arguments
+  corresponding to the old and the new nickname respectively.)
+
+- user-away-changed
+  A user changed his AWAY status.
+  (This signal gets a riece-identity object as an argument which
+  represents the user.)
+
+- user-operator-changed
+  A user changed his IRC operator status. 
+  (This signal gets a riece-identity object as an argument which
+  represents the user.)
+
+- channel-topic-changed
+  A topic of a channel changed.
+  (This signal gets a riece-identity object as an argument which
+  represents the channel.)
+
+- channel-modes-changed
+  Modes of a channel changed.
+  (This signal gets a riece-identity object as an argument which
+  represents the channel.)
+
+- channel-operators-changed
+  A list of operators in a channel changed.
+  (This signal gets a riece-identity object as an argument which
+  represents the channel.)
+
+- channel-speakers-changed
+  A list of users who have the right to speak in a channel changed.
+  (This signal gets a riece-identity object as an argument which
+  represents the channel.)
+
+- buffer-freeze-changed
+  A buffer is frozen or unfrozen.
+  (This signal gets a buffer as an argument.)
+
+** Writing add-ons
+
+Elisp modules that satisfy add-on spec should provide the following
+functions.
+
+- <module-name>-requires (optional)
+  Return a list of names of other add-ons this add-on depends.
+
+- <module-name>-insinuate
+  Called on initialization of this module.
+
+- <module-name>-uninstall (optional)
+  Called on uninstallation of this module.
+
+- <module-name>-enable (optional)
+  Called when this add-on is enabled.
+
+- <module-name>-disable (optional)
+  Called when this add-on is disabled.
+
+It is recommended to set short explanation of the add-on to
+<module-name>-description variable which is displayed on add-on
+listing shown up by C-c ^ (M-x riece-command-list-addons).
+
+To see the add-on's enabled/disabled status, check riece-addon-enabled
+property set on <module-name> symbol.
+
+Riece does the following procedure on add-ons when startup.
+
+(1) Load add-ons listed in the riece-addons variable.
+
+(2) Call <module-name>-requires on each add-on (if exists) and build a
+    dependency graph.
+
+(3) Sort the dependency graph.
+
+(4) Call <module-name>-insinuate on each add-on in order of the
+    dependencies.
+
+(5) Call <module-name>-enable on each add-on, iff it supports
+    enabling/disabling and is not disabled explicitly.
+
+Add-ons are loaded from directories listed in load-path, or from
+~/.riece/addons/.
+
+** Handler hooks
+
+There are hooks called "handler hooks " which have special meaning in
+Riece.  Handler hooks are called before/after processing IRC messages.
+
+- riece-<message>-hook
+  Called before processing an IRC message.
+
+- riece-after-<message>-hook
+  Called after processing an IRC message.
+
+Where <message> is a type of IRC message and consists only lowercase
+characters.
+
+If riece-<message>-hook returns non-nil, <message> is not processed.
+In this case riece-after-<message>-hook is not called.
+
+Handler hooks gets two arguments corresponding to prefix and
+parameters in RFC2812.
diff --git a/xemacs-packages/riece/acinclude.m4 b/xemacs-packages/riece/acinclude.m4
new file mode 100644 (file)
index 0000000..ad09542
--- /dev/null
@@ -0,0 +1,359 @@
+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],
+ [dnl Check for Emacsen.
+
+  dnl Apparently, if you run a shell window in Emacs, it sets the EMACS
+  dnl environment variable to 't'.  Lets undo the damage.
+  test "$EMACS" = t && EMACS=
+
+  dnl Ignore cache.
+  unset ac_cv_prog_EMACS; unset ac_cv_prog_XEMACS;
+
+  AC_ARG_WITH(emacs,
+   [  --with-emacs=EMACS      compile with EMACS [EMACS=emacs, mule...]],
+   [if test "$withval" = yes -o -z "$withval"; then
+      AC_CHECK_PROGS(EMACS, emacs xemacs mule, emacs)
+    else
+      AC_CHECK_PROG(EMACS, $withval, $withval, emacs)
+    fi])
+  AC_ARG_WITH(xemacs,
+   [  --with-xemacs=XEMACS    compile with XEMACS [XEMACS=xemacs]],
+   [if test "$withval" = yes -o -z "$withval"; then
+      AC_CHECK_PROG(XEMACS, xemacs, xemacs, xemacs)
+    else
+      AC_CHECK_PROG(XEMACS, $withval, $withval, xemacs)
+    fi
+    EMACS=$XEMACS],
+   [XEMACS=xemacs
+    test -z "$EMACS" && AC_CHECK_PROGS(EMACS, emacs xemacs mule, emacs)])
+  AC_SUBST(EMACS)
+  AC_SUBST(XEMACS)])
+
+AC_DEFUN([AC_EMACS_LISP], [
+elisp="$2"
+if test -z "$3"; then
+       AC_MSG_CHECKING(for $1)
+fi
+AC_CACHE_VAL(EMACS_cv_SYS_$1,[
+       OUTPUT=./conftest-$$
+       echo ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& AC_FD_CC 2>&1
+       eval ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& AC_FD_CC 2>&1
+       retval=`cat ${OUTPUT}`
+       echo "=> ${retval}" >& AC_FD_CC 2>&1
+       rm -f ${OUTPUT}
+       EMACS_cv_SYS_$1=$retval
+])
+$1=${EMACS_cv_SYS_$1}
+if test -z "$3"; then
+       AC_MSG_RESULT($$1)
+fi
+])
+
+AC_DEFUN([AC_CHECK_EMACS_FLAVOR],
+ [AC_MSG_CHECKING([what flavor does $EMACS have])
+
+  dnl Ignore cache.
+  unset EMACS_cv_SYS_flavor;
+
+  AC_EMACS_LISP(flavor,
+    (cond ((featurep (quote xemacs)) \"XEmacs\")\
+          ((boundp (quote MULE)) \"MULE\")\
+          (t \"FSF Emacs\")),
+    "noecho")
+  case $EMACS_cv_SYS_flavor in
+  XEmacs)
+    EMACS_FLAVOR=xemacs;;
+  MULE)
+    EMACS_FLAVOR=mule;;
+  *)
+    EMACS_FLAVOR=emacs;;
+  esac
+  AC_MSG_RESULT($EMACS_cv_SYS_flavor)])
+
+AC_DEFUN([AC_PATH_LISPDIR], [
+  AC_CHECK_EMACS_FLAVOR
+  if test "$prefix" = NONE; then
+       AC_MSG_CHECKING([prefix for your Emacs])
+       AC_EMACS_LISP(prefix,(expand-file-name \"..\" invocation-directory),"noecho")
+       prefix=${EMACS_cv_SYS_prefix}
+       AC_MSG_RESULT($prefix)
+  fi
+  AC_ARG_WITH(lispdir,
+    [  --with-lispdir=DIR      Where to install lisp files
+                          (for XEmacs package, use --with-packagedir instead)],
+    lispdir=${withval})
+  AC_MSG_CHECKING([where lisp files should go])
+  if test -z "$lispdir"; then
+    dnl Set default value
+    theprefix=$prefix
+    if test "$theprefix" = NONE; then
+       theprefix=$ac_default_prefix
+    fi
+    lispdir="\$(datadir)/${EMACS_FLAVOR}/site-lisp/${GNUS_PRODUCT_NAME}"
+    for thedir in share lib; do
+       potential=
+       if test -d ${theprefix}/${thedir}/${EMACS_FLAVOR}/site-lisp; then
+          lispdir="\$(prefix)/${thedir}/${EMACS_FLAVOR}/site-lisp/${GNUS_PRODUCT_NAME}"
+          break
+       fi
+    done
+  fi
+  if test ${EMACS_FLAVOR} = xemacs; then
+    AC_MSG_RESULT([$lispdir
+         (it will be ignored when \"make install-package[[-ja]]\" is done)])
+  else
+    AC_MSG_RESULT([$lispdir])
+  fi
+  AC_SUBST(lispdir)
+])
+
+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 Set default value
+    etcdir="\$(lispdir)/../etc"
+  fi
+  AC_MSG_RESULT($etcdir)
+  AC_SUBST(etcdir)
+])
+
+dnl
+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], [
+if test -z "$3"; then
+       AC_MSG_CHECKING(for $2 in $1)
+fi
+library=`echo $1 | tr _ -`
+AC_EMACS_LISP($1,(progn (fmakunbound (quote $2)) (condition-case nil (progn (require (quote $library)) (fboundp (quote $2))) (error (prog1 nil (message \"$library not found\"))))),"noecho")
+if test "${EMACS_cv_SYS_$1}" = nil; then
+       EMACS_cv_SYS_$1=no
+fi
+if test "${EMACS_cv_SYS_$1}" = t; then
+       EMACS_cv_SYS_$1=yes
+fi
+HAVE_$1=${EMACS_cv_SYS_$1}
+AC_SUBST(HAVE_$1)
+if test -z "$3"; then
+       AC_MSG_RESULT($HAVE_$1)
+fi
+])
+
+dnl
+dnl Perform sanity checking and try to locate the W3 package
+dnl
+AC_DEFUN([AC_CHECK_W3], [
+AC_MSG_CHECKING(for acceptable W3 version)
+
+dnl Ignore cache.
+unset EMACS_cv_ACCEPTABLE_W3;
+unset EMACS_cv_SYS_w3_dir;
+unset EMACS_cv_SYS_w3_forms;
+
+AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_W3,[
+AC_EMACS_CHECK_LIB(w3_forms, w3-form-encode-xwfu,"noecho")
+if test "${HAVE_w3_forms}" = yes; then
+       EMACS_cv_ACCEPTABLE_W3=yes
+else
+       EMACS_cv_ACCEPTABLE_W3=
+fi
+
+if test "${EMACS_cv_ACCEPTABLE_W3}" = yes; then
+       AC_EMACS_LISP(w3_dir,(file-name-directory (locate-library \"w3-forms\")),"noecho")
+       EMACS_cv_ACCEPTABLE_W3=$EMACS_cv_SYS_w3_dir
+fi
+])
+   AC_ARG_WITH(w3,[  --with-w3=DIR           Specify where to find the w3 package], [ EMACS_cv_ACCEPTABLE_W3=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ])
+   W3=${EMACS_cv_ACCEPTABLE_W3}
+   AC_SUBST(W3)
+   if test -z "${EMACS_cv_ACCEPTABLE_W3}"; then
+       AC_MSG_RESULT(not found)
+   else
+       AC_MSG_RESULT(${W3})
+   fi
+])
+
+dnl
+dnl Perform sanity checking and try to locate the W3 package
+dnl
+AC_DEFUN([AC_CHECK_URL], [
+AC_MSG_CHECKING(for acceptable URL version)
+
+dnl Ignore cache.
+unset EMACS_cv_ACCEPTABLE_URL;
+unset EMACS_cv_SYS_url_dir;
+unset EMACS_cv_SYS_url;
+
+AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_URL,[
+AC_EMACS_CHECK_LIB(url, url-retrieve, "noecho")
+if test "${HAVE_url}" = yes; then
+       EMACS_cv_ACCEPTABLE_URL=yes
+else
+       EMACS_cv_ACCEPTABLE_URL=
+fi
+
+if test "${EMACS_cv_ACCEPTABLE_URL}" = yes; then
+       AC_EMACS_LISP(url_dir,(file-name-directory (locate-library \"url\")),"noecho")
+       EMACS_cv_ACCEPTABLE_URL=$EMACS_cv_SYS_url_dir
+fi
+])
+   AC_ARG_WITH(url,[  --with-url=DIR          Specify where to find the url package], [ EMACS_cv_ACCEPTABLE_URL=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ])
+   URL=${EMACS_cv_ACCEPTABLE_URL}
+   AC_SUBST(URL)
+   if test -z "${EMACS_cv_ACCEPTABLE_URL}"; then
+       AC_MSG_RESULT(not found)
+   else
+       AC_MSG_RESULT("${URL}")
+   fi
+])
+
+dnl
+dnl Perform checking available fonts: Adobe Bembo, Adobe Futura and 
+dnl Bitstream Courier.
+dnl
+
+AC_DEFUN([GNUS_CHECK_FONTS], [
+test "$LATEX" = t && LATEX=
+test "$LATEX" || AC_PATH_PROGS(LATEX, latex, no)
+AC_MSG_CHECKING(for available fonts)
+AC_ARG_WITH(fonts,[  --with-fonts            Assume all fonts required are available],[USE_FONTS="$withval"])
+WITH_FONTS_bembo='%'
+WITHOUT_FONTS_bembo=
+WITH_FONTS_pfu='%'
+WITHOUT_FONTS_pfu=
+WITH_FONTS_bcr='%'
+WITHOUT_FONTS_bcr=
+if test -z "${USE_FONTS}"; then
+  if test "${LATEX}" = no; then
+       :
+  else
+    OUTPUT=./conftest-$$
+    echo '\nonstopmode\documentclass{article}\usepackage{bembo}\begin{document}\end{document}' > ${OUTPUT}
+    if ${LATEX} ${OUTPUT} </dev/null >& AC_FD_CC 2>&1  ; then  
+      if test -z "${USE_FONTS}"; then
+       USE_FONTS="Adobe Bembo"
+      else
+       USE_FONTS="${USE_FONTS}, Adobe Bembo"
+      fi
+      WITH_FONTS_bembo=
+      WITHOUT_FONTS_bembo='%'
+    fi
+    echo '\nonstopmode\documentclass{article}\begin{document}{\fontfamily{pfu}\fontsize{10pt}{10}\selectfont test}\end{document}' > ${OUTPUT}
+    if retval=`${LATEX} ${OUTPUT} </dev/null 2>& AC_FD_CC`; then
+      if echo "$retval" | grep 'Some font shapes were not available' >& AC_FD_CC 2>&1  ; then  
+       :
+      else
+        if test -z "${USE_FONTS}"; then
+         USE_FONTS="Adobe Futura"
+        else
+         USE_FONTS="${USE_FONTS}, Adobe Futura"
+        fi
+        WITH_FONTS_pfu=
+        WITHOUT_FONTS_pfu='%'
+      fi
+    fi
+    echo '\nonstopmode\documentclass{article}\begin{document}{\fontfamily{bcr}\fontsize{10pt}{10}\selectfont test}\end{document}' > ${OUTPUT}
+    if retval=`${LATEX} ${OUTPUT} </dev/null 2>& AC_FD_CC`; then
+      if echo "$retval" | grep 'Some font shapes were not available' >& AC_FD_CC 2>&1  ; then  
+       :
+      else
+        if test -z "${USE_FONTS}"; then
+         USE_FONTS="Bitstream Courier"
+        else
+         USE_FONTS="${USE_FONTS}, Bitstream Courier"
+        fi
+        WITH_FONTS_bcr=
+        WITHOUT_FONTS_bcr='%'
+      fi
+    fi
+    rm -f ${OUTPUT} ${OUTPUT}.aux ${OUTPUT}.log ${OUTPUT}.dvi
+  fi
+elif test "${USE_FONTS}" = yes ; then
+  WITH_FONTS_bembo=
+  WITHOUT_FONTS_bembo='%'
+  WITH_FONTS_pfu=
+  WITHOUT_FONTS_pfu='%'
+  WITH_FONTS_bcr=
+  WITHOUT_FONTS_bcr='%'
+fi
+AC_SUBST(WITH_FONTS_bembo)
+AC_SUBST(WITHOUT_FONTS_bembo)
+AC_SUBST(WITH_FONTS_pfu)
+AC_SUBST(WITHOUT_FONTS_pfu)
+AC_SUBST(WITH_FONTS_bcr)
+AC_SUBST(WITHOUT_FONTS_bcr)
+if test -z "${USE_FONTS}" ; then
+  USE_FONTS=no
+fi
+USE_FONTS=`echo "${USE_FONTS}" | sed 's/,\([[^,]]*\)$/ and\1/'`
+AC_MSG_RESULT("${USE_FONTS}")
+if test "${USE_FONTS}" = yes ; then
+  USE_FONTS='Set in Adobe Bembo, Adobe Futura and Bitstream Courier.'
+elif test "${USE_FONTS}" = no ; then
+  USE_FONTS=''
+else
+  USE_FONTS="Set in ${USE_FONTS}."
+fi
+AC_SUBST(USE_FONTS)
+])
+
+AC_DEFUN([AC_EXAMINE_PACKAGEDIR],
+ [dnl Examine PACKAGEDIR.
+  AC_EMACS_LISP(PACKAGEDIR,
+    (let (package-dir)\
+      (if (boundp (quote early-packages))\
+         (let ((dirs (delq nil (append (if early-package-load-path\
+                                           early-packages)\
+                                       (if late-package-load-path\
+                                           late-packages)\
+                                       (if last-package-load-path\
+                                           last-packages)))))\
+           (while (and dirs (not package-dir))\
+             (if (file-directory-p (car dirs))\
+                 (setq package-dir (car dirs)\
+                       dirs (cdr dirs))))))\
+      (or package-dir \"\")),
+    "noecho")])
+
+AC_DEFUN([AC_PATH_PACKAGEDIR],
+ [dnl Check for PACKAGEDIR.
+  if test ${EMACS_FLAVOR} = xemacs; then
+    AC_MSG_CHECKING([where the XEmacs package is])
+    AC_ARG_WITH(packagedir,
+      [  --with-packagedir=DIR   package DIR for XEmacs],
+      [if test "$withval" != yes -a -n "$withval"; then
+       PACKAGEDIR=$withval
+      else
+       AC_EXAMINE_PACKAGEDIR
+      fi],
+      AC_EXAMINE_PACKAGEDIR)
+    if test -z "$PACKAGEDIR"; then
+      AC_MSG_RESULT(not found)
+    else
+      AC_MSG_RESULT($PACKAGEDIR)
+    fi
+  else
+    PACKAGEDIR=
+  fi
+  AC_SUBST(PACKAGEDIR)])
+
+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
+                          use colons to separate directory names],
+   [if test "$withval" != yes -a -n "$withval"; then
+      AC_MSG_CHECKING([where to find the additional elisp libraries])
+      ADDITIONAL_LOAD_PATH=$withval
+      AC_MSG_RESULT($ADDITIONAL_LOAD_PATH)
+    fi],
+    ADDITIONAL_LOAD_PATH=)
+  AC_SUBST(ADDITIONAL_LOAD_PATH)])
diff --git a/xemacs-packages/riece/bootstrap b/xemacs-packages/riece/bootstrap
new file mode 100755 (executable)
index 0000000..ce90bc4
--- /dev/null
@@ -0,0 +1,999 @@
+#! /bin/sh
+# Print a version string.
+scriptversion=2013-12-05.23; # UTC
+
+# Bootstrap this package from checked-out sources.
+
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Originally written by Paul Eggert.  The canonical version of this
+# script is maintained as build-aux/bootstrap in gnulib, however, to
+# be useful to your project, you should place a copy of it under
+# version control in the top-level directory of your project.  The
+# intent is that all customization can be done with a bootstrap.conf
+# file also maintained in your version control; gnulib comes with a
+# template build-aux/bootstrap.conf to get you started.
+
+# Please report bugs or propose patches to bug-gnulib@gnu.org.
+
+nl='
+'
+
+# Ensure file names are sorted consistently across platforms.
+LC_ALL=C
+export LC_ALL
+
+# Ensure that CDPATH is not set.  Otherwise, the output from cd
+# would cause trouble in at least one use below.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+local_gl_dir=gl
+
+me=$0
+
+usage() {
+  cat <<EOF
+Usage: $me [OPTION]...
+Bootstrap this package from the checked-out sources.
+
+Options:
+ --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
+                          sources reside.  Use this if you already
+                          have gnulib sources on your machine, and
+                          do not want to waste your bandwidth downloading
+                          them again.  Defaults to \$GNULIB_SRCDIR
+ --bootstrap-sync         if this bootstrap script is not identical to
+                          the version in the local gnulib sources,
+                          update this script, and then restart it with
+                          /bin/sh or the shell \$CONFIG_SHELL
+ --no-bootstrap-sync      do not check whether bootstrap is out of sync
+ --copy                   copy files instead of creating symbolic links
+ --force                  attempt to bootstrap even if the sources seem
+                          not to have been checked out
+ --no-git                 do not use git to update gnulib.  Requires that
+                          --gnulib-srcdir point to a correct gnulib snapshot
+ --skip-po                do not download po files
+
+If the file $me.conf exists in the same directory as this script, its
+contents are read as shell variables to configure the bootstrap.
+
+For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
+are honored.
+
+Running without arguments will suffice in most cases.
+EOF
+}
+
+# warnf_ FORMAT-STRING ARG1...
+warnf_ ()
+{
+  warnf_format_=$1
+  shift
+  nl='
+'
+  case $* in
+    *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
+       printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
+    *) printf "$me: $warnf_format_" "$@" ;;
+  esac >&2
+}
+
+# warn_ WORD1...
+warn_ ()
+{
+  # If IFS does not start with ' ', set it and emit the warning in a subshell.
+  case $IFS in
+    ' '*) warnf_ '%s\n' "$*";;
+    *)    (IFS=' '; warn_ "$@");;
+  esac
+}
+
+# die WORD1...
+die() { warn_ "$@"; exit 1; }
+
+# Configuration.
+
+# Name of the Makefile.am
+gnulib_mk=gnulib.mk
+
+# List of gnulib modules needed.
+gnulib_modules=
+
+# Any gnulib files needed that are not in modules.
+gnulib_files=
+
+: ${AUTOPOINT=autopoint}
+: ${AUTORECONF=autoreconf}
+
+# A function to be called right after gnulib-tool is run.
+# Override it via your own definition in bootstrap.conf.
+bootstrap_post_import_hook() { :; }
+
+# A function to be called after everything else in this script.
+# Override it via your own definition in bootstrap.conf.
+bootstrap_epilogue() { :; }
+
+# The command to download all .po files for a specified domain into
+# a specified directory.  Fill in the first %s is the domain name, and
+# the second with the destination directory.  Use rsync's -L and -r
+# options because the latest/%s directory and the .po files within are
+# all symlinks.
+po_download_command_format=\
+"rsync --delete --exclude '*.s1' -Lrtvz \
+ 'translationproject.org::tp/latest/%s/' '%s'"
+
+# Fallback for downloading .po files (if rsync fails).
+po_download_command_format2=\
+"wget --mirror -nd -q -np -A.po -P '%s' \
+ http://translationproject.org/latest/%s/"
+
+# Prefer a non-empty tarname (4th argument of AC_INIT if given), else
+# fall back to the package name (1st argument with munging)
+extract_package_name='
+  /^AC_INIT(\[*/{
+     s///
+     /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{
+       s//\1/
+       s/[],)].*//
+       p
+       q
+     }
+     s/[],)].*//
+     s/^GNU //
+     y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+     s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g
+     p
+  }
+'
+package=$(sed -n "$extract_package_name" configure.ac) \
+  || die 'cannot find package name in configure.ac'
+gnulib_name=lib$package
+
+build_aux=build-aux
+source_base=lib
+m4_base=m4
+doc_base=doc
+tests_base=tests
+gnulib_extra_files=''
+
+# Additional gnulib-tool options to use.  Use "\newline" to break lines.
+gnulib_tool_option_extras=
+
+# Other locale categories that need message catalogs.
+EXTRA_LOCALE_CATEGORIES=
+
+# Additional xgettext options to use.  Use "\\\newline" to break lines.
+XGETTEXT_OPTIONS='\\\
+ --flag=_:1:pass-c-format\\\
+ --flag=N_:1:pass-c-format\\\
+ --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
+'
+
+# Package bug report address and copyright holder for gettext files
+COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
+MSGID_BUGS_ADDRESS=bug-$package@gnu.org
+
+# Files we don't want to import.
+excluded_files=
+
+# File that should exist in the top directory of a checked out hierarchy,
+# but not in a distribution tarball.
+checkout_only_file=README-hacking
+
+# Whether to use copies instead of symlinks.
+copy=false
+
+# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
+# those files to be generated in directories like lib/, m4/, and po/.
+# Or set it to 'auto' to make this script select which to use based
+# on which version control system (if any) is used in the source directory.
+vc_ignore=auto
+
+# Set this to true in bootstrap.conf to enable --bootstrap-sync by
+# default.
+bootstrap_sync=false
+
+# Use git to update gnulib sources
+use_git=true
+
+check_exists() {
+  ($1 --version </dev/null) >/dev/null 2>&1
+  test $? -lt 126
+}
+
+# find_tool ENVVAR NAMES...
+# -------------------------
+# Search for a required program.  Use the value of ENVVAR, if set,
+# otherwise find the first of the NAMES that can be run.
+# If found, set ENVVAR to the program name, die otherwise.
+#
+# FIXME: code duplication, see also gnu-web-doc-update.
+find_tool ()
+{
+  find_tool_envvar=$1
+  shift
+  find_tool_names=$@
+  eval "find_tool_res=\$$find_tool_envvar"
+  if test x"$find_tool_res" = x; then
+    for i; do
+      if check_exists $i; then
+        find_tool_res=$i
+        break
+      fi
+    done
+  fi
+  if test x"$find_tool_res" = x; then
+    warn_ "one of these is required: $find_tool_names;"
+    die   "alternatively set $find_tool_envvar to a compatible tool"
+  fi
+  eval "$find_tool_envvar=\$find_tool_res"
+  eval "export $find_tool_envvar"
+}
+
+# Override the default configuration, if necessary.
+# Make sure that bootstrap.conf is sourced from the current directory
+# if we were invoked as "sh bootstrap".
+case "$0" in
+  */*) test -r "$0.conf" && . "$0.conf" ;;
+  *) test -r "$0.conf" && . ./"$0.conf" ;;
+esac
+
+# Extra files from gnulib, which override files from other sources.
+test -z "${gnulib_extra_files}" && \
+  gnulib_extra_files="
+        build-aux/install-sh
+        build-aux/mdate-sh
+        build-aux/texinfo.tex
+        build-aux/depcomp
+        build-aux/config.guess
+        build-aux/config.sub
+        doc/INSTALL
+"
+
+if test "$vc_ignore" = auto; then
+  vc_ignore=
+  test -d .git && vc_ignore=.gitignore
+  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
+fi
+
+# Translate configuration into internal form.
+
+# Parse options.
+
+for option
+do
+  case $option in
+  --help)
+    usage
+    exit;;
+  --gnulib-srcdir=*)
+    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
+  --skip-po)
+    SKIP_PO=t;;
+  --force)
+    checkout_only_file=;;
+  --copy)
+    copy=true;;
+  --bootstrap-sync)
+    bootstrap_sync=true;;
+  --no-bootstrap-sync)
+    bootstrap_sync=false;;
+  --no-git)
+    use_git=false;;
+  *)
+    die "$option: unknown option";;
+  esac
+done
+
+$use_git || test -d "$GNULIB_SRCDIR" \
+  || die "Error: --no-git requires --gnulib-srcdir"
+
+if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+  die "Bootstrapping from a non-checked-out distribution is risky."
+fi
+
+# Strip blank and comment lines to leave significant entries.
+gitignore_entries() {
+  sed '/^#/d; /^$/d' "$@"
+}
+
+# If $STR is not already on a line by itself in $FILE, insert it at the start.
+# Entries are inserted at the start of the ignore list to ensure existing
+# entries starting with ! are not overridden.  Such entries support
+# whitelisting exceptions after a more generic blacklist pattern.
+insert_if_absent() {
+  file=$1
+  str=$2
+  test -f $file || touch $file
+  test -r $file || die "Error: failed to read ignore file: $file"
+  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
+  if [ "$duplicate_entries" ] ; then
+    die "Error: Duplicate entries in $file: " $duplicate_entries
+  fi
+  linesold=$(gitignore_entries $file | wc -l)
+  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
+  if [ $linesold != $linesnew ] ; then
+    { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
+      || die "insert_if_absent $file $str: failed"
+  fi
+}
+
+# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
+# insert_if_absent.
+insert_vc_ignore() {
+  vc_ignore_file="$1"
+  pattern="$2"
+  case $vc_ignore_file in
+  *.gitignore)
+    # A .gitignore entry that does not start with '/' applies
+    # recursively to subdirectories, so prepend '/' to every
+    # .gitignore entry.
+    pattern=$(echo "$pattern" | sed s,^,/,);;
+  esac
+  insert_if_absent "$vc_ignore_file" "$pattern"
+}
+
+# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
+found_aux_dir=no
+grep '^[        ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
+    >/dev/null && found_aux_dir=yes
+grep '^[        ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
+    >/dev/null && found_aux_dir=yes
+test $found_aux_dir = yes \
+  || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
+
+# If $build_aux doesn't exist, create it now, otherwise some bits
+# below will malfunction.  If creating it, also mark it as ignored.
+if test ! -d $build_aux; then
+  mkdir $build_aux
+  for dot_ig in x $vc_ignore; do
+    test $dot_ig = x && continue
+    insert_vc_ignore $dot_ig $build_aux
+  done
+fi
+
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+sort_ver() { # sort -V is not generally available
+  ver1="$1"
+  ver2="$2"
+
+  # split on '.' and compare each component
+  i=1
+  while : ; do
+    p1=$(echo "$ver1" | cut -d. -f$i)
+    p2=$(echo "$ver2" | cut -d. -f$i)
+    if [ ! "$p1" ]; then
+      echo "$1 $2"
+      break
+    elif [ ! "$p2" ]; then
+      echo "$2 $1"
+      break
+    elif [ ! "$p1" = "$p2" ]; then
+      if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
+        echo "$2 $1"
+      elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
+        echo "$1 $2"
+      else # numeric, then lexicographic comparison
+        lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
+        if [ "$lp" = "$p2" ]; then
+          echo "$1 $2"
+        else
+          echo "$2 $1"
+        fi
+      fi
+      break
+    fi
+    i=$(($i+1))
+  done
+}
+
+get_version() {
+  app=$1
+
+  $app --version >/dev/null 2>&1 || return 1
+
+  $app --version 2>&1 |
+  sed -n '# Move version to start of line.
+          s/.*[v ]\([0-9]\)/\1/
+
+          # Skip lines that do not start with version.
+          /^[0-9]/!d
+
+          # Remove characters after the version.
+          s/[^.a-z0-9-].*//
+
+          # The first component must be digits only.
+          s/^\([0-9]*\)[a-z-].*/\1/
+
+          #the following essentially does s/5.005/5.5/
+          s/\.0*\([1-9]\)/.\1/g
+          p
+          q'
+}
+
+check_versions() {
+  ret=0
+
+  while read app req_ver; do
+    # We only need libtoolize from the libtool package.
+    if test "$app" = libtool; then
+      app=libtoolize
+    fi
+    # Exempt git if --no-git is in effect.
+    if test "$app" = git; then
+      $use_git || continue
+    fi
+    # Honor $APP variables ($TAR, $AUTOCONF, etc.)
+    appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
+    test "$appvar" = TAR && appvar=AMTAR
+    case $appvar in
+        GZIP) ;; # Do not use $GZIP:  it contains gzip options.
+        *) eval "app=\${$appvar-$app}" ;;
+    esac
+
+    # Handle the still-experimental Automake-NG programs specially.
+    # They remain named as the mainstream Automake programs ("automake",
+    # and "aclocal") to avoid gratuitous incompatibilities with
+    # pre-existing usages (by, say, autoreconf, or custom autogen.sh
+    # scripts), but correctly identify themselves (as being part of
+    # "GNU automake-ng") when asked their version.
+    case $app in
+      automake-ng|aclocal-ng)
+        app=${app%-ng}
+        ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
+          warn_ "Error: '$app' not found or not from Automake-NG"
+          ret=1
+          continue
+        } ;;
+    esac
+    if [ "$req_ver" = "-" ]; then
+      # Merely require app to exist; not all prereq apps are well-behaved
+      # so we have to rely on $? rather than get_version.
+      if ! check_exists $app; then
+        warn_ "Error: '$app' not found"
+        ret=1
+      fi
+    else
+      # Require app to produce a new enough version string.
+      inst_ver=$(get_version $app)
+      if [ ! "$inst_ver" ]; then
+        warn_ "Error: '$app' not found"
+        ret=1
+      else
+        latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
+        if [ ! "$latest_ver" = "$inst_ver" ]; then
+          warnf_ '%s\n'                                        \
+              "Error: '$app' version == $inst_ver is too old"  \
+              "       '$app' version >= $req_ver is required"
+          ret=1
+        fi
+      fi
+    fi
+  done
+
+  return $ret
+}
+
+print_versions() {
+  echo "Program    Min_version"
+  echo "----------------------"
+  printf %s "$buildreq"
+  echo "----------------------"
+  # can't depend on column -t
+}
+
+# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
+# Also find the compatible sha1 utility on the BSDs
+if test x"$SKIP_PO" = x; then
+  find_tool SHA1SUM sha1sum gsha1sum shasum sha1
+fi
+
+use_libtool=0
+# We'd like to use grep -E, to see if any of LT_INIT,
+# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
+# but that's not portable enough (e.g., for Solaris).
+grep '^[        ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
+  && use_libtool=1
+grep '^[        ]*LT_INIT' configure.ac >/dev/null \
+  && use_libtool=1
+if test $use_libtool = 1; then
+  find_tool LIBTOOLIZE glibtoolize libtoolize
+fi
+
+# gnulib-tool requires at least automake and autoconf.
+# If either is not listed, add it (with minimum version) as a prerequisite.
+case $buildreq in
+  *automake*) ;;
+  *) buildreq="automake 1.9
+$buildreq" ;;
+esac
+case $buildreq in
+  *autoconf*) ;;
+  *) buildreq="autoconf 2.59
+$buildreq" ;;
+esac
+
+# When we can deduce that gnulib-tool will require patch,
+# and when patch is not already listed as a prerequisite, add it, too.
+if test -d "$local_gl_dir" \
+    && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
+  case $buildreq in
+    *patch*) ;;
+    *) buildreq="patch -
+$buildreq" ;;
+  esac
+fi
+
+if ! printf "$buildreq" | check_versions; then
+  echo >&2
+  if test -f README-prereq; then
+    die "See README-prereq for how to get the prerequisite programs"
+  else
+    die "Please install the prerequisite programs"
+  fi
+fi
+
+# Warn the user if autom4te appears to be broken; this causes known
+# issues with at least gettext 0.18.3.
+probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
+if test "x$probe" != xhi; then
+  warn_ "WARNING: your autom4te wrapper eats stdin;"
+  warn_ "if bootstrap fails, consider upgrading your autotools"
+fi
+
+echo "$0: Bootstrapping from checked-out $package sources..."
+
+# See if we can use gnulib's git-merge-changelog merge driver.
+if $use_git && test -d .git && check_exists git; then
+  if git config merge.merge-changelog.driver >/dev/null ; then
+    :
+  elif check_exists git-merge-changelog; then
+    echo "$0: initializing git-merge-changelog driver"
+    git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
+    git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
+  else
+    echo "$0: consider installing git-merge-changelog from gnulib"
+  fi
+fi
+
+
+cleanup_gnulib() {
+  status=$?
+  rm -fr "$gnulib_path"
+  exit $status
+}
+
+git_modules_config () {
+  test -f .gitmodules && git config --file .gitmodules "$@"
+}
+
+if $use_git; then
+  gnulib_path=$(git_modules_config submodule.gnulib.path)
+  test -z "$gnulib_path" && gnulib_path=gnulib
+fi
+
+# Get gnulib files.  Populate $GNULIB_SRCDIR, possibly updating a
+# submodule, for use in the rest of the script.
+
+case ${GNULIB_SRCDIR--} in
+-)
+  # Note that $use_git is necessarily true in this case.
+  if git_modules_config submodule.gnulib.url >/dev/null; then
+    echo "$0: getting gnulib files..."
+    git submodule init || exit $?
+    git submodule update || exit $?
+
+  elif [ ! -d "$gnulib_path" ]; then
+    echo "$0: getting gnulib files..."
+
+    trap cleanup_gnulib 1 2 13 15
+
+    shallow=
+    git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
+    git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
+      cleanup_gnulib
+
+    trap - 1 2 13 15
+  fi
+  GNULIB_SRCDIR=$gnulib_path
+  ;;
+*)
+  # Use GNULIB_SRCDIR directly or as a reference.
+  if $use_git && test -d "$GNULIB_SRCDIR"/.git && \
+        git_modules_config submodule.gnulib.url >/dev/null; then
+    echo "$0: getting gnulib files..."
+    if git submodule -h|grep -- --reference > /dev/null; then
+      # Prefer the one-liner available in git 1.6.4 or newer.
+      git submodule update --init --reference "$GNULIB_SRCDIR" \
+        "$gnulib_path" || exit $?
+    else
+      # This fallback allows at least git 1.5.5.
+      if test -f "$gnulib_path"/gnulib-tool; then
+        # Since file already exists, assume submodule init already complete.
+        git submodule update || exit $?
+      else
+        # Older git can't clone into an empty directory.
+        rmdir "$gnulib_path" 2>/dev/null
+        git clone --reference "$GNULIB_SRCDIR" \
+          "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
+          && git submodule init && git submodule update \
+          || exit $?
+      fi
+    fi
+    GNULIB_SRCDIR=$gnulib_path
+  fi
+  ;;
+esac
+
+# $GNULIB_SRCDIR now points to the version of gnulib to use, and
+# we no longer need to use git or $gnulib_path below here.
+
+if $bootstrap_sync; then
+  cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
+    echo "$0: updating bootstrap and restarting..."
+    case $(sh -c 'echo "$1"' -- a) in
+      a) ignored=--;;
+      *) ignored=ignored;;
+    esac
+    exec sh -c \
+      'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
+      $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
+      "$0" "$@" --no-bootstrap-sync
+  }
+fi
+
+gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
+<$gnulib_tool || exit $?
+
+# Get translations.
+
+download_po_files() {
+  subdir=$1
+  domain=$2
+  echo "$me: getting translations into $subdir for $domain..."
+  cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
+  eval "$cmd" && return
+  # Fallback to HTTP.
+  cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
+  eval "$cmd"
+}
+
+# Mirror .po files to $po_dir/.reference and copy only the new
+# or modified ones into $po_dir.  Also update $po_dir/LINGUAS.
+# Note po files that exist locally only are left in $po_dir but will
+# not be included in LINGUAS and hence will not be distributed.
+update_po_files() {
+  # Directory containing primary .po files.
+  # Overwrite them only when we're sure a .po file is new.
+  po_dir=$1
+  domain=$2
+
+  # Mirror *.po files into this dir.
+  # Usually contains *.s1 checksum files.
+  ref_po_dir="$po_dir/.reference"
+
+  test -d $ref_po_dir || mkdir $ref_po_dir || return
+  download_po_files $ref_po_dir $domain \
+    && ls "$ref_po_dir"/*.po 2>/dev/null |
+      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
+
+  langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
+  test "$langs" = '*' && langs=x
+  for po in $langs; do
+    case $po in x) continue;; esac
+    new_po="$ref_po_dir/$po.po"
+    cksum_file="$ref_po_dir/$po.s1"
+    if ! test -f "$cksum_file" ||
+        ! test -f "$po_dir/$po.po" ||
+        ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then
+      echo "$me: updated $po_dir/$po.po..."
+      cp "$new_po" "$po_dir/$po.po" \
+          && $SHA1SUM < "$new_po" > "$cksum_file" || return
+    fi
+  done
+}
+
+case $SKIP_PO in
+'')
+  if test -d po; then
+    update_po_files po $package || exit
+  fi
+
+  if test -d runtime-po; then
+    update_po_files runtime-po $package-runtime || exit
+  fi;;
+esac
+
+symlink_to_dir()
+{
+  src=$1/$2
+  dst=${3-$2}
+
+  test -f "$src" && {
+
+    # If the destination directory doesn't exist, create it.
+    # This is required at least for "lib/uniwidth/cjk.h".
+    dst_dir=$(dirname "$dst")
+    if ! test -d "$dst_dir"; then
+      mkdir -p "$dst_dir"
+
+      # If we've just created a directory like lib/uniwidth,
+      # tell version control system(s) it's ignorable.
+      # FIXME: for now, this does only one level
+      parent=$(dirname "$dst_dir")
+      for dot_ig in x $vc_ignore; do
+        test $dot_ig = x && continue
+        ig=$parent/$dot_ig
+        insert_vc_ignore $ig "${dst_dir##*/}"
+      done
+    fi
+
+    if $copy; then
+      {
+        test ! -h "$dst" || {
+          echo "$me: rm -f $dst" &&
+          rm -f "$dst"
+        }
+      } &&
+      test -f "$dst" &&
+      cmp -s "$src" "$dst" || {
+        echo "$me: cp -fp $src $dst" &&
+        cp -fp "$src" "$dst"
+      }
+    else
+      # Leave any existing symlink alone, if it already points to the source,
+      # so that broken build tools that care about symlink times
+      # aren't confused into doing unnecessary builds.  Conversely, if the
+      # existing symlink's time stamp is older than the source, make it afresh,
+      # so that broken tools aren't confused into skipping needed builds.  See
+      # <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
+      test -h "$dst" &&
+      src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
+      dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
+      test "$src_i" = "$dst_i" &&
+      both_ls=$(ls -dt "$src" "$dst") &&
+      test "X$both_ls" = "X$dst$nl$src" || {
+        dot_dots=
+        case $src in
+        /*) ;;
+        *)
+          case /$dst/ in
+          *//* | */../* | */./* | /*/*/*/*/*/)
+             die "invalid symlink calculation: $src -> $dst";;
+          /*/*/*/*/)    dot_dots=../../../;;
+          /*/*/*/)      dot_dots=../../;;
+          /*/*/)        dot_dots=../;;
+          esac;;
+        esac
+
+        echo "$me: ln -fs $dot_dots$src $dst" &&
+        ln -fs "$dot_dots$src" "$dst"
+      }
+    fi
+  }
+}
+
+version_controlled_file() {
+  parent=$1
+  file=$2
+  if test -d .git; then
+    git rm -n "$file" > /dev/null 2>&1
+  elif test -d .svn; then
+    svn log -r HEAD "$file" > /dev/null 2>&1
+  elif test -d CVS; then
+    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
+             grep '^/[^/]*/[0-9]' > /dev/null
+  else
+    warn_ "no version control for $file?"
+    false
+  fi
+}
+
+# NOTE: we have to be careful to run both autopoint and libtoolize
+# before gnulib-tool, since gnulib-tool is likely to provide newer
+# versions of files "installed" by these two programs.
+# Then, *after* gnulib-tool (see below), we have to be careful to
+# run autoreconf in such a way that it does not run either of these
+# two just-pre-run programs.
+
+# Import from gettext.
+with_gettext=yes
+grep '^[        ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
+    with_gettext=no
+
+if test $with_gettext = yes || test $use_libtool = 1; then
+
+  tempbase=.bootstrap$$
+  trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
+
+  > $tempbase.0 > $tempbase.1 &&
+  find . ! -type d -print | sort > $tempbase.0 || exit
+
+  if test $with_gettext = yes; then
+    # Released autopoint has the tendency to install macros that have been
+    # obsoleted in current gnulib, so run this before gnulib-tool.
+    echo "$0: $AUTOPOINT --force"
+    $AUTOPOINT --force || exit
+  fi
+
+  # Autoreconf runs aclocal before libtoolize, which causes spurious
+  # warnings if the initial aclocal is confused by the libtoolized
+  # (or worse out-of-date) macro directory.
+  # libtoolize 1.9b added the --install option; but we support back
+  # to libtoolize 1.5.22, where the install action was default.
+  if test $use_libtool = 1; then
+    install=
+    case $($LIBTOOLIZE --help) in
+      *--install*) install=--install ;;
+    esac
+    echo "running: $LIBTOOLIZE $install --copy"
+    $LIBTOOLIZE $install --copy
+  fi
+
+  find . ! -type d -print | sort >$tempbase.1
+  old_IFS=$IFS
+  IFS=$nl
+  for file in $(comm -13 $tempbase.0 $tempbase.1); do
+    IFS=$old_IFS
+    parent=${file%/*}
+    version_controlled_file "$parent" "$file" || {
+      for dot_ig in x $vc_ignore; do
+        test $dot_ig = x && continue
+        ig=$parent/$dot_ig
+        insert_vc_ignore "$ig" "${file##*/}"
+      done
+    }
+  done
+  IFS=$old_IFS
+
+  rm -f $tempbase.0 $tempbase.1
+  trap - 1 2 13 15
+fi
+
+# Import from gnulib.
+
+gnulib_tool_options="\
+ --import\
+ --no-changelog\
+ --aux-dir $build_aux\
+ --doc-base $doc_base\
+ --lib $gnulib_name\
+ --m4-base $m4_base/\
+ --source-base $source_base/\
+ --tests-base $tests_base\
+ --local-dir $local_gl_dir\
+ $gnulib_tool_option_extras\
+"
+if test $use_libtool = 1; then
+  case "$gnulib_tool_options " in
+    *' --libtool '*) ;;
+    *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
+  esac
+fi
+echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
+$gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
+
+for file in $gnulib_files; do
+  symlink_to_dir "$GNULIB_SRCDIR" $file \
+    || die "failed to symlink $file"
+done
+
+bootstrap_post_import_hook \
+  || die "bootstrap_post_import_hook failed"
+
+# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
+# gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
+# The following requires GNU find 4.2.3 or newer.  Considering the usual
+# portability constraints of this script, that may seem a very demanding
+# requirement, but it should be ok.  Ignore any failure, which is fine,
+# since this is only a convenience to help developers avoid the relatively
+# unusual case in which a symlinked-to .m4 file is git-removed from gnulib
+# between successive runs of this script.
+find "$m4_base" "$source_base" \
+  -depth \( -name '*.m4' -o -name '*.[ch]' \) \
+  -type l -xtype l -delete > /dev/null 2>&1
+
+# Invoke autoreconf with --force --install to ensure upgrades of tools
+# such as ylwrap.
+AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS"
+
+# Some systems (RHEL 5) are using ancient autotools, for which the
+# --no-recursive option had not been invented.  Detect that lack and
+# omit the option when it's not supported.  FIXME in 2017: remove this
+# hack when RHEL 5 autotools are updated, or when they become irrelevant.
+case $($AUTORECONF --help) in
+  *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
+esac
+
+# Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
+echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS"
+AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \
+  || die "autoreconf failed"
+
+# Get some extra files from gnulib, overriding existing files.
+for file in $gnulib_extra_files; do
+  case $file in
+  */INSTALL) dst=INSTALL;;
+  build-aux/*) dst=$build_aux/${file#build-aux/};;
+  *) dst=$file;;
+  esac
+  symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
+    || die "failed to symlink $file"
+done
+
+if test $with_gettext = yes; then
+  # Create gettext configuration.
+  echo "$0: Creating po/Makevars from po/Makevars.template ..."
+  rm -f po/Makevars
+  sed '
+    /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
+    /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
+    /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
+    /^XGETTEXT_OPTIONS *=/{
+      s/$/ \\/
+      a\
+          '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
+    }
+  ' po/Makevars.template >po/Makevars \
+    || die 'cannot generate po/Makevars'
+
+  # If the 'gettext' module is in use, grab the latest Makefile.in.in.
+  # If only the 'gettext-h' module is in use, assume autopoint already
+  # put the correct version of this file into place.
+  case $gnulib_modules in
+  *gettext-h*) ;;
+  *gettext*)
+    cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
+      || die "cannot create po/Makefile.in.in"
+    ;;
+  esac
+
+  if test -d runtime-po; then
+    # Similarly for runtime-po/Makevars, but not quite the same.
+    rm -f runtime-po/Makevars
+    sed '
+      /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
+      /^subdir *=.*/s/=.*/= runtime-po/
+      /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+      /^XGETTEXT_OPTIONS *=/{
+        s/$/ \\/
+        a\
+            '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+      }
+    ' po/Makevars.template >runtime-po/Makevars \
+    || die 'cannot generate runtime-po/Makevars'
+
+    # Copy identical files from po to runtime-po.
+    (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+  fi
+fi
+
+bootstrap_epilogue
+
+echo "$0: done.  Now you can run './configure'."
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/xemacs-packages/riece/bootstrap.conf b/xemacs-packages/riece/bootstrap.conf
new file mode 100644 (file)
index 0000000..2df8e77
--- /dev/null
@@ -0,0 +1,75 @@
+# Bootstrap configuration.
+
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+# gnulib modules used by this package.
+gnulib_modules="
+git-version-gen
+gitlog-to-changelog
+"
+
+# Additional xgettext options to use.  Use "\\\newline" to break lines.
+XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
+ --from-code=UTF-8\\\
+ --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
+ --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
+ --flag=wrapf:1:c-format\\\
+'
+
+# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
+# appears in configure.ac, exclude some unnecessary files.
+# Without grep's -E option (not portable enough, pre-configure),
+# the following test is ugly.  Also, this depends on the existence
+# of configure.ac, not the obsolescent-named configure.in.  But if
+# you're using this infrastructure, you should care about such things.
+
+gettext_external=0
+grep '^[        ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
+  gettext_external=1
+grep '^[        ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
+  gettext_external=1
+
+if test $gettext_external = 1; then
+  # Gettext supplies these files, but we don't need them since
+  # we don't have an intl subdirectory.
+  excluded_files='
+      m4/glibc2.m4
+      m4/intdiv0.m4
+      m4/lcmessage.m4
+      m4/lock.m4
+      m4/printf-posix.m4
+      m4/size_max.m4
+      m4/uintmax_t.m4
+      m4/ulonglong.m4
+      m4/visibility.m4
+      m4/xsize.m4
+  '
+fi
+
+# Build prerequisites
+buildreq="\
+autoconf   2.59
+automake   1.9.6
+git        1.5.5
+tar        -
+"
+
+bootstrap_post_import_hook ()
+{
+  # Automake requires that ChangeLog exist.
+  touch ChangeLog || return 1
+}
diff --git a/xemacs-packages/riece/configure.ac b/xemacs-packages/riece/configure.ac
new file mode 100644 (file)
index 0000000..fce78aa
--- /dev/null
@@ -0,0 +1,23 @@
+AC_PREREQ(2.63)
+
+AC_INIT([riece],
+       m4_esyscmd([build-aux/git-version-gen .tarball-version]),
+       [riece-discuss@nongnu.org])
+
+AC_CONFIG_SRCDIR([configure.ac])
+AC_CONFIG_AUX_DIR([build-aux])
+
+AM_INIT_AUTOMAKE
+
+AC_CHECK_EMACS
+AC_PATH_LISPDIR
+AC_PATH_PACKAGEDIR
+
+AM_CONDITIONAL(XEMACS, test ${EMACS_FLAVOR} = xemacs)
+
+AC_CONFIG_FILES([Makefile
+lisp/Makefile
+lisp/riece-package-info.el
+lisp/test/Makefile
+doc/Makefile])
+AC_OUTPUT
diff --git a/xemacs-packages/riece/doc/.cvsignore b/xemacs-packages/riece/doc/.cvsignore
new file mode 100644 (file)
index 0000000..e475d9b
--- /dev/null
@@ -0,0 +1,7 @@
+Makefile.in
+Makefile
+texinfo.tex
+*.info*
+mdate-sh
+stamp*
+vers*.texi
diff --git a/xemacs-packages/riece/doc/Makefile.am b/xemacs-packages/riece/doc/Makefile.am
new file mode 100644 (file)
index 0000000..3f18c8d
--- /dev/null
@@ -0,0 +1,15 @@
+AUTOMAKE_OPTIONS = -Wno-portability
+EXTRA_DIST = infohack.el ptexinfmt.el irchat-copyright.el
+
+info_TEXINFOS = riece-ja.texi riece-en.texi
+
+package: all
+       $(MAKE) EMACS=$(XEMACS)
+
+install-package: package
+       $(MAKE) infodir=$(PACKAGEDIR)/info install
+
+SUFFIXES = .texi .info
+.texi.info:
+       $(EMACS) -batch -q -no-site-file -l $(srcdir)/infohack.el $(srcdir) \
+               -f batch-makeinfo $<
diff --git a/xemacs-packages/riece/doc/fdl.texi b/xemacs-packages/riece/doc/fdl.texi
new file mode 100644 (file)
index 0000000..8826568
--- /dev/null
@@ -0,0 +1,403 @@
+
+@node GNU Free Documentation License
+@appendixsec GNU Free Documentation License
+
+@cindex FDL, GNU Free Documentation License
+@center Version 1.1, March 2000
+
+@display
+Copyright @copyright{} 2000 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@enumerate 0
+@item
+PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+written document @dfn{free} in the sense of freedom: to assure everyone
+the effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or noncommercially.  Secondarily,
+this License preserves for the author and publisher a way to get
+credit for their work, while not being considered responsible for
+modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+@item
+APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work that contains a
+notice placed by the copyright holder saying it can be distributed
+under the terms of this License.  The ``Document'', below, refers to any
+such manual or work.  Any member of the public is a licensee, and is
+addressed as ``you''.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (For example, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.
+
+A ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, whose contents can be viewed and edited directly and
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup has been designed to thwart or discourage
+subsequent modification by readers is not Transparent.  A copy that is
+not ``Transparent'' is called ``Opaque''.
+
+Examples of suitable formats for Transparent copies include plain
+@sc{ascii} without markup, Texinfo input format, La@TeX{} input format,
+@acronym{SGML} or @acronym{XML} using a publicly available
+@acronym{DTD}, and standard-conforming simple @acronym{HTML} designed
+for human modification.  Opaque formats include PostScript,
+@acronym{PDF}, proprietary formats that can be read and edited only by
+proprietary word processors, @acronym{SGML} or @acronym{XML} for which
+the @acronym{DTD} and/or processing tools are not generally available,
+and the machine-generated @acronym{HTML} produced by some word
+processors for output purposes only.
+
+The ``Title Page'' means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, ``Title Page'' means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+@item
+VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+@item
+COPYING IN QUANTITY
+
+If you publish printed copies of the Document numbering more than 100,
+and the Document's license notice requires Cover Texts, you must enclose
+the copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a publicly-accessible computer-network location containing a complete
+Transparent copy of the Document, free of added material, which the
+general network-using public has access to download anonymously at no
+charge using public-standard network protocols.  If you use the latter
+option, you must take reasonably prudent steps, when you begin
+distribution of Opaque copies in quantity, to ensure that this
+Transparent copy will remain thus accessible at the stated location
+until at least one year after the last time you distribute an Opaque
+copy (directly or through your agents or retailers) of that edition to
+the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+@item
+MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+@enumerate A
+@item
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+@item
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has less than five).
+
+@item
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+@item
+Preserve all the copyright notices of the Document.
+
+@item
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+@item
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+@item
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+
+@item
+Include an unaltered copy of this License.
+
+@item
+Preserve the section entitled ``History'', and its title, and add to
+it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section entitled ``History'' in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+@item
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the ``History'' section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+@item
+In any section entitled ``Acknowledgments'' or ``Dedications'',
+preserve the section's title, and preserve in the section all the
+substance and tone of each of the contributor acknowledgments
+and/or dedications given therein.
+
+@item
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+@item
+Delete any section entitled ``Endorsements''.  Such a section
+may not be included in the Modified Version.
+
+@item
+Do not retitle any existing section as ``Endorsements''
+or to conflict in title with any Invariant Section.
+@end enumerate
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section entitled ``Endorsements'', provided it contains
+nothing but endorsements of your Modified Version by various
+parties---for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+@item
+COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections entitled ``History''
+in the various original documents, forming one section entitled
+``History''; likewise combine any sections entitled ``Acknowledgments'',
+and any sections entitled ``Dedications''.  You must delete all sections
+entitled ``Endorsements.''
+
+@item
+COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+@item
+AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, does not as a whole count as a Modified Version
+of the Document, provided no compilation copyright is claimed for the
+compilation.  Such a compilation is called an ``aggregate'', and this
+License does not apply to the other self-contained works thus compiled
+with the Document, on account of their being thus compiled, if they
+are not themselves derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one quarter
+of the entire aggregate, the Document's Cover Texts may be placed on
+covers that surround only the Document within the aggregate.
+Otherwise they must appear on covers around the whole aggregate.
+
+@item
+TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License provided that you also include the
+original English version of this License.  In case of a disagreement
+between the translation and the original English version of this
+License, the original English version will prevail.
+
+@item
+TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+@uref{http://www.gnu.org/copyleft/}.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License ``or any later version'' applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+@end enumerate
+
+@page
+@appendixsubsec ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+@smallexample
+@group
+  Copyright (C)  @var{year}  @var{your name}.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.1
+  or any later version published by the Free Software Foundation;
+  with the Invariant Sections being @var{list their titles}, with the
+  Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
+  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+@end group
+@end smallexample
+
+If you have no Invariant Sections, write ``with no Invariant Sections''
+instead of saying which ones are invariant.  If you have no
+Front-Cover Texts, write ``no Front-Cover Texts'' instead of
+``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+@c Local Variables:
+@c ispell-local-pdict: "ispell-dict"
+@c End:
+
diff --git a/xemacs-packages/riece/doc/infohack.el b/xemacs-packages/riece/doc/infohack.el
new file mode 100644 (file)
index 0000000..d941c62
--- /dev/null
@@ -0,0 +1,179 @@
+;;; infohack.el --- a hack to format info file.
+;; Copyright (C)  2001  Free Software Foundation, Inc.
+
+;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
+;; Keywords: info
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+;(let ((default-directory (expand-file-name "../lisp/"))
+;      (features (cons 'w3-forms (copy-sequence features))))
+;  ;; Adjust `load-path' for APEL.
+;  (load-file "dgnushack.el"))
+(load-file (expand-file-name "ptexinfmt.el"
+                            (car command-line-args-left)))
+(setq command-line-args-left (cdr command-line-args-left))
+
+(defun infohack-remove-unsupported ()
+  (goto-char (point-min))
+  (while (re-search-forward "@\\(end \\)?ifnottex" nil t)
+    (replace-match ""))
+  (goto-char (point-min))
+  (while (search-forward "\n@iflatex\n" nil t)
+    (delete-region (1+ (match-beginning 0))
+                  (search-forward "\n@end iflatex\n"))))
+
+(defun infohack (file)
+  (let ((dest-directory default-directory)
+       (max-lisp-eval-depth (max max-lisp-eval-depth 600))
+       coding-system)
+    (find-file file)
+    (setq buffer-read-only nil)
+    (setq coding-system (if (boundp 'buffer-file-coding-system)
+                           buffer-file-coding-system
+                         file-coding-system))
+    (infohack-remove-unsupported)
+    (texinfo-every-node-update)
+    (texinfo-format-buffer t) ;; Don't save any file.
+    (setq default-directory dest-directory)
+    (setq buffer-file-name
+         (expand-file-name (file-name-nondirectory buffer-file-name)
+                           default-directory))
+    (setq buffer-file-coding-system coding-system
+         file-coding-system coding-system)
+    (if (> (buffer-size) 100000)
+       (Info-split))
+    (save-buffer)))
+
+(eval-and-compile
+  (when (string-match "windows-nt\\|os/2\\|emx\\|cygwin"
+                      (symbol-name system-type))
+    (defun subst-char-in-region (START END FROMCHAR TOCHAR &optional NOUNDO)
+      "From START to END, replace FROMCHAR with TOCHAR each time it occurs.
+If optional arg NOUNDO is non-nil, don't record this change for undo
+and don't mark the buffer as really changed.
+Both characters must have the same length of multi-byte form."
+      (let ((original-buffer-undo-list buffer-undo-list)
+            (modified (buffer-modified-p)))
+        (if NOUNDO
+            (setq buffer-undo-list t))
+        (goto-char START)
+        (let ((from (char-to-string FROMCHAR))
+              (to (char-to-string TOCHAR)))
+          (while (search-forward from END t)
+            (replace-match to t t)))
+        (if NOUNDO
+            (progn (setq buffer-undo-list original-buffer-undo-list)
+                   (set-buffer-modidifed-p modified)))))))
+
+(defun batch-makeinfo ()
+  "Emacs makeinfo in batch mode."
+  (infohack-texi-format (car command-line-args-left)
+                       (car (cdr command-line-args-left)))
+  (setq command-line-args-left nil))
+
+\f
+(defun infohack-texi-format (file &optional addsuffix)
+  (let ((auto-save-default nil)
+       (find-file-run-dired nil)
+       coding-system-for-write
+       output-coding-system
+       (error 0))
+    (condition-case err
+       (progn
+         (find-file file)
+         (setq buffer-read-only nil)
+         (buffer-disable-undo (current-buffer))
+         (if (boundp 'MULE)
+             (setq output-coding-system file-coding-system)
+           (setq coding-system-for-write buffer-file-coding-system))
+         ;; Remove ignored areas first.
+         (while (re-search-forward "^@ignore[\t\r ]*$" nil t)
+           (delete-region (match-beginning 0)
+                          (if (re-search-forward
+                               "^@end[\t ]+ignore[\t\r ]*$" nil t)
+                              (1+ (match-end 0))
+                            (point-max))))
+         (infohack-remove-unsupported)
+         (goto-char (point-min))
+         ;; Add suffix if it is needed.
+         (when (and addsuffix
+                    (re-search-forward "^@setfilename[\t ]+\\([^\t\n ]+\\)"
+                                       nil t)
+                    (not (string-match "\\.info$" (match-string 1))))
+           (insert ".info")
+           (goto-char (point-min)))
+         ;; process @include before updating node
+         ;; This might produce some problem if we use @lowersection or
+         ;; such.
+         (let ((input-directory default-directory)
+               (texinfo-command-end))
+           (while (re-search-forward "^@include" nil t)
+             (setq texinfo-command-end (point))
+             (let ((filename (concat input-directory
+                                     (texinfo-parse-line-arg))))
+               (re-search-backward "^@include")
+               (delete-region (point) (save-excursion
+                                        (forward-line 1)
+                                        (point)))
+               (message "Reading included file: %s" filename)
+               (save-excursion
+                 (save-restriction
+                   (narrow-to-region
+                    (point) (+ (point)
+                               (car (cdr (insert-file-contents filename)))))
+                   (goto-char (point-min))
+                   ;; Remove `@setfilename' line from included file,
+                   ;; if any, so @setfilename command not duplicated.
+                   (if (re-search-forward "^@setfilename"
+                                          (save-excursion
+                                            (forward-line 100)
+                                            (point))
+                                          t)
+                       (progn
+                         (beginning-of-line)
+                         (delete-region (point) (save-excursion
+                                                  (forward-line 1)
+                                                  (point))))))))))
+         (texinfo-mode)
+         (texinfo-every-node-update)
+         (set-buffer-modified-p nil)
+         (message "texinfo formatting %s..." file)
+         (texinfo-format-buffer nil)
+         (if (buffer-modified-p)
+             (progn (message "Saving modified %s" (buffer-file-name))
+                    (save-buffer))))
+      (error
+       (message ">> Error: %s" (prin1-to-string err))
+       (message ">>  point at")
+       (let ((s (buffer-substring (point) (min (+ (point) 100) (point-max))))
+            (tem 0))
+        (while (setq tem (string-match "\n+" s tem))
+          (setq s (concat (substring s 0 (match-beginning 0))
+                          "\n>>  "
+                          (substring s (match-end 0)))
+                tem (1+ tem)))
+        (message ">>  %s" s))
+       (setq error 1)))
+    (kill-emacs error)))
+
+;;; infohack.el ends here
diff --git a/xemacs-packages/riece/doc/irchat-copyright.el b/xemacs-packages/riece/doc/irchat-copyright.el
new file mode 100644 (file)
index 0000000..61690ac
--- /dev/null
@@ -0,0 +1,79 @@
+;;;  -*- emacs-lisp -*-
+;;;
+;;;  $Id: irchat-copyright.el,v 1.1 2003/10/22 20:07:07 ueno Exp $
+;;;
+(defvar irchat-copyright "
+    $Id: irchat-copyright.el,v 1.1 2003/10/22 20:07:07 ueno Exp $
+    Internet Relay CHAT interface for GNU Emacs
+    Copyright (C) 1989 Tor Lillqvist
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 1, or (at your option)
+    any later version.
+  
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+  
+    You should have received a copy of the GNU General Public License
+    along with GNU Emacs; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+  
+    Author's email address is <tml@hemuli.atk.vtt.fi>
+  
+    Following people have made major improvements to irchat. Also there
+    are numerous people who have given suggestions and improvements. If 
+    you think your name should be included here, give us a note...
+          Kai Keinänen         <kmk@iki.fi>
+          Markku Järvinen      <mta@cc.tut.fi>
+          Jukka Partanen       <jtp@iki.fi>
+          Kim Nyberg           <kny@iki.fi>
+          Tero T. Mononen      <tmo@iki.fi>
+
+    You can ftp the latest version from cs.hut.fi:/pub/irchat
+
+    There is a mailing list, irchat@cc.tut.fi for those interested
+    in developments in irchat. Mail irchat-request@cc.tut.fi if you
+    are interested in joining.
+
+    Current team is:
+          Janne Liimatainen    <jsl@iki.fi>
+          Tero T. Mononen      <tmo@iki.fi>
+          Kim Nyberg           <kny@iki.fi>
+           Tomi Ollila          <too@iki.fi>
+          Jukka Partanen       <jtp@iki.fi>
+          Timo J. Rinne        <tri@iki.fi>
+" "Basically GPL")
+
+;;;
+;;;  $Log: irchat-copyright.el,v $
+;;;  Revision 1.1  2003/10/22 20:07:07  ueno
+;;;  (EXTRA_DIST) Add irchat-copyright.el.
+;;;
+;;;  Revision 3.2  1997/02/27 10:19:14  jsl
+;;;  changed irchat-nickname to irchat-real-nickname
+;;;  users should only change irchat-nickname
+;;;
+;;;Revision 3.1  1997/02/24  16:00:02  tri
+;;;Promoted revision to 3.1.
+;;;
+;;;  Revision 1.2  1997/02/13 09:10:47  tri
+;;;  Added Domo to "current" team.
+;;;
+;;;  Revision 1.1  1996/12/19 14:54:48  tri
+;;;  Initial revision
+;;;
+;;;  Revision 0.1.1  1995/01/15  11:43:37  tmo
+;;;  Initial revision
+;;; 
+;;;  Revision 0.1.2  1993/07/13  11:56:52  tmo
+;;;    made this file to be defvar
+;;; 
+;;;  Revision 0.1.2  1993/07/13  11:56:52  tmo
+;;;    made this file to be defvar
+;;; 
+;;;  Revision 0.1.1  1993/07/10  13:23:50  tmo
+;;;  Initial revision
+;;; 
diff --git a/xemacs-packages/riece/doc/ja/NEWS b/xemacs-packages/riece/doc/ja/NEWS
new file mode 100644 (file)
index 0000000..b12f7b9
--- /dev/null
@@ -0,0 +1,679 @@
+* Riece 9.0.0 の主な変更点
+
+** チャンネルを並べ直すコマンドを追加 (ueno)
+   riece-command-reorder-channels の説明を参照
+
+** チャンネル参加時に複数のチャンネルを補完するようにした (ueno)
+
+* Riece 8.0.0 の主な変更点
+
+** riece-url の URL 正規表現を拡張 (ueno)
+
+** lexical binding の使用 (ueno)
+
+** doc/ptexinfmt.el の更新 (kaoru)
+
+* Riece 7.0.3 の主な変更点
+
+** チャンネルバッファにカーソルがある状態でのフリーズ動作の修正 (ueno)
+   riece-shrink-buffer にバグがあり、フリーズ状態のチャンネルバッファで
+   カーソルが先頭か末尾に移動することがあったのを修正
+
+** ソースツリー外でのビルドの修正 (kaoru, ueno)
+   いくつかの場所で srcdir を適切にわたしていなかったのを修正
+
+** Emacs 24 のために旧スタイルのバッククオートを除去 (ueno)
+
+* Riece 7.0.2 の主な変更点
+
+** ログ読み出し時の不具合の修正 (ueno)
+   保存時に coding-system が指定されなかった場合に対応
+
+** コントロールシーケンスの扱いを修正 (ueno)
+
+* Riece 7.0.1 の主な変更点
+
+** Emacs 24 でのビルドエラーの修正 (ueno)
+   make-local-hook が定義されない場合に対応
+
+** Emacs 24 でのコンパイル時の警告の抑制 (kaoru)
+   警告 "`save-excursion' defeated by `set-buffer'" を抑制
+
+* Riece 7.0.0 の主な変更点
+
+** メーリングリストのアドレスを riece-discuss@nongnu.org に変更
+
+** XEmacs 21.5 でのビルドを修正 (ueno)
+
+** モードライン上での riece-channel-list-indicator の色付けの修正 (ueno)
+
+* Riece 6.1.0 の主な変更点
+
+** 設定の保存に Custom を使うのをやめた (ueno)
+
+** アドオン管理用のコマンドを Command バッファでも実行できるようにした (kaoru)
+
+* Riece 6.0.0 の主な変更点
+
+** 新規アドオン riece-desktop-notify (bg66)
+
+** Custom を利用した設定保存機構の修正
+
+* Riece 5.0.0 の主な変更点
+
+** 設定の保存に Custom を使うようにした (ueno)
+
+** ツールバーのアイコンに Gtk+ の標準アイコンを使うようにした (ueno)
+
+** 接続時に RFC2812 推奨の手順にしたがうようにした (ueno)
+
+** リアルネームの設定に非 ASCII 文字が使えるようになった (KASUGA Toru)
+
+** riece-keywords の設定上のバグを修正 (Takeru Naito)
+
+* Riece 4.0.0 の主な変更点
+
+** 新規アドオン riece-twitter (ueno)
+
+** riece-rdcc で送信元のポート番号を指定できるようにした (ueno)
+
+* Riece 3.1.2 の主な変更点
+
+** メッセージカタログ (ueno)
+
+* Riece 3.1.1 の主な変更点
+
+** riece-async を再び動作するようにした (ueno)
+
+** riece-shrink-buffer をデフォルトで有効にした (ueno)
+
+** 新規ウィンドウレイアウト "spiral" を追加 (URABE Shyouhei)
+
+* Riece 3.1.0 の主な変更点
+
+** メッセージハンドラの再入禁止にした (ueno)
+
+** riece-ndcc.el が calc に依存しないようにした (ueno)
+
+** 353 ハンドラのバグの修正 (ueno)
+
+* Riece 3.0.0 の主な変更点
+
+** 変数 riece-username の意味を変更 (ueno)
+   この変数を設定しているユーザは、riece-realname に変数名を変更する必
+   要がある。
+
+** 切断済みのサーバを再度切断しようとした場合に、エラーになるようにし
+   た (yoichi)
+
+** 新規アドオン riece-epg.el を導入。GnuPG を使った安全な会話が可能 (ueno)
+
+** ユーザを招待 (invite) する際のバグを 2 つ修正 (Steve Youngs)
+
+** ユーザがチャンネルを離脱した場面での、再描画のバグを修正 (ueno)
+
+** riece-alias-alternate-separator のデフォルト値を "@" に戻した (ueno)
+
+* Riece 2.0.2 の主な変更点
+
+** C-c l (riece-command-list) で、チャンネルのトピックの代わりに参加者
+   数が表示されるバグを修正 (ueno)
+
+** ニックネームやチャンネル名の補完候補の表示で大文字小文字を保存する
+   ようにした (ueno)
+
+** チャンネル名とサーバ名の区切り文字列のデフォルト値を "@" から "%" 
+   に変更 (ueno)
+
+* Riece 2.0.1 の主な変更点
+
+** 直前に選択していたチャンネルに未読メッセージがある場合に unread マー
+   クが表示されない不具合の修正 (ueno)
+
+** 新規アドオン riece-xfaceb.el を導入。BBDB から X-Face/Face を検索し、
+   ユーザ一覧に表示する (Steve Youngs)
+
+* Riece 2.0.0 の主な変更点
+
+** チャンネル毎にエンコーディングを指定できるようにした (ueno)
+   設定例:
+   (setq riece-channel-coding-system-alist
+        '(("#euc-jp" . euc-jp)
+          ("#utf-8 irc.freenode.net" . utf-8)))
+
+** アドオンの uninstall, unload (危険) に対応。
+   アドオン一覧モードで riece-addons のカスタマイズが可能 (ueno)
+
+** Ruby のプログラムを評価する機構の導入。
+   利用方法は riece-ruby.el 冒頭のコメントを参照 (ueno)
+
+** 新規アドオン riece-eval-ruby.el を導入。",ruby " に続いて任意の 
+   Ruby のプログラムを発言すると、評価結果をチャンネルに送信する (ueno)
+
+** 定期的にバッファを切り詰める機能をアドオンに分離
+   これまで riece-max-buffer-size を設定していた人は、
+   riece-shrink-buffer アドオンを有効にする必要があるので注意 (ueno)
+
+** 離脱したチャンネルに参加していたユーザが IRC をやめた場合に、エラー
+   が発生する不具合の修正 (ueno)
+
+** ログの保存時に、使用した coding-system の名前をファイル名に埋め込む
+   ようにした。これにより riece-log-coding-system を設定しなくても文字
+   化けが発生しにくくなった (ueno)
+
+** C-c g でチャンネルを移動する際に、新しい発言があったチャンネルから
+   辿るようにした (ueno)
+
+** チャンネル名とサーバ名の区切り文字列として " " 以外に "@" も許すよ
+   うにした (ueno)
+
+** 日本語マニュアル (riece-ja.texi) を初心者を対象に書き直した (ueno)
+
+** *Others* バッファを隠せるようにした (ueno)
+
+** デバッグ出力を専用のバッファに分離 (ueno)
+
+** elisp ファイルを1つずつ byte-compile する make ルールを設けた。
+   configure 後、lisp/ 以下で make compile-individually (ueno)
+
+** 開発者向けの文書 (doc/HACKING{,.ja}) を同梱 (ueno)
+
+* Riece 1.0.8 の主な変更点
+
+** riece-log のロックの緩和 (ueno)
+
+** RPL_WHOISIDLE の秒数を日時分秒形式で表示 (ueno)
+
+** riece-obarray を riece-channel-obarray, riece-user-obarray に分離
+   (kaoru)
+
+** いくつかの個所でチャンネル名の大文字小文字が区別されるバグへの対応 (ueno)
+
+** SXEmacs のバージョン表記に対応 (Steve Youngs)
+
+** CTCP TIME に対応 (Steve Youngs)
+
+** ~/.riece/addons 以下のディレクトリを読み込まないようにした (kaoru)
+
+** riece-command-part がエラーになるバグの修正 (yoichi)
+
+** ~/.riece/addons ディレクトリがないと起動時にエラーになるバグの修正 (ueno)
+
+* Riece 1.0.7 の主な変更点
+
+** 新規アドオン riece-toolbar (ueno)
+   riece-toolbar はツールバーにアイコンを表示します。現時点では全ての
+   アイコンが含まれているわけではありません。
+
+** 新規アドオン riece-keepalive (ueno)
+   riece-keepalive は自発的にサーバに PING メッセージを送ることで IRC
+   のコネクションを持続させます。
+
+** 新規アドオン riece-google (bg66)
+   riece-google は Google での検索結果をチャンネルに送ります。
+
+** 新規アドオン riece-eval (bg66)
+   riece-eval は elisp の式の評価結果をチャンネルに送ります。
+
+** いくつかのアドオンをデフォルトで有効化 (ueno)
+   riece-log, riece-alias, riece-ctlseq, riece-keyword が今回からデフォ
+   ルトで有効になります。
+
+** 新規コマンド riece-command-suspend-resume (ueno)
+   riece-command-suspend-resume は現在のウィンドウ構成を保存・再現します。
+
+** ボタンウィジェットクリック時のカーソル移動の抑止 (ueno)
+
+** モードラインのインジケータを face で装飾 (ueno)
+
+** NAMES リプライに含まれるユーザ数を数えるようになりました (ueno)
+
+** 新規ユーザオプション riece-part-message (ueno)
+
+** riece-addon-directory 以下に置かれたアドオンを自動的に有効化 (ueno)
+
+** riece-buffer-dispose-function のデフォルト値が今回から kill-buffer
+   になりました (ueno)
+
+** process-filter 内でエラーが発生した場合、backtrace を行なうようにな
+   りました (ueno)
+
+** 必要に応じてチャンネルキーを問い合わせるようにしました (ueno)
+
+** バッファの自動的な切り詰めをデフォルトでは無効化 (ueno)
+
+** riece-log のための新しいディレクトリ構成 (ueno)
+
+** user-renamed signal-filter のバグを修正 (kaoru)
+
+** riece-command-enable-addon と riece-command-disable-addon のバグの
+   修正 (yoichi)
+
+* Riece 1.0.6 の主な変更点
+
+** CVS 版 GNU Emacs に同梱された url パッケージの irc: スキーマ対応の
+   バックエンドとして Riece を使用できるようにするプログラム url-riece を
+   同梱 (大和さん)
+
+** "Bug#12345" のような文字列を URL にマップするオプション
+   riece-url-regexp-alist を新設 (Liece からバックポート) (ueno)
+
+** モードラインに自身のチャンネルオペレータの印(@, +)を表示するように
+   した (ueno, thanks to k-to さん)
+
+** バッファを切り詰める際に、一行ずつではなく複数行一度に削除するよう
+   にした (riece-shrink-buffer-remove-lines オプションで設定可能) (ueno,
+   thanks to ysjj さん)
+
+** riece-alias-alist が上手く動いていなかった不具合の修正 (ueno)
+
+** 1.0.4 以降、GNU Emacs で、メッセージ送信時のフロー制御が上手く動い
+   ていなかった不具合の修正 (ueno)
+
+** バグ報告用のコマンド riece-submit-bug-report を新設 (ueno)
+
+** nadoka や Tiarra などの IRC proxy が、IRC サーバ実装の伝統に沿わな
+   いメッセージを返すことへの対処 (ueno, thanks to k-to さん)
+
+** C-c # 数字で指定した番号のチャンネルに移動できるようにした (ueno,
+   thanks to ysjj さん)
+
+** riece-yank で、前置引数を指定することにより、メッセージを NOTICE と
+   して送信できるようにした (bg66)
+
+* Riece 1.0.5 の主な変更点
+
+** ユニットテストを追加。(ueno)
+
+** 複数サーバ接続時に、チャンネル名とサーバ名の区切りに空白以外の文字
+   列を使えるようにした。(ueno)
+
+   riece-alias-alternate-separator == "@" の時の変換規則は以下の通り:
+
+   "#riece" -> "#riece"
+   "#riece localhost" -> "#riece@localhost"
+   "#ch@nnel" -> "#ch@@nnel"
+   "#ch@nnel localhost" -> "#ch@@nnel@localhost"
+
+** DCC が他のクライアントとの間でうまく動かない不具合の修正。(ueno)
+
+** kill-ring から文字列を送信するアドオン riece-yank を追加。(by 大和さん)
+
+** 英語の文書を追加。(ueno)
+
+* Riece 1.0.4 の主な変更点
+
+** 大量のメッセージを送る場合に、フロー制御を行うようにした。(ueno)
+
+** 起動時に複数サーバ上のチャンネルに参加する設定で、
+   riece-startup-server-list の設定を省略可能にした。(ueno)
+
+** riece-mini 使用時に過去のメッセージを閲覧する機能を設けた。(bg66)
+
+* Riece 1.0.3 の主な変更点
+
+** NAMES 発行時に「いないはずのユーザ」をユーザ一覧から除外するように
+   した (Thanks to 山下さん)
+
+** 行の折り返しを各バッファの truncate-lines の値でカスタマイズできる
+   ようにした(Thanks to 山下さん)
+
+** チャンネルバッファのスクロール動作を制御するオプション
+   riece-window-center-line を追加
+
+** コマンドバッファでの補完の不具合を修正 (Thanks to 山下さん)
+
+** 一対一の会話で、相手が quit した場合、チャンネル一覧から除外するよ
+   うにした (Thanks to  森本さん)
+
+** デフォルトの IRC サーバへの接続時にエラーが出た場合には、即座に終了
+   するようにした(Thanks to k-to さん)
+
+* Riece 1.0.2 の主な変更点
+
+** riece-url 使用時にメニューバーのメニューが破壊される不具合の修正
+
+** Jabber 対応に向け、プロトコルインターフェースを分けた
+
+** その他、雑多な修正
+
+* Riece 1.0.1 の主な変更点
+
+** XEmacs で、モードラインに表示されるチャンネルの背景色をモードライン
+   の色にあわせた
+
+** チャンネルのモード変更時に、モード指定の先頭に ":" を付けて送ってい
+   た不具合の修正
+   (Thanks to やまださん)
+
+** チャンネルミスを防ぐアドオン riece-foolproof を追加 (by 高橋さん)
+
+** チャンネルバッファのモードラインに表示される要素の順番を変更 (by 高橋さん)
+
+** NOTICE で発言した時の表示を変更 (by 高橋さん)
+
+** 再起動時にシグナル関数を二重に登録していた不具合の修正
+
+** C-c Home でチャンネルバッファの先頭にカーソルを移動するコマンドを追加
+
+** フリーズ状態のチャンネルでは、チャンネルを移動してもチャンネルバッ
+   ファのカーソル位置を保つようにした
+
+** CVS 版の Emacs で、引数なしの current-word が nil を返すようになったため、
+   riece-command-complete-user がエラーになる不具合の修正 (by 中山さん)
+
+** riece-hangman の乱数発生ロジックの修正 (by 高橋さん)
+
+** 空行の上で、C-c p でメッセージを送ろうとした場合、エラーを通知する
+   ようにした
+
+** riece-ignore 使用時に、設定ファイルで無視するユーザを指定できるよう、
+   オプション riece-startup-ignored-user-list を新設
+
+** riece-rdcc 使用時に、ファイル名に空白が入ったファイルを送受信できる
+   ようにした
+
+* Riece 1.0.0 の主な変更点
+
+** アドオンの一覧表示モードを追加し、実行時にアドオンを有効化・無効化
+   できるようにした (C-c ^)
+
+** GNU Emacs で、パスワード入力中に Quit (C-g) できない不具合の修正
+
+** チャンネル内で hangman(6) で遊ぶアドオン riece-hangman を追加
+
+** プロセスが一つもない場合に C-c q した場合のメッセージを変更
+
+** ユーザを無視するアドオン riece-ignore を追加
+
+** 9 文字以上のニックネームも受け付けるようにした
+
+** 再起動した際に、アドオンを二重に組み込まないようにした
+
+** 他のバッファにいる時に発言があるとモードラインに印 ("[R]") を表示す
+   るアドオン riece-biff を追加 (by 大橋さん)
+
+** 日本語の通らない端末で、日本語をローマ字で表示するアドオン
+   riece-kakasi を追加
+
+** コマンドプロンプトにアクションを示す文字列を追加 (suggested by 山下さん)
+
+* Riece 0.2.2 の主な変更点
+
+** ^B, ^V, ^_ などのコントロールシーケンスによる文字列の強調に対応
+   (riece-ctlseq アドオンを追加)
+
+** プリブが未読扱いされない不具合の修正
+
+** チャンネルバッファ、*Others* バッファを独立に freeze できるようにし
+   た。(各バッファで C-t C-f でトグル)
+
+** riece-log で、ログの保存先ディレクトリを canonicalize したチャンネ
+   ル名から求めるようにした。(by 大橋さん)
+
+* Riece 0.2.0 の主な変更点
+
+** Qt や GTK+ と同様のシグナルを導入し、部分的に再描画するようにした。
+
+** C-c C-n で、チャンネルバッファにも名前の一覧を表示するようにした。
+
+** riece-lsdb 使用時の不具合の修正 (by 中山さん)
+
+* Riece 0.1.8 の主な変更点
+
+** LSDB と連携するアドオン riece-lsdb を追加
+
+** ユーザ一覧に X-Face を表示するアドオン riece-xface を追加 (要 LSDB).
+スクリーンショット:
+http://wiliki.designflaw.org/riece-xface.png
+
+** チャンネル名の大文字小文字が区別されてしまうバグを修正
+
+** IRC proxy に他のクライアントと一緒に接続している場合でも,自分の発
+   言をきちんと扱うようにした (by 高橋さん)
+
+* Riece 0.1.7 の主な変更点
+
+** Emacs が busy or suspend 状態になることに備え、
+   PING に応答する local proxy 経由で IRC サーバに接続するアドオン
+   riece-async を追加
+
+** riece-away-message が指定された場合に AWAY 状態のトグルに失敗するバ
+   グを修正 (Thanks to 藤村さん)
+
+** GNU Emacs で、ロード時に standard-syntax-table を変更してしまうバグを修正
+   (Thanks to Hori さん)
+
+** riece-startup-channel-list に加え、riece-startup-server-list を指定
+   することで、起動時に複数のサーバ上のチャンネルに参加できるようにした
+
+** riece-log 使用時にログファイルの coding system を指定するオプション
+   riece-log-coding-system を追加
+
+** riece-keyword 使用時に指定したキーワードの発言があった時に呼ばれる
+   riece-keyword-notify-functions を追加。既存の
+   riece-notify-keyword-functions(なんて紛らわしい名前!) の代わりにこちら
+   を使用してください
+
+** riece-log 使用時に riece-log-flashback がハイライトやボタンも復元す
+   るようにした
+
+** riece-{unread,mini} を NOTICE や CTCP ACTION には反応しないようにした
+
+* Riece 0.1.6 の主な変更点
+
+** Emacs 20.7 でうまく動作しない不具合の修正。
+
+** XEmacs 21.1 でコンパイルに失敗する不具合の修正(動作は無保証)。
+
+** riece-rdcc で、巨大なファイルを受信してもメモリを食わないようにした。
+
+** riece-gather-channel-modes == t の場合、チャンネル参加時にチャンネ
+   ルのモードを調べるようにした。
+
+** チャンネルバッファのサイズを切り詰めるタイミングを修正。
+
+** チャンネル移動時に、バッファが自動的にスクロールしない不具合の修正。
+
+** riece-log で、riece-log-directory-map にサーバ名付きのチャンネルを
+   指定できるようにした。(by 大橋さん)
+
+* Riece 0.1.5 の主な変更点
+
+** デフォルトで利用可能なウィンドウレイアウトに、
+   {top,middle,bottom}-{left,right} を追加。
+
+** 選択中のウィンドウレイアウトを保存するようにした。
+
+** アイコンを表示するアドオン (riece-icon) を追加。
+   ([http://wiliki.designflaw.org/riecess1.png スクリーンショット])
+
+** ユーザリストの再描画の高速化。
+
+** CTCP ACTION の改良。(Thanks to knu さん)
+
+** riece-rdcc を使って DCC のファイル転送を始める際に、たまに固まるバグを修正。
+
+** 既に Riece が起動した状態でもう一度起動した場合、エラーを通知するの
+   ではなく、riece-command-configure-windows を呼ぶようにした (Thanks
+   to 大橋さん)
+
+** C-c o (riece-command-set-operators) と C-c v
+   (riece-command-set-speakers) で、3 人以上のユーザを対象にした場合のバ
+   グを修正。
+
+** バッファのサイズが riece-max-buffer-size を越えた場合、自動的に切り
+   詰めるようにした。
+
+* Riece 0.1.4 の主な変更点
+
+** チャンネルバッファで riece-command-names のキーバインドを C-n から
+   N に変更。(thanks to 高橋さん)
+
+** C-c C-t a (riece-command-toggle-away) がエラーになるバグを修正。
+   (thanks to 前田さん)
+
+** Riece のバッファを選択していない時には、再描画を行わないようにした。
+
+** 同名のバッファが Riece 以外のプログラムに使われている時、
+   generate-new-buffer で新しいバッファを作成して利用するようにした。
+
+** ! で初まるチャンネルを作成できないバグを修正。
+
+** riece-keyword 使用時に、自分の発言に含まれるキーワードに反応しない
+   ようにした。
+
+** ひとつもチャンネルに入っていない時、チャンネル内でのみ有効なコマン
+   ドを実行するとエラーを出すようにした。
+
+** メニューバーにメニューを追加するアドオン (riece-menu) を新設。
+
+* Riece 0.1.3 の主な変更点
+
+** PRIVMSG や NOTICE の受信時に,チャンネル名の大文字小文字を区別しな
+   いようにした。
+
+** riece-history 使用時に,ヒストリの先頭にあるチャンネルに "+" マーク
+   をつけるようにした。
+
+** ボタンとポップアップメニューを表示するアドオン (riece-button) を追加。
+
+** キーワードを検出するアドオン (riece-keyword) を追加。
+
+   XEmacs をお使いなら,以下の設定を ~/.riece/init.el に加えることで,
+   "ほげ" や "ふが" に反応して音を鳴らすことができます.
+
+   (load-default-sounds)
+   (setq riece-keywords '("ほげ" "ふが"))
+   (add-hook 'riece-notify-keyword-functions
+            (lambda (keyword) (play-sound 'cuckoo)))
+
+* Riece 0.1.2 の主な変更点
+
+** パスワード付きのチャンネルに JOIN できないバグを修正
+
+** riece-startup-channel-list を復活
+
+** riece-rdcc-save-directory を新設
+
+** パスワード入力を中断できないバグを修正
+
+** INVITE ハンドラのバグを修正
+
+** INVITE された後に JOIN する場合、デフォルトのチャンネル名を使うようにした。
+
+** JOIN のタイミングにより riece-channel-list-indicator が更新されない
+   バグを修正
+
+* Riece 0.1.1 の主な変更点
+
+** いくつかのアドオンをデフォルトで読み込むようにした
+
+** riece-default-channel-binding が効かないバグを治した
+
+** *Channels* バッファで、現在いるチャンネル名の頭にマーク "*" を付ける
+  ようにした
+
+** riece-debug == nil の場合、切断時のメッセージを簡略化した
+
+** チャンネル移動の履歴を管理するアドオン riece-history を追加
+
+** 移動先のチャンネルを推測するアドオン riece-guess を追加
+
+Tips:
+
+~/.riece/init.el に以下のように指定すると、
+
+  (setq riece-guess-channel-try-functions
+        '(riece-guess-channel-from-unread
+          riece-guess-channel-from-history))
+
+C-c g で以下の順序で移動できます。
+
+# 未読のメッセージのあるチャンネル
+# 最近訪れたチャンネル
+# それ以外
+
+* Riece 0.1.0 の主な変更点
+
+** チャンネルの内部表現を文字列からベクターによる表現に変更した
+
+** プロセス管理をまともにした
+
+*** プロセス名でサーバを識別するように変更した
+
+*** 接続・切断の処理を riece-server.el にまとめた
+
+*** QUIT を投げても応答がない場合、強制的に切断するようにした
+
+** M-x doctor と連携するアドオンを追加
+
+** 発言に SKK の変換中の印▽が混ざらないようにするアドオンを追加 (by 高橋さん)
+
+** ウィンドウレイアウトを変更できるようにした (C-c t l)
+
+** Liece の "top" スタイルに似たウィンドウレイアウトを追加 (by 高橋さん)
+
+* Riece 0.0.4 の主な変更点
+
+** ミニバッファだけで IRC するアドオン riece-mini を追加 (by 大橋さん)
+
+** ログ収集アドオン riece-log を追加 (by 大橋さん)
+
+** riece-command-next-channel (C-c >), riece-command-previous-channel
+   (C-c <) でチャンネルをぐるぐる移動できるようにした (by 中山さん)
+
+** riece-unread アドオン使用時に発言のあったチャンネルに C-c C-u で移
+   動できるようにした (by 大橋さん)
+
+** IRC メッセージに従ってインジケータを更新するようにした
+
+** ptexinfmt.el を APEL free なものに置き換えた (Thanks to 山岡さん)
+
+* Riece 0.0.3 の主な変更点
+
+** パスワードが必要なサーバに二つ以上接続できないバグの修正 (Thanks to
+   中山さん)
+
+** ニックの大文字小文字だけを変更すると一貫性が失われる問題を修正
+
+** ハンドラフックで発生したエラーを捕捉
+
+** DCC によるファイル転送に対応 (riece-ndcc.el, riece-rdcc.el)
+
+** 発言のあったチャンネルに "!" マークをつけるアドオンの追加 (riece-unread.el)
+
+** 日本語のマニュアルの追加
+
+* Riece 0.0.2 の主な変更点
+
+** APEL の関数 (pop, push) の退治
+
+** "depcomp" が同梱されない問題の修正 (autoreconf のバグ?)
+
+** Windows 環境でビルドできない不具合の修正 (Thanks to 大橋さん)
+
+** ニック変更時に一貫性が失われる問題の修正
+
+** C-c C-t u (M-x riece-command-toggle-user-list-mode) の不具合の修正
+
+** アドオンの導入
+
+** CTCP に部分的に対応 (VERSION と PING のみ)
+
+** font-lock モジュール (riece-highlight) のアドオン化
+
+** URL 収集機能のアドオン化
+
+* Riece 0.0.1 の主な変更点
+
+** 最初のリリース
+
+* For details of changes, see the file ChangeLog.
+\f
+Local variables:
+mode: text
+mode: outline
+paragraph-separate: "[  \f]*$"
+coding: utf-8
+end:
diff --git a/xemacs-packages/riece/doc/ja/README b/xemacs-packages/riece/doc/ja/README
new file mode 100644 (file)
index 0000000..dab3b82
--- /dev/null
@@ -0,0 +1,45 @@
+* これは何か?
+
+Riece は Emacs 向け IRC クライアントです。
+
+Riece には以下に挙げる特長があります:
+
+- 複数の IRC サーバに同時に接続可能
+- アドオンにより拡張機能の追加や取り外しが可能
+- 他の elisp パッケージに依存しないため、インストールが簡単
+- 設定が簡単で、前回起動時の設定を記録・復元する仕組みを提供
+- 段階的な操作説明書 (info 形式) が附属
+- 最新の IRC のクライアントプロトコル (RFC2812) に準拠
+
+* ディレクトリ構成
+
+このパッケージは以下のディレクトリから成ります:
+
+lisp/ - Emacs Lisp のファイル
+doc/  - 文書ファイル
+
+* 必要なもの
+
+- Emacs 20.7 以降、または XEmacs 21.4 以降
+- Ruby 1.8 以降 (任意)
+
+* インストール
+
+$ ./configure
+$ sudo make install
+
+~/.emacs 等に以下の一行を追加してください。
+
+  (autoload 'riece "riece" "Start Riece" t)
+
+XEmacs で使う場合には "--with-xemacs" オプションを configure スクリプ
+トに与えてください。また、"make install" の代わりに "make
+install-package" とすることでXEmacs のパッケージとしてインストールする
+ことができます。
+
+* マニュアル
+
+使い方は同梱のマニュアルに記載されています。
+マニュアルを読むには "M-x info" で以下のメニューを選択します。
+
+  * Riece-ja: (riece-ja).                   An IRC client for Emacsen
diff --git a/xemacs-packages/riece/doc/ja/README-hacking b/xemacs-packages/riece/doc/ja/README-hacking
new file mode 100644 (file)
index 0000000..5b77213
--- /dev/null
@@ -0,0 +1,406 @@
+-*- mode: outline; coding: iso-2022-jp -*-
+
+\e$B$3$NJ8=q$O!"\e(BRiece \e$B$N3+H/<T$H3+H/$K6=L#$N$"$k?M8~$1$G$9!#\e(B
+
+* \e$B3+H/%W%m%;%9\e(B
+
+** \e$B%P%0$NJs9p\e(B
+
+\e$B%P%0$r8+IU$1$?$i0J2<$KEPO?$7$F$/$@$5$$!#\e(B
+https://savannah.nongnu.org/bugs/?group=riece
+
+** \e$B3+H/HG%=!<%9%3!<%I$N<hF@\e(B
+
+\e$B$$$^$N$H$3$m\e(B Git \e$B$r;H$C$F$$$^$9!#3+H/HG$N%=!<%9%3!<%I$r%S%k%I$9$k$K$O\e(B
+\e$B0J2<$N<j=g$K=>$C$F$/$@$5$$!#\e(B
+
+(1) \e$B%b%8%e!<%k$N%A%'%C%/%"%&%H\e(B
+
+    git clone git://git.sv.gnu.org/riece.git
+
+(2) configure \e$B%9%/%j%W%H$N@8@.\e(B
+
+    ./bootstrap
+
+(3) configure \e$B%9%/%j%W%H$N5/F0\e(B
+
+    ./configure
+
+(4) \e$B%S%k%I$H%$%s%9%H!<%k\e(B
+
+    make
+    make install
+
+* \e$B%=!<%9$N9=@.\e(B
+
+** \e$B%b%8%e!<%k\e(B
+
+Riece \e$B$r9=@.$9$k\e(B elisp \e$B%b%8%e!<%k$r0J2<$KNs5s$7$^$9!#0MB84X78$N>e0L$K\e(B
+\e$B$"$k$b$N$r@h$K5s$2$^$9!#\e(B
+
+- riece-globals
+  \e$BBg0hJQ?t$NDj5A\e(B
+
+- riece-options
+  \e$B%f!<%6%*%W%7%g%s$NDj5A\e(B
+
+- riece-version
+  \e$B%P!<%8%g%s$NDj5A\e(B
+
+- riece-coding
+  \e$B%3!<%G%#%s%0%7%9%F%`4XO"$N4X?t$NDj5A\e(B
+
+- riece-complete
+  \e$B%_%K%P%C%U%!$G$NJd40$r=u$1$k4X?t$NDj5A\e(B
+
+- riece-addon
+  \e$B%"%I%*%s4IM}\e(B
+
+- riece-mode
+  riece-channel/riece-user \e$B%*%V%8%'%/%H$N%b!<%I4IM}\e(B
+
+- riece-identity
+  riece-channel/riece-user \e$B%*%V%8%'%/%H\e(B \e$B$NBg0hI=5-$rA`:n$9$k4X?t$NDj5A\e(B
+
+- riece-channel
+  riece-channel \e$B%*%V%8%'%/%H\e(B \e$B4XO"$NDj5A\e(B
+
+- riece-user
+  riece-user \e$B%*%V%8%'%/%H\e(B \e$B4XO"$NDj5A\e(B
+
+- riece-misc
+  \e$B;(B?$J4X?t$NDj5A\e(B
+
+- riece-signal
+  \e$B%7%0%J%k4IM}\e(B
+
+- riece-layout
+  \e$B%&%#%s%I%&%l%$%"%&%H4IM}\e(B
+
+- riece-display
+  \e$BI=<(MQ%P%C%U%!$N4IM}\e(B
+
+- riece-server
+  IRC \e$B%5!<%P$H$N@\B34IM}\e(B
+
+- riece-naming
+  \e$B%A%c%s%M%k$X$N%f!<%6$N;22C!&N%C&$r4IM}$9$k\e(B mediator
+
+- riece-message
+  riece-message \e$B%*%V%8%'%/%H\e(B \e$B4XO"$NDj5A\e(B
+
+- riece-filter
+  \e$B%W%m%;%9%U%#%k%?$N%(%s%H%j%]%$%s%H\e(B
+
+- riece-handle
+  \e$BDL>o$N%a%C%;!<%8$N%O%s%I%i!#\e(Briece-filter \e$B$+$i8F$P$l$k\e(B
+
+- riece-000
+  000\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$+$i8F$P$l$k\e(B
+
+- riece-200
+  200\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$+$i8F$P$l$k\e(B
+
+- riece-300
+  300\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$+$i8F$P$l$k\e(B
+
+- riece-400
+  400\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$+$i8F$P$l$k\e(B
+
+- riece-500
+  500\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$+$i8F$P$l$k\e(B
+
+- riece-commands
+  \e$B%3%^%s%I$NDj5A\e(B
+
+- riece-irc
+  IRC \e$B%W%m%H%3%k$KBP1~$7$?\e(B process-filter \e$B$J$I$N@_Dj\e(B
+
+- riece
+  \e$B5/F0;~$N%(%s%H%j%]%$%s%H!#3F%P%C%U%!$N%a%8%c!<%b!<%I$N@_Dj$J$I\e(B
+
+** \e$BL>A06u4V$N4IM}\e(B
+
+Riece \e$B$OF1;~$KJ#?t$N\e(B IRC \e$B%5!<%P$K@\B3$G$-$k$N$G!"\e(BIRC \e$B%5!<%PKh$KJL!9$N\e(B
+\e$BL>A06u4V$r4IM}$9$kI,MW$,$"$j$^$9!#$3$N$h$&$JL>A06u4V$K$O!"\e(BIRC \e$B%5!<%P$H\e(B
+\e$B$N@\B3%W%m%;%9$K7k$SIU$1$i$l$?%P%C%U%!$N%m!<%+%kJQ?t$r2p$7$F%"%/%;%9$7\e(B
+\e$B$^$9!#\e(B
+
+*** \e$B%W%m%;%9%P%C%U%!$N<hF@\e(B
+
+IRC \e$B%5!<%P$H$N@\B3%W%m%;%9$r<hF@$9$k$K$O\e(B IRC \e$B%5!<%P$NL>A0$rCN$kI,MW$,\e(B
+\e$B$"$j$^$9!#\e(BIRC \e$B%5!<%P$NL>A0$O0J2<$K5s$2$k$$$/$D$+$NJ}K!$G<hF@$G$-$^$9!#\e(B
+
+(1) \e$BJQ?t\e(B riece-overrinding-server-name \e$B$NCM\e(B
+
+(2) \e$BJQ?t\e(B riece-server-name \e$B$NCM\e(B
+
+    riece-server-name \e$B$,%+%l%s%H%P%C%U%!$N%m!<%+%kJQ?t$G$"$k$J$i$P!"4{$K%W\e(B
+    \e$B%m%;%9$N%P%C%U%!$K$$$k$H$_$J$;$k$N$G!"\e(Briece-server-name \e$B$NCM$=$N$b$N\e(B
+
+(3) \e$BA*BrCf$N%A%c%s%M%k$rI=$9\e(B riece-identity \e$B%*%V%8%'%/%H$+$i@Z$j=P$7$?\e(B 
+    IRC \e$B%5!<%P$NL>A0\e(B
+
+\e$B$3$&$7$F<hF@$7$?\e(B IRC \e$B%5!<%P$NL>A0$r0z?t$K4X?t\e(B riece-server-process \e$B$r\e(B
+\e$B8F=P$7!"%5!<%P$N%W%m%;%9$r<hF@$7$^$9!#\e(B
+
+*** riece-identity \e$B%*%V%8%'%/%H\e(B
+
+\e$BJ#?t$N\e(B IRC \e$B%5!<%P$K@\B3$7$F$$$k>l9g!"%A%c%s%M%kL>$d%K%C%/%M!<%`$rBg0h\e(B
+\e$BE*$K6hJL$9$kI,MW$,@8$8$^$9!#$3$N$h$&$JL>A0$rI=8=$9$k$N$,\e(B
+riece-identity \e$B%*%V%8%'%/%H$G$9!#\e(B
+
+riece-identity \e$B%*%V%8%'%/%H$O0J2<$N\e(B 2 \e$B$D$NMWAG$r$b$D%Y%/%?!<$G$9!#\e(B
+
+- prefix
+  \e$B%A%c%s%M%kL>$d%K%C%/%M!<%`$J$I!"\e(BIRC \e$B%5!<%P$K8GM-$NL>A0\e(B
+
+- server
+  IRC \e$B%5!<%P$NL>A0\e(B
+
+riece-identity \e$B%*%V%8%'%/%H$KE,MQ2DG=$JA`:n$K$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#\e(B
+
+- riece-make-identity prefix &optional server
+  riece-identity \e$B%*%V%8%'%/%H$r?75,$K:n@.$7$^$9!#\e(Bserver \e$B0z?t$,>JN,$5$l$?\e(B
+  \e$B>l9g$K$O!"4X?t\e(B riece-find-server-name \e$B$G<hF@$7$?%5!<%PL>$r;H$$$^$9\e(B
+
+- riece-identity-prefix identity
+  riece-identity \e$B%*%V%8%'%/%H$+$i\e(B IRC \e$B%5!<%P$K8GM-$NL>A0$r@Z$j=P$7$^$9!#\e(B
+
+- riece-identity-server identity
+  riece-identity \e$B%*%V%8%'%/%H$+$i%5!<%P$NL>A0$r@Z$j=P$7$^$9!#\e(B
+
+- riece-identity-equal ident1 ident2
+  2 \e$B$D$N\e(B riece-identity \e$B%*%V%8%'%/%H$,F1Ey$G$"$k$+D4$Y$^$9!#\e(B
+
+- riece-identity-equal-no-server ident1 ident2
+  2 \e$B$D$N\e(B riece-identity \e$B%*%V%8%'%/%H$N!"\e(BIRC \e$B%5!<%P$K8GM-$NL>A0$,F1Ey$G$"\e(B
+  \e$B$k$+D4$Y$^$9!#\e(B
+
+- riece-identity-member elt list
+  riece-identity \e$B%*%V%8%'%/%H\e(B elt \e$B$,\e(B list \e$B$K4^$^$l$k$+D4$Y$^$9!#\e(B
+
+*** \e$B%A%c%s%M%k$H%f!<%6$N4IM}\e(B
+
+riece-identity \e$B%*%V%8%'%/%H$+$i@Z$j=P$5$l$?\e(B IRC \e$B%5!<%P$K8GM-$NL>A0!"$9\e(B
+\e$B$J$o$A%A%c%s%M%kL>$H$H%K%C%/%M!<%`$K$h$jI=$o$5$l$k%A%c%s%M%k$H%f!<%6$N\e(B
+\e$B<BBN$O$=$l$>$l\e(B riece-channel \e$B%*%V%8%'%/%H$H\e(B riece-user \e$B%*%V%8%'%/%H$G\e(B
+\e$BI=8=$5$l$^$9!#\e(B
+
+**** riece-channel \e$B%*%V%8%'%/%H\e(B
+
+riece-channel \e$B$O%A%c%s%M%k$rI=$9%*%V%8%'%/%H$G!"0J2<$NMWAG$r;}$A$^$9!#\e(B
+
+- users
+  \e$B;22C$7$F$$$k%f!<%6$N%K%C%/%M!<%`$N%j%9%H\e(B
+
+- operators
+  \e$B%*%Z%l!<%?8"8B$r$b$D%f!<%6$N%K%C%/%M!<%`$N%j%9%H\e(B
+
+- speakers
+  \e$BH/8@8"$r$b$D%f!<%6$N%K%C%/%M!<%`$N%j%9%H\e(B
+
+- modes
+  \e$B%A%c%s%M%k$N%b!<%I\e(B
+
+- banned
+  MODE +b \e$B$G;XDj$5$l$?%Q%?!<%s$N0lMw\e(B
+
+- invited
+  MODE +I \e$B$G;XDj$5$l$?%Q%?!<%s$N0lMw\e(B
+
+- uninvited
+  MODE +e \e$B$G;XDj$5$l$?%Q%?!<%s$N0lMw\e(B
+
+**** riece-user \e$B%*%V%8%'%/%H\e(B
+
+riece-user \e$B$O!"\e(BIRC \e$B$K;22C$7$F$$$k%f!<%6$rI=$9%*%V%8%'%/%H$G!"0J2<$NMW\e(B
+\e$BAG$r;}$A$^$9!#\e(B
+
+- channels
+  \e$B;22C$7$F$$$k%A%c%s%M%kL>$N%j%9%H\e(B
+
+- user-at-host
+  "<user>@<host>" \e$B$N7A$GM?$($i$l$k%f!<%6$N@\B3>pJs\e(B
+
+- modes
+  \e$B%f!<%6$N%b!<%I\e(B
+
+- away
+  \e$BN%@JCf$+$I$&$+\e(B
+
+**** Mediator \e$B%Q%?!<%s\e(B
+
+\e$B%A%c%s%M%k$X$N%f!<%6$N;22C!&N%C&$r4IM}$9$k$?$a$K!"\e(B riece-naming \e$B%b%8%e!<\e(B
+\e$B%k$r;H$$$^$9!#\e(Briece-naming \e$B$O!"%G%6%$%s%Q%?!<%s$G$$$&$H$3$m$N\e(B Mediator
+\e$B%Q%?!<%s$KAjEv$9$k$b$N$G$9!#\e(B
+
+riece-naming \e$B$r2p$9$k$3$H$G!"A0=R$N\e(B riece-channel, riece-user \e$B%*%V%8%'\e(B
+\e$B%/%H$rD>@\A`:n$9$k$3$H$J$/!"0BA4$KL>A06u4V$K%"%/%;%9$9$k$3$H$,$G$-$^$9!#\e(B
+
+riece-naming \e$B$,Ds6!$9$k<g$J4X?t$O0J2<$N\e(B 3 \e$B$D$G$9!#\e(B
+
+- riece-naming-assert-join user-name channel-name
+  \e$B%f!<%6$,%A%c%s%M%k$K;22C$7$?$3$H$rI=L@$7$^$9\e(B
+
+- riece-naming-assert-part user-name channel-name
+  \e$B%f!<%6$,%A%c%s%M%k$+$iN%C&$7$?$3$H$rI=L@$7$^$9\e(B
+
+- riece-naming-assert-rename old-name new-name
+  \e$B%f!<%6$NL>A0$,JQ99$5$l$?$3$H$rI=L@$7$^$9\e(B
+
+** \e$B%7%0%J%k\e(B
+
+\e$B%7%0%J%k$H$O!"2hLL$N:FIA2h$r8zN(NI$/9T$&$?$a$K!"%$%Y%s%H$HIA2hBP>]$N%*\e(B
+\e$B%V%8%'%/%H\e(B(\e$B%P%C%U%!$d!"%b!<%I%i%$%s$N0u\e(B)\e$B$r7k$SIU$1$k5!9=$G$9!#\e(B
+
+\e$B%&%#%s%I%&$N:FIA2h$rH<$&%$%Y%s%H$,H/@8$9$k$H!"%7%0%J%k$,Aw=P$5$l$^$9!#\e(B
+\e$B%7%0%J%k$N35G0$O!"\e(BQt \e$B$d\e(B GTK+ \e$B$H$$$C$?0lHLE*$J\e(B GUI \e$B%D!<%k%-%C%H$KMQ0U$5\e(B
+\e$B$l$F$$$k$b$N$HF1MM$G$9!#\e(B
+
+\e$B%7%0%J%k$rAw?.$9$k$K$O!"\e(Briece-emit-signal \e$B$r;H$$$^$9!#\e(B
+
+- riece-emit-signal signal-name &rest args
+  \e$B0z?t\e(B signal-name \e$B$G;X<($5$l$k%7%0%J%k$r!"0z?t\e(B args \e$B$H$H$b$KAw=P$7$^\e(B
+  \e$B$9\e(B
+
+\e$B%7%0%J%k$K1~Ez$9$k=hM}$O!"\e(Briece-connect-signal \e$B$r;H$C$FDj5A$7$^$9!#\e(B
+
+- riece-connect-signal signal-name slot-function &optional
+                       filter-function handback
+
+  \e$B0z?t\e(B signal-name \e$B$G;XDj$5$l$?%7%0%J%k$K1~Ez$9$k4X?t\e(B slot-function \e$B$r\e(B
+  \e$B@_Dj$7$^$9!#\e(Bslot-function \e$B$K;XDj$5$l$?4X?t$O\e(B 2 \e$B$D$N0z?t$r<h$j$^$9!#\e(B
+  \e$B$R$H$D$O%7%0%J%k$G!"$b$&0l$D$O!"0z?t\e(B handback \e$B$GM?$($i$l$?%*%V%8%'%/\e(B
+  \e$B%H$,$=$N$^$^EO$5$l$^$9!#\e(B
+
+  \e$B0z?t\e(B filter-function \e$B$O!"<u?.$7$?%7%0%J%k$K1~Ez$9$Y$-$+$I$&$+$rH=Dj\e(B
+  \e$B$9$k4X?t$G$9!#$3$N4X?t$O0z?t$H$7$F%7%0%J%k%*%V%8%'%/%H$r<u$1<h$j!"\e(B
+  nil \e$B$^$?$O\e(B t \e$B$rJV$7$^$9!#JV$jCM$,\e(B nil \e$B$N>l9g$K$O!"\e(Bslot-function \e$B$O<B\e(B
+  \e$B9T$5$l$^$;$s!#\e(B
+
+\e$B%7%0%J%k%*%V%8%'%/%H$K%"%/%;%9$9$k$K$O!"0J2<$N4X?t$r;H$$$^$9!#\e(B
+
+- riece-signal-name signal
+  \e$B%7%0%J%k$NL>A0$rJV$7$^$9!#\e(B
+
+- riece-signal-args
+  \e$B%7%0%J%k$NAw?.;~$KM?$($i$l$?0z?t$rJV$7$^$9!#\e(B
+
+\e$B8=:_!"0J2<$N%7%0%J%k$,;HMQ$5$l$F$$$^$9!#\e(B
+
+- channel-list-changed
+  \e$B;22C$7$F$$$k%A%c%s%M%k$N0lMw$NJQ2=\e(B
+
+- user-list-changed
+  \e$B%A%c%s%M%k$N;22C<T0lMw$NJQ2=\e(B
+  (\e$B0z?t$O%A%c%s%M%k$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- channel-switched
+  \e$B8=:_$N%A%c%s%M%k$r0\F0\e(B
+
+- user-joined-channel
+  \e$B%f!<%6$,%A%c%s%M%k$K;22C\e(B
+  (\e$B0z?t$O!"%f!<%6$*$h$S%A%c%s%M%k$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- user-left-channel
+  \e$B%f!<%6$,%A%c%s%M%k$+$iN%C&\e(B
+  (\e$B0z?t$O!"%f!<%6$*$h$S%A%c%s%M%k$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- user-renamed
+  \e$B%f!<%6$,L>A0$rJQ99\e(B
+  (\e$B0z?t$O!"0JA0$H8=:_$NL>A0$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- user-away-changed
+  \e$B%f!<%6$NN%@J>uBV$NJQ2=\e(B
+  (\e$B0z?t$O!"%f!<%6$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- user-operator-changed
+  \e$B%f!<%6$N%*%Z%l!<%?>uBV$NJQ2=\e(B
+  (\e$B0z?t$O!"%f!<%6$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- channel-topic-changed
+  \e$B%A%c%s%M%k$N%H%T%C%/$NJQ2=\e(B
+  (\e$B0z?t$O!"%A%c%s%M%k$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- channel-modes-changed
+  \e$B%A%c%s%M%k$N%b!<%I$NJQ2=\e(B
+  (\e$B0z?t$O!"%A%c%s%M%k$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- channel-operators-changed
+  \e$B%A%c%s%M%k$G%*%Z%l!<%?8"8B$r;}$D%f!<%6$N0lMw$NJQ2=\e(B
+  (\e$B0z?t$O!"%A%c%s%M%k$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- channel-speakers-changed
+  \e$B%A%c%s%M%k$GH/8@8"$r;}$D%f!<%6$N0lMw$NJQ2=\e(B
+  (\e$B0z?t$O!"%A%c%s%M%k$KAjEv$9$k\e(B riece-identity \e$B%*%V%8%'%/%H\e(B)
+
+- buffer-freeze-changed
+  \e$B%P%C%U%!$NE`7k>uBV$NJQ2=\e(B
+  (\e$B0z?t$O%P%C%U%!\e(B)
+
+** \e$B%"%I%*%s$N=q$-J}\e(B
+
+\e$B%"%I%*%s$N>r7o$rK~$?$9%b%8%e!<%k$O0J2<$N4X?t$rDs6!$7$^$9!#\e(B
+
+- <\e$B%b%8%e!<%kL>\e(B>-requires (\e$B%*%W%7%g%s\e(B)
+  \e$B0MB8$9$kB>$N%"%I%*%s\e(B(\e$B%7%s%\%k$N%j%9%H\e(B)\e$B$rJV$7$^$9\e(B
+
+- <\e$B%b%8%e!<%kL>\e(B>-insinuate
+  \e$B=i4|2==hM}$r9T$$$^$9\e(B
+
+- <\e$B%b%8%e!<%kL>\e(B>-uninstall (\e$B%*%W%7%g%s\e(B)
+  \e$B%"%I%*%s$r%"%s%$%s%9%H!<%k$9$k$H8F$P$l$^$9\e(B
+
+- <\e$B%b%8%e!<%kL>\e(B>-enable (\e$B%*%W%7%g%s\e(B)
+  \e$B%"%I%*%s$NM-8z$K$9$k$H8F$P$l$^$9\e(B
+
+- <\e$B%b%8%e!<%kL>\e(B>-disable (\e$B%*%W%7%g%s\e(B)
+  \e$B%"%I%*%s$NL58z$K$9$k$H8F$P$l$^$9\e(B
+
+\e$B$^$?!"%"%I%*%s$N4JC1$J@bL@$r!"JQ?t\e(B <\e$B%b%8%e!<%kL>\e(B>-description \e$B$K@_Dj$9\e(B
+\e$B$k$HNI$$$G$7$g$&!#$3$NJ8;zNs$O\e(B C-c ^ (M-x riece-command-list-addons)
+\e$B$K$h$k%"%I%*%s$N0lMw$GI=<($5$l$^$9!#\e(B
+
+\e$B%"%I%*%s$NM-8z!&L58z$N>uBV$O!"\e(B<\e$B%b%8%e!<%kL>\e(B> \e$B$N%7%s%\%k$K\e(B 
+\e$BIUM?$5$l$k\e(B riece-addon-enabled \e$B%W%m%Q%F%#$GD4$Y$k$3$H$,$G$-$^$9!#\e(B
+
+Riece \e$B$O5/F0;~$K0J2<$N=hM}$r9T$$$^$9!#\e(B
+
+(1) \e$BJQ?t\e(B riece-addons \e$B$KNs5s$5$l$?%b%8%e!<%k$rFI$_9~$`\e(B
+
+(2) \e$B$=$l$>$l$N%b%8%e!<%k$KBP$7!"\e(B<\e$B%b%8%e!<%kL>\e(B>-requires \e$B$,MQ0U\e(B
+    \e$B$5$l$F$$$l$P8F$S=P$7!"0MB8%0%i%U$r:n$k\e(B
+
+(3) \e$B0MB8%0%i%U$KBP$7$F%H%]%m%8%+%k%=!<%H$r9T$&\e(B
+
+(4) \e$BF@$i$l$?0MB8=g=x$K=>$C$F\e(B <\e$B%b%8%e!<%kL>\e(B>-insinuate \e$B8F$S=P$9\e(B
+
+(5) \e$B$b$7!"%"%I%*%s$,M-8z2=!&L58z2=$KBP1~$7$F$*$j!"L@<(E*$KL58z2=$5$l$F\e(B
+    \e$B$$$J$1$l$P!"\e(B<\e$B%b%8%e!<%kL>\e(B>-enable \e$B$r8F$S=P$9!#\e(B
+
+\e$B:n@.$7$?%"%I%*%s$O!"\e(Bload-path \e$B$NDL$C$?%G%#%l%/%H%j$+!"\e(B
+~/.riece/addons/ \e$B0J2<$KG[CV$9$k$HAH$_9~$_2DG=$J>uBV$K$J$j$^$9!#\e(B
+
+** \e$B%O%s%I%i%U%C%/\e(B
+
+Riece \e$B$K$O!"%O%s%I%i%U%C%/$H8F$P$l$kFCJL$J0UL#$r;}$D%U%C%/$,$"$j$^$9!#\e(B
+\e$B%O%s%I%i%U%C%/$O\e(B IRC \e$B$N%a%C%;!<%8$r<u$1<h$C$?A08e$G<B9T$5$l$^$9!#\e(B
+
+<message> \e$B$r\e(B IRC \e$B$N%a%C%;!<%8$r>.J8;z$K$7$?$b$N$H$9$k$H!"%O%s%I%i%U%C\e(B
+\e$B%/$O<!$NFs$D$G$9!#\e(B
+
+- riece-<message>-hook
+  \e$B%a%C%;!<%8$,FO$$$?$H$-$K:G=i$K8F$P$l$k%U%C%/\e(B
+
+- riece-after-<message>-hook
+  \e$B%a%C%;!<%8$N=hM}$,=*$o$C$?8e$K8F$P$l$k%U%C%/\e(B
+
+\e$BNc$($P!"\e(BPRIVMSG \e$B$K4X$7$F$O!"\e(Briece-privmsg-hook,
+riece-after-privmsg-hook \e$B$NFs$D$N%U%C%/$,8F$P$l$^$9!#\e(B
+
+\e$B$3$3$G\e(B riece-<message>-hook \e$B$NJV$jCM$K$O0UL#$,$"$j!"\e(Bt \e$B$rJV$9$b$N$,$"$l\e(B
+\e$B$P!"$=$N8e$N=hM}$r$*$3$J$$$^$;$s!#$^$?!"$=$N>l9g$K$O\e(B
+riece-after-<message>-hook \e$B$b8F$S=P$5$l$^$;$s!#\e(B
+
+\e$B%U%C%/$N0z?t$K$O\e(B RFC2812 \e$B$N\e(B prefix \e$B$H\e(B parameters \e$B$,EO$j$^$9!#\e(B
diff --git a/xemacs-packages/riece/doc/ptexinfmt.el b/xemacs-packages/riece/doc/ptexinfmt.el
new file mode 100644 (file)
index 0000000..d22ad8c
--- /dev/null
@@ -0,0 +1,1026 @@
+;;; ptexinfmt.el -- portable Texinfo formatter. -*- lexical-binding: t -*-
+
+;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993,
+;;               1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1999 Yoshiki Hayashi <yoshiki@xemacs.org>
+;; Copyright (C) 2000 TAKAHASHI Kaoru <kaoru@kaisei.org>
+
+;; Author: TAKAHASHI Kaoru <kaoru@kaisei.org>
+;;     Yoshiki Hayashi <yoshiki@xemacs.org>
+;;     Katsumi Yamaoka <yamaoka@jpl.org>
+;; Maintainer: TAKAHASHI Kaoru <kaoru@kaisei.org>
+;; Created: 7 Jul 2000
+;; Keywords: maint, tex, docs, emulation, compatibility
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or (at
+;; your option) any later version.
+
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; Original code: Yoshiki Hayashi <yoshiki@xemacs.org>
+;;     makeinfo.el (gnujdoc project)
+
+;; Support texinfmt.el 2.32 or later.
+
+;; Modified by Yamaoka not to use APEL functions.
+
+;; Unimplemented command:
+;;  @abbr{ABBREVIATION}
+;;  @float ... @end float, @caption{TEXT}, @shortcaption{TEXT}, @listoffloats
+;;  @deftypecv[x]
+;;  @headitem
+;;  @comma{}
+;;  @quotation (optional arguments)
+;;  @acronym{ACRONYM[, MEANING]} (optional argument)
+;;  @dofirstparagraphindent
+;;  @indent
+;;  @verbatiminclude FILENAME
+;;  @\
+;;  @definfoenclose phoo,//,\\
+;;  @deftypeivar CLASS DATA-TYPE VARIABLE-NAME
+;;  @deftypeop CATEGORY CLASS DATA-TYPE NAME ARGUMENTS...
+;;  @allowcodebreaks false
+;;  @thischapternum
+;;  @quotedblleft @quotedblright
+;;  @quoteleft @quoteright  @quotedblbase @quotesinglbase
+;;  @guillemetleft @guillemetright @guilsinglleft @guilsinglright.
+;;  @clicksequence, @click, @clickstyle, @arrow
+
+;;; Code:
+
+(require 'texinfmt)
+
+;;; Broken
+(defvar ptexinfmt-disable-broken-notice-flag t
+  "If non-nil disable notice, when call `ptexinfmt-broken-facility'.
+This is last argument in `ptexinfmt-broken-facility'.")
+
+(put 'ptexinfmt-broken-facility 'lisp-indent-function 'defun)
+(defmacro ptexinfmt-broken-facility (facility docstring assertion
+                                             &optional _dummy)
+  "Declare a symbol FACILITY is broken if ASSERTION is nil.
+DOCSTRING will be printed if ASSERTION is nil and
+`ptexinfmt-disable-broken-notice-flag' is nil."
+  `(let ((facility ',facility)
+        (docstring ,docstring)
+        (assertion (eval ',assertion)))
+     (put facility 'broken (not assertion))
+     (if assertion
+        nil
+       (put facility 'broken-docstring docstring)
+       (if ptexinfmt-disable-broken-notice-flag
+          nil
+        (message "BROKEN FACILITY DETECTED: %s" docstring)))))
+
+(put 'ptexinfmt-defun-if-broken 'lisp-indent-function 'defun)
+(defmacro ptexinfmt-defun-if-broken (&rest args)
+  "Redefine a function just like `defun' if it is considered broken."
+  (let ((name (list 'quote (car args))))
+    (setq args (cdr args))
+    `(prog1
+        ,name
+       (if (get ,name 'broken)
+          (defalias ,name
+            (function (lambda ,@args)))))))
+
+(put 'ptexinfmt-defun-if-void 'lisp-indent-function 'defun)
+(defmacro ptexinfmt-defun-if-void (&rest args)
+  "Define a function just like `defun' unless it is already defined."
+  (let ((name (list 'quote (car args))))
+    (setq args (cdr args))
+    `(prog1
+        ,name
+       (if (fboundp ,name)
+          nil
+        (defalias ,name
+          (function (lambda ,@args)))))))
+
+(put 'ptexinfmt-defvar-if-void 'lisp-indent-function 'defun)
+(defmacro ptexinfmt-defvar-if-void (&rest args)
+  "Define a variable just like `defvar' unless it is already defined."
+  (let ((name (car args)))
+    (setq args (cdr args))
+    `(prog1
+        (defvar ,name)
+       (if (boundp ',name)
+          nil
+        (defvar ,name ,@args)))))
+
+;; sort -fd
+(ptexinfmt-broken-facility texinfo-format-printindex
+  "Can't sort on Mule for Windows."
+  (if (and (memq system-type '(windows-nt ms-dos))
+;;; I don't know version threshold.
+;;;       (string< texinfmt-version "2.37 of 24 May 1997")
+          (boundp 'MULE) (not (featurep 'meadow))) ; Mule for Windows
+      nil
+    t))
+
+;; @var{METASYNTACTIC-VARIABLE}
+(defvar texinfo-enclosure-list)
+(defvar texinfo-alias-list)
+(ptexinfmt-broken-facility texinfo-format-var
+  "Don't perse @var argument."
+  (condition-case nil
+      (with-temp-buffer
+       (let (texinfo-enclosure-list texinfo-alias-list)
+         (texinfo-mode)
+         (insert "@var{@asis{foo}}\n")
+         (texinfo-format-expand-region (point-min) (point-max))
+         t))
+    (error nil)))
+
+;; @xref{NODE-NAME[, CROSS-REFERENCE-NAME, TITLE-OR-TOPIC,
+;;     INFO-FILE-NAME, PRINTED-MANUAL-TITLE]}.
+(ptexinfmt-broken-facility texinfo-format-xref
+  "Can't format @xref, 1st argument is empty."
+  (condition-case nil
+      (with-temp-buffer
+       (let (texinfo-enclosure-list texinfo-alias-list)
+         (texinfo-mode)
+         (insert "@xref{, xref, , file}\n")
+         (texinfo-format-expand-region (point-min) (point-max))
+         t))
+    (error nil)))
+
+;; @uref{URL[, TEXT][, REPLACEMENT]}
+(ptexinfmt-broken-facility texinfo-format-uref
+  "Parse twice @uref argument."
+  (condition-case nil
+      (with-temp-buffer
+       (let (texinfo-enclosure-list texinfo-alias-list)
+         (texinfo-mode)
+         (insert "@uref{mailto:foo@@noncommand.example.com}\n")
+         (texinfo-format-expand-region (point-min) (point-max))
+         t))
+    (error nil)))
+
+;; @multitable
+(ptexinfmt-broken-facility texinfo-multitable-widths
+  "`texinfo-multitable-widths' unsupport wide-char."
+  (if (fboundp 'texinfo-multitable-widths)
+      (with-temp-buffer
+       (let ((str (string (make-char 'japanese-jisx0208 73 125)
+                          (make-char 'japanese-jisx0208 57 45)
+                          (make-char 'japanese-jisx0208 74 56)
+                          (make-char 'japanese-jisx0208 59 122))))
+         (texinfo-mode)
+         (insert (format " {%s}\n" str))
+         (goto-char (point-min))
+         (if (= (car (texinfo-multitable-widths)) (length str))
+             t
+           nil)))
+    ;; function definition is void
+    nil))
+
+(ptexinfmt-broken-facility texinfo-multitable-item
+  "`texinfo-multitable-item' unsupport wide-char."
+  (not (get 'texinfo-multitable-widths 'broken)))
+
+
+;;; Hardcopy and HTML (discard)
+;; html
+(put 'documentlanguage 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'documentencoding 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'documentdescription 'texinfo-format 'texinfo-discard-line-with-args)
+
+;; size
+(put 'smallbook 'texinfo-format 'texinfo-discard-line)
+(put 'letterpaper 'texinfo-format 'texinfo-discard-line)
+(put 'afourpaper 'texinfo-format 'texinfo-discard-line)
+(put 'afourlatex 'texinfo-format 'texinfo-discard-line)
+(put 'afourwide 'texinfo-format 'texinfo-discard-line)
+(put 'afivepaper 'texinfo-format 'texinfo-discard-line)
+(put 'pagesizes 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'fonttextsize 'texinfo-format 'texinfo-discard-line-with-args)
+
+;; style
+(put 'setchapternewpage 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'kbdinputstyle 'texinfo-format 'texinfo-discard-line-with-args)
+
+;; flags
+(put 'setcontentsaftertitlepage 'texinfo-format 'texinfo-discard-line)
+(put 'setshortcontentsaftertitlepage 'texinfo-format 'texinfo-discard-line)
+(put 'novalidate 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'frenchspacing 'texinfo-format 'texinfo-discard-line-with-args)
+
+;; head & foot
+(put 'headings 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'evenfooting 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'evenheading 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'oddfooting 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'oddheading 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'everyfooting 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'everyheading 'texinfo-format 'texinfo-discard-line-with-args)
+
+;; misc
+(put 'page 'texinfo-format 'texinfo-discard-line)
+(put 'hyphenation 'texinfo-format 'texinfo-discard-command-and-arg)
+
+;; @slanted{TEXT} (makeinfo 4.8 or later)
+(put 'slanted 'texinfo-format 'texinfo-format-noop)
+
+;; @sansserif{TEXT} (makeinfo 4.8 or later)
+(put 'sansserif 'texinfo-format 'texinfo-format-noop)
+
+;; @tie{} (makeinfo 4.3 or later)
+(put 'tie 'texinfo-format 'texinfo-format-tie)
+(ptexinfmt-defun-if-void texinfo-format-tie ()
+  (texinfo-parse-arg-discard)
+  (insert " "))
+
+\f
+;;; Directory File
+;; @direcategory DIRPART
+(put 'dircategory 'texinfo-format 'texinfo-format-dircategory)
+(ptexinfmt-defun-if-void texinfo-format-dircategory ()
+  (let ((str (texinfo-parse-arg-discard)))
+    (delete-region (point)
+                  (progn
+                    (skip-chars-forward " ")
+                    (point)))
+    (insert "INFO-DIR-SECTION " str "\n")))
+
+;; @direntry ... @end direntry
+(put 'direntry 'texinfo-format 'texinfo-format-direntry)
+(ptexinfmt-defun-if-void texinfo-format-direntry ()
+  (texinfo-push-stack 'direntry nil)
+  (texinfo-discard-line)
+  (insert "START-INFO-DIR-ENTRY\n"))
+
+(put 'direntry 'texinfo-end 'texinfo-end-direntry)
+(ptexinfmt-defun-if-void texinfo-end-direntry ()
+  (texinfo-discard-command)
+  (insert "END-INFO-DIR-ENTRY\n\n")
+  (texinfo-pop-stack 'direntry))
+
+
+;;; Block Enclosing
+;; @detailmenu ... @end detailmenu
+(put 'detailmenu 'texinfo-format 'texinfo-discard-line)
+(put 'detailmenu 'texinfo-end 'texinfo-discard-command)
+
+;; @smalldisplay ... @end smalldisplay
+(put 'smalldisplay 'texinfo-format 'texinfo-format-example)
+(put 'smalldisplay 'texinfo-end 'texinfo-end-example)
+
+;; @smallformat ... @end smallformat
+(put 'smallformat 'texinfo-format 'texinfo-format-flushleft)
+(put 'smallformat 'texinfo-end 'texinfo-end-flushleft)
+
+;; @cartouche  ... @end cartouche
+(put 'cartouche 'texinfo-format 'texinfo-discard-line)
+(put 'cartouche 'texinfo-end 'texinfo-discard-command)
+
+
+;;; Conditional
+;; @ifnottex ... @end ifnottex (makeinfo 3.11 or later)
+(put 'ifnottex 'texinfo-format 'texinfo-discard-line)
+(put 'ifnottex 'texinfo-end 'texinfo-discard-command)
+
+;; @ifnothtml ... @end ifnothtml (makeinfo 3.11 or later)
+(put 'ifnothtml 'texinfo-format 'texinfo-discard-line)
+(put 'ifnothtml 'texinfo-end 'texinfo-discard-command)
+
+;; @ifnotplaintext ... @end ifnotplaintext (makeinfo 4.2 or later)
+(put 'ifnotplaintext 'texinfo-format 'texinfo-discard-line)
+(put 'ifnotplaintext 'texinfo-end 'texinfo-discard-command)
+
+;; @ifnotdocbook ... @end ifnotdocbook (makeinfo 4.7 or later)
+(put 'ifnotdocbook 'texinfo-format 'texinfo-discard-line)
+(put 'ifnotdocbook 'texinfo-end 'texinfo-discard-command)
+
+;; @ifnotinfo ... @end ifnotinfo (makeinfo 3.11 or later)
+(put 'ifnotinfo 'texinfo-format 'texinfo-format-ifnotinfo)
+(ptexinfmt-defun-if-void texinfo-format-ifnotinfo ()
+  (delete-region texinfo-command-start
+                (progn (re-search-forward "@end ifnotinfo[ \t]*\n")
+                       (point))))
+
+;; @html ... @end html (makeinfo 3.11 or later)
+(put 'html 'texinfo-format 'texinfo-format-html)
+(ptexinfmt-defun-if-void texinfo-format-html ()
+  (delete-region texinfo-command-start
+                (progn (re-search-forward "@end html[ \t]*\n")
+                       (point))))
+
+;; @docbook ... @end docbook (makeinfo 4.7 or later)
+(put 'docbook 'texinfo-format 'texinfo-format-docbook)
+(ptexinfmt-defun-if-void texinfo-format-docbook ()
+  (delete-region texinfo-command-start
+                (progn (re-search-forward "@end docbook[ \t]*\n")
+                       (point))))
+
+;; @ifhtml ... @end ifhtml (makeinfo 3.8 or later)
+(put 'ifhtml 'texinfo-format 'texinfo-format-ifhtml)
+(defun texinfo-format-ifhtml ()
+  (delete-region texinfo-command-start
+                (progn (re-search-forward "@end ifhtml[ \t]*\n")
+                       (point))))
+
+;; @ifplaintext ... @end ifplaintext (makeinfo 4.2 or later)
+(put 'ifplaintext 'texinfo-format 'texinfo-format-ifplaintext)
+(ptexinfmt-defun-if-void texinfo-format-ifplaintext ()
+  (delete-region texinfo-command-start
+                (progn (re-search-forward "@end ifplaintext[ \t]*\n")
+                       (point))))
+
+;; @ifdocbook ... @end ifdocbook (makeinfo 4.7 or later)
+(put 'ifdocbook 'texinfo-format 'texinfo-format-ifdocbook)
+(ptexinfmt-defun-if-void texinfo-format-ifdocbook ()
+  (delete-region texinfo-command-start
+                (progn (re-search-forward "@end ifdocbook[ \t]*\n")
+                       (point))))
+
+\f
+;;; Marking
+;; @env{ENVIRONMENT-VARIABLE}
+(put 'env 'texinfo-format 'texinfo-format-code)
+
+;; @command{COMMAND-NAME}
+(put 'command 'texinfo-format 'texinfo-format-code)
+
+;; @indicateurl{INDICATEURL}
+(put 'indicateurl 'texinfo-format 'texinfo-format-code)
+
+;; @url{URL[, DISPLAYED-TEXT][, REPLACEMENT}
+(put 'url 'texinfo-format 'texinfo-format-uref)        ; Texinfo 4.7
+
+;; @acronym{ACRONYM}
+(put 'acronym 'texinfo-format 'texinfo-format-var)
+
+;; @var{METASYNTACTIC-VARIABLE}
+(ptexinfmt-defun-if-broken texinfo-format-var ()
+  (let ((arg (texinfo-parse-expanded-arg)))
+    (texinfo-discard-command)
+    (insert (upcase arg))))
+
+;; @key{KEY-NAME}
+(put 'key 'texinfo-format 'texinfo-format-key)
+(ptexinfmt-defun-if-void texinfo-format-key ()
+  (insert (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @email{EMAIL-ADDRESS[, DISPLAYED-TEXT]}
+(put 'email 'texinfo-format 'texinfo-format-email)
+(ptexinfmt-defun-if-void texinfo-format-email ()
+  "Format EMAIL-ADDRESS and optional DISPLAYED-TXT.
+Insert < ... > around EMAIL-ADDRESS."
+  (let ((args (texinfo-format-parse-args)))
+  (texinfo-discard-command)
+    ;; if displayed-text
+    (if (nth 1 args)
+       (insert (nth 1 args) " <" (nth 0 args) ">")
+      (insert "<" (nth 0 args) ">"))))
+
+;; @option{OPTION-NAME}
+(put 'option 'texinfo-format 'texinfo-format-option)
+(ptexinfmt-defun-if-void texinfo-format-option ()
+  "Insert ` ... ' around arg unless inside a table; in that case, no quotes."
+  ;; `looking-at-backward' not available in v. 18.57, 20.2
+  ;; searched-for character is a control-H
+  (if (not (search-backward "\010"
+                           (save-excursion (beginning-of-line) (point))
+                           t))
+      (insert "`" (texinfo-parse-arg-discard) "'")
+    (insert (texinfo-parse-arg-discard)))
+  (goto-char texinfo-command-start))
+
+;; @verb{<char>TEXT<char>}  (makeinfo 4.1 or later)
+(put 'verb 'texinfo-format 'texinfo-format-verb)
+(ptexinfmt-defun-if-void texinfo-format-verb ()
+  "Format text between non-quoted unique delimiter characters verbatim.
+Enclose the verbatim text, including the delimiters, in braces.  Print
+text exactly as written (but not the delimiters) in a fixed-width.
+
+For example, @verb\{|@|\} results in @ and
+@verb\{+@'e?`!`+} results in @'e?`!`."
+
+  (let ((delimiter (buffer-substring-no-properties
+                   (1+ texinfo-command-end) (+ 2 texinfo-command-end))))
+    (unless (looking-at "{")
+      (error "Not found: @verb start brace"))
+    (delete-region texinfo-command-start (+ 2 texinfo-command-end))
+    (search-forward  delimiter))
+  (delete-char -1)
+  (unless (looking-at "}")
+    (error "Not found: @verb end brace"))
+  (delete-char 1))
+
+\f
+;; @LaTeX{}
+(put 'LaTeX 'texinfo-format 'texinfo-format-LaTeX)
+(ptexinfmt-defun-if-void texinfo-format-LaTeX ()
+  (texinfo-parse-arg-discard)
+  (insert "LaTeX"))
+
+;; @registeredsymbol{}
+(put 'registeredsymbol 'texinfo-format 'texinfo-format-registeredsymbol)
+(ptexinfmt-defun-if-void texinfo-format-registeredsymbol ()
+  (texinfo-parse-arg-discard)
+  (insert "(R)"))
+
+;;; Accents and Special characters
+;; @euro{}     ==>     Euro
+(put 'euro 'texinfo-format 'texinfo-format-euro)
+(ptexinfmt-defun-if-void texinfo-format-euro ()
+  (texinfo-parse-arg-discard)
+  (insert "Euro "))
+
+;; @pounds{}   ==>     #       Pounds Sterling
+(put 'pounds 'texinfo-format 'texinfo-format-pounds)
+(ptexinfmt-defun-if-void texinfo-format-pounds ()
+  (texinfo-parse-arg-discard)
+  (insert "#"))
+
+;; @ordf{}     ==>     a       Spanish feminine
+(put 'ordf 'texinfo-format 'texinfo-format-ordf)
+(ptexinfmt-defun-if-void texinfo-format-ordf ()
+  (texinfo-parse-arg-discard)
+  (insert "a"))
+
+;; @ordm{}     ==>     o       Spanish masculine
+(put 'ordm 'texinfo-format 'texinfo-format-ordm)
+(ptexinfmt-defun-if-void texinfo-format-ordm ()
+  (texinfo-parse-arg-discard)
+  (insert "o"))
+
+;; @OE{}       ==>     OE      French-OE-ligature
+(put 'OE 'texinfo-format 'texinfo-format-French-OE-ligature)
+(ptexinfmt-defun-if-void texinfo-format-French-OE-ligature ()
+  (insert "OE" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @oe{}       ==>     oe
+(put 'oe 'texinfo-format 'texinfo-format-French-oe-ligature)
+(ptexinfmt-defun-if-void texinfo-format-French-oe-ligature () ; lower case
+  (insert "oe" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @AA{}       ==>     AA      Scandinavian-A-with-circle
+(put 'AA 'texinfo-format 'texinfo-format-Scandinavian-A-with-circle)
+(ptexinfmt-defun-if-void texinfo-format-Scandinavian-A-with-circle ()
+  (insert "AA" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @aa{}       ==>     aa
+(put 'aa 'texinfo-format 'texinfo-format-Scandinavian-a-with-circle)
+(ptexinfmt-defun-if-void texinfo-format-Scandinavian-a-with-circle () ; lower case
+  (insert "aa" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @AE{}       ==>     AE      Latin-Scandinavian-AE
+(put 'AE 'texinfo-format 'texinfo-format-Latin-Scandinavian-AE)
+(ptexinfmt-defun-if-void texinfo-format-Latin-Scandinavian-AE ()
+  (insert "AE" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @ae{}       ==>     ae
+(put 'ae 'texinfo-format 'texinfo-format-Latin-Scandinavian-ae)
+(ptexinfmt-defun-if-void texinfo-format-Latin-Scandinavian-ae () ; lower case
+  (insert "ae" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @ss{}       ==>     ss      German-sharp-S
+(put 'ss 'texinfo-format 'texinfo-format-German-sharp-S)
+(ptexinfmt-defun-if-void texinfo-format-German-sharp-S ()
+  (insert "ss" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @questiondown{}     ==>     ?       upside-down-question-mark
+(put 'questiondown 'texinfo-format 'texinfo-format-upside-down-question-mark)
+(ptexinfmt-defun-if-void texinfo-format-upside-down-question-mark ()
+  (insert "?" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @exclamdown{}       ==>     !       upside-down-exclamation-mark
+(put 'exclamdown 'texinfo-format 'texinfo-format-upside-down-exclamation-mark)
+(ptexinfmt-defun-if-void texinfo-format-upside-down-exclamation-mark ()
+  (insert "!" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @L{}                ==>     L/      Polish suppressed-L (Lslash)
+(put 'L 'texinfo-format 'texinfo-format-Polish-suppressed-L)
+(ptexinfmt-defun-if-void texinfo-format-Polish-suppressed-L ()
+  (insert (texinfo-parse-arg-discard) "/L")
+  (goto-char texinfo-command-start))
+
+;; @l{}                ==>     l/      Polish suppressed-L (Lslash) (lower case)
+(put 'l 'texinfo-format 'texinfo-format-Polish-suppressed-l-lower-case)
+(ptexinfmt-defun-if-void texinfo-format-Polish-suppressed-l-lower-case ()
+  (insert (texinfo-parse-arg-discard) "/l")
+  (goto-char texinfo-command-start))
+
+;; @O{}                ==>     O/      Scandinavian O-with-slash
+(put 'O 'texinfo-format 'texinfo-format-Scandinavian-O-with-slash)
+(ptexinfmt-defun-if-void texinfo-format-Scandinavian-O-with-slash ()
+  (insert (texinfo-parse-arg-discard) "O/")
+  (goto-char texinfo-command-start))
+
+;; @o{}                ==>     o/      Scandinavian O-with-slash (lower case)
+(put 'o 'texinfo-format 'texinfo-format-Scandinavian-o-with-slash-lower-case)
+(ptexinfmt-defun-if-void texinfo-format-Scandinavian-o-with-slash-lower-case ()
+  (insert (texinfo-parse-arg-discard) "o/")
+  (goto-char texinfo-command-start))
+
+;; @,{c}       ==>     c,      cedilla accent
+(put '\, 'texinfo-format 'texinfo-format-cedilla-accent)
+(ptexinfmt-defun-if-void texinfo-format-cedilla-accent ()
+  (insert (texinfo-parse-arg-discard) ",")
+  (goto-char texinfo-command-start))
+
+
+;; @dotaccent{o}       ==>     .o      overdot-accent
+(put 'dotaccent 'texinfo-format 'texinfo-format-overdot-accent)
+(ptexinfmt-defun-if-void texinfo-format-overdot-accent ()
+  (insert "." (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @ubaraccent{o}      ==>     _o      underbar-accent
+(put 'ubaraccent 'texinfo-format 'texinfo-format-underbar-accent)
+(ptexinfmt-defun-if-void texinfo-format-underbar-accent ()
+  (insert "_" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @udotaccent{o}      ==>     o-.     underdot-accent
+(put 'udotaccent 'texinfo-format 'texinfo-format-underdot-accent)
+(ptexinfmt-defun-if-void texinfo-format-underdot-accent ()
+  (insert (texinfo-parse-arg-discard) "-.")
+  (goto-char texinfo-command-start))
+
+;; @H{o}       ==>     ""o     long Hungarian umlaut
+(put 'H 'texinfo-format 'texinfo-format-long-Hungarian-umlaut)
+(ptexinfmt-defun-if-void texinfo-format-long-Hungarian-umlaut ()
+  (insert "\"\"" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @ringaccent{o}      ==>     *o      ring accent
+(put 'ringaccent 'texinfo-format 'texinfo-format-ring-accent)
+(ptexinfmt-defun-if-void texinfo-format-ring-accent ()
+  (insert "*" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @tieaccent{oo}      ==>     [oo     tie after accent
+(put 'tieaccent 'texinfo-format 'texinfo-format-tie-after-accent)
+(ptexinfmt-defun-if-void texinfo-format-tie-after-accent ()
+  (insert "[" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @u{o}       ==>     (o      breve accent
+(put 'u 'texinfo-format 'texinfo-format-breve-accent)
+(ptexinfmt-defun-if-void texinfo-format-breve-accent ()
+  (insert "(" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @v{o}       ==>     <o      hacek accent
+(put 'v 'texinfo-format 'texinfo-format-hacek-accent)
+(ptexinfmt-defun-if-void texinfo-format-hacek-accent ()
+  (insert "<" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @dotless{i} ==>     i       dotless i and dotless j
+(put 'dotless 'texinfo-format 'texinfo-format-dotless)
+(ptexinfmt-defun-if-void texinfo-format-dotless ()
+  (insert (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @.
+(put '\. 'texinfo-format 'texinfo-format-\.)
+(ptexinfmt-defun-if-void texinfo-format-\. ()
+  (texinfo-discard-command)
+  (insert "."))
+
+;; @:
+(put '\: 'texinfo-format 'texinfo-format-\:)
+(ptexinfmt-defun-if-void texinfo-format-\: ()
+  (texinfo-discard-command))
+
+;; @-
+(put '\- 'texinfo-format 'texinfo-format-soft-hyphen)
+(ptexinfmt-defun-if-void texinfo-format-soft-hyphen ()
+  (texinfo-discard-command))
+
+;; @/
+(put '\/ 'texinfo-format 'texinfo-format-\/)
+(ptexinfmt-defun-if-void texinfo-format-\/ ()
+  (texinfo-discard-command))
+
+;; @textdegree{}
+(put 'textdegree 'texinfo-format 'texinfo-format-textdegree)
+(ptexinfmt-defun-if-void texinfo-format-textdegree ()
+  (insert "o" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @geq{}
+(put 'geq 'texinfo-format 'texinfo-format-geq)
+(ptexinfmt-defun-if-void texinfo-format-geq ()
+  (insert ">=" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @leq{}
+(put 'leq 'texinfo-format 'texinfo-format-leq)
+(ptexinfmt-defun-if-void texinfo-format-leq ()
+  (insert "<=" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+\f
+;;; Cross References
+;; @ref{NODE-NAME, ...}
+;; @xref{NODE-NAME, ...}
+(put 'ref 'texinfo-format 'texinfo-format-xref)
+
+(ptexinfmt-defun-if-broken texinfo-format-xref ()
+  (let ((args (texinfo-format-parse-args)))
+    (texinfo-discard-command)
+    (insert "*Note ")
+    (let ((fname (or (nth 1 args) (nth 2 args))))
+      (if (null (or fname (nth 3 args)))
+         (insert (nth 0 args) "::")
+       (insert (or fname (nth 0 args)) ": ")
+       (if (nth 3 args)
+           (insert "(" (nth 3 args) ")"))
+       (unless (null (nth 0 args))
+         (insert (nth 0 args)))))))
+
+;; @uref{URL [,TEXT] [,REPLACEMENT]}
+(put 'uref 'texinfo-format 'texinfo-format-uref)
+(ptexinfmt-defun-if-broken texinfo-format-uref ()
+  "Format URL and optional URL-TITLE.
+Insert ` ... ' around URL if no URL-TITLE argument;
+otherwise, insert URL-TITLE followed by URL in parentheses."
+  (let ((args (texinfo-format-parse-args)))
+    (texinfo-discard-command)
+    ;; if url-title
+    (if (nth 1 args)
+       (insert  (nth 1 args) " (" (nth 0 args) ")")
+      (insert "`" (nth 0 args) "'"))))
+
+;; @inforef{NODE-NAME, CROSS-REFERENCE-NAME, INFO-FILE-NAME}
+(put 'inforef 'texinfo-format 'texinfo-format-inforef)
+(ptexinfmt-defun-if-void texinfo-format-inforef ()
+  (let ((args (texinfo-format-parse-args)))
+    (texinfo-discard-command)
+    (if (nth 1 args)
+       (insert "*Note " (nth 1 args) ": (" (nth 2 args) ")" (car args))
+      (insert "*Note " "(" (nth 2 args) ")" (car args) "::"))))
+
+
+;; @anchor{NAME}
+;; don't emulation
+;; If support @anchor for Mule 2.3, We must fix informat.el and info.el:
+;;  - Info-tagify suport @anthor-*-refill.
+;;  - info.el support Ref in Tag table.
+(unless (get 'anchor 'texinfo-format)
+  (put 'anchor 'texinfo-format 'texinfo-discard-command-and-arg))
+
+
+\f
+;;; New command definition
+;; @alias NEW=EXISTING
+(put 'alias 'texinfo-format 'texinfo-alias)
+(ptexinfmt-defun-if-void texinfo-alias ()
+  (let ((start (1- (point)))
+       args)
+    (skip-chars-forward " ")
+    (save-excursion (end-of-line) (setq texinfo-command-end (point)))
+    (if (not (looking-at "\\([^=]+\\)=\\(.*\\)"))
+       (error "Invalid alias command")
+      (setq texinfo-alias-list
+           (cons
+            (cons
+             (buffer-substring (match-beginning 1) (match-end 1))
+             (buffer-substring (match-beginning 2) (match-end 2)))
+            texinfo-alias-list))
+      (texinfo-discard-command))))
+
+\f
+;;; Indent
+;; @exampleindent INDENT  (makeinfo 4.0 or later)
+
+;; @paragraphindent INDENT  (makeinfo 4.0 or later)
+;; INDENT: asis, 0, n
+
+;; @firstparagraphindent WORD   (makeinfo 4.6 or later)
+;; WORD: none, insert
+
+
+\f
+;;; Special
+;; @image{FILENAME [, WIDTH] [, HEIGHT]}
+(put 'image 'texinfo-format 'texinfo-format-image)
+(ptexinfmt-defun-if-void texinfo-format-image ()
+  ;; I don't know makeinfo parse FILENAME.
+  (let ((args (texinfo-format-parse-args))
+       filename)
+    (when (null (nth 0 args))
+      (error "Invalid image command"))
+    (texinfo-discard-command)
+    ;; makeinfo uses FILENAME.txt
+    (setq filename (format "%s.txt" (nth 0 args)))
+    (message "Reading included file: %s" filename)
+    ;; verbatim for Info output
+    (goto-char (+ (point) (cadr (insert-file-contents filename))))
+    (message "Reading included file: %s...done" filename)))
+
+
+\f
+;;; @multitable ... @end multitable
+(ptexinfmt-defvar-if-void texinfo-extra-inter-column-width 0
+  "*Number of extra spaces between entries (columns) in @multitable.")
+
+(ptexinfmt-defvar-if-void texinfo-multitable-buffer-name
+  "*multitable-temporary-buffer*")
+(ptexinfmt-defvar-if-void texinfo-multitable-rectangle-name
+  "texinfo-multitable-temp-")
+
+;; These commands are defined in texinfo.tex for printed output.
+(put 'multitableparskip 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'multitableparindent 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'multitablecolmargin 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'multitablelinespace 'texinfo-format 'texinfo-discard-line-with-args)
+
+(put 'multitable 'texinfo-format 'texinfo-multitable)
+
+(ptexinfmt-defun-if-void texinfo-multitable ()
+  "Produce multi-column tables."
+
+;; This function pushes information onto the `texinfo-stack'.
+;; A stack element consists of:
+;;   - type-of-command, i.e., multitable
+;;   - the information about column widths, and
+;;   - the position of texinfo-command-start.
+;; e.g., ('multitable (1 2 3 4) 123)
+;; The command line is then deleted.
+  (texinfo-push-stack
+   'multitable
+   ;; push width information on stack
+   (texinfo-multitable-widths))
+  (texinfo-discard-line-with-args))
+
+(put 'multitable 'texinfo-end 'texinfo-end-multitable)
+(ptexinfmt-defun-if-void texinfo-end-multitable ()
+  "Discard the @end multitable line and pop the stack of multitable."
+  (texinfo-discard-command)
+  (texinfo-pop-stack 'multitable))
+
+(ptexinfmt-defun-if-broken texinfo-multitable-widths ()
+  "Return list of widths of each column in a multi-column table."
+  (let (texinfo-multitable-width-list)
+    ;; Fractions format:
+    ;;  @multitable @columnfractions .25 .3 .45
+    ;;
+    ;; Template format:
+    ;;  @multitable {Column 1 template} {Column 2} {Column 3 example}
+    ;; Place point before first argument
+    (skip-chars-forward " \t")
+    (cond
+     ;; Check for common misspelling
+     ((looking-at "@columnfraction ")
+      (error "In @multitable, @columnfractions misspelled"))
+     ;; Case 1: @columnfractions .25 .3 .45
+     ((looking-at "@columnfractions")
+      (forward-word 1)
+      (while (not (eolp))
+       (setq texinfo-multitable-width-list
+             (cons
+              (truncate
+               (1-
+                (* fill-column (read (get-buffer (current-buffer))))))
+              texinfo-multitable-width-list))))
+     ;;
+     ;; Case 2: {Column 1 template} {Column 2} {Column 3 example}
+     ((looking-at "{")
+      (let ((start-of-templates (point)))
+       (while (not (eolp))
+         (skip-chars-forward " \t")
+         (let* ((start-of-template (1+ (point)))
+                (end-of-template
+                 ;; forward-sexp works with braces in Texinfo mode
+                 (progn (forward-sexp 1) (1- (point)))))
+           (setq texinfo-multitable-width-list
+                 (cons (- (progn
+                            (goto-char end-of-template)
+                            (current-column))
+                          (progn
+                            (goto-char start-of-template)
+                            (current-column)))
+                       texinfo-multitable-width-list))
+           ;; Remove carriage return from within a template, if any.
+           ;; This helps those those who want to use more than
+           ;; one line's worth of words in @multitable line.
+           (narrow-to-region start-of-template end-of-template)
+           (goto-char (point-min))
+           (while (search-forward "\n" nil t)
+             (delete-char -1))
+           (goto-char (point-max))
+           (widen)
+           (forward-char 1)))))
+     ;;
+     ;; Case 3: Trouble
+     (t
+      (error "\
+You probably need to specify column widths for @multitable correctly")))
+    ;; Check whether columns fit on page.
+    (let ((desired-columns
+          (+
+           ;; between column spaces
+           (length texinfo-multitable-width-list)
+           ;; additional between column spaces, if any
+           texinfo-extra-inter-column-width
+           ;; sum of spaces for each entry
+           (apply '+ texinfo-multitable-width-list))))
+      (if (> desired-columns fill-column)
+         (error (format "\
+Multi-column table width, %d chars, is greater than page width, %d chars."
+                        desired-columns fill-column))))
+    texinfo-multitable-width-list))
+
+;; @item  A1  @tab  A2  @tab  A3
+(ptexinfmt-defun-if-void texinfo-multitable-extract-row ()
+  "Return multitable row, as a string.
+End of row is beginning of next @item or beginning of @end.
+Cells within rows are separated by @tab."
+  (skip-chars-forward " \t")
+  (let* ((start (point))
+        (end (progn
+               (re-search-forward "@item\\|@end")
+               (match-beginning 0)))
+        (row (progn (goto-char end)
+                    (skip-chars-backward " ")
+                    ;; remove whitespace at end of argument
+                    (delete-region (point) end)
+                    (buffer-substring start (point)))))
+    (delete-region texinfo-command-start end)
+    row))
+
+(put 'multitable 'texinfo-item 'texinfo-multitable-item)
+(ptexinfmt-defun-if-void texinfo-multitable-item ()
+  "Format a row within a multicolumn table.
+Cells in row are separated by @tab.
+Widths of cells are specified by the arguments in the @multitable line.
+All cells are made to be the same height.
+This command is executed when texinfmt sees @item inside @multitable."
+  (let ((original-buffer (current-buffer))
+       (table-widths (reverse (car (cdr (car texinfo-stack)))))
+       (existing-fill-column fill-column)
+       start
+       end
+       (table-column       0)
+       (table-entry-height 0)
+       ;; unformatted row looks like:  A1  @tab  A2  @tab  A3
+       ;; extract-row command deletes the source line in the table.
+       (unformated-row (texinfo-multitable-extract-row)))
+    ;; Use a temporary buffer
+    (set-buffer (get-buffer-create texinfo-multitable-buffer-name))
+    (delete-region (point-min) (point-max))
+    (insert unformated-row)
+    (goto-char (point-min))
+;; 1. Check for correct number of @tab in line.
+    (let ((tab-number 1)) ;; one @tab between two columns
+      (while (search-forward "@tab" nil t)
+       (setq tab-number (1+ tab-number)))
+      (if (/= tab-number (length table-widths))
+         (error "Wrong number of @tab's in a @multitable row")))
+    (goto-char (point-min))
+;; 2. Format each cell, and copy to a rectangle
+    ;; buffer looks like this:    A1  @tab  A2  @tab  A3
+    ;; Cell #1: format up to @tab
+    ;; Cell #2: format up to @tab
+    ;; Cell #3: format up to eob
+    (while (not (eobp))
+      (setq start (point))
+      (setq end (save-excursion
+                 (if (search-forward "@tab" nil 'move)
+                     ;; Delete the @tab command, including the @-sign
+                     (delete-region
+                      (point)
+                      (progn (forward-word -1) (1- (point)))))
+                 (point)))
+      ;; Set fill-column *wider* than needed to produce inter-column space
+      (setq fill-column (+ 1
+                          texinfo-extra-inter-column-width
+                          (nth table-column table-widths)))
+      (narrow-to-region start end)
+      ;; Remove whitespace before and after entry.
+      (skip-chars-forward " ")
+      (delete-region (point) (save-excursion (beginning-of-line) (point)))
+      (goto-char (point-max))
+      (skip-chars-backward " ")
+      (delete-region (point) (save-excursion (end-of-line) (point)))
+      ;; Temorarily set texinfo-stack to nil so texinfo-format-scan
+      ;; does not see an unterminated @multitable.
+      (let (texinfo-stack) ;; nil
+       (texinfo-format-scan))
+      (let (fill-prefix) ;; no fill prefix
+       (fill-region (point-min) (point-max)))
+      (setq table-entry-height
+           (max table-entry-height (count-lines (point-min) (point-max))))
+;; 3. Move point to end of bottom line, and pad that line to fill column.
+      (goto-char (point-min))
+      (forward-line (1- table-entry-height))
+      (let* ((beg (point)) ;; beginning of line
+            ;; add one more space for inter-column spacing
+            (needed-whitespace
+             (1+
+              (- fill-column
+                 (progn
+                   (end-of-line)
+                   (current-column)))))) ;; end of existing line
+       (insert (make-string
+                (if (> needed-whitespace 0) needed-whitespace 1)
+                ? )))
+      ;; now, put formatted cell into a rectangle
+      (set (intern (concat texinfo-multitable-rectangle-name
+                          (int-to-string table-column)))
+          (extract-rectangle (point-min) (point)))
+      (delete-region (point-min) (point))
+      (goto-char (point-max))
+      (setq table-column (1+ table-column))
+      (widen))
+;; 4. Add extra lines to rectangles so all are of same height
+    (let ((total-number-of-columns table-column)
+         (column-number 0)
+         here)
+      (while (> table-column 0)
+       (let ((this-rectangle (int-to-string table-column)))
+         (while (< (length this-rectangle) table-entry-height)
+           (setq this-rectangle (append this-rectangle '("")))))
+       (setq table-column (1- table-column)))
+;; 5. Insert formatted rectangles in original buffer
+      (switch-to-buffer original-buffer)
+      (open-line table-entry-height)
+      (while (< column-number total-number-of-columns)
+       (setq here (point))
+       (insert-rectangle
+        (eval (intern
+               (concat texinfo-multitable-rectangle-name
+                       (int-to-string column-number)))))
+       (goto-char here)
+       (end-of-line)
+       (setq column-number (1+ column-number))))
+    (kill-buffer texinfo-multitable-buffer-name)
+    (setq fill-column existing-fill-column)))
+
+\f
+(ptexinfmt-defun-if-broken texinfo-format-printindex ()
+  (let ((indexelts (symbol-value
+                   (cdr (assoc (texinfo-parse-arg-discard)
+                               texinfo-indexvar-alist))))
+       opoint)
+    (insert "\n* Menu:\n\n")
+    (setq opoint (point))
+    (texinfo-print-index nil indexelts)
+
+    (if (memq system-type '(vax-vms windows-nt ms-dos))
+       (texinfo-sort-region opoint (point))
+      (shell-command-on-region opoint (point) "sort -fd" 1))))
+
+\f
+;; @copying ... @end copying
+;; that Emacs 21.4 and lesser and XEmacs don't support.
+(if (fboundp 'texinfo-copying)
+    nil
+  (defvar texinfo-copying-text ""
+    "Text of the copyright notice and copying permissions.")
+
+  (defun texinfo-copying ()
+    "Copy the copyright notice and copying permissions from the Texinfo file,
+as indicated by the @copying ... @end copying command;
+insert the text with the @insertcopying command."
+    (let ((beg (progn (beginning-of-line) (point)))
+         (end  (progn (re-search-forward "^@end copying[ \t]*\n") (point))))
+      (setq texinfo-copying-text
+           (buffer-substring-no-properties
+            (save-excursion (goto-char beg) (forward-line 1) (point))
+            (save-excursion (goto-char end) (forward-line -1) (point))))
+      (delete-region beg end)))
+
+  (defun texinfo-insertcopying ()
+    "Insert the copyright notice and copying permissions from the Texinfo file,
+which are indicated by the @copying ... @end copying command."
+    (insert (concat "\n" texinfo-copying-text)))
+
+  (defadvice texinfo-format-scan (before expand-@copying-section activate)
+    "Extract @copying and replace @insertcopying with it."
+    (goto-char (point-min))
+    (when (search-forward "@copying" nil t)
+      (texinfo-copying))
+    (while (search-forward "@insertcopying" nil t)
+      (delete-region (match-beginning 0) (match-end 0))
+      (texinfo-insertcopying))))
+
+(provide 'ptexinfmt)
+
+;;; ptexinfmt.el ends here
diff --git a/xemacs-packages/riece/doc/riece-en.texi b/xemacs-packages/riece/doc/riece-en.texi
new file mode 100644 (file)
index 0000000..1f3bf22
--- /dev/null
@@ -0,0 +1,462 @@
+\input texinfo                  @c -*- mode: texinfo -*-
+@c %**start of header
+@setfilename riece-en.info
+@settitle Riece -- An IRC client for Emacsen --
+@c %**end of header
+@include version-en.texi
+@c @documentlanguage en
+
+@dircategory GNU Emacs Lisp
+@direntry
+* Riece-en: (riece-en).   An IRC client for Emacsen
+@end direntry
+
+@ifinfo
+This file describes Riece.
+
+Copyright (C) 2003,2004,2005,2006,2007,2008,2009 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
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+@end ifinfo
+
+@tex
+
+@titlepage
+@title Riece
+
+@author by Daiki Ueno
+@page
+
+@vskip 0pt plus 1filll
+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
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+@end titlepage
+@page
+
+@end tex
+
+@node Top, Overview, (dir), (dir)
+@top Riece user's manual
+
+This manual documents Riece version @value{VERSION}. In addition to this
+manual, you may find useful information about Riece from Riece's official
+home page @uref{http://www.nongnu.org/riece/}.
+
+@menu
+* Overview::                    Read me first.
+* Getting started::             Let's start chatting with other people.
+* Basic usage::                 
+* Index::                       
+* Function Index::              
+* Variable Index::              
+@end menu
+
+@node Overview, Getting started, Top, Top
+@chapter Overview
+
+Riece is a user interface for IRC (Internet Relay Chat).  You should
+spell it with the first letter capitalized and pronounce it as /ri:s/.
+
+The features of Riece are as follows:
+
+@itemize @bullet
+@item
+Several IRC servers may be used at the same time.
+
+@item
+Many features built upon the extension mechanism called add-on.
+Currently 30 such add-ons are available.
+
+@item
+Installation is easy.  Riece doesn't depend on other packages.
+
+@item
+Setup is easy.  Automatically save/restore the configuration.
+
+@item
+Step-by-step instructions are included.
+
+@item
+Mostly compliant with the latest IRC client protocol (RFC 2812).
+@end itemize
+
+@node Getting started, Basic usage, Overview, Top
+@chapter Getting started
+
+To start Riece, follow the instruction below:
+
+@enumerate
+@item
+@kbd{M-x load-library riece}
+
+@item
+@kbd{M-x riece}
+@end enumerate
+
+In case that @samp{Cannot open load file: riece} is signalled in (1),
+you should probably have an installation problem.  If you installed
+Riece from source tarball, please read README again.  If you are
+trying to use a package distribution, check out the documentation.
+
+Once Riece started successfully, you will be asked the name of the IRC
+server to connect.  IRC servers publicly available are taken from the
+Web pages of IRC networks:
+
+@itemize @bullet
+@item http://www.ircnet.jp
+@item http://freenode.net
+@end itemize
+
+You may see the following message:
+
+@example
+Nickname "ueno" already in use.  Choose a new one: 
+@end example
+
+In IRC, users are identified by @emph{nicknames}.  If the nickname you
+selected has already used by another person, you must select the new one.
+
+In IRC, users join the @emph{channels} to start multi user
+conversation.  To join a channel, type @kbd{C-c j}.  On IRCnet, there
+is a channel named @samp{#Riece} where you can do some tests to get
+experienced with Riece.
+
+After you joined a channel, the layout of windows are changed to the
+following:
+
+@example
++-----+-----------------+
+|     |                 |
+|     |                 |
+| (1) |       (2)       |
+|     |                 |
+|     |                 |
++-----+-----------------+
+|     |       (4)       |
+|     +-----------------+
+| (3) |                 |
+|     |       (5)       |
+|     |                 |
++-----+-----------------+
+@end example
+
+You can send messages by entering messages in (4).  Messages from
+other persons are shown in (2).
+
+@node Basic usage, Index, Getting started, Top
+@chapter Basic usage
+
+To start Riece, you just type @kbd{M-x riece}.  Then you will prompted
+for the name of an IRC server.  A typical IRC network may consist of
+several IRC servers and you will need to pick up appropriate one.  Most
+of IRC networks provide a list of available servers on their Web pages:
+
+@itemize @bullet
+@item http://irc.kyoto-u.ac.jp
+@item http://freenode.net
+@end itemize
+
+If your nickname is taken, you will be asked to use different one.  The
+initial nickname can be set via the variable @code{riece-nickname}.  By
+default, your nickname is generated from your login name.
+@vindex riece-nickname
+
+After successfully connecting to an IRC server, you can join a channel
+and talk with people there.  To join a channel, type @kbd{C-c j}.  By
+the way there is a channel called @samp{#Riece} on IRCnet, so feel free
+to use it for testing.
+
+Now you enter a message and it will be seen by everyone else on the
+channel.  Messages from other people will appear on the top-left window.
+
+@menu
+* Windows::                     
+* Indicators::                  
+* Commands::                    
+* Connecting to multiple servers::  
+@end menu
+
+@node Windows, Indicators, Basic usage, Basic usage
+@section Windows
+
+By default, Riece uses 5 windows to inform user of his status:
+
+@example
++-----+-----------------+
+|     |                 |
+|     |                 |
+| (1) |       (2)       |
+|     |                 |
+|     |                 |
++-----+-----------------+
+|     |       (4)       |
+|     +-----------------+
+| (3) |                 |
+|     |       (5)       |
+|     |                 |
++-----+-----------------+
+@end example
+
+Each window is used for different purpose:
+
+@enumerate
+@item
+"user list window" (@samp{*Users XXX*}).  Users on the current
+channel are listed in this window.
+
+@item
+"channel window" (@samp{*Channel XXX*}).  This window keeps
+dialogues on the current channel.
+
+@item
+"channel list window" (@samp{*Channels*}).  All channels you are
+joined are listed in this window.
+
+@item
+"command window" (@samp{*Commands*}).  This window is used for either
+sending messages or issueing commands.
+
+@item
+"others buffer" (@samp{*Others*}).  This window displays dialogues on
+channels except the current channel.
+@end enumerate
+
+@node Indicators, Commands, Windows, Basic usage
+@section Indicators
+
+Indicators are characters which indicate your status.  Usually they are
+put on the left side of the modeline like:
+
+@example
+Riece: --- ueno #Riece [n]
+@end example
+
+In this case, @samp{---} are indicators.  From left to right their
+meanings are:
+
+@enumerate
+@item
+You are not "away". (If you marked yourself as "away", it would be
+@samp{A})
+
+@item
+You are not an IRC operator. (If you entered operator mode, it would be
+@samp{O})
+
+@item
+The channel window is not locked.
+(If it was locked, it would be @samp{F}.  If it was locked until next
+send, it would be @samp{f})
+@end enumerate
+
+@node Commands, Connecting to multiple servers, Indicators, Basic usage
+@section Commands
+
+The buffer used for sending messages is called "command buffer".
+You can issue various commands from the command buffer.
+
+@subsection IRC commands
+@table @kbd
+@item RET
+@findex riece-command-enter-message
+Send the current line. (@code{riece-command-enter-message})
+@item C-RET
+@findex riece-command-enter-message-as-notice
+Send the current line as NOTICE. (@code{riece-command-enter-message-as-notice})
+@item C-c j
+@findex riece-command-join
+Join a channel. (@code{riece-command-join})
+@item C-c C-p
+@findex riece-command-part
+Part from a channel. (@code{riece-command-part})
+@item C-c p
+@findex riece-command-enter-message-to-user
+Send the current line to particular
+user. (@code{riece-command-enter-message-to-user})
+@item C-c q
+@findex riece-command-quit
+Quit from IRC. (@code{riece-command-quit})
+@item C-c n
+@findex riece-command-change-nickname
+Change your nickname. (@code{riece-command-change-nickname})
+@item C-c f
+@findex riece-command-finger
+Get information of a user. (@code{riece-command-finger})
+@item C-c C-k
+@findex riece-command-kick
+Kick a user from the current channel. (@code{riece-command-kick})
+@item C-c i
+@findex riece-command-invite
+Invite a user to the current channel. (@code{riece-command-invite})
+@item C-c l
+@findex riece-command-list
+Issue a LIST command with specified pattern. (@code{riece-command-list})
+@item C-c C-n
+@findex riece-command-names
+Issue a NAMES command with specified pattern. (@code{riece-command-names})
+@item C-c w
+@findex riece-command-who
+Issue a WHO command with specified pattern. (@code{riece-command-who})
+@item C-c t
+@findex riece-command-topic
+Set topic of the current channel. (@code{riece-command-topic})
+@item C-c C-m
+@findex riece-command-change-mode
+Change the mode of the current channel. (@code{riece-command-change-mode})
+@item C-c o
+@findex riece-command-set-operators
+Assign channel operator privilege to a user.  If a prefix argument
+(@kbd{C-u}) is given, remove the privilege from a
+user. (@code{riece-command-set-operators})
+@item C-c v
+@findex riece-command-set-speakers
+Allow a user to speak in the current channel.  If a prefix argument
+(@kbd{C-u}) is given, disallow a user to
+speak. (@code{riece-command-set-speakers})
+@item C-c V
+@findex riece-version
+Display version number of Riece.  If a prefix argument (@kbd{C-u}) is
+given, use User-Agent format.
+@item C-c /
+@findex riece-command-raw
+Send raw IRC command. (@code{riece-command-raw})
+@end table
+
+@subsection Window manipulating commands
+@table @kbd
+@item C-c r
+@findex riece-command-configure-windows
+Redraw windows. (@code{riece-command-configure-windows})
+@item C-c C-j
+@findex riece-command-next-channel
+Switch to the next channel in the channel
+list. (@code{riece-command-next-channel})
+@item C-c <
+@findex riece-command-previous-channel
+Switch to the previous channel in the channel
+list. (@code{riece-command-previous-channel})
+@item C-c >
+@findex riece-command-next-channel
+Switch to the next channel in the channel
+list. (@code{riece-command-next-channel})
+@item C-c ^
+@findex riece-command-list-addons
+Browse add-ons currently insinuated. (@code{riece-command-list-addons})
+@item C-c digit
+@findex riece-command-switch-to-channel-by-number
+Switch to @var{n}th channel in the channel
+list. (@code{riece-command-switch-to-channel-by-number})
+@item C-c C-c digit
+@findex riece-command-switch-to-channel-by-number
+Switch to @var{n} + 10th channel in the channel
+list. (@code{riece-command-switch-to-channel-by-number})
+@item C-c Home
+@findex riece-command-beginning-of-buffer
+Move point to the beginning of the buffer in the channel window.
+(@code{riece-command-beginning-of-buffer})
+@item C-c $
+@findex riece-command-end-of-buffer
+Move point to the end of the buffer in the channel window.
+(@code{riece-command-end-of-buffer})
+@item C-c SPC
+@findex riece-command-scroll-up
+Scroll text of the channel window up. (@code{riece-command-scroll-up})
+@item C-c DEL
+@findex riece-command-scroll-down
+Scroll text of the channel window down. (@code{riece-command-scroll-down})
+@end table
+
+@subsection Status toggle commands
+@table @kbd
+@item C-c C-t c
+@findex riece-command-toggle-channel-buffer-mode
+Toggle visibility of the channel
+window. (@code{riece-command-toggle-channel-buffer-mode})
+@item C-c C-t C
+@findex riece-command-toggle-channel-list-buffer-mode
+Toggle visibility of the channel list
+window. (@code{riece-command-toggle-channel-list-buffer-mode})
+@item C-c C-t u
+@findex riece-command-toggle-user-list-buffer-mode
+Toggle visibility of the user list
+window. (@code{riece-command-toggle-user-list-buffer-mode})
+@item C-c C-t f
+@findex riece-command-toggle-freeze
+Disable scrolling of the channel window. (@code{riece-command-toggle-freeze})
+@item C-c C-t o
+@findex riece-command-toggle-own-freeze
+Disable scrolling of the channel window until next
+send. (@code{riece-command-toggle-own-freeze})
+@item C-c C-t a
+@findex riece-command-toggle-away
+Mark or unmark yourself as "away". (@code{riece-command-toggle-away})
+@end table
+
+@node Connecting to multiple servers,  , Commands, Basic usage
+@section Connecting to multiple servers
+
+One of the most important features of Riece is that users can use
+several IRC servers at the same time.
+
+The procedure to use multiple servers consists (1) connecting to the
+foreign server and (2) joinning a channel:
+
+@enumerate
+@item
+Type @kbd{C-c O} (@code{riece-command-open-server}), and then you will
+be asked the server name.
+
+@item
+Type @kbd{C-c j} (@code{riece-command-join}) to join a channel.  Here
+the server name follows the channel name.  To input a space character,
+use @kbd{C-q}.  For example, if you want to join the channel
+@samp{#Riece} on the server @samp{irc6}, type @kbd{C-c j #Riece C-q SPC
+irc6}.
+@end enumerate
+
+If you want to send IRC command without joinning a channel, @kbd{C-c M}
+(@code{riece-command-universal-server-name-argument}) may be useful.
+
+Commands used for connection management are listed below:
+
+@table @kbd
+@item C-c O
+@findex riece-command-open-server
+Connect to the foreign server. (@code{riece-command-open-server})
+@item C-c C
+@findex riece-command-close-server
+Close the connection to the server. (@code{riece-command-close-server})
+@item C-c M
+@findex riece-command-universal-server-name-argument
+Issue a command on the specified
+server. (@code{riece-command-universal-server-name-argument})
+@end table
+
+@node Index, Function Index, Basic usage, Top
+@chapter Index
+@printindex cp
+
+@node Function Index, Variable Index, Index, Top
+@chapter Function Index
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter Variable Index
+@printindex vr
+
+@summarycontents
+@contents
+@bye
+
+@c End:
diff --git a/xemacs-packages/riece/doc/riece-ja.texi b/xemacs-packages/riece/doc/riece-ja.texi
new file mode 100644 (file)
index 0000000..90a766b
--- /dev/null
@@ -0,0 +1,853 @@
+\input texinfo                  @c -*- mode: texinfo; coding: utf-8 -*-
+@c %**start of header
+@setfilename riece-ja.info
+@settitle Riece -- An IRC client for Emacsen --
+@c %**end of header
+@include version-ja.texi
+@c @documentlanguage ja
+@c @documentencoding utf-8
+
+@dircategory GNU Emacs Lisp
+@direntry
+* Riece-ja: (riece-ja).   An IRC client for Emacsen
+@end direntry
+
+@ifinfo
+This file describes Riece.
+
+Copyright (C) 2003,2004,2005,2006,2007,2008,2009,2010 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
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+@end ifinfo
+
+@tex
+
+@titlepage
+@title Riece
+
+@author by Daiki Ueno
+@page
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 2003,2004,2005,2006 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
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+@end titlepage
+@page
+
+@end tex
+
+@node Top, Overview, (dir), (dir)
+@top Riece user's manual
+
+このマニュアルでは、Riece バージョン @value{VERSION} について解説します。
+このマニュアルで扱う範囲を越えた情報は Riece の公式ホームページ 
+@uref{http://www.nongnu.org/riece/} から得られるかもしれません。
+
+@menu
+* Overview::                    はじめに読んでね
+* Getting started::             IRC サーバに接続して会話してみよう
+* Basic usage::                 基本的な使い方
+* Advanced usage::              進んだ使い方
+* Tips::                        便利な設定
+* Index::                       
+* Function Index::              
+* Variable Index::              
+@end menu
+
+@node Overview, Getting started, Top, Top
+@chapter Overview
+
+Riece は IRC (Internet Relay Chat) の世界でチャットを楽しむためのユーザ
+インターフェースです。Riece は「りーす」と読みます。
+
+Riece の主な特長は以下の通りです。
+
+@itemize @bullet
+@item 複数の IRC サーバに同時に接続可能
+@item アドオンにより機能の追加や取り外しが容易
+@item 他の elisp パッケージに依存しないため、インストールが簡単
+@item 設定が簡単で、前回起動時の設定を記録・復元する仕組みを提供
+@item 段階的な操作説明書が附属
+@item 最新の IRC のクライアントプロトコル (RFC2812) に準拠
+@end itemize
+
+@node Getting started, Basic usage, Overview, Top
+@chapter Getting started
+
+Riece を起動する手順は次の通りです。
+
+@enumerate
+@item
+@kbd{M-x load-library riece}
+
+@item
+@kbd{M-x riece}
+@end enumerate
+
+もし (1) で @samp{Cannot open load file: riece} のエラーが発生する場合に
+はインストールに失敗しています。自分でソースからインストールした場合には 
+README をもう一度読み直してください。OS・ディストリビューションのパッケー
+ジからインストールした場合には、パッケージに含まれる文書をご確認ください。
+
+Riece を起動すると、IRC サーバの名前を聞かれます。公共に利用可能な IRC 
+サーバの一覧は Web ページなどから得ることができます。
+
+@itemize @bullet
+@item http://www.ircnet.jp
+@item http://freenode.net
+@end itemize
+
+また、以下のようなメッセージが表示されるかもしれません。
+
+@example
+Nickname "ueno" already in use.  Choose a new one: 
+@end example
+
+IRC では、参加者を表すのに@emph{ニックネーム}と呼ばれる短い呼称が使われ
+ます。もし希望のニックネームが他の誰かに使用されている場合、別のニックネー
+ムを選ぶ必要があります。
+
+IRC サーバに接続できたら、次は会話をしてみましょう。IRC では@emph{チャンネル}
+と呼ばれる仮想的な会議室に参加して会話を行ないます。チャンネルに入るには 
+@kbd{C-c j} とタイプします。参加するチャンネル名を尋ねられたら、適切なチャ
+ンネル名を入力しましょう。IRCnet には @samp{#Riece} というチャンネルがあ
+るので、テストをしたい場合には自由にお使いください。
+
+チャンネルに入ると、下の図に示すような 5 つのウィンドウ
+@footnote{まぎらわしいですが、Emacs の世界ではバッファを表示する領域をウィ
+ンドウと呼びます。}からなる画面に切り替わります。
+
+@example
++-----+-----------------+
+|     |                 |
+|     |                 |
+| (1) |       (2)       |
+|     |                 |
+|     |                 |
++-----+-----------------+
+|     |       (4)       |
+|     +-----------------+
+| (3) |                 |
+|     |       (5)       |
+|     |                 |
++-----+-----------------+
+@end example
+
+(4) のウィンドウに表示されるバッファに文章を入力してリターンキーを押すと
+発言できます。他の参加者の発言は (2) のウィンドウに表示されます。
+
+@node Basic usage, Advanced usage, Getting started, Top
+@chapter Basic usage
+
+@menu
+* Windows::                     画面構成
+* Indicators::                  自分の状態の表示
+* Commands::                    コマンドの一覧
+@end menu
+
+@node Windows, Indicators, Basic usage, Basic usage
+@section Windows
+
+@example
++-----+-----------------+
+|     |                 |
+|     |                 |
+| (1) |       (2)       |
+|     |                 |
+|     |                 |
++-----+-----------------+
+|     |       (4)       |
+|     +-----------------+
+| (3) |                 |
+|     |       (5)       |
+|     |                 |
++-----+-----------------+
+@end example
+
+各ウィンドウに表示されるバッファの役割は以下の通りです。
+
+@enumerate
+@item
+ユーザリストバッファ (@samp{ *Users*})。チャンネルに参加しているユー
+ザのニックネームの一覧が表示されます。
+
+@item
+チャンネルバッファ (@samp{ *Channel:XXX*})。チャンネル内の会話が表示され
+ます。
+
+@item
+チャンネルリストバッファ (@samp{ *Channels*})。自分が参加しているチャンネ
+ルの一覧が表示されます。
+
+@item
+コマンドバッファ (@samp{*Command*})。文章やコマンドを送信するために使い
+ます。
+
+@item
+アザーズバッファ (@samp{ *Others*})。現在選択中のチャンネル以外の会話が流
+れます。
+@end enumerate
+
+@node Indicators, Commands, Windows, Basic usage
+@section Indicators
+
+モードラインの左端には、現在の自分の状態を示す印が表示されます。
+@footnote{もし画像を表示できる Emacs をお使いなら、左端に "R" のアイコン
+が表示されます。}
+
+@example
+Riece: ---- ueno #Riece [n]
+@end example
+
+ここで、@samp{----} の部分には左から順に以下の意味があります。
+
+@enumerate
+@item
+離席状態 (離席していれば @samp{A})
+
+@item
+IRC オペレータ状態 (IRC ネットワークの管理者権限を持っていれば @samp{O})
+
+@item
+ウィンドウの自動スクロールの禁止 (完全に禁止していれば @samp{F}、自分の
+次回の発言まで禁止しているのであれば @samp{f})
+
+@item
+チャンネルオペレータ状態 (チャンネルの管理者権限を持っていれば @samp{@@})
+@end enumerate
+
+@node Commands,  , Indicators, Basic usage
+@section Commands
+
+@ref{Basic usage}で文章を入力したバッファはコマンドバッファと呼ばれます。
+コマンドバッファからは文章を送信する以外に、様々なコマンドを発行すること
+ができます。以下に一部を挙げます。
+
+最初はなかなか覚えにくいですが、@kbd{C-h b}
+ (@kbd{M-x describe-bindings}) で使用可能なキー操作の一覧が表示されるの
+で少しずつ覚えていくと良いでしょう。
+
+@subsection IRC commands
+@table @kbd
+@item RET
+@findex riece-command-enter-message
+文章を送ります(@code{riece-command-enter-message})
+@item C-RET
+@findex riece-command-enter-message-as-notice
+文章を NOTICE として送ります(@code{riece-command-enter-message-as-notice})
+@item C-c j
+@findex riece-command-join
+チャンネルに参加します(@code{riece-command-join})
+@item C-c C-p
+@findex riece-command-part
+チャンネルから離脱します(@code{riece-command-part})
+@item C-c p
+@findex riece-command-enter-message-to-user
+宛先を指定して現在の行を送ります(@code{riece-command-enter-message-to-user})
+@item C-c q
+@findex riece-command-quit
+IRC をやめます(@code{riece-command-quit})
+@item C-c n
+@findex riece-command-change-nickname
+自分のニックネームを変更します(@code{riece-command-change-nickname})
+@item C-c f
+@findex riece-command-finger
+ユーザの情報を調べます(@code{riece-command-finger})
+@item C-c C-k
+@findex riece-command-kick
+ユーザをチャンネルから蹴り出します(@code{riece-command-kick})
+@item C-c i
+@findex riece-command-invite
+ユーザをチャンネルに招待します(@code{riece-command-invite})
+@item C-c l
+@findex riece-command-list
+パターンに対して LIST を発行します(@code{riece-command-list})
+@item C-c C-n
+@findex riece-command-names
+パターンに対して NAMES を発行します(@code{riece-command-names})
+@item C-c w
+@findex riece-command-who
+パターンに対して WHO を発行します(@code{riece-command-who})
+@item C-c t
+@findex riece-command-topic
+チャンネルのトピックを設定します(@code{riece-command-topic})
+@item C-c C-m
+@findex riece-command-change-mode
+チャンネルのモードを設定します(@code{riece-command-change-mode})
+@item C-c o
+@findex riece-command-set-operators
+ユーザにチャンネルの管理者権限を与えます。@kbd{C-u C-c o} では逆に、ユーザからチャンネルの管理者権限を奪います(@code{riece-command-set-operators})
+@item C-c v
+@findex riece-command-set-speakers
+ユーザにチャンネルでの発言権を与えます。@kbd{C-u C-c v} では逆に、ユーザからチャンネルでの発言権を奪います(@code{riece-command-set-speakers})
+@item C-c V
+@findex riece-version
+Riece のバージョンを表示します。(@kbd{C-u C-c V}) で、より詳細な情報を表示します。
+@item C-c /
+@findex riece-command-raw
+IRC コマンドを直接送ります(@code{riece-command-raw})
+@end table
+
+@subsection Window manipulating commands
+@table @kbd
+@item C-c r
+@findex riece-command-configure-windows
+フレーム全体を再描画します(@code{riece-command-configure-windows})
+@item C-c C-j または C-c >
+@findex riece-command-next-channel
+チャンネル一覧で次のチャンネルを選択します(@code{riece-command-next-channel})
+@item C-c <
+@findex riece-command-previous-channel
+チャンネル一覧で前のチャンネルを選択します(@code{riece-command-previous-channel})
+@item C-c ^
+@findex riece-command-list-addons
+アドオンの一覧を表示します(@code{riece-command-list-addons})
+@item C-c 数字
+@findex riece-command-switch-to-channel-by-number
+チャンネル一覧で @var{n}番目のチャンネルを選択します(@code{riece-command-switch-to-channel-by-number})
+@item C-c C-c 数字
+@findex riece-command-switch-to-channel-by-number
+チャンネル一覧で @var{n} + 10番目のチャンネルを選択します(@code{riece-command-switch-to-channel-by-number})
+@item C-c Home
+@findex riece-command-beginning-of-buffer
+チャンネルバッファ、またはダイアログバッファを上端までスクロールします(@code{riece-command-beginning-of-buffer})
+@item C-c $
+@findex riece-command-end-of-buffer
+チャンネルバッファ、またはダイアログバッファを下端までスクロールします(@code{riece-command-end-of-buffer})
+@item C-c SPC
+@findex riece-command-scroll-up
+チャンネルバッファ、またはダイアログバッファを上方向にスクロールします(@code{riece-command-scroll-up})
+@item C-c DEL
+@findex riece-command-scroll-down
+チャンネルバッファ、またはダイアログバッファを下方向にスクロールします(@code{riece-command-scroll-down})
+@end table
+
+@subsection Status toggle commands
+@table @kbd
+@item C-c C-t c
+@findex riece-command-toggle-channel-buffer-mode
+チャンネルバッファの表示・非表示を切り替えます(@code{riece-command-toggle-channel-buffer-mode})
+@item C-c C-t C
+@findex riece-command-toggle-channel-list-buffer-mode
+チャンネルリストバッファの表示・非表示を切り替えます(@code{riece-command-toggle-channel-list-buffer-mode})
+@item C-c C-t u
+@findex riece-command-toggle-user-list-buffer-mode
+ユーザリストバッファの表示・非表示を切り替えます(@code{riece-command-toggle-user-list-buffer-mode})
+@item C-c C-t f
+@findex riece-command-toggle-freeze
+チャンネルバッファ、またはダイアログバッファの自動スクロールを禁止しま
+す(@code{riece-command-toggle-freeze})
+@item C-c C-t o
+@findex riece-command-toggle-own-freeze
+チャンネルバッファ、またはダイアログバッファを、自分が発言するまで、自動
+スクロールを禁止します(@code{riece-command-toggle-own-freeze})
+@item C-c C-t a
+@findex riece-command-toggle-away
+自分の離席状態を切り替えます(@code{riece-command-toggle-away})
+@end table
+
+@node Advanced usage, Tips, Basic usage, Top
+@chapter Advanced usage
+
+この章では、もっと進んだ使い方を解説します。
+
+@menu
+* Startup File::                設定ファイル
+* Server settings::             サーバの詳細設定
+* Multiple servers::            複数のサーバに接続するには
+* Add-ons::                     アドオンとは
+@end menu
+
+@node Startup File, Server settings, Advanced usage, Advanced usage
+@section Startup file
+
+Riece の設定は Emacs の設定ファイルに書いても良いですが、Riece に固有の
+設定はなるべく @file{~/.riece/init} に書くことを推奨します。
+
+また、Riece を起動して終了すると @file{~/.riece/save} というファイルが
+作成されます。このファイルには前回起動時の設定の一部が自動的に保存され
+ます。
+
+起動時には、最初に @file{~/.riece/save} を、次に @file{~/.riece/init}を
+読み込みます。つまり、前回起動時に @file{~/.riece/save} に保存された内容
+は、@file{~/.riece/init} の内容で上書きされます。
+
+@node Server settings, Multiple servers, Startup File, Advanced usage
+@section Server settings
+
+起動時に接続する IRC サーバは変数 @code{riece-server} で指定します。
+@vindex riece-server
+
+@code{riece-server} は文字列で、その形式は次のいずれかです。
+
+@enumerate
+@item
+@code{IRC サーバのホスト名}
+
+@item
+@code{IRC サーバのホスト名:ポート番号}
+
+@item
+@code{IRC サーバのホスト名:ポート番号:パスワード}
+
+@item
+詳細設定の名前
+@end enumerate
+
+4. の場合には、@code{riece-server} の値をキーに
+@code{riece-server-alist} を検索します。@code{riece-server-alist} は次
+のような形式の連想配列です。
+@vindex riece-server-alist
+
+@example
+(setq riece-server-alist
+      '(("foo" :host "irc.example.com" :coding shift_jis)
+        ("bar" :host "irc.example.net" :nickname "baz")))
+@end example
+
+この設定の意味は以下の通りです。
+
+@itemize
+@item
+@samp{foo} という名前の設定では、IRC サーバのホスト名に @samp{irc.example.com}、使用する文字コードに Shift_JIS を使う
+
+@item
+@samp{bar} という名前の設定では、IRC サーバのホスト名は @samp{irc.example.net}、このサーバではニックネーム @samp{baz} を使う
+@end itemize
+
+指定できるキーワードの一覧は以下の通りです。
+
+@table @code
+@item :host
+サーバのホスト名または IP アドレス
+@item :service
+サーバのサービス名またはポート番号 (既定値は @code{6667})
+@item :nickname
+接続時のニックネーム (既定値は変数 @code{user-real-login-name} の値)
+@item :username
+接続時のユーザネーム (既定値は変数 @code{user-full-name} の値)
+@item :password
+接続時のパスワード
+@item :function
+接続用関数 (既定値は @code{open-network-stream})
+@item :coding
+文字コード (既定値は @code{riece-default-coding-system} の値)
+@end table
+
+@code{riece-server-alist} を対話的に設定するには次のコマンドを使うと便利です。
+
+@example
+M-x load-library riece
+M-x customize-variable riece-server-alist
+@end example
+
+@node Multiple servers, Add-ons, Server settings, Advanced usage
+@section Multiple servers
+
+同時に複数のサーバに接続する手順を以下に示します。
+
+既に特定のサーバに接続している状態で、別のサーバに接続するには @kbd{C-c O} (@code{riece-command-open-server}) を使います。
+
+別のサーバ上のチャンネルに参加するには、@kbd{C-c j}
+(@code{riece-command-join})でチャンネル名に @samp{@@} に続いてサーバ名を
+続けます。
+
+たとえば、サーバ @samp{irc.freenode.net} 上の @samp{#Riece} は次のよう
+に表記します。
+
+@example
+#Riece@@irc.freenode.net
+@end example
+
+チャンネル名とサーバの区切り文字 @samp{@@} は
+変数 @code{riece-alias-alternate-separator} で変更できます。
+
+または、空白文字でも代用できます。この時には、@kbd{C-q SPC} と入力する
+必要があります。
+
+複数の接続を操作するコマンドを以下にまとめます。
+
+@table @kbd
+@item C-c O
+@findex riece-command-open-server
+別のサーバに接続します(@code{riece-command-open-server})
+@item C-c C
+@findex riece-command-close-server
+サーバとの接続を切断します(@code{riece-command-close-server})
+@item C-c M
+@findex riece-command-universal-server-name-argument
+特定のサーバに対して、続くコマンドを発行します(@code{riece-command-universal-server-name-argument})
+@end table
+
+@node Add-ons,  , Multiple servers, Advanced usage
+@section Add-ons
+
+Riece では、雑多な機能を選択的に利用できるよう、アドオンと呼ばれる機構
+を用意しています。アドオンは通常の elisp モジュールを拡張したもので、
+安全な取り外しや、アドオン間の初期化処理の依存関係などの面倒をみます。
+
+アドオンには次の四種類の状態があります。
+
+@table @asis
+@item unloaded
+読み込み前。アドオンの elisp モジュールが読み込まれていない状態
+
+@item insinuated
+組み込み済み。アドオンの elisp モジュールが読み込まれ、初期化処理が完了した状態
+
+@item enabled
+有効。アドオンが動作中
+
+@item disabled
+無効。アドオンの動作が停止中
+
+@end table
+
+@menu
+* Add-on browser::              アドオンの一覧表示
+* Available add-ons::           標準添付のアドオンの紹介
+@end menu
+
+@node Add-on browser, Available add-ons, Add-ons, Add-ons
+@subsection Add-on browser
+
+Riece の動作中にアドオンの一覧を眺めるにはアドオンブラウザを使うと便利です。
+コマンドバッファで @kbd{C-c ^} とすると、次のように表示されます。
+
+@example
++ riece-alias         Define aliases for IRC names.
+  riece-async         Connect to IRC server via async proxy.
+  riece-biff          Be notified if messages arrives.
++ riece-button        Display useful buttons in IRC buffers.
++ riece-ctcp          CTCP (Client To Client Protocol) support.
++ riece-ctlseq        Mark up control sequences in IRC buffers.
+@end example
+
+各行の左端のマークはアドオンの状態を表わしています。@samp{+} は組込ま
+れて有効なアドオン、空白はロードされていないアドオンです。
+
+ここで、riece-button を無効にしたい場合、四行目の先頭で @kbd{-} としま
+す。すると、先頭のマークが @samp{+} から @samp{-} に変化します。
+
+@example
++ riece-alias         Define aliases for IRC names.
+  riece-async         Connect to IRC server via async proxy.
+  riece-biff          Be notified if messages arrives.
+- riece-button        Display useful buttons in IRC buffers.
++ riece-ctcp          CTCP (Client To Client Protocol) support.
++ riece-ctlseq        Mark up control sequences in IRC buffers.
+@end example
+
+さらに、@samp{u} とすると、riece-button をアドオンの設定から除外します。
+さらに、@samp{U} とすると、riece-button を完全にアンロードします。
+
+この状態で、@samp{s} または @samp{M-x riece-command-save-variables} と
+すると、設定を保存します。
+
+@file{~/.riece/init} でアドオンを組み込むには @code{riece-addons} を設
+定します。たとえば @samp{riece-alias} を組み込む場合には、以下のように
+記述します。
+@vindex riece-addons
+
+@example
+(add-to-list 'riece-addons 'riece-mini)
+@end example
+
+@node Available add-ons,  , Add-on browser, Add-ons
+@subsection Available add-ons
+
+利用可能なアドオンは次の通りです。これらのうちの多くは標準で組み込まれ
+ています。
+
+@table @samp
+@item riece-alias
+チャンネル名やニックネームの別名を定義
+@item riece-async
+Emacs が busy or suspend 状態になることに備え、
+PING に応答する local proxy 経由で IRC サーバに接続
+@item riece-biff
+他のバッファにいる時に発言があるとモードラインに印 ("[R]") を表示
+@item riece-button
+ボタンやポップアップメニューの表示
+@item riece-ctcp
+CTCP (Client To Client Protocol)
+@item riece-ctlseq
+コントロールシーケンス (^B など) による強調表示
+@item riece-desktop-notify
+メッセージの到着をデスクトップに通知
+@item riece-doctor
+doctor.el と連携して精神科医になりすます
+@item riece-epg
+EasyPG @uref{http://www.easypg.org} による会話の暗号化
+@item riece-eval-ruby
+入力された文字列を Ruby の式として評価
+@item riece-eval
+入力された文字列を Emacs Lisp の式として評価
+@item riece-foolproof
+チャンネルミスを防ぐ
+@item riece-google
+キーワードを Google で検索
+@item riece-guess
+色々な方法で移動先のチャンネルを推測
+@item reice-hangman
+チャンネル内で hangman で遊ぶ
+@item riece-highlight
+バッファの色付け
+@item riece-history
+チャンネル移動の履歴管理
+@item riece-icon
+バッファ中にアイコンを表示
+@item riece-ignore
+指定したユーザの発言を無視
+@item riece-kakasi
+日本語の通らない端末で、日本語をローマ字で表示
+@item riece-keepalive
+IRC サーバとの接続を保持
+@item riece-keyword
+キーワードの強調表示
+@item riece-log
+会話のログをファイルに保存
+@item riece-lsdb
+アドレス帳 LSDB (Lovely Sister Database)
+@uref{http://lsdb.sourceforge.jp} と連携
+@item riece-mcat
+メッセージカタログ
+@item riece-menu
+メニューバーにメニューを登録
+@item riece-mini
+ミニバッファのみで IRC をする
+@item riece-ndcc
+DCC (Direct Client to Client protocol) によるファイル転送
+(Emacs 22 でのみ動作)
+@item riece-rdcc
+DCC (Direct Client to Client protocol) によるファイル転送
+@item riece-shrink-buffer
+メモリ確保のため、バッファを定期的に切り詰める
+@item riece-skk-kakutei
+SKK 使用時に変換モードの印を発言から取り除く
+@item riece-toolbar
+ツールバーを表示
+@item riece-twitter
+CTCP ACTION (@kbd{C-c C-c a}) と同時に Twitter に状態を送信
+@item riece-unread
+発言のあったチャンネルに@samp{!}マークをつける
+@item riece-url
+会話に現れた URL の収集
+@item riece-xface
+ユーザリストバッファにユーザの X-Face を表示
+@item riece-xfaceb
+ユーザリストバッファにユーザの X-Face を表示
+(BBDB @uref{http://bbdb.sourceforge.net} が必要)
+@item riece-yank
+@kbd{C-c y} で kill-ring から文字列を送信
+@end table
+
+@node Tips, Index, Advanced usage, Top
+@comment  node-name,  next,  previous,  up
+@chapter Tips
+
+この章では、よく聞かれる質問に対する答えと便利な設定例を紹介します。
+
+@section 直前に選択していたチャンネルに移動したい
+@vindex riece-guess-channel-try-functions
+
+以下の行を @file{~/.riece/init} に追加することで、@kbd{C-c g} で履歴を辿
+りつつ移動できます。@samp{riece-guess} アドオンは、チャンネル選択の履歴
+や未読メッセージの有無などから次に選択するチャンネルを推測してくれるアド
+オンで、標準で組み込まれています。
+
+@example
+(add-hook 'riece-guess-channel-try-functions
+          'riece-guess-channel-from-history)
+@end example
+
+@section 発言があるとバッファがスクロールするのを止めたい
+
+@kbd{C-c C-t f} です。@emph{t}oggle @emph{f}reeze と覚えると良いでしょう。
+
+@section 装飾を抑制したい
+
+@code{riece-addons} から装飾のためのアドオンを除外します。
+通常有効になっている装飾のためのアドオンは次の通りです。
+
+@itemize
+@item
+色付け (@samp{riece-highlight})
+
+@item
+ボタン表示 (@samp{riece-button})
+
+@item
+アイコン画像の表示 (@samp{riece-icon})
+@end itemize
+
+たとえば色付けをやめたいのであれば、以下の行を @file{~/.riece/init} に追
+加します:
+
+@example
+(setq riece-addons (delq 'riece-highlight riece-addons))
+@end example
+
+@section 特定の文字列を受信したら音を鳴らしたい
+@vindex riece-keyword-notify-functions
+
+以下の設定を @file{~/.riece/init} に加えます。@samp{riece-keywords} アド
+オンを使うと特定の文字列を受信した際の動作を指定できます。
+
+@example
+(setq riece-keywords '("ほげ" "ふが"))
+(add-hook 'riece-keyword-notify-functions
+          (lambda (keyword message) (ding)))
+@end example
+
+@section SKK を使っていて、変換中の印 (▽) を送信してしまうことがある
+
+以下の行を @file{~/.riece/init} に追加します。
+
+@example
+(add-to-list 'riece-addons 'riece-skk-kakutei)
+@end example
+
+@section チャンネル一覧の並び順を固定したい
+@vindex riece-default-channel-binding
+
+以下の行を @file{~/.riece/init} に追加します。
+
+@example
+(setq riece-default-channel-binding
+     '("#Riece" "#emacsen" nil "#debianjp"))
+@end example
+
+この設定例では、チャンネル一覧の並び順は次のようになります。
+
+@enumerate
+@item
+#Riece
+@item
+#emacsen
+@item
+なし
+@item
+#debianjp
+@end enumerate
+
+3 番目のチャンネルが空席となっていることにご注意ください。新たなチャンネ
+ルに参加した場合、そのチャンネルが 3 番目の位置に割当てられます。
+
+@section 起動時に自動的にチャンネルに参加したい
+@vindex riece-startup-channel-list
+
+変数 @samp{riece-startup-channel-list} を設定します。
+
+@example
+(setq riece-startup-channel-list
+     '("#Riece" "#public"))
+@end example
+
+この設定例は、@samp{#Riece} と @samp{#public} に参加することを意味してい
+ます。チャンネルに参加する際にパスワードが必要な場合には次のように設定し
+ます。
+
+@example
+(setq riece-startup-channel-list
+     '("#Riece" "#public" ("#private" "password")))
+@end example
+
+@section 起動時に自動的に複数の IRC サーバに接続したい
+@vindex riece-startup-server-list
+
+変数 @samp{riece-startup-server-list} を設定します。
+
+@example
+(setq riece-server "ircnet"
+      riece-server-alist '(("ircnet" :host "irc.tokyo.wide.ad.jp")
+                           ("freenode" :host "irc.ipv6.freenode.net")))
+@end example
+
+この設定例では、起動時に接続するのは "ircnet" だけです。
+@samp{riece-startup-server-list} を以下のように設定すると、
+"freenode" にも接続するようになります。
+
+@example
+(setq riece-startup-server-list '("freenode"))
+@end example
+
+@section HTTP プロキシを介して IRC サーバに接続したい
+@file{relay.el} と @file{connect.c} を使うと、
+HTTP プロキシを介して IRC サーバに接続することができます。
+
+@table @asis
+@item relay.el
+@uref{http://www.taiyo.co.jp/~gotoh/lisp/relay.el}
+
+@item connect.c
+@uref{http://www.taiyo.co.jp/~gotoh/ssh/connect.html}
+@end table
+
+たとえば、@samp{proxy.example.com:8080} 経由で 
+@samp{irc.tokyo.wide.ad.jp} に接続する場合には、以下の行を 
+@file{~/.riece/init} に追加します。
+
+@example
+(require 'relay)
+(setq relay-command-alist (cons '("^irc\.tokyo\.wide\.ad\.jp$"
+                                  "connect" "-H" "proxy.example.com:8080"
+                                  host service)
+                                relay-command-alist)
+      riece-server-alist (cons '("proxy-tokyo" :host "irc.tokyo.wide.ad.jp"
+                                 :function relay-open-network-stream)
+                               riece-server-alist))
+@end example
+
+@section 会話のログをファイルに保存したい
+@vindex riece-log-directory-map
+
+@samp{riece-log} アドオンを使うと、会話のログをファイルに保存し、再起動
+時に参照できます。@samp{riece-log} アドオンは標準で組み込まれています。
+
+通常は @file{~/.riece/log} の下に IRC サーバの名前、チャンネル名のディレ
+クリが作成され、その中に日にち毎に分別されて保存されます。
+
+ディレクトリ名が文字化けする場合には、
+@code{file-name-coding-system} の値を適切に設定するか、あるいは 
+@code{riece-log-directory-map} を使ってチャンネル名を US-ASCII 文字列に
+変換する必要があります。
+
+@example
+(setq riece-log-directory-map '(("#りーす" . "riece")))
+@end example
+
+@section ウィンドウ間を自由に移動したい
+
+GNU Emacs に附属の @samp{windmove.el} を使うと便利です。詳細は 
+@samp{windmove.el} のコメントを参照ください。@samp{windmove.el} は 
+作者のページ (@uref{http://hovav.net/elisp/}) からも取得できます。
+
+@node Index, Function Index, Tips, Top
+@chapter Index
+@printindex cp
+
+@node Function Index, Variable Index, Index, Top
+@chapter Function Index
+@printindex fn
+
+@node Variable Index,  , Function Index, Top
+@chapter Variable Index
+@printindex vr
+
+@summarycontents
+@contents
+@bye
+
+@c End:
diff --git a/xemacs-packages/riece/gnulib b/xemacs-packages/riece/gnulib
new file mode 160000 (submodule)
index 0000000..2f40bc5
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 2f40bc523412742dac387b37d70b5a7f5d8363cc
diff --git a/xemacs-packages/riece/lisp/.cvsignore b/xemacs-packages/riece/lisp/.cvsignore
new file mode 100644 (file)
index 0000000..0b34337
--- /dev/null
@@ -0,0 +1,6 @@
+Makefile.in
+Makefile
+auto-autoloads.el
+custom-load.el
+lunit-report.xml
+riece-package-info.el
diff --git a/xemacs-packages/riece/lisp/COMPILE b/xemacs-packages/riece/lisp/COMPILE
new file mode 100644 (file)
index 0000000..3f9bf3e
--- /dev/null
@@ -0,0 +1,303 @@
+;;; -*- Emacs-Lisp -*-
+
+(defvar riece-modules
+  (cons 'riece-compat
+       (cons (if (featurep 'xemacs)
+                 'riece-xemacs
+               'riece-emacs)
+             '(riece-globals
+               riece-options
+               riece-debug
+               riece-package-info
+               riece-version
+               riece-coding
+               riece-complete
+               riece-addon-modules
+               riece-addon
+               riece-ruby
+               riece-cache
+
+               riece-mode
+               ;; riece-identity -+-> riece-channel
+               ;;                 +-> riece-user
+               riece-identity
+               riece-channel
+               riece-user
+
+               riece-misc
+               riece-signal
+
+               ;; riece-layout ---> riece-display
+               riece-layout
+               riece-display
+               riece-server
+
+               ;; riece-channel -+-> riece-naming
+               ;; riece-user    -+
+               riece-naming
+               riece-message
+
+               ;; riece-filter calls riece-{handle,000,200,300,400,500}
+               riece-filter
+               riece-handle
+               riece-000
+               riece-200
+               riece-300
+               riece-400
+               riece-500
+
+               riece-commands
+               riece-irc
+               riece))))
+
+(defvar riece-mcat-modules
+  '(riece-mcat-japanese))
+
+(defvar riece-generated-modules
+  '(riece-package-info))
+
+(defvar riece-icons
+  '("riece-command-previous-channel.xpm"
+    "riece-command-next-channel.xpm"
+    "riece-command-configure-windows.xpm"
+    "riece-command-list-addons.xpm"
+    "riece-command-join.xpm"
+    "riece-command-part.xpm"
+    "riece-notify-icon.png"))
+
+(defvar riece-scripts
+  '("server.rb"
+    "aproxy.rb"))
+
+(defun riece-byte-compile-dest-file-function (filename)
+  (expand-file-name
+   (concat (file-name-nondirectory filename) "c")))
+
+(defun riece-compile-modules (modules srcdir)
+  (let ((load-path (cons nil (cons srcdir load-path)))
+       error-modules)
+    (while modules
+      (let ((source (expand-file-name
+                    (concat (symbol-name (car modules)) ".el")
+                    srcdir))
+           (binary (expand-file-name
+                    (concat (symbol-name (car modules)) ".elc"))))
+       (if (file-newer-than-file-p source binary)
+           (condition-case error
+               (let ((byte-compile-dest-file-function
+                      #'riece-byte-compile-dest-file-function))
+                 (byte-compile-file source))
+             (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-compile-module ()
+  (let ((load-path (cons nil load-path)))
+    (let ((source (expand-file-name
+                  (concat (car command-line-args-left) ".el"))))
+      (if (file-newer-than-file-p source (concat source "c"))
+         (byte-compile-file source))))
+  ;; Workaround for an XEmacs 21.5 bug ("xemacs -batch -f <func> <arg1>"
+  ;; attempts to open <arg1> as a file after <func>).
+  (setq command-line-args-left (cdr command-line-args-left)))
+
+(defun riece-install-modules (modules srcdir lispdir just-print)
+  (unless (or just-print (file-exists-p lispdir))
+    (make-directory lispdir t))
+  ;; Workaround for "make distcheck"
+  (set-file-modes lispdir 493)
+  (while modules
+    (let ((name (symbol-name (car modules))))
+      (princ (format "%s.el -> %s\n" name lispdir))
+      (unless just-print
+       (copy-file (expand-file-name
+                   (concat name ".el")
+                   (if (memq (car modules) riece-generated-modules)
+                       nil
+                     srcdir))
+                  (expand-file-name (concat name ".el") lispdir)
+                  t t))
+      (princ (format "%s.elc -> %s\n" name lispdir))
+      (unless just-print
+       (if (file-exists-p (expand-file-name (concat name ".elc")))
+           (copy-file (expand-file-name (concat name ".elc"))
+                      (expand-file-name (concat name ".elc") lispdir)
+                      t t)
+         (princ (format "(%s was not successfully compiled, ignored)\n"
+                        name)))))
+    (setq modules (cdr modules))))
+
+(defun riece-install-icons (icons srcdir lispdir just-print)
+  (unless (or just-print (file-exists-p lispdir))
+    (make-directory lispdir t))
+  ;; Workaround for "make distcheck"
+  (set-file-modes lispdir 493)
+  (while icons
+    (when (file-exists-p (expand-file-name (car icons) srcdir))
+      (princ (format "%s -> %s\n" (car icons) lispdir))
+      (unless just-print
+       (copy-file (expand-file-name (car icons) srcdir)
+                  (expand-file-name (car icons) lispdir)
+                  t t)))
+    (setq icons (cdr icons))))
+
+(defun riece-install-scripts (scripts srcdir lispdir just-print)
+  (unless (or just-print (file-exists-p lispdir))
+    (make-directory lispdir t))
+  ;; Workaround for "make distcheck"
+  (set-file-modes lispdir 493)
+  (while scripts
+    (when (file-exists-p (expand-file-name (car scripts) srcdir))
+      (princ (format "%s -> %s\n" (car scripts) lispdir))
+      (unless just-print
+       (copy-file (expand-file-name (car scripts) srcdir)
+                  (expand-file-name (car scripts) lispdir)
+                  t t)))
+    (setq scripts (cdr scripts))))
+
+(defun riece-install-just-print-p ()
+  (let ((flag (getenv "MAKEFLAGS"))
+       case-fold-search)
+    (if flag
+       (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag))))
+
+(defun riece-examine-modules (srcdir)
+  (let ((load-path (cons nil (cons srcdir load-path))))
+    (require 'riece-mcat)
+    (require 'riece-addon-modules)
+    (append riece-modules
+           riece-mcat-modules
+           (mapcar #'car riece-addon-modules))))
+
+(defun riece-examine ()
+  (princ (mapconcat #'symbol-name
+                   (riece-examine-modules (car command-line-args-left))
+                   " ")))
+
+(defun riece-update-mcat ()
+  (let* ((srcdir (car command-line-args-left))
+        (modules (riece-examine-modules srcdir))
+        (pointer riece-mcat-modules)
+        files)
+    (while pointer
+      (setq modules (delq (car pointer) modules)
+           pointer (cdr pointer)))
+    (setq files (mapcar (lambda (module)
+                         (concat (symbol-name module) ".el"))
+                       modules)
+         pointer riece-mcat-modules)
+    (while pointer
+      (riece-mcat-update files (concat (symbol-name (car pointer)) ".el")
+                        (intern (concat (symbol-name (car pointer))
+                                        "-alist")))
+      (setq pointer (cdr pointer))))
+  ;; Workaround for an XEmacs 21.5 bug ("xemacs -batch -f <func> <arg1>"
+  ;; attempts to open <arg1> as a file after <func>).
+  (setq command-line-args-left (cdr command-line-args-left)))
+
+(defun riece-compile ()
+  (let ((srcdir (car command-line-args-left)))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (riece-compile-modules (riece-examine-modules srcdir) srcdir))
+  ;; Workaround for an XEmacs 21.5 bug ("xemacs -batch -f <func> <arg1>"
+  ;; attempts to open <arg1> as a file after <func>).
+  (setq command-line-args-left (cdr command-line-args-left)))
+
+(defun riece-install ()
+  (let ((srcdir (car command-line-args-left))
+       (lispdir (nth 1 command-line-args-left)))
+    (riece-install-modules
+     (riece-examine-modules srcdir)
+     srcdir
+     (expand-file-name "riece" lispdir)
+     (riece-install-just-print-p))
+    (riece-install-icons
+     riece-icons
+     srcdir
+     (expand-file-name "riece" lispdir)
+     (riece-install-just-print-p))
+    (riece-install-scripts
+     riece-scripts
+     srcdir
+     (expand-file-name "riece" lispdir)
+     (riece-install-just-print-p))
+    ;; Workaround for an XEmacs 21.5 bug ("xemacs -batch -f <func> <arg1>"
+    ;; attempts to open <arg1> as a file after <func>).
+    (setq command-line-args-left (nthcdr 2 command-line-args-left))))
+
+(defun riece-uninstall ()
+  (let ((files (directory-files (expand-file-name "riece"
+                                                 (car command-line-args-left))
+                               t "\\.\\(elc?\\|rb\\|xpm\\)$")))
+    (while files
+      (delete-file (car files))
+      (setq files (cdr files)))
+    ;; Workaround for an XEmacs 21.5 bug ("xemacs -batch -f <func> <arg1>"
+    ;; attempts to open <arg1> as a file after <func>).
+    (setq command-line-args-left (cdr command-line-args-left))))
+
+(defun riece-compile-package ()
+  (let ((srcdir (car command-line-args-left)))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (if (fboundp 'batch-update-directory-autoloads)
+       (let ((command-line-args-left (list "riece" srcdir)))
+         (batch-update-directory-autoloads))
+      (let ((command-line-args-left (list srcdir)))
+       (setq autoload-package-name "riece")
+       (batch-update-autoloads)))
+    (let ((command-line-args-left (list srcdir)))
+      (Custom-make-dependencies))
+    (riece-compile-modules
+     (append (riece-examine-modules srcdir)
+            '(auto-autoloads custom-load))
+     srcdir)))
+
+(defun riece-install-package ()
+  (let ((srcdir (car command-line-args-left)))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (riece-install-modules
+     (append (riece-examine-modules srcdir)
+            '(auto-autoloads custom-load))
+     srcdir
+     (expand-file-name "lisp/riece" (car command-line-args-left))
+     (riece-install-just-print-p))
+    (riece-install-icons
+     riece-icons
+     srcdir
+     (expand-file-name "etc/riece" (car command-line-args-left))
+     (riece-install-just-print-p))
+    (riece-install-scripts
+     riece-scripts
+     srcdir
+     (expand-file-name "etc/riece" (car command-line-args-left))
+     (riece-install-just-print-p))))
+
+(defun riece-test ()
+  (let* ((srcdir (car command-line-args-left))
+        (load-path (cons (expand-file-name "test" srcdir)
+                         (cons srcdir (cons nil load-path))))
+        (files (directory-files (expand-file-name "test" srcdir) t
+                                "^test-.*\\.el$"))
+        suite)
+    (require 'lunit-report)
+    (setq suite (lunit-make-test-suite))
+    (while files
+      (when (file-regular-p (car files))
+       (load-file (car files))
+       (lunit-test-suite-add-test
+        suite
+        (lunit-make-test-suite-from-class
+         (intern (file-name-sans-extension
+                  (file-name-nondirectory (car files)))))))
+      (setq files (cdr files)))
+    (lunit-report suite (nth 1 command-line-args-left))))
diff --git a/xemacs-packages/riece/lisp/ChangeLog-2014 b/xemacs-packages/riece/lisp/ChangeLog-2014
new file mode 100644 (file)
index 0000000..e1004e7
--- /dev/null
@@ -0,0 +1,5074 @@
+2014-04-04  Steve Youngs  <steve@sxemacs.org>
+
+       * riece-options.el (riece-hide-list): Renamed from
+       `riece-hide-joins-parts-quits' which was an ugly name.
+
+       * riece-handle.el (riece-handle-join-message): Use renamed hide
+       var, don't hide our own joins.
+       (riece-handle-part-message): Use renamed hide var, don't hide our
+       own parts.
+       (riece-handle-quit-message): Use renamed hide var, don't hide our
+       own quits.
+
+2014-04-01  Steve Youngs  <steve@sxemacs.org>
+
+       * riece-options.el (riece-hide-joins-parts-quits): New user
+       variable to control suppression of join/part/quit messages.
+
+       * riece-handle.el (riece-handle-join-message): Use it.
+       (riece-handle-part-message): Use it.
+       (riece-handle-quit-message): Use it.
+
+2013-06-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-log.el (riece-log-display-message-function): Use the same
+       log file for incoming and outgoing private messages.
+
+2012-07-31  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-open-server): Open the default
+       server if server-name is "".
+
+2012-04-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-join): Allow multiple choices
+       using riece-completing-read-multiple.
+       * riece-mcat-japanese.el (riece-mcat-japanese-alist): Update
+       translation.
+
+2011-10-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-reorder-channels): New command.
+
+2011-04-20  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-set-operators)
+       (riece-command-set-speakers): Revert the arglist change in the
+       last commit.
+
+2011-04-04  Daiki Ueno  <ueno@unixuser.org>
+
+       * Use lexical binding.
+
+2011-03-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-url.el (riece-url-regexp): Update the default value.
+
+2011-03-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE (riece-compile-module, riece-update-mcat)
+       (riece-compile): Add workaround for XEmacs 21.5.
+
+2011-01-25  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-ignore.el: Add newline at end of file.
+       * riece-keyword.el: Ditto.
+       * riece-mode.el: Ditto.
+
+2010-12-20  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE (riece-examine): Supply srcdir to riece-examine-modules.
+       (riece-compile-package): Ditto.
+       (riece-install-package): Ditto.
+
+2010-12-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-shrink-buffer.el (riece-shrink-buffer): Make sure not to
+       move cursor.
+       * riece-misc.el (riece-insert): Save the current point, if the
+       buffer is frozen.
+
+2010-12-11  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * COMPILE (riece-update-mcat): Fix "Wrong number of arguments"
+       on `riece-examine-modules'.
+       * Makefile.am: Add $(srcdir) to update-mcat target.
+
+2010-12-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-log.el (riece-log-make-file-name): Don't append
+       coding-system name to the filename when coding-system is nil.
+
+2010-10-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ctlseq.el (riece-ctlseq-put-attributes): Fix typo.
+
+2010-10-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ctlseq.el (riece-ctlseq-colors): Add an example setting to
+       the doc.
+       (riece-ctlseq-regexp, riece-ctlseq-update-attribute): Make
+       "^C<fg>[,<bg>]" matching robuster.
+       Thanks to Akira TAGOH.
+
+2010-10-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ctlseq.el (riece-ctlseq-regexp): New constant.
+       (riece-ctlseq-update-attribute): Rename from
+       riece-ctlseq-update-attributes.
+       (riece-ctlseq-put-attributes): New function.
+       (riece-ctlseq-message-filter): Rewrite the parsing logic.
+
+2010-10-14  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE: Support "make distcheck".
+       * Makefile.am: Support "make distcheck".
+
+       * test/test-riece-log.el (test-riece-log-delete-directory)
+       (test-riece-log-display-message-function): Don't bind
+       default-file-name-coding-system.
+
+       * riece-log.el (riece-log-display-message-function)
+       (riece-log-insert): Don't bind default-file-name-coding-system.
+
+2010-10-14  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-compat.el (riece-make-local-hook): Check if
+       make-local-hook exists.  Thanks to Makoto Fujiwara.
+
+2010-09-12  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-develop.el (riece-insert-struct-template): Use "\n"
+       instead of newline in `interactive'. For
+       `delete-trailing-whitespace' safe.
+
+       * riece-rdcc.el (riece-rdcc-filter, riece-rdcc-sentinel): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-misc.el (riece-insert): Suppress byte-compile warnings;
+       `save-excursion' defeated by `set-buffer'.
+
+       * riece-keepalive.el (riece-keepalive-after-login-hook): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-kakasi.el (riece-kakasi-convert-string): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-ignore.el (riece-ignore-message-filter): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-hangman.el (riece-hangman-word): Suppress byte-compile
+       warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-server.el (riece-reset-process-buffer): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-filter.el (riece-filter): Suppress byte-compile warnings;
+       `save-excursion' defeated by `set-buffer'.
+
+       * riece.el (riece-create-buffers): Suppress byte-compile
+       warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-display.el (riece-display-connect-signals)
+       (riece-update-buffers): Suppress byte-compile
+       warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-button.el (riece-identity-button-popup-menu)
+       (riece-identity-button-click): Suppress byte-compile warnings;
+       `save-excursion' defeated by `set-buffer'.
+
+       * riece-async.el (riece-async-open-network-stream): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+2010-09-04  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-mcat.el (riece-mcat-update): Suppress byte-compile
+       warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-shrink-buffer.el (riece-shrink-buffer): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+       * riece-ruby.el (riece-ruby-reset-process-buffer)
+       (riece-ruby-execute, riece-ruby-filter)
+       (riece-ruby-inspect): Suppress byte-compile warnings;
+       `save-excursion' defeated by `set-buffer'.
+
+       * riece-doctor.el (riece-doctor-after-privmsg-hook): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+2010-09-01  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-debug.el (riece-debug-1)
+       (riece-debug-reset-standard-output, riece-ignore-errors): Suppress
+       byte-compile warnings; `save-excursion' defeated by `set-buffer'.
+
+2010-05-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-globals.el (riece-mode-line-buffer-identification)
+       (riece-channel-indicator, riece-long-channel-indicator)
+       (riece-channel-list-indicator, riece-user-indicator)
+       (riece-away-indicator, riece-operator-indicator)
+       (riece-channel-status-indicator): Mark as risky-local-variable.
+
+2010-04-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE (riece-install): Add workaround for XEmacs 21.5.
+
+2009-09-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 6.1.0 released.
+
+       * riece.el (riece-read-variables-files)
+       (riece-save-variables-files): Revert to use setq instead of
+       custom-set-variables.  Fixes #27384.
+       <http://savannah.nongnu.org/bugs/?27384>
+
+2009-08-28  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-addon.el (riece-command-insinuate-addon)
+       (riece-command-uninstall-addon, riece-command-unload-addon): Fix
+       "Wrong type argument" error on not riece-addon-list-mode.
+
+2009-07-26  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-skk-kakutei.el: Fix Author header.
+       * riece-foolproof.el: Ditto.
+       * riece-layout.el: Ditto.
+
+2009-05-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 6.0.0 released.
+
+2009-04-23  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-submit-bug-report): Just visit the tracker URL.
+
+2009-04-22  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon-modules.el (riece-addon-modules): Don't mention
+       riece-notify.
+       * Makefile.am (EXTRA_DIST): Remove riece-notify.el.
+       * riece-notify.el: Remove; use riece-desktop-notify.el.
+
+2009-03-30  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-desktop-notify.el: New add-on.
+       * riece-addon-modules.el (riece-addon-modules): Add
+       riece-desktop-notify.
+       * riece-mcat-japanese.el (riece-mcat-japanese-alist): Translate
+       "Display notification to desktop.".
+       * Makefile.am (EXTRA_DIST): Add riece-desktop-notify.el.
+
+2009-03-30  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-keyword.el (riece-keyword-message-filter): Fix for the infinite
+       loop.
+
+2008-10-13  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-mini.el (riece-mini-show-backlog): Fix for multibyte
+       characters.
+
+2008-09-08  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-notify.el: New add-on.
+       * riece-addon-modules.el (riece-addon-modules): Add
+       riece-notify (commented).
+       * Makefile.am (EXTRA_DIST): Add riece-notify.el.
+
+2008-08-25  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-commands.el (riece-command-enter-message): Fix behavior at
+       last line of buffer.
+       (riece-command-enter-message-to-user): Ditto.
+       (riece-command-enter-message-as-notice): Ditto.
+
+2008-06-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-use-full-window): Abolish unused option.
+       * riece-layout.el (riece-layout-alist): New layout "one-window".
+       (riece-configure-windows-one-window): New function.
+
+2008-06-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-server-alist): Accept an integer for
+       :service.
+
+2008-06-06  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-compat.el (riece-make-local-hook): New alias.
+       (riece-derived-mode-p): New alias.
+       (riece-set-process-query-on-exit-flag): New alias.
+
+2008-06-05  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-options.el (riece-server-alist): Fix :value for username,
+       password, function and coding-system.
+
+2008-06-02  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-read-variables-files): Re-evaluate custom settings.
+
+2008-05-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 5.0.0 released.
+
+2008-05-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-save-variables-files): Generate
+       custom-set-variables instead of a list of setq.
+
+       * riece-options.el (riece-server-alist): Simplify custom-type.
+       * riece-coding.el: Move defcustom to riece-options; require
+       'riece-options.
+
+2008-05-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-menu.el (riece-menu-create-channels-menu): Remove
+       placeholder channels.
+
+2008-05-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon-modules.el (riece-addon-modules): Translate add-on
+       description.
+
+       * riece-menu.el (riece-menu-items): Define with defcustom; use
+       riece-mcat to translate menu labels; bind
+       riece-command-configure-windows.
+       (riece-menu-requires): Depend on riece-mcat.
+       (riece-menu-insinuate): Re-evaluate riece-menu-items.
+
+       * riece-url.el (riece-url-command-mode-hook): Translate "Open URL...".
+
+2008-05-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-display.el (riece-update-status-indicators): Don't update
+       riece-user-indicator if riece-real-nickname is not fixed.
+
+       * COMPILE (riece-icons): Re-order filenames.
+       * Makefile.am (EXTRA_DIST): Add new toolbar icons.
+
+       * riece-command-change-layout.xpm:
+       * riece-command-configure-windows.xpm:
+       * riece-command-join.xpm:
+       * riece-command-part.xpm:
+       * riece-command-quit.xpm: New toolbar icons.
+
+2008-04-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-mcat-japanese.el (riece-mcat-japanese-alist): Translate
+       "No information given".
+
+       * riece-server.el (riece-open-server): Record errors for debug.
+
+       * riece-irc.el (riece-irc-open-server): Send NICK before USER,
+       following the recommendation in "3.1 Connection Registration" of
+       RFC2812.
+       (riece-irc-open-server): Fixed typo in the commit on 2008-04-04.
+
+2008-04-04  春日 玄 KASUGA Toru  <kasuga.toru@jp.fujitsu.com>
+
+       * riece-irc.el (riece-irc-open-server): Encode realname when
+       issueing a USER command.
+
+2008-03-26  Takeru Naito  <takeru.naito@gmail.com>
+
+       * riece-keyword.el (riece-keyword-message-filter): Don't match to
+       empty string if riece-keywords is nil, or it only contains regexp
+       matchers.
+
+2008-02-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-save-variables-files): Display message
+       before/after saving files.
+       * riece-mcat-japanese.el (riece-mcat-japanese-alist): Translate
+       these mesasges for riece-save-variables-files.
+
+2007-12-21  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-mini.el (riece-mini-send-message): Use riece-format-identity.
+
+2007-10-13  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-twitter.el (riece-twitter-update): Don't send extra
+       headers only if it is called interactively.
+
+2007-10-12  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-twitter.el (riece-twitter-update): Don't send extra headers.
+
+2007-09-04  Didier Verna  <didier@xemacs.org>
+
+        * riece-addon.el (riece-addon-list-mark-face-alist): Fix misuse of
+        the list widget type.
+        * riece-google.el (riece-google-program): Ditto.
+        * riece-highlight.el (riece-channel-list-mark-face-alist): Ditto.
+        * riece-keyword.el (riece-notify-keyword-functions)
+        (riece-keyword-notify-functions): Ditto.
+        * riece-layout.el (riece-layout-alist): Ditto.
+        * riece-rdcc.el (riece-rdcc-send-program)
+        (riece-rdcc-decode-address-program): Ditto.
+
+2007-08-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-kick-with-ban): New command.
+
+2007-06-21  Nikita Danilov <nikita@clusterfs.com>
+
+       * riece-000.el (riece-handle-001-message): Run
+       riece-after-login-hook before joining in startup channels.
+
+       * riece-mcat.el (riece-mcat): Don't load localized messages if
+       mule is off.
+
+2007-06-06  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-twitter.el (riece-twitter-set-credential): New command.
+       (riece-twitter-update): New command.
+       (riece-twitter-message-filter): Use it.
+       (riece-twitter-sentinel): New function.
+
+2007-06-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-twitter.el (riece-twitter-message-filter): Send a "source"
+       parameter.
+
+2007-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 4.0.0 released.
+
+2007-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-twitter.el (riece-twitter-credential): Define with defcustom.
+       (riece-twitter-cache-credential): New user option.
+       (riece-twitter-message-filter): Ask Twitter username and password.
+
+2007-05-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-log.el (riece-log-display-message-function): Just call
+       riece-format-message.
+
+       * riece-message.el (riece-format-message-1): Renamed from
+       riece-format-message.
+       (riece-format-message): Pick a function from
+       riece-message-format-function-alist.
+
+2007-04-24  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-log.el (riece-log-display-message-function): Use
+       riece-message-format-function-alist.
+
+2007-04-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-twitter.el: New add-on.
+       * riece-addon-modules.el (riece-addon-modules): Add riece-twitter.
+       * Makefile.am (EXTRA_DIST): Add riece-twitter.el.
+
+       * riece-ctcp.el (riece-ctcp-action-format-message): New function.
+       (riece-handle-ctcp-action-request): Use it.
+       (riece-command-ctcp-action): Use it.
+
+       * riece-message.el (riece-message-format-function-alist): New user
+       option.
+       (riece-display-message-1): Pick a format function from
+       riece-message-format-function-alist.
+
+2007-04-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-rdcc.el (riece-rdcc-server-port): New user option.
+       (riece-rdcc-send-program): Bind `port'.
+
+2007-02-12  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-handle.el (riece-handle-notice-message): Don't check the
+       scope of the message if riece-real-nickname is nil.
+
+2007-01-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.1.2 released.
+
+2007-01-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ctcp.el (riece-handle-ctcp-ping-request): Removed useless
+       argument for `format'.
+       * riece-mcat.el (riece-mcat-extract): New local variable `pointer'.
+       * riece-epg.el (epg-cancel): Autoload.
+       * riece-options.el (riece): Specify :group.
+
+2007-01-22  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-mcat.el (riece-mcat-extract): Abolished ALIST arg.
+
+2007-01-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-addons): Insinuate riece-mcat by default.
+       * riece-addon-modules.el (riece-addon-modules): Add riece-mcat.
+       * riece-mcat.el: Implement add-on interface.
+       (riece-mcat-alist): Removed.
+       (riece-mcat-description): New constant.
+       (riece-mcat-insinuate): New function.
+       (riece-mcat-uninstall): New function.
+
+2007-01-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-mcat.el (riece-mcat-update): New function.
+       * Makefile.am (update-mcat): New target.
+       * COMPILE (riece-modules): Moved riece-mcat-japanese.el to
+       riece-mcat-modules.
+       (riece-mcat-modules): New variable.
+       (riece-examine-modules): Append riece-mcat-modules.
+       (riece-update-mcat): New function.
+
+2007-01-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-mcat.el: New file.
+       * riece-mcat-japanese.el: New file.
+       * COMPILE (riece-modules): Added riece-mcat and riece-mcat-japanese.
+       * Makefile.am (EXTRA_DIST): Added riece-mcat.el and
+       riece-mcat-japanese.el.
+
+2006-12-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-package-info.el.in: New file.
+       * COMPILE (riece-modules): Added riece-package-info.
+       * Makefile.am (DISTCLEANFILES): Added riece-package-info.el.
+
+2006-09-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.1.1 released.
+       * configure.ac: Bump up version to 3.1.1.
+
+2006-09-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon.el (riece-command-list-addons): Describe "save the
+       current setting".
+       (riece-command-enable-addon): Make sure the addon to be insinuated.
+
+2006-08-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-layout.el (riece-layout-alist): Added
+       riece-configure-windows-spiral.
+       (riece-configure-windows-spiral): New window layout.  Written by
+       URABE Shyouhei <root@mput.dip.jp>.
+
+       * riece-options.el (riece-addons): Enable riece-shrink-buffer by
+       default.
+
+       * aproxy.rb (AProxy::start): Fixed a typo (@out -> $stdout).
+
+2006-07-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.1.0 released.
+       * configure.ac: Bump up version to 3.1.0.
+
+2006-07-17  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-join-channel): Simplified by
+       using riece-server-opened.
+       (riece-command-part-channel): Ditto.
+
+2006-07-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-save-variables-files): Place ";;; Do not edit
+       this file!" at the beginning of ~/.riece/save.
+
+       * riece-server.el (riece-reset-process-buffer): Make
+       riece-filter-running local to the server buffer.
+       * riece-filter.el (riece-filter): Allow only a message handler to
+       run at a time.
+       * riece-globals.el (riece-filter-running): New variable.
+
+2006-06-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ndcc.el: Don't use calc.
+
+       * riece-300.el (riece-handle-353-message): Append " " to every 353
+       line before inserting it to riece-353-message-alist.
+
+2006-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 3.0.0 released.
+       * configure.ac: Bump up version to 3.0.0.
+
+2006-05-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-realname): New user option.
+
+       * riece-irc.el (riece-irc-open-server): Changed the meaning of
+       riece-username.  i.e. now riece-username represents the user's
+       login name and riece-realname is the replacement of the former
+       riece-username.
+       * riece-server.el (riece-server-keyword-map): New keyword :realname.
+
+2006-05-06  Yoichi NAKAYAMA  <yoichi@geiin.org>
+
+       * riece-commands.el (riece-command-close-server): Cause error
+       on non-existent server process.
+
+2006-04-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-skk-kakutei.el: Declare some variables and autoload
+       'skk-kakutei to suppress compilation warnings.
+
+       * riece-xfaceb.el: Don't enclose autoloads with ignore-errors;
+       autoloads should not report errors.
+
+       * riece-commands.el (riece-command-save-variables): New command.
+
+       * riece-epg.el
+       (riece-epg-passphrase-callback-function-for-decrypt): New
+       function.
+       (riece-command-set-passphrase): Renamed.
+       (riece-epg-message-filter): Don't query passphrase; if decryption
+       fails add button to try again.
+       (riece-epg-add-encrypted-button): New function.
+       (riece-epg-encrypted-button-notify): New function.
+
+2006-04-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-epg.el: New add-on.
+       * riece-addon-modules.el (riece-addon-modules): Added riece-epg.
+       * Makefile.am (EXTRA_DIST): Added riece-epg.el.
+
+2006-04-13  Steve Youngs  <steve@sxemacs.org>
+
+       * riece-commands.el (riece-command-invite): Add missing `:' to
+       string sent to server.
+
+       * riece-300.el (riece-handle-341-message): swap values for
+       `channel' and `user'.
+
+2006-04-03  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-buffer-alist): " *Debug*" -> "*Debug*".
+       (riece-save-variables-files): Fixed a typo in the docstring.
+
+2006-01-14  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-display.el (riece-part-channel): Emit
+       'channel-list-changed signal.
+
+2005-12-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-alias.el (riece-alias-alternate-separator): Reverted the
+       default value.
+
+2005-11-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 2.0.2 released.
+       * configure.ac: Bump up version to 2.0.2.
+
+2005-11-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-alias.el (riece-alias-alternate-separator): Changed from
+       "@" -> "%".
+
+       * test/test-riece-cache.el: New test cases.
+       * test/Makefile.am (EXTRA_DIST): Added test-riece-cache.el.
+
+       * Makefile.am (EXTRA_DIST): Added riece-cache.el.
+
+       * riece-commands.el (riece-command-part-channel): Signal an error
+       if TARGET server has not opened.
+
+       * riece-channel.el: Require 'riece-cache.
+       (riece-find-channel): Increase priority of given channel name in
+       riece-channel-cache.
+       (riece-forget-channel): Remove given channel name from
+       riece-channel-cache.
+       (riece-get-channel): Register given channel name in
+       riece-channel-cache (if it is being added to riece-channel-obarray.)
+       * riece-server.el (riece-reset-process-buffer): Initialize
+       riece-channel-cache.
+       * riece-options.el (riece-channel-cache-max-size): New user
+       option.
+       * riece-misc.el (riece-get-channels-on-server): Get channel names
+       from riece-channel-cache.
+       * riece-globals.el (riece-channel-cache): New variable.
+
+2005-11-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-cache.el: Renamed from riece-lru.el.
+
+2005-11-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-user.el: Require 'riece-lru.
+       (riece-find-user): Increase priority of given username in
+       riece-user-lru.
+       (riece-forget-user): Remove given username from riece-user-lru.
+       (riece-rename-user): Rename given username in riece-user-lru.
+       (riece-get-user): Register given username in riece-user-lru (if
+       it is being added to riece-user-obarray.)
+       * riece-server.el: Require 'riece-lru.
+       (riece-reset-process-buffer): Initialize riece-user-lru.
+       * riece-options.el (riece-user-lru-max-size): New user option.
+       * riece-misc.el: Require 'riece-lru.
+       (riece-get-users-on-server): Get usernames from riece-user-lru.
+       * riece-globals.el (riece-user-lru): New variable.
+       * COMPILE (riece-modules): Added riece-lru.
+       * riece-lru.el: New file.
+
+       * riece-develop.el: New file.
+
+2005-10-27  Masatake YAMATO  <jet@gyve.org>
+
+       * url-riece.el (url-irc-riece): Use `server-name'
+       to create an argument for `riece-parse-identity'.
+       `server' was used.
+
+2005-09-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 2.0.1 released.
+       * configure.ac: Bump up version to 2.0.1.
+
+2005-09-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon.el (riece-command-list-addons): Adjust width of 2nd
+       column to the length of the longest add-on name.
+
+2005-09-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-alias.el (riece-alias-abbrev-identity-string): Compare car
+       of riece-alias-alist with identities case insensitively.
+
+2005-09-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * Makefile.am (EXTRA_DIST): Added riece-xfaceb.el.
+       * riece-addon-modules.el (riece-addon-modules): Added riece-xfaceb.
+
+2005-09-03  Steve Youngs  <steve@sxemacs.org>
+
+       * riece-xfaceb.el: New file.  Display X-Face and colour Face
+       images in IRC buffer, getting the image data from BBDB records.
+
+2005-08-31  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-unread.el (riece-unread-requires): Require 'riece-history.
+
+2005-08-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 2.0.0 released.
+       * riece-version.el (riece-version-number): Bump up to 2.0.0.
+
+2005-08-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * test/test-riece-log.el
+       (test-riece-log-display-message-function): Enable riece-log addon.
+
+       * test/test-riece-ruby.el (lunit-test-case-teardown): Reset
+       riece-ruby-output-handler-alist and riece-ruby-output-queue-alist.
+
+       * riece-server.el (riece-server-keyword-map): Abolished
+       :coding-system-alist keyword.
+       (riece-send-string): Take the target identity as the 2nd argument.
+
+       * riece-identity.el (riece-channel-coding-system-alist): Renamed
+       from riece-coding-system-alist.
+
+       * riece-globals.el (riece-coding-system-alist): Abolished.
+
+       * riece-commands.el (riece-command-topic): Pass the target
+       identity to riece-send-string.
+       (riece-command-kick): Ditto.
+       (riece-command-send-message): Ditto.
+       (riece-command-enter-message-to-user): Ditto.
+       (riece-command-join-channel): Ditto.
+       (riece-command-part-channel): Ditto.
+
+2005-08-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-identity.el (riece-coding-system-for-identity): Moved from
+       riece-coding.el.
+       (riece-decoded-string-for-identity): Ditto.
+
+       * riece-300.el (riece-handle-322-message): Decode message per
+       channel.
+       (riece-handle-set-topic): Ditto.
+
+       * riece-handle.el (riece-handle-notice-message): Decode message
+       per channel.
+       (riece-handle-part-message): Ditto.
+       (riece-handle-kick-message): Ditto.
+       (riece-handle-topic-message): Ditto.
+
+2005-08-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-handle.el (riece-handle-privmsg-message): Use
+       riece-decoded-string & riece-decoded-string-for-identity.
+
+       * riece-coding.el (riece-coding-system-alist): New user option.
+       (riece-coding-system-for-identity): New function.
+       (riece-encoded-string): New function.
+       (riece-decoded-string): New alias.
+       (riece-decoded-string-for-identity): New function.
+
+2005-08-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon.el (riece-uninstall-addon): Don't check the add-on
+       is enabled.
+       (riece-uninstall-addon): Don't use riece-remprop.
+       (riece-enable-addon): Put 'riece-addon-enabled property on the
+       add-on feature.
+       (riece-disable-addon): Ditto.
+       (riece-command-list-addons): Check 'riece-addon-enabled property
+       instead of riece-*-enabled variables.
+
+2005-08-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-shrink-buffer-idle-time-delay):
+       Abolished; moved to riece-shrink-buffer.el.
+       (riece-max-buffer-size): Ditto.
+       (riece-shrink-buffer-remove-chars): Ditto.
+
+       * riece.el (riece-shrink-buffer-idle-timer): Abolished; moved to
+       riece-shrink-buffer.el.
+       (riece): Don't set riece-shrink-buffer-idle-timer here.
+       (riece-exit): Don't cancel riece-shrink-buffer-idle-timer here.
+
+       * riece-shrink-buffer.el: New add-on.
+       * riece-addon-modules.el (riece-addon-modules): Added
+       riece-shrink-buffer.
+       * Makefile.am (EXTRA_DIST): Added riece-shrink-buffer.el.
+
+2005-08-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-highlight.el (riece-highlight-uninstall): Use
+       riece-remprop instead of remprop.
+
+       * riece-addon.el (riece-uninstall-addon): Use riece-remprop
+       instead of remprop.
+
+       * riece-xemacs.el (riece-remprop): New alias.
+       * riece-emacs.el (riece-remprop): New function.
+
+       * COMPILE (riece-compile-modules): Add current directory to load-path.
+
+       * riece-history.el (riece-history-requires): New function.
+       * riece-addon.el (riece-insinuate-addon-1): Require add-on feature.
+
+2005-08-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-foolproof.el (riece-foolproof-description): Made it more
+       descriptive.
+
+       * riece-url.el (riece-url-uninstall): Call easy-menu-remove-item.
+
+       * riece-addon.el (riece-addon-list-mode-map): Bind
+       riece-command-unload-addon.
+       (riece-insinuate-addon-1): New function; renamed from
+       riece-insinuate-addon.
+       (riece-insinuate-addon): Use it; re-insinuate add-ons preceding to
+       the add-on.
+       (riece-addon-list-set-point): New function.
+       (riece-command-unload-addon): New command.
+
+2005-08-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-menu.el (riece-menu-uninstall): Call easy-menu-remove.
+
+       * riece-toolbar.el (riece-toolbar-original-toolbar) [XEmacs]: New
+       variable.
+       (riece-unset-toolbar): New function.
+       (riece-toolbar-uninstall): Call riece-unset-toolbar.
+       (riece-toolbar-command-mode-hook): Renamed from
+       riece-toolbar-insinuate-in-command-buffer.
+
+       * riece-icon.el (riece-icon-enable): Update
+       mode-line-buffer-identification here.
+       (riece-icon-disable): Ditto.
+
+2005-08-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon.el (riece-uninstall-addon): Update
+       riece-addon-dependencies.
+
+2005-08-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-command-mode): Set
+       riece-mode-line-buffer-identification.
+       (riece-dialogue-mode): Ditto.
+       (riece-channel-mode): Ditto.
+       (riece-channel-list-mode): Ditto.
+       (riece-user-list-mode): Ditto.
+       * riece-icon.el
+       (riece-icon-update-mode-line-buffer-identification): New function.
+       (riece-icon-insinuate): Use it.
+       (riece-icon-uninstall): Use it.
+       * riece-globals.el (riece-mode-line-buffer-identification): New
+       variable.
+
+2005-08-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * Make add-ons uninstallable.
+
+       * riece-xface.el (riece-xface-user-list-mode-hook): New function.
+       (riece-xface-insinuate): Use it.
+       (riece-xface-uninstall): New function.
+       * riece-url.el (riece-url-command-mode-hook): New function.
+       (riece-url-insinuate): Use it.
+       (riece-url-uninstall): New function.
+       * riece-unread.el (riece-unread-uninstall): New function.
+       * riece-toolbar.el (riece-toolbar-uninstall): New function.
+       * riece-rdcc.el (riece-rdcc-uninstall): New function.
+       * riece-ndcc.el (riece-ndcc-uninstall): New function.
+       * riece-mini.el (riece-mini-uninstall): New function.
+       * riece-menu.el (riece-menu-uninstall): New function.
+       * riece-lsdb.el: New function.
+       * riece-log.el (riece-log-uninstall): New function.
+       * riece-keyword.el (riece-keyword-uninstall): New function.
+       * riece-keepalive.el (riece-keepalive-uninstall): New function.
+       * riece-kakasi.el (riece-kakasi-uninstall): New function.
+       * riece-ignore.el (riece-ignore-uninstall): New function.
+       * riece-icon.el (riece-icon-user-list-mode-hook): New function.
+       (riece-icon-channel-list-mode-hook): New function.
+       (riece-icon-original-mode-line-buffer-identification): New variable.
+       (riece-icon-insinuate): Use them.
+       (riece-icon-uninstall): New function.
+       * riece-history.el
+       (riece-history-after-switch-to-channel-functions): New function.
+       (riece-history-insinuate): Use it.
+       (riece-history-uninstall): New function.
+       * riece-highlight.el (riece-highlight-uninstall): New function.
+       * riece-hangman.el (riece-hangman-uninstall): New function.
+       * riece-google.el (riece-google-uninstall): New function.
+       * riece-foolproof.el (riece-foolproof-uninstall): New function.
+       * riece-eval.el (riece-eval-uninstall): New function.
+       * riece-eval-ruby.el (riece-eval-ruby-uninstall): New function.
+       * riece-doctor.el (riece-doctor-uninstall): New function.
+       * riece-ctlseq.el (riece-ctlseq-uninstall): New function.
+       * riece-ctcp.el (riece-ctcp-dialogue-font-lock-keywords): New variable.
+       (riece-ctcp-uninstall): New function.
+       * riece-button.el (riece-button-channel-list-mode-hook): New function.
+       * riece-biff.el (riece-biff-uninstall): New function.
+
+2005-08-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-saved-forms): Added riece-addons.
+
+       * riece-addon.el: Require 'riece-addon-modules.
+       (riece-command-list-addons): List all available add-ons from
+       riece-addon-modules.
+       (riece-addon-list-mode-map): Bind riece-command-insinuate-addon
+       and riece-command-uninstall-addon.
+       (riece-insinuate-addon): Rebuild riece-addon-dependencies.
+       (riece-command-insinuate-addon): New command.
+       (riece-command-uninstall-addon): New command.
+
+       * COMPILE (riece-examine-modules): New function.
+       (riece-examine): Use it.
+       (riece-compile): Use it.
+       (riece-install): Use it.
+       (riece-compile-package): Use it.
+       (riece-install-package): Use it.
+
+       * Makefile.am (EXTRA_DIST): Added riece-addon-modules.el.
+
+       * riece-addon-modules.el: New file.
+
+2005-08-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon.el (riece-command-list-addons): Use
+       riece-addon-dependencies instead of riece-addons.
+       (riece-command-enable-addon): Ditto.
+       (riece-command-disable-addon): Ditto.
+       (riece-uninstall-addon): New function.
+
+2005-08-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece): Don't override riece-addons setting.
+
+       * riece-globals.el (riece-addon-dependencies): New variable.
+
+       * riece-addon.el (riece-sort-addon-dependencies): Rename from
+       riece-resolve-addon-dependencies; return addon dependencies as an
+       alist, instead of returning a list of addons.
+
+2005-08-20  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-addon.el (riece-command-enable-addon): Redraw entire
+       add-on list.
+       (riece-command-disable-addon): Ditto.
+
+2005-08-17  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-filter.el (riece-handle-message): Use
+       riece-funcall-ignore-errors instead of riece-ignore-errors.
+
+       * riece-ctcp.el (riece-handle-ctcp-request): Use
+       riece-funcall-ignore-errors instead of riece-ignore-errors.
+       (riece-handle-ctcp-response): Ditto.
+
+2005-08-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-data-directory): Use load-file-name.
+
+2005-08-15  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-options.el (riece-data-directory): Avoid compile time
+       error when locate-data-directory undefined.
+
+2005-08-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-quit-timeout): Set default to 1.
+
+       * riece-irc.el (riece-irc-quit-server-process): Display message
+       before/after sending QUIT.
+
+2005-08-14  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-addons-insinuated): Abolished.
+       (riece): Don't check riece-addons-insinuated.
+
+       * riece-addon.el (riece-insinuate-addon): Put
+       'riece-addon-insinuated property on add-on feature.
+
+2005-08-13  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE (riece-install-package): Install *.xpm and *.rb in etc/riece.
+
+       * riece-async.el (riece-async-open-network-stream): Locate Ruby
+       script files in riece-data-directory.
+       * riece-toolbar.el (riece-make-toolbar-from-menu): Locate icon
+       files in riece-data-directory.
+       * riece-ruby.el (riece-ruby-execute): Locate Ruby script files in
+       riece-data-directory.
+       * riece-options.el (riece-data-directory): New user option.
+
+2005-08-12  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ruby.el (riece-ruby-filter): Pass timestamp of output
+       event to output-handler.
+
+2005-08-12  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-button.el (riece-user-button-popup-menu): Simplified
+       menu item titles.
+
+       * COMPILE (riece-compile-module): New function.
+       (riece-examine): New function.
+
+       * Makefile.am (compile-individually): New rule.
+
+       * riece-log.el (riece-log-file-name-regexp): New constant.
+       (riece-log-get-file): Add 2nd argument coding-system.
+       (riece-log-get-files): Add 2nd argument time.
+       (riece-log-insert): Simplified; determine coding-system from
+       suffix of each log file.
+       (riece-log-dired): Renamed from riece-log-open-directory.
+       (riece-log-open-directory-function): Abolished.
+       (riece-log-make-file-name): Renamed from riece-log-get-file.
+       (riece-log-list-files): Renamed from riece-log-get-files.
+       (riece-log-directory): Renamed from riece-log-get-directory.
+
+       * Makefile.am (EXTRA_DIST): Added aproxy.rb.
+
+       * COMPILE (riece-scripts): Added "aproxy.rb".
+
+       * riece-async.el (riece-async-buffer-size): Renamed from
+       riece-async-max-buffer-size.
+       (riece-async-backup-file): New user option.
+       (riece-async-server-program): New variable.
+       (riece-async-server-program-arguments): New variable.
+       (riece-async-open-network-stream): Use aproxy.rb.
+
+       * aproxy.rb: New file.
+
+       * riece-ruby.el (riece-ruby-out-file): New user option.
+       (riece-ruby-err-file): New user option.
+       (riece-ruby-log-file): New user option..
+       (riece-ruby-server-program-arguments): New variable.
+       (riece-ruby-filter): Call output-handler within
+       riece-debug-with-backtrace; erase process output.
+       (riece-ruby-run-exit-handler): Call exit-handler within
+       riece-debug-with-backtrace.
+
+       * server.rb: Don't bind @err in execution environment;
+       added logging feature.
+
+2005-08-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * server.rb: Connect $stdout and $stderr to StringIO objects.
+
+       * riece-async.el: Use riece-ruby (partially).
+
+       * riece-eval-ruby.el (riece-eval-ruby-prefix-regexp): New user option.
+       (riece-eval-ruby-exit-handler): Print "nil".
+
+2005-08-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-hangman.el (riece-hangman-hello-regexp): Changed regexp.
+       (riece-hangman-bye-regexp): Ditto.
+
+       * riece-doctor.el (riece-doctor-hello-regexp): Changed regexp.
+       (riece-doctor-bye-regexp): Ditto.
+
+       * riece-ruby.el: Moved add-on stuff to riece-eval-ruby.el.
+
+       * riece-eval-ruby.el: New add-on.
+       * COMPILE (riece-modules): Add riece-eval-ruby.
+       * Makefile.am (EXTRA_DIST): Add riece-eval-ruby.el.
+
+2005-08-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * server.rb (Server::unescape): Fixed.
+
+       * riece-ruby.el: Implement add-on API.
+       (riece-ruby-filter): Fixed regexp; fixed argument order of
+       output-handler.
+       (riece-ruby-run-exit-handler): Remove exit-handler entry before
+       running it to avoid recursion; call riece-ruby-clear if
+       exit-handler is specified.
+       (riece-ruby-exit-handler): Don't call riece-ruby-clear.
+
+       * riece-rdcc.el: Use riece-ruby.
+
+2005-08-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ruby.el (riece-ruby-property-alist): New variable
+       (riece-ruby-set-property): New function.
+       (riece-ruby-property): New function.
+       (riece-ruby-execute): Locate server.rb from load-path.
+
+       * Makefile.am (EXTRA_DIST): Added riece-ruby.el and server.rb.
+
+       * COMPILE (riece-modules): Added riece-ruby.
+       (riece-icons): Use filename instead of symbol.
+       (riece-scripts): New variable.
+       (riece-install-icons): Use filename instead of symbol.
+       (riece-install-scripts): New function.
+       (riece-install): Call riece-install-scripts.
+       (riece-install-package): Ditto.
+
+2005-08-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ruby.el: Add docs for variables.
+       (riece-ruby-substitute-variables): Substitute multiple variables.
+       (riece-ruby-filter): Call output-handler/exit-handler with program
+       name.
+
+2005-08-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * server.rb: Renamed from rubyserv.rb; s/RubyServ/Server/.
+       * riece-ruby.el (riece-ruby-server-program): Follow the filename
+       change.
+       (riece-ruby-set-output-handler): New function.
+
+2005-08-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ruby.el: Fixed example.
+       (riece-ruby-server-program): New variable.
+       (riece-ruby-status-alist): New variable.
+       (riece-ruby-status): Abolished.
+       (riece-ruby-escaped-data): Renamed from riece-ruby-input.
+       (riece-ruby-reset-process-buffer): New function.
+       (riece-ruby-send-exit): New function.
+       (riece-ruby-filter): Call riece-ruby-run-exit-handler if the
+       program is exited.
+       (riece-ruby-run-exit-handler): New function.
+       (riece-ruby-execute): Don't expect program name.
+       (riece-ruby-clear): New function.
+       (riece-ruby-set-exit-handler): New function.
+
+       * rubyserv.rb (RubyServ::dispatch_eval): Don't expect program
+       name; eval under the binding of RubyServ::C.
+       (RubyServ::dispatch_poll): Don't clear @thr.
+       (RubyServ::dispatch_exit): New method.
+
+2005-08-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ruby.el: New file.
+       * rubyserv.rb: Rewrite.
+
+2005-08-09  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-mini.el (riece-mini-message-no-log): Defined as a
+       function.
+       (riece-mini-requires): Fixed indent.
+
+2005-08-08  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-dialogue-mode-map): Bind
+       riece-command-toggle-others-buffer-mode.
+
+       * riece-commands.el (riece-command-toggle-others-buffer-mode): New
+       command.
+
+       * riece-layout.el (riece-configure-windows): Hide
+       riece-others-buffer if riece-others-buffer-mode is nil.
+
+       * riece-options.el (riece-saved-forms): Add
+       riece-others-buffer-mode and riece-channel-list-buffer-mode.
+       (riece-others-buffer-mode): New user option.
+
+2005-08-06  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-alias.el (riece-alias-alternate-separator): Set to "@".
+
+2005-07-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-debug.el: Don't bind unused variable; prepend time to
+       debug message.
+
+2005-07-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-unread.el (riece-guess-channel-from-unread): Return
+       reversed copy of riece-unread-channels.
+
+       * riece-server.el (riece-server-parse-string): Use
+       string-to-number instead of string-to-int.
+
+2005-07-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-display.el (riece-channel-buffer): Return nil when
+       channel-buffer is killed.
+
+       * riece-debug.el (riece-debug-1): New function.
+       (riece-debug): Always return nil.
+
+2005-06-04  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-server.el (riece-server-keyword-map): Add :coding-system-alist.
+
+       * riece-irc.el (riece-irc-open-server): Init riece-coding-system-alist.
+
+       * riece-handle.el (riece-handle-privmsg-message): Retry with the
+       channel's coding-system if it differs from the server's
+       coding-system.
+
+       * riece-commands.el (riece-command-send-message): Pass prefix to
+       riece-send-string.
+
+       * riece-globals.el (riece-coding-system-alist): New variable.
+
+       * riece-coding.el (riece-decode-coding-string-1): Split from
+       riece-decode-coding-string; set riece-coding-encoded-string and
+       riece-coding-decoded-coding-system properties on decoded string.
+       (riece-retry-decode-coding-string): New function.
+       (riece-decoded-coding-system): Use it.
+
+2005-06-03  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ruby.el: New file.
+
+2005-04-04  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-misc.el (riece-get-channels-on-server): New function.
+       (riece-get-users-on-server): Don't use riece-user-p.
+       (riece-get-identities-on-server): Call
+       riece-get-channels-on-server and riece-get-users-on-server.
+
+       * riece-identity.el (riece-completing-read-identity): Don't signal
+       an error when input string does not match riece-channel-regexp nor
+       riece-user-regexp.
+
+       * riece-300.el (riece-handle-366-message): Don't use riece-user-regexp.
+       (riece-handle-302-message): Ditto.
+       (riece-handle-313-message): Ditto.
+
+2005-03-22  Daiki Ueno  <ueno@unixuser.org>
+
+       * rubyserv.rb: New file.
+
+2005-03-20  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-toolbar.el [XEmacs] (riece-make-toolbar-from-menu):
+       Pick up toolbar icons from etc/riece/.
+
+2005-03-12  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-buffer-alist): Init riece-debug-buffer.
+       (riece-submit-bug-report): Insert content of riece-debug-buffer.
+
+       * riece-globals.el (riece-debug-buffer): New variable.
+       * riece-filter.el (riece-sentinel): Use riece-debug.
+       * riece-display.el (riece-channel-buffer-name): Use riece-debug.
+       * riece-button.el (riece-identity-button-click): Use riece-debug.
+       * riece-debug.el (riece-debug): New function.
+       (riece-ignore-errors): Use it.
+
+       * riece-filter.el (riece-filter): Removed (eobp) check.
+
+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.
+       * riece-version.el (riece-version-number): Bump up to 1.0.6.
+
+2004-12-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-display.el (riece-update-channel-status-indicator): Fixed typo.
+
+2004-11-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * test/lunit.el (lunit-report): Accept output filename as the 2nd arg.
+       * Makefile.am (check-local): Supply riece-test with output filename.
+       * COMPILE (riece-test): Supply lunit-report with output filename.
+
+       * test/lunit.el: Require 'pp.
+       (lunit-escape-quote): Rename from lunit-test-reporter-format-sexp.
+       (lunit-report): Add "emacs-version" property.
+
+2004-11-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE (riece-test): Use lunit-report instead of lunit.
+
+       * test/lunit.el: Report test result as XML.
+       (lunit-time-since): New function.
+       (lunit-test-reporter): New test-listener.
+       (lunit-test-reporter-format-sexp): New function.
+       (lunit-report): New function.
+
+2004-11-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * test/lunit.el: Update copyright year.
+       (lunit-test-result-run): Fixed the argument of
+       lunit-test-listener-error listener.
+
+2004-11-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE (riece-test): Require 'lunit after when ./test is added
+       to load-path.
+
+       * test/test-riece-yank.el (test-riece-yank-strip-space): Use
+       lunit-assert-2 instead of lunit-assert.
+
+       * test/test-riece-url.el (test-riece-url-replace-match): Use
+       lunit-assert-2 instead of lunit-assert.
+       (test-riece-url-regexp-alist): Ditto.
+
+       * test/test-riece-alias.el (test-riece-alias-percent-hack): Use
+       lunit-assert-2 instead of lunit-assert.
+       (test-riece-alias-alist-1): Ditto.
+       (test-riece-alias-alist-2): Ditto.
+       (test-riece-alias-altsep-1): Ditto.
+       (test-riece-alias-altsep-2): Ditto.
+       (test-riece-alias-altsep-3): Ditto.
+       (test-riece-alias-altsep-4): Ditto.
+
+       * test/test-riece-addon.el (test-riece-resolve-addons-1): Use
+       lunit-assert-2 instead of lunit-assert.
+       (test-riece-resolve-addons-2): Ditto.
+
+       * test/lunit.el: Count assertions in test-case methods.
+       (lunit-test-result): Add assert-count slot.
+       (lunit-make-test-result): Reset assert-count to 0.
+       (lunit-test-result-run): Count assertions.
+       (lunit-test-result-failure): Abolished.
+       (lunit-test-case): Add assert-count slot; define internal
+       accesssors for them.
+       (lunit-make-test-case): Reset assert-count to 0.
+       (lunit-assert-2): New macro.
+       (lunit): Display assertion count.
+
+2004-11-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * Makefile.am (EXTRA_DIST): Add url-riece.el.
+       * url-riece.el: url-irc backend provided by Masatake YAMATO
+       <jet@gyve.org>.
+       [cf. <Liece:00373>]
+
+2004-11-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * test/Makefile.am (EXTRA_DIST): Add test-riece-url.el.
+       * test/test-riece-url.el: New test cases.
+
+       * riece-url.el (riece-url-regexp-alist): Backport from Liece 2.0.
+       (riece-url-replace-match): New function.
+       (riece-url-scan-region): Handle riece-url-regexp-alist.
+
+2004-11-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-server.el (riece-server-properties): New function.
+
+2004-11-22  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-display.el (riece-update-status-indicators): Format
+       riece-user-indicator as an identity.
+
+2004-11-22  Daiki Ueno  <ueno@unixuser.org>
+
+       * test/test-riece-alias.el (test-riece-alias-alist-1): New test case.
+       (test-riece-alias-alist-2): New test case.
+
+       * riece-alias.el (riece-alias-abbrev-identity-string): Fixed
+       riece-alias-alist handling.
+       (riece-alias-expand-identity-string): Ditto.
+
+2004-11-21  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-shrink-buffer-remove-lines): New user option.
+       * riece.el (riece-shrink-buffer): Remove lines specified by
+       riece-shrink-buffer-remove-lines at a time.
+
+2004-11-21  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece): Remove nonexistent buffer from
+       riece-buffer-list when running riece-shrink-buffer.
+
+2004-11-20  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-display.el (riece-update-buffers): Check existence of each
+       buffer in riece-buffer-list.
+       * riece.el (riece): Ditto.
+
+2004-11-20  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el: Bind reporter-prompt-for-summary-p.
+
+2004-11-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-submit-bug-report): Query VERSION.
+
+2004-11-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-submit-bug-report): Query CTCP VERSION before
+       inspecting *IRC* buffer.
+
+2004-11-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-submit-bug-report): use
+       riece-server-process-opened instead of process-live-p.
+
+       * riece-server.el (riece-flush-send-queue): Use
+       riece-server-process-opened instead of process-live-p.
+
+       * riece-yank.el (riece-yank-strip-space): Bind space-width.
+
+       * riece-xemacs.el (riece-recent-messages): New function.
+       * riece-emacs.el (riece-recent-messages): New function.
+       * riece.el (riece-submit-bug-report): Use riece-recent-messages
+       instead of (with-output-string (print-recent-messages ...)).
+
+2004-11-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-submit-bug-report): New command.
+
+2004-11-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-misc.el (riece-insert): Don't bind unused variable `buffer'.
+
+2004-11-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-300.el (riece-handle-302-message): Don't expect leading
+       ":" before parameter list.
+       (riece-handle-301-message): Ditto.
+       (riece-handle-311-message): Ditto.
+       (riece-handle-312-message): Ditto.
+       (riece-handle-317-message): Ditto.
+       (riece-handle-319-message): Ditto.
+       (riece-handle-351-message): Ditto.
+       (riece-handle-353-message): Ditto.
+       (riece-handle-322-message): Ditto.
+       (riece-handle-set-topic): Ditto.
+       (riece-handle-366-message): Ditto.
+
+2004-11-14  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-exit): Reset riece-channel-status-indicator.
+       (riece-command-mode): Display riece-channel-status-indicator.
+       (riece-dialogue-mode): Ditto.
+       (riece-channel-mode): Ditto.
+
+       * riece-display.el (riece-update-channel-status-indicator): New
+       function.
+       (riece-update-indicator-functions): Add it.
+
+       * riece-globals.el (riece-channel-status-indicator): New indicator.
+
+2004-11-13  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-select-keys): Bind
+       riece-command-switch-to-channel-by-number to "#".
+
+2004-11-11  Masatake YAMATO  <jet@gyve.org>
+
+       * riece-yank.el (riece-command-yank): Fix a typo in comments.
+
+2004-11-09  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-yank.el (riece-command-yank): Take a 1st argument to send
+       messages as notice.
+
+2004-11-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.5 released.
+       * riece-version.el (riece-version-number): Bump up to 1.0.5.
+
+2004-11-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-yank.el (riece-yank-strip-space): New function split from
+       riece-command-yank.
+       * test/test-riece-addon.el: New test cases.
+       * test/test-riece-yank.el: New test cases.
+
+2004-11-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * COMPILE (riece-test): New function.
+       * Makefile.am (check-local): New target.
+       * test/luna.el: New file.
+       * test/lunit.el: New file.
+       * test/test-riece-alias.el: New test cases.
+
+2004-11-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-alias.el (riece-alias-alternate-separator): New user
+       option.
+       (riece-alias-use-atmark): Abolished.
+       (riece-alias-escape-alternate-separator): Renamed from
+       riece-alias-escape-atmark; use riece-alias-alternate-separator
+       instead of hard-coded "@".
+       (riece-alias-abbrev-alternate-separator): Renamed from
+       riece-alias-abbrev-atmark; use riece-alias-alternate-separator
+       instead of hard-coded "@".
+       (riece-alias-expand-alternate-separator): Renamed from
+       riece-alias-expand-atmark; use riece-alias-alternate-separator
+       instead of hard-coded "@".
+
+2004-11-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-alias.el (riece-alias-abbrev-atmark): Don't append "@" to
+       a channel on default server.
+
+2004-11-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-alias.el (riece-alias-use-atmark): New user option.  If
+       this option enabled, atmark "@" will be used to separate prefix
+       and server. (e.g. "#riece@server")
+       (riece-alias-escape-atmark): New function.
+       (riece-alias-abbrev-atmark): New function.
+       (riece-alias-expand-atmark): New function.
+       (riece-alias-abbrev-identity-string): Call
+       riece-alias-abbrev-atmark.
+       (riece-alias-expand-identity-string): Call
+       riece-alias-expand-atmark.
+
+       * riece-rdcc.el (riece-rdcc-block-size): Changed default value to
+       1024 due to the DCC specification.
+       (riece-rdcc-send-program): Wait ack from a recipient.
+       (riece-rdcc-filter): Send ack each time data arrives.
+
+2004-10-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-yank.el (riece-yank-strip-space): New user option.
+       (riece-command-yank): Strip spaces if riece-yank-strip-space is
+       non-nil.
+
+2004-10-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-yank.el: New add-on from Masatake YAMATO <jet@gyve.org>.
+       * COMPILE (riece-modules): Add riece-yank.
+       * Makefile.am (EXTRA_DIST): Add riece-yank.el.
+
+2004-10-11  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.4 released.
+       * riece-version.el (riece-version-number): Bump up to 1.0.4.
+
+2004-10-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece): Scan riece-startup-channel-list and open servers.
+
+2004-09-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-send-delay): Set default to 2.
+
+       * riece-server.el (riece-make-queue): New function.
+       (riece-queue-enqueue): New function.
+       (riece-queue-dequeue): New function.
+       (riece-queue-empty): New function.
+       (riece-flush-send-queue): Use a queue object; check the process
+       is active.
+
+2004-09-25  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-server.el: Implement flood protection.
+       (riece-flush-send-queue): New function.
+       (riece-process-send-string): Use it.
+       (riece-reset-process-buffer): Reset riece-send-queue,
+       riece-send-size, and riece-last-send-time.
+       (riece-seconds-to-time): New function.
+       (riece-time-less-p): New function.
+       (riece-time-since): New function.
+       * riece-options.el (riece-max-send-size): New user option.
+       (riece-send-delay): New user option.
+       * riece-globals.el (riece-send-queue): New variable.
+       (riece-send-size): New variable.
+
+2004-09-14  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-log.el (riece-log-flashback): Run riece-button-update-buffer
+       only when riece-button is enabled.
+
+       * riece-mini.el: Require 'riece-biff.
+       (riece-mini-requires): New function.
+       (riece-mini-show-backlog): Run riece-biff-clear when riece-biff is
+       enabled.
+
+2004-09-13  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-mini.el (riece-mini-show-backlog): Fix for long messages.
+       (riece-mini-backlog-size): Change default value.
+
+2004-09-12  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-mini.el (riece-mini-show-backlog): Protect 1st arg of
+       `riece-mini-message-no-log'.
+
+2004-09-11  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-mini.el (riece-mini-display-message-function): Remove
+       properties and "\n" of the end.
+       (riece-mini-show-backlog): Follow the change above.
+       (riece-mini-display-message-function): Save the history always.
+
+2004-09-10  OHASHI Akira  <bg66@koka-in.org>
+
+       * riece-mini.el (riece-mini-display-message-function): Don't use
+       cl macro.
+       (riece-mini-show-backlog): Follow the change above.
+
+       * riece-mini.el (riece-mini): New group.
+       (riece-mini-backlog-size): New user option.
+       (riece-mini-backlog-history): New internal variable.
+       (riece-mini-backlog-shown): Ditto.
+       (riece-mini-show-backlog): New function.
+       (riece-mini-pre-command): Ditto.
+       (riece-mini-display-message-function): Use them.
+       (riece-mini-insinuate): Ditto.
+
+       * riece-biff.el (toplevel): Remove eval-when-compile.
+       * riece-log.el (toplevel): Ditto.
+       * riece-mini.el (toplevel): Ditto.
+
+2004-09-05  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.3 released.
+       * riece-version.el (riece-version-number): Bump up to 1.0.3.
+
+2004-09-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-naming.el (riece-naming-assert-channel-users): Remove
+       nonexistent users.
+       * riece-300.el (riece-353-users): New variable.
+       (riece-handle-353-message): Don't update user-list.
+       (riece-handle-366-message): Update user-list here.
+
+       * riece-channel.el (riece-channel-toggle-operator): Don't add ?o
+       if it already appears in user's mode.
+       (riece-channel-toggle-speaker): Don't add ?v if it already appears
+       in user's mode.
+
+2004-08-31  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-command-mode): Set truncate-lines to nil.
+       (riece-dialogue-mode): Ditto.
+       (riece-channel-list-mode): Make
+       truncate-partial-width-windows local to channel buffers and set it
+       to nil.
+       (riece-user-list-mode): Ditto.
+
+2004-08-31  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-dialogue-mode): Make
+       truncate-partial-width-windows local to channel buffers and set it
+       to nil.
+       (riece-command-mode): Ditto.
+
+       * riece-layout.el (riece-configure-windows): Don't affect
+       truncate-partial-width-windows.
+       (riece-configure-windows-top): Ditto.
+       * riece-options.el (riece-truncate-partial-width-windows):
+       Abolished unused user option.
+
+2004-08-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-options.el (riece-window-center-line): New user option.
+       * riece-misc.el (riece-insert): Check if the current point is not
+       visible in the window.
+
+2004-08-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-misc.el (riece-insert): Don't use 2nd argument WINDOW of
+       recenter since it is not supported by GNU Emacs.
+
+2004-08-30  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-misc.el (riece-insert): Use (recenter -1) to set window
+       point instead of doing so manually.
+
+2004-08-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-xemacs.el (riece-put-text-property-nonsticky): New function.
+       * riece-emacs.el (riece-put-text-property-nonsticky): New function.
+       * riece-identity.el (riece-format-identity): Use it instead of
+       put-text-property.
+
+2004-08-27  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-complete-user): Move point to
+       the end of the current word.
+
+2004-08-23  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-irc.el (riece-irc-open-server): Display error message if
+       connection-function fails.
+       * riece-server.el (riece-open-server): Ignore errors from
+       riece-*-open-server function.
+       * riece.el (riece): If no server process is available, exit
+       immediately.
+
+2004-08-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-handle.el (riece-handle-quit-message): Pass
+       riece-part-channel the identity object of the quitting user
+       instead of his name.
+
+2004-08-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-highlight.el (riece-highlight-server-match): Simplified.
+
+2004-08-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.2 released.
+       * riece-version.el (riece-version-number): Bump up to 1.0.2.
+
+2004-08-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-highlight.el (riece-highlight-server-match): New match
+       function for font-lock-keywords to highlight "(from XXX)" only if
+       'riece-server-name property is set.
+       (riece-dialogue-font-lock-keywords): Use it.
+
+2004-08-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-handle.el (riece-handle-nick-message): Remove nil from
+       channel buffers.
+       (riece-handle-quit-message): Ditto.
+       (riece-handle-kill-message): Ditto.
+
+       * riece-misc.el (riece-concat-server-name): Put 'riece-server-name
+       property on "(from XXX)".
+
+2004-07-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-menu.el: Do not support enable/disable addon since
+       easy-menu-remove is not working.
+
+2004-07-19  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-server.el (riece-open-server): Call protocol interface.
+       (riece-quit-server-process): Ditto.
+
+       * riece-options.el (riece-protocol): New user option.
+
+       * riece-server.el: Don't require 'riece-filter.
+
+       * riece-irc.el: New file split from riece-server.el.
+       * COMPILE (riece-modules): Add riece-irc.
+       * Makefile.am (EXTRA_DIST): Add riece-irc.el.
+
+2004-07-18  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el: Don't require 'riece-filter.
+       * riece-server.el: Require 'riece-filter.
+
+       * riece-500.el: Autoload riece-default-handle-numeric-reply from
+       "riece-handle".
+       * riece-400.el: Autoload riece-default-handle-numeric-reply from
+       "riece-handle".
+       * riece-300.el: Don't require 'riece-filter; autoload
+       riece-default-handle-numeric-reply from "riece-handle".
+       * riece-200.el: Autoload riece-default-handle-numeric-reply from
+       "riece-handle".
+       * riece-000.el: Don't require 'riece-filter; autoload
+       riece-default-handle-numeric-reply from "riece-handle".
+
+       * riece-filter.el (riece-filter): Simplified.
+
+       * riece-server.el (riece-server-keyword-map): Add :protocol.
+
+       * riece-handle.el (riece-300): Require 'riece-000, 'riece-200,
+       'riece-300, 'riece-400, and 'riece-500.
+       (riece-default-handle-numeric-reply): Moved from riece-filter.el.
+       * riece-filter.el (riece-handle-numeric-reply): Don't load
+       riece-{000,200,300,400,500}.el on demand.
+
+2004-07-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.1 released.
+       * riece-version.el (riece-version-number): Bump up to 1.0.1.
+
+2004-07-09  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-ignore.el (riece-startup-ignored-user-list): New user
+       option.
+       (riece-ignore-insinuate): Add identity objects from
+       riece-startup-ignored-user-list to riece-ignored-user-list.
+
+2004-07-07  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-enter-message-to-user): Signal
+       "No text to send" error if user attempt to call this command on
+       an empty line.
+
+2004-07-04  Yoichi NAKAYAMA  <yoichi@geiin.org>
+
+       * riece-commands.el (riece-command-complete-user): current-word
+       can return nil (follow the change in emacs-cvs).
+
+2004-07-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-exit): Clear signal-slots.
+       * riece-signal.el (riece-clear-signal-slots): New function.
+
+2004-06-28  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-misc.el (riece-split-parameters): Fixed parenthesis.
+
+2004-06-26  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-change-mode): Don't send ":".
+       [cf. <Liece:00191>]
+
+2004-06-18  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-display.el (riece-update-long-channel-indicator): Change
+       order to channel, mode, topic.
+
+       * riece-message.el (riece-message-make-open-bracket): Come in
+       first notice message.
+       (riece-message-make-close-bracket): Ditto.
+
+2004-06-16  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-beginning-of-buffer): New command.
+       * riece.el (riece-dialogue-mode-map): Bind beginning-of-buffer to Home.
+       (riece-command-map): Bind riece-command-beginning-of-buffer to Home.
+
+2004-06-15  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece.el (riece-dialogue-mode-map): Bind end-of-buffer to End.
+       (riece-command-map): Bind riece-command-end-of-buffer to End.
+
+2004-06-12  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-commands.el (riece-command-send-message): Run
+       riece-command-send-message-hook.
+
+       * riece-foolproof.el (riece-foolproof-dmacro-override): Removed.
+       (riece-foolproof-command-send-message-function): New function.
+       (riece-foolproof-insinuate): Use hook instead of advice.
+       (riece-foolproof-enable, riece-foolproof-disable): Simplified.
+
+2004-06-11  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-foolproof.el (riece-foolproof-dmacro-override): New
+       function.
+       (riece-foolproof-insinuate): Check keyboard macro.
+
+2004-06-10  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-foolproof.el: New add-on.
+       * COMPILE (riece-modules): Add riece-foolproof.
+       * Makefile.am (EXTRA_DIST): Add riece-foolproof.el.
+
+2004-06-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-change-mode): Don't send ":" to
+       query a channel mode.
+       * riece-mode.el (riece-parse-modes): Accept mode spec not
+       delimited with " " such as "-n+s".
+
+2004-06-10  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-layout.el (riece-set-window-points): Restore window-point
+       of the channel buffer from riece-channel-buffer-window-point.
+
+       * riece-display.el (riece-switch-to-channel): Set
+       riece-channel-buffer-window-point.
+
+       * riece.el (riece-channel-mode): Make
+       riece-channel-buffer-window-point buffer local.
+
+       * riece-globals.el (riece-channel-buffer-window-point): New variable.
+
+2004-06-06  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-rdcc.el (riece-command-dcc-send): Replace whitespace with
+       "_".
+       (riece-command-dcc-receive): Convert default filename with
+       convert-standard-filename.
+       (riece-handle-dcc-request): Handle filenames enclosed with "...".
+
+2004-06-04  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * riece-hangman.el (riece-hangman-word): Check killed-buffer or
+       not.  Fix random number generation logic.
+
+2004-06-03  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-server.el (riece-open-server): When password input is
+       quitted, delete the current server process manually.
+       (riece-close-server-process): Always kill process buffer.
+       (riece-quit-server-process): If the connection is timed out,
+       delete the current server process manually.
+
+2004-06-02  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-unread.el: Use riece-facep to check existence of
+       'riece-modeline-unread-face.
+       * riece-history.el: Use riece-facep to check existence of
+       'riece-modeline-history-face.
+       * riece-highlight.el: Use riece-facep to check existence of
+       'riece-modeline-current-face.
+
+       * riece-xemacs.el (riece-facep): Define as an alias of 'find-face.
+       * riece-emacs.el (riece-facep): Define as an alias of 'facep.
+
+2004-06-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-button.el (riece-button-disable): On XEmacs, BUFFER arg of
+       widget-map-buttons is ignored.
+
+2004-06-01  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-unread.el (riece-modeline-unread-face): New face;
+       setup the properties are inherited from 'modeline.
+       * riece-history.el (riece-modeline-history-face): New face;
+       setup the properties are inherited from 'modeline.
+       * riece-highlight.el (riece-modeline-current-face): New face;
+       setup the properties are inherited from 'modeline.
+
+       * riece-server.el (riece-close-server-process): Reset
+       process-filter/process-sentinel.
+
+2004-05-31  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-hangman.el (riece-hangman-after-privmsg-hook): Display answer.
+       (riece-hangman-enable): Initialize random seed.
+
+2004-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * Riece: Version 1.0.0 released.
+       * riece-version.el (riece-version-number): Bump up to 1.0.0.
+
+2004-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-finger): Complete user names
+       without server-name.
+       (riece-command-invite): Ditto.
+       (riece-command-change-mode): Ditto.
+       (riece-command-enter-message-to-user): Ditto.
+
+       * riece-identity.el (riece-completing-read-identity): Add extra
+       8th arg "no-server".
+
+2004-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-server.el: Move autoload setting for 'riece-exit before
+       riece-open-server.
+
+       * riece-message.el (riece-format-message): Use speaker's
+       server-name instead of the current server-name.
+
+       * riece-ignore.el: Autoload 'riece-dialogue-mode.
+
+       * riece-identity.el (riece-format-identity): Put
+       'riece-format-identity-prefix-only property.
+
+       * riece-icon.el: Require 'riece-globals and 'riece-signal.
+
+       * riece-history.el: Require 'riece-signal.
+
+       * riece-highlight.el: Require 'riece-misc.
+
+       * riece-alias.el: Require 'riece-signal.
+
+       * riece-addon.el: Require 'font-lock, 'riece-options,
+       'riece-compat, and 'riece-misc.
+
+2004-05-29  Daiki Ueno  <ueno@unixuser.org>
+
+       * riece-commands.el (riece-command-switch-to-channel): Change prompt.
+       (riece-command-switch-to-channel-by-number): Ditto.
+       (riece-command-change-layout): Ditto.
+       (riece-command-finger): Ditto.
+       (riece-command-topic): Ditto.
+       (riece-command-invite):