Revised.
[riece] / doc / riece-ja.texi
index a2b17c3..a2b8c47 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename riece-ja.info
 @settitle Riece -- An IRC client for Emacsen --
 @c %**end of header
-@set VERSION 0.1.5
+@set VERSION 0.2.2
 @c @documentlanguage ja
 
 @dircategory GNU Emacs Lisp
@@ -14,7 +14,7 @@
 @ifinfo
 This file describes Riece.
 
-Copyright (C) 2003 Daiki Ueno.
+Copyright (C) 2003,2004 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
@@ -66,23 +66,25 @@ Riece \e$B$O\e(B Emacs \e$B$G\e(B IRC (Internet Relay Chat) \e$B$K;22C$9$k$?$a$N%W%m%
 @chapter Overview
 
 Riece \e$B$O!"D9$$4V%a%s%F%J%s%9IT2DG=$J>uBV$K$"$C$?\e(B Liece \e$B$N%3!<%I$r40A4$K\e(B
-\e$B=q$-D>$7$?$b$N$G$9!#%$%s%?!<%U%'!<%9$O!"\e(BLiece \e$B$+$i$[$H$s$I$=$N$^$^F'=1$7\e(B
-\e$B$F$$$^$9!#\e(B
+\e$B=q$-D>$7$?$b$N$G$9!#%f!<%6%$%s%?!<%U%'!<%9$NBgItJ,$O\e(B Liece \e$B$N$b$N$rF'=1\e(B
+\e$B$7$F$$$^$9!#\e(B
 
 \e$B8=:_$N$H$3$m\e(B IRC \e$B%/%i%$%"%s%H$H$7$F$N5!G=$O==J,$G$O$"$j$^$;$s$,!"\e(BLiece 
 \e$B$K$O$J$$FCD9$,$$$/$D$+$"$j$^$9!#0J2<$K$=$l$i$N0lIt$r5s$2$^$9!#\e(B
 
 @itemize @bullet
-@item \e$BJ#?t$N%5!<%P$KF1;~$K$D$J$2$k\e(B
-@item \e$B0l1~\e(B API \e$B$i$7$$\e(B API \e$B$,MQ0U$5$l$F$$$k\e(B
-@item \e$B%3!<%I%5%$%:$,>.$5$$\e(B (Liece \e$B$NH>J,DxEY\e(B)
-@item \e$B%"%I%*%s$K$h$k3HD%$,2DG=\e(B
-@item APEL \e$B$,$$$i$J$$\e(B
+@item \e$BJ#?t$N\e(B IRC \e$B%5!<%P$KF1;~$K@\B32DG=\e(B
+@item \e$B%"%I%*%s$K$h$j5!G=$NDI2C$d<h$j30$7$,2DG=\e(B
+@item \e$BB>$N\e(B elisp \e$B%Q%C%1!<%8$K0MB8$7$J$$$?$a!"%$%s%9%H!<%k$,4JC1\e(B
+@item \e$B@_Dj$,4JC1$G!"A02s5/F0;~$N@_Dj$r5-O?!&I|85$9$k;EAH$_$rDs6!\e(B
+@item \e$BCJ3,E*$JA`:n@bL@=q\e(B(\e$B8=:_$OF|K\8l$N$_\e(B)\e$B$,ImB0\e(B
+@item \e$B:G?7$N\e(B IRC \e$B$N%/%i%$%"%s%H%W%m%H%3%k\e(B (RFC2812) \e$B$K=`5r\e(B
 @end itemize
 
 \e$B$h$j>\$7$$>pJs$O!"0J2<$N%Z!<%8$r8fMw$/$@$5$$!#\e(B
 
 @itemize @bullet
+@item http://www.nongnu.org/riece/
 @item http://wiliki.designflaw.org/index.cgi?Riece&l=jp
 @item http://www.unixuser.org/~ueno/liece/
 @end itemize
@@ -123,7 +125,7 @@ make install
 XEmacs \e$B$N%Q%C%1!<%8$H$7$F%$%s%9%H!<%k$9$k>l9g$K$O0J2<$N$h$&$K$7$^$9!#\e(B
 
 @example
-./configure --with-xemacs[=xemacs-21.4.13]
+./configure --with-xemacs[=xemacs-21.4.15]
 make package
 make install-package
 @end example
@@ -139,25 +141,28 @@ XEmacs \e$B$N%Q%C%1!<%8$H$7$F%$%s%9%H!<%k$7$?>l9g$K$OI,MW$"$j$^$;$s$,!"\e(B
 @node Startup File,  , Installation, Getting started
 @section Startup file
 
-\e$B$O$8$a$F$D$+$&>l9g$K$O!"$H$/$K2?$b@_Dj$9$kI,MW$O$"$j$^$;$s!#\e(B
-\e$B$3$N>O$OFI$_Ht$P$7$F$/$@$5$$!#\e(B
+\e$B$3$N>O$G$O!"@_Dj%U%!%$%k$K$D$$$F2r@b$7$^$9!#\e(B
+
+\e$B;n$7$K;H$C$F$_$k>l9g$K$O!"FC$K2?$b@_Dj$9$kI,MW$O$"$j$^$;$s!#\e(B
+\e$B$3$N>O$OFI$_Ht$P$7$F$b9=$$$^$;$s!#\e(B
 
 Riece \e$B$O@_Dj%U%!%$%k$rJQ?t\e(B @code{riece-directory} \e$B$G;X<($5$l$k%G%#%l%/%H\e(B
 \e$B%j\e(B (\e$B%G%U%)%k%H$O\e(B @file{~/.riece/}) \e$B$+$iFI$_9~$_$^$9!#$3$N%G%#%l%/%H%j$K\e(B
-\e$B$O0J2<$NFs<oN`$N@_Dj%U%!%$%k$,3JG<$5$l$^$9!#\e(B
+\e$B$O0J2<$N\e(B 2 \e$B$D$N@_Dj%U%!%$%k$,G[CV$5$l$^$9!#\e(B
 
 @table @code
 @item riece-saved-variables-file
 @vindex riece-saved-variables-file
-\e$BA02s$N%;%C%7%g%s$N>pJs$r3JG<$7$^$9\e(B(\e$B%G%U%)%k%H$O\e(B @file{~/.riece/save})
+\e$BA02s$N%;%C%7%g%s$G99?7$5$l$?@_Dj$,<+F0E*$KJ]B8$5$l$^$9\e(B(\e$B%G%U%)%k%H$O\e(B @file{~/.riece/save})
 @item riece-variables-file
 @vindex riece-variables-file
 \e$B%f!<%6$K8GM-$N@_Dj$r5-=R$7$^$9\e(B(\e$B%G%U%)%k%H$O\e(B @file{~/.riece/init})
 @end table
 
 \e$B5/F0;~$K$O!":G=i$K\e(B @code{riece-saved-variables-file} \e$B$r!"<!$K\e(B 
-@code{riece-variables-file} \e$B$rFI$_9~$_$^$9!#%U%!%$%k$,B8:_$7$J$1$l$P2?$b\e(B
-\e$B$7$^$;$s!#\e(B
+@code{riece-variables-file} \e$B$rFI$_9~$_$^$9!#$D$^$j!"\e(B
+@file{~/.riece/save} \e$B$K<+F0E*$KJ]B8$5$l$?FbMF$O!"\e(B@file{~/.riece/init} \e$B$K\e(B
+\e$B5-=R$5$l$?FbMF$G>e=q$-$5$l$^$9!#\e(B
 
 @node Basic usage, Advanced usage, Getting started, Top
 @chapter Basic usage
@@ -191,10 +196,10 @@ Riece \e$B$O@_Dj%U%!%$%k$rJQ?t\e(B @code{riece-directory} \e$B$G;X<($5$l$k%G%#%l%/%
 * Connecting to multiple servers::  \e$BJ#?t$N%5!<%P$K$D$J$0$K$O\e(B
 @end menu
 
-@node Windows, Commands, Basic usage, Basic usage
+@node Windows, Indicators, Basic usage, Basic usage
 @section Windows
 
-\e$B%G%U%)%k%H$N@_Dj$G$O!"%A%c%s%M%k$KF~$k$H!"2<$N?^$K<($9$h$&$J8^$D$N%&%#%s\e(B
+\e$B%G%U%)%k%H$N@_Dj$G$O!"%A%c%s%M%k$KF~$k$H!"2<$N?^$K<($9$h$&$J\e(B 5 \e$B$D$N%&%#%s\e(B
 \e$B%I%&$+$i$J$k2hLL$K@Z$jBX$o$j$^$9!#\e(B
 
 @example
@@ -236,7 +241,7 @@ Riece \e$B$O@_Dj%U%!%$%k$rJQ?t\e(B @code{riece-directory} \e$B$G;X<($5$l$k%G%#%l%/%
 \e$B%"%6!<%:%P%C%U%!\e(B (@samp{*Others*})\e$B!#8=:_$N%A%c%s%M%k0J30$N2qOC$,N.$l$^$9!#\e(B
 @end enumerate
 
-@node Indicators
+@node Indicators, Commands, Windows, Basic usage
 @section Indicators
 
 \e$B%3%^%s%I%P%C%U%!$d%A%c%s%M%k%P%C%U%!$N%b!<%I%i%$%s$N:8C<$K$O!"\e(B
@@ -261,7 +266,7 @@ Riece: --- ueno #Liece [n]
 \e$B$P\e(B @samp{f})
 @end enumerate
 
-@node Commands, Connecting to multiple servers, Windows, Basic usage
+@node Commands, Connecting to multiple servers, Indicators, Basic usage
 @section Commands
 
 \e$BJ8>O$rF~NO$7$?%P%C%U%!$O!"%3%^%s%I%P%C%U%!$H8F$P$l!"%3%^%s%I%P%C%U%!$+$i\e(B
@@ -322,7 +327,7 @@ IRC \e$B$r$d$a$^$9\e(B(@code{riece-command-quit})
 \e$B%f!<%6$KH/8@8"$rM?$($^$9!#A0CV0z?t\e(B (@kbd{C-u}) \e$B$rM?$($k$H!"%f!<%6$+$iH/8@8"$rC%$$$^$9\e(B(@code{riece-command-set-speakers})
 @item C-c V
 @findex riece-version
-Riece \e$B$N%P!<%8%g%s$rI=<($7$^$9!#\e(B
+Riece \e$B$N%P!<%8%g%s$rI=<($7$^$9!#A0CV0z?t\e(B (@kbd{C-u}) \e$B$rM?$($k$H!"$h$j>\:Y$J>pJs$rI=<($7$^$9!#\e(B
 @item C-c /
 @findex riece-command-raw
 \e$B@8$N\e(B IRC \e$B%3%^%s%I$rAw$j$^$9\e(B(@code{riece-command-raw})
@@ -372,10 +377,12 @@ Riece \e$B$N%P!<%8%g%s$rI=<($7$^$9!#\e(B
 \e$B%f!<%6%j%9%H%P%C%U%!$NI=<(!&HsI=<($r@Z$jBX$($^$9\e(B(@code{riece-command-toggle-user-list-buffer-mode})
 @item C-c C-t f
 @findex riece-command-toggle-freeze
-\e$B%A%c%s%M%k%P%C%U%!!"$^$?$O%@%$%"%m%0%P%C%U%!$N%9%/%m!<%k$r6X;_$7$^$9\e(B(@code{riece-command-toggle-freeze})
+\e$B%A%c%s%M%k%P%C%U%!!"$^$?$O%@%$%"%m%0%P%C%U%!$rE`7k\e(B(\e$B%9%/%m!<%k$r6X;_\e(B)\e$B$7$^\e(B
+\e$B$9\e(B(@code{riece-command-toggle-freeze})
 @item C-c C-t o
 @findex riece-command-toggle-own-freeze
-\e$B%A%c%s%M%k%P%C%U%!!"$^$?$O%@%$%"%m%0%P%C%U%!$N%9%/%m!<%k$r!"<+J,$,H/8@$9$k$^$G6X;_$7$^$9\e(B(@code{riece-command-toggle-own-freeze})
+\e$B%A%c%s%M%k%P%C%U%!!"$^$?$O%@%$%"%m%0%P%C%U%!$r!"<+J,$,H/8@$9$k$^$GE`7k$7\e(B
+\e$B$^$9\e(B(@code{riece-command-toggle-own-freeze})
 @item C-c C-t a
 @findex riece-command-toggle-away
 \e$B<+J,$NN%@J>uBV$r@Z$jBX$($^$9\e(B(@code{riece-command-toggle-away})
@@ -431,10 +438,15 @@ Riece \e$B$NBg$-$JFCD9$K!"J#?t$N%5!<%P$KF1;~$K@\B3$9$k5!G=$,$"$j$^$9!#\e(B
 @node Server settings, Add-ons, Advanced usage, Advanced usage
 @section Server settings
 
-IRC \e$B%5!<%P$O\e(B @code{riece-server} \e$BJ8;zNs$H$7$F;XDj$7$^$9!#\e(B
-\e$B$3$3$G\e(B @code{riece-server} \e$B$N%U%)!<%^%C%H$O\e(B "<\e$B%5!<%P$N%[%9%HL>\e(B>:<\e$B%]!<%HHV9f\e(B>[:<\e$B%Q%9%o!<%I\e(B>]" \e$B$H$J$j$^$9!#\e(B
+\e$B5/F0;~$K%G%U%)%k%H$G@\B3$9$k\e(B IRC \e$B%5!<%P$O\e(B @code{riece-server} \e$B$G;XDj$7$^$9!#\e(B
 @vindex riece-server
 
+\e$B$3$3$G\e(B @code{riece-server} \e$B$OJ8;zNs$G$"$j!"$=$N%U%)!<%^%C%H$O<!$N$h$&$K\e(B
+\e$B$J$j$^$9!#\e(B
+@example
+ "<\e$B%5!<%P$N%[%9%HL>\e(B>:<\e$B%]!<%HHV9f\e(B>[:<\e$B%Q%9%o!<%I\e(B>]"
+@end example
+
 @code{riece-server-alist} \e$B$rE,@Z$K@_Dj$9$k$H!"%-!<%o!<%I$r;H$C$F!"$h$j>\\e(B
 \e$B:Y$J;XDj$,2DG=$K$J$j$^$9!#0J2<$OI.<T$N@_Dj$+$iH4$-=P$7$?Nc$G$9!#\e(B
 @vindex riece-server-alist
@@ -476,7 +488,7 @@ IRC \e$B%5!<%P$O\e(B @code{riece-server} \e$BJ8;zNs$H$7$F;XDj$7$^$9!#\e(B
 \e$B%3!<%G%#%s%0%7%9%F%`\e(B (\e$B%G%U%)%k%H$O\e(B @code{riece-default-coding-system} \e$B$NCM\e(B)
 @end table
 
-@node Add-ons, Writing add-ons, Server settings, Advanced usage
+@node Add-ons,  , Server settings, Advanced usage
 @section Add-ons
 
 Riece \e$B$G$O!"%f!<%6$,?7$?$J5!G=$rDI2C$7!"<+M3$K<h$j30$7$G$-$k$h$&!"%"%I%*\e(B
@@ -521,6 +533,16 @@ SKK \e$B;HMQ;~$KJQ49%b!<%I$N0u$rH/8@$+$i<h$j=|$/\e(B
 \e$B%-!<%o!<%I$N6/D4I=<(\e(B
 @item riece-menu
 \e$B%a%K%e!<%P!<$K%a%K%e!<$rEPO?\e(B
+@item riece-async
+Emacs \e$B$,\e(B busy or suspend \e$B>uBV$K$J$k$3$H$KHw$(!"\e(B
+PING \e$B$K1~Ez$9$k\e(B local proxy \e$B7PM3$G\e(B IRC \e$B%5!<%P$K@\B3\e(B
+@item riece-lsdb
+\e$B%"%I%l%9D"\e(B LSDB (Lovely Sister Database)
+@uref{http://lsdb.sourceforge.jp} \e$B$HO"7H\e(B
+@item riece-xface
+\e$B%f!<%6%j%9%H%P%C%U%!$K%f!<%6$N\e(B X-Face \e$B$rI=<(\e(B
+@item riece-ctlseq
+\e$B%3%s%H%m!<%k%7!<%1%s%9\e(B (^B \e$B$J$I\e(B) \e$B$K$h$k6/D4I=<(\e(B
 @end table
 
 \e$B$3$l$i$N$&$A!"\e(B@samp{riece-highlight} \e$B$H\e(B @samp{riece-ctcp}\e$B!"\e(B
@@ -537,72 +559,19 @@ SKK \e$B;HMQ;~$KJQ49%b!<%I$N0u$rH/8@$+$i<h$j=|$/\e(B
 (add-to-list 'riece-addons 'riece-alias)
 @end example
 
-@node Writing add-ons, Handler hooks, Add-ons, Advanced usage
-@section Writing add-ons
-
-\e$B%"%I%*%s$N>r7o$rK~$?$9%b%8%e!<%k$O0J2<$N4X?t$rDs6!$7$^$9!#\e(B
-
-@table @samp
-@item <\e$B%b%8%e!<%kL>\e(B>-requires
-\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%*%W%7%g%s\e(B)
-@item <\e$B%b%8%e!<%kL>\e(B>-insinuate
-\e$B=i4|2==hM}$r9T$$$^$9\e(B
-@end table
-
-Riece \e$BB&$G$O0J2<$N=hM}$r9T$$$^$9!#\e(B
-
-@enumerate
-@item
-\e$BJQ?t\e(B @code{riece-addons} \e$B$KNs5s$5$l$?%b%8%e!<%k$rFI$_9~$`\e(B
-
-@item
-\e$B$=$l$>$l$N%b%8%e!<%k$KBP$7!"\e(B@samp{<\e$B%b%8%e!<%kL>\e(B>-requires} \e$B$,MQ0U$5$l$F$$$l$P8F$S=P$7$F0MB8%0%i%U$r:n$k\e(B
-
-@item
-\e$B0MB8%0%i%U$KBP$7$F%H%]%m%8%+%k%=!<%H\e(B (cf. tsort(1)) \e$B$r9T$&\e(B
-
-@item
-\e$BF@$?0MB8=g=x$K=>$C$F\e(B @samp{<\e$B%b%8%e!<%kL>\e(B>-insinuate} \e$B8F$S=P$9\e(B
-@end enumerate
-
-\e$B:n@.$7$?%"%I%*%s$O!"\e(B@code{load-path} \e$B$NDL$C$?%G%#%l%/%H%j!"$^$?$O\e(B 
-@code{riece-addon-directory} (\e$B%G%U%)%k%H$G$O\e(B @file{~/.riece/addons/}) \e$B$K\e(B
-\e$BCV$/$3$H$GAH$_9~$_2DG=$J>uBV$K$J$j$^$9!#\e(B
-@vindex riece-addon-directory
-
-@node Handler hooks,  , Writing add-ons, Advanced usage
-@section Handler hooks
-
-Riece \e$B$K$O!"%O%s%I%i%U%C%/$H8F$P$l$kFC<l$J%U%C%/$,$"$j$^$9!#$3$l$i$O\e(B IRC 
-\e$B$N%a%C%;!<%8$r<u$1<h$C$?A08e$G<B9T$5$l$k%U%C%/$G$9!#\e(B
-
-\e$B@bL@$N$?$a$K\e(B @samp{message} \e$B$r\e(B IRC \e$B$N%a%C%;!<%8L>\e(B(PRIVMSG \e$B$J$I\e(B)\e$B$rA4$F>.\e(B
-\e$BJ8;z$K$7$?$b$N$H$7$^$9!#\e(B
-
-@table @code
-@item riece-<message>-hook
-@samp{message} \e$B$,FO$$$?$H$-$K:G=i$K8F$P$l$k%U%C%/\e(B
-@item riece-after-<message>-hook
-@samp{message} \e$B$N=hM}$,=*$o$C$?8e$K8F$P$l$k%U%C%/\e(B
-@end table
-
-\e$B$3$3$G\e(B @code{riece-<message>-hook} \e$B$NJV$jCM$K$O0UL#$,$"$j!"Hs\e(B nil \e$B$rJV$9\e(B
-\e$B$b$N$,$"$l$P!"$=$N8e$N=hM}$r$*$3$J$$$^$;$s!#$^$?!"$=$N>l9g$K$O\e(B 
-@code{riece-after-<message>-hook} \e$B$b8F$S=P$5$l$^$;$s!#\e(B
-
-\e$B%U%C%/$N0z?t$O\e(B RFC2812 \e$B$N\e(B @samp{prefix} \e$B$H\e(B @samp{Parameters} \e$B$KAjEv$9$k\e(B 
-2 \e$B$D$N0z?t$,EO$j$^$9!#\e(B
-
 @node Development, Index, Advanced usage, Top
 @chapter Development
 
 \e$B3+H/<TJg=8Cf!#\e(B
 
 @menu
-* CVS::                         
-* Debugging::                   
-* Modules::                     
+* CVS::                         \e$B3+H/Cf$N%=!<%9$N<hF@\e(B
+* Debugging::                   \e$B%G%P%C%0$N$?$a$N@_Dj\e(B
+* Modules::                     \e$B9=@.%b%8%e!<%k$N@bL@\e(B
 * Namespace management::        
+* Signals::                     
+* Writing add-ons::             \e$B%"%I%*%s$N=q$-$+$?\e(B
+* Handler hooks::               
 @end menu
 
 @node CVS, Debugging, Development, Development
@@ -648,7 +617,6 @@ autoreconf -f -i -v
 
 \e$B4pK\E*$K0MB84X78$N>e0L$K$"$k$b$N$+$i!'\e(B
 
-@subsection Core modules
 @table @samp
 @item riece-globals
 \e$BBg0hJQ?t$NDj5A\e(B 
@@ -663,6 +631,8 @@ autoreconf -f -i -v
 @item riece-complete
 \e$B%_%K%P%C%U%!$G$NJd40$r=u$1$k4X?t$NDj5A\e(B 
 
+@item riece-mode
+channel/user \e$B$N%b!<%I4IM}\e(B
 @item riece-identity
 channel/user object \e$B$NBg0hI=5-$rA`:n$9$k4X?t$NDj5A\e(B 
 @item riece-channel
@@ -670,6 +640,8 @@ channel object \e$B4XO"$NDj5A\e(B
 @item riece-user
 user object \e$B4XO"$NDj5A\e(B 
 
+@item riece-signal
+\e$B%7%0%J%k\e(B(@xref{Signals})\e$B4IM}\e(B
 @item riece-misc
 \e$B;(B?$J4X?t$NDj5A\e(B(\e$B%$%s%i%$%s4X?t$r=|$/\e(B) 
 @item riece-display
@@ -685,17 +657,17 @@ message object \e$B4XO"$NDj5A\e(B
 @item riece-filter
 \e$B%W%m%;%9%U%#%k%?$N%(%s%H%j%]%$%s%H\e(B 
 @item riece-handle
-\e$BDL>o$N%a%C%;!<%8$N%O%s%I%i!#\e(Briece-filter \e$B$N$_$+$i8F$P$l$k\e(B 
+\e$BDL>o$N%a%C%;!<%8$N%O%s%I%i!#\e(Briece-filter \e$B$+$i8F$P$l$k\e(B 
 @item riece-000
-000\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$N$_$+$i8F$P$l$k\e(B 
+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 
 @item riece-200
-200\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$N$_$+$i8F$P$l$k\e(B 
+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 
 @item riece-300
-300\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$N$_$+$i8F$P$l$k\e(B 
+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 
 @item riece-400
-400\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$N$_$+$i8F$P$l$k\e(B 
+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 
 @item riece-500
-500\e$BHVBf$N\e(B numeric reply \e$B$N%O%s%I%i!#\e(Briece-filter \e$B$N$_$+$i8F$P$l$k\e(B 
+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 
 
 @item riece-commands
 \e$B%3%^%s%I$NDj5A\e(B 
@@ -703,24 +675,7 @@ message object \e$B4XO"$NDj5A\e(B
 \e$B%(%s%H%j%]%$%s%H!#3F%P%C%U%!$N%b!<%IDj5A$J$I\e(B 
 @end table
 
-@subsection Add-ons
-@table @samp
-@item riece-highlight
-\e$B%P%C%U%!$N?'IU$1\e(B
-@item riece-ctcp
-CTCP (Client To Client Protocol)
-@item riece-url
-\e$B2qOC$K8=$l$?\e(B URL \e$B$N<}=8\e(B
-@item riece-unread
-\e$BH/8@$N$"$C$?%A%c%s%M%k$K\e(B@samp{!}\e$B%^!<%/$r$D$1$k\e(B
-@item riece-rdcc
-DCC (Direct Client to Client protocol) \e$B$K$h$k%U%!%$%kE>Aw\e(B (Ruby \e$B$K$h$k<BAu\e(B)
-@item riece-ndcc
-DCC (Direct Client to Client protocol) \e$B$K$h$k%U%!%$%kE>Aw\e(B (Emacs 21.3 \e$B$N\e(B 
-@code{make-network-connection} \e$B$K$h$k<BAu\e(B)
-@end table
-
-@node Namespace management,  , Modules, Development
+@node Namespace management, Signals, Modules, Development
 @section Namespace management
 
 Riece \e$B$OJ#?t$N%5!<%P$KF1;~$K@\B3$9$k$?$a!"%5!<%PKh$KJL!9$NL>A06u4V$r4IM}\e(B
@@ -856,6 +811,155 @@ AWAY \e$BCf$+$I$&$+\e(B
 \e$B%f!<%6$NL>A0$,JQ99$5$l$?$3$H$rI=L@$7$^$9\e(B 
 @end defun
 
+@node Signals, Writing add-ons, Namespace management, Development
+@section Signals
+
+\e$B2hLL$N:FIA2h$r8zN(NI$/9T$&$?$a$K!"%$%Y%s%H$HIA2hBP>]$N%*%V%8%'%/%H\e(B(\e$B%P%C\e(B
+\e$B%U%!$d!"%b!<%I%i%$%s$N0u\e(B @pxref{Indicators})\e$B$r7k$SIU$1$k%a%+%K%:%`$rMQ0U\e(B
+\e$B$7$F$$$^$9!#\e(B
+
+\e$B2?$i$+$N%$%Y%s%H$,H/@8$9$k$H!"%7%0%J%k$,Aw=P$5$l$^$9!#%7%0%J%k$N35G0$O!"\e(B
+Qt \e$B$d\e(B GTK+ \e$B$H$$$C$?\e(B GUI \e$B%D!<%k%-%C%H$KMQ0U$5$l$F$$$k$b$N$HF1MM$G$9!#\e(B
+
+\e$B%7%0%J%k$rAw=P$9$k$K$O!"\e(B@samp{riece-emit-signal} \e$B$r;H$$$^$9!#\e(B
+
+@defun riece-emit-signal signal-name &rest args
+@var{signal-name} \e$B$G;X<($5$l$k%7%0%J%k$r!"0z?t\e(B @var{args} \e$B$H$H$b$KAw=P$7$^$9\e(B
+@end defun
+
+\e$B%7%0%J%k$K1~Ez$9$k$K$O!"\e(B@samp{riece-connect-signal} \e$B$r;H$$$^$9!#\e(B
+
+@defun riece-connect-signal signal-name slot-function &optional filter-function handback
+@var{signal-name} \e$B$G;X<($5$l$k%7%0%J%k$K1~Ez$9$k4X?t\e(B @var{slot-function} 
+\e$B$r7k$SIU$1$^$9!#\e(B@var{slot-function} \e$B$K;XDj$5$l$?4X?t$O\e(B 2 \e$B$D$N0z?t$r<h$j$^\e(B
+\e$B$9!#Bh\e(B1\e$B$N0z?t$O$O%7%0%J%k$rI=$7$^$9!#$^$?!"Bh\e(B2\e$B$N0z?t$H$7$F!"\e(B
+@var{handback} \e$B0z?t$KM?$($i$l$?%*%V%8%'%/%H$,$=$N$^$^EO$5$l$^$9!#\e(B
+
+@var{filter-function} \e$B$O!"<u?.$7$?%7%0%J%k$K1~Ez$9$Y$-$+$I$&$+$rH=Dj$9$k\e(B
+\e$B4X?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@samp{nil}
+\e$B$^$?$O\e(B @samp{t} \e$B$rJV$9$3$H$,4|BT$5$l$^$9!#JV$jCM$,\e(B @samp{nil} \e$B$N>l9g$K$O!"\e(B
+@var{slot-function} \e$B$,8F$P$l$k$3$H$O$"$j$^$;$s!#\e(B
+@end defun
+
+\e$B%7%0%J%k%*%V%8%'%/%H$K%"%/%;%9$9$k$K$O!"0J2<$N4X?t$r;H$$$^$9!#\e(B
+
+@defun riece-signal-name
+\e$B%7%0%J%k$NL>A0\e(B(\e$B%7%s%\%k\e(B)\e$B$rJV$7$^$9!#\e(B
+@end defun
+
+@defun riece-signal-args
+\e$B%7%0%J%kAw=P;~$KM?$($i$l$?0z?t$rJV$7$^$9!#\e(B
+@end defun
+
+\e$B8=:_!"0J2<$N%7%0%J%k$,I8=`$GEPO?$5$l$F$$$^$9!'\e(B
+
+@table @samp
+@item channel-list-changed
+\e$B;22C$7$F$$$k%A%c%s%M%k$N0lMw$NJQ2=\e(B
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item channel-switched
+\e$B8=:_$N%A%c%s%M%k$r0\F0\e(B
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item user-renamed
+\e$B%f!<%6$,L>A0$rJQ99\e(B
+(\e$B0z?t$O!"0JA0$H8=:_$NL>A0$KAjEv$9$k\e(B @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item user-away-changed
+\e$B%f!<%6$NN%@J>uBV$NJQ2=\e(B
+(\e$B0z?t$O!"%f!<%6$KAjEv$9$k\e(B @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item 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 @samp{riece-identity} \e$B%*%V%8%'%/%H\e(B)
+@item buffer-freeze-changed
+\e$B%P%C%U%!$NE`7k>uBV$NJQ2=\e(B
+(\e$B0z?t$O%P%C%U%!\e(B)
+@end table
+
+@node Writing add-ons, Handler hooks, Signals, Development
+@section Writing add-ons
+
+\e$B%"%I%*%s$N>r7o$rK~$?$9%b%8%e!<%k$O0J2<$N4X?t$rDs6!$7$^$9!#\e(B
+
+@table @samp
+@item <\e$B%b%8%e!<%kL>\e(B>-requires
+\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%*%W%7%g%s\e(B)
+@item <\e$B%b%8%e!<%kL>\e(B>-insinuate
+\e$B=i4|2==hM}$r9T$$$^$9\e(B
+@end table
+
+\e$BL58z2=$KBP1~$7$?%"%I%*%s$O!"JQ?t\e(B @samp{<\e$B%b%8%e!<%kL>\e(B>-enabled} \e$B$K8=:_$N\e(B
+\e$B>uBV$rJ];}$7$^$9!#CM$,\e(B @samp{nil} \e$B$G$"$l$PL58z!"\e(B@samp{t} \e$B$G$"$l$PM-8z$G\e(B
+\e$B$9!#2C$($F!"0J2<$N4X?t$rDs6!$7$^$9!#\e(B
+
+@table @samp
+@item <\e$B%b%8%e!<%kL>\e(B>-enable
+\e$B%"%I%*%s$rM-8z$K$7$^$9\e(B
+@item <\e$B%b%8%e!<%kL>\e(B>-disable
+\e$B%"%I%*%s$rL58z$K$7$^$9\e(B
+@end table
+
+Riece \e$BB&$G$O0J2<$N=hM}$r9T$$$^$9!#\e(B
+
+@enumerate
+@item
+\e$BJQ?t\e(B @code{riece-addons} \e$B$KNs5s$5$l$?%b%8%e!<%k$rFI$_9~$`\e(B
+
+@item
+\e$B$=$l$>$l$N%b%8%e!<%k$KBP$7!"\e(B@samp{<\e$B%b%8%e!<%kL>\e(B>-requires} \e$B$,MQ0U$5$l$F$$$l$P8F$S=P$7$F0MB8%0%i%U$r:n$k\e(B
+
+@item
+\e$B0MB8%0%i%U$KBP$7$F%H%]%m%8%+%k%=!<%H\e(B (cf. tsort(1)) \e$B$r9T$&\e(B
+
+@item
+\e$BF@$i$l$?0MB8=g=x$K=>$C$F\e(B @samp{<\e$B%b%8%e!<%kL>\e(B>-insinuate} \e$B8F$S=P$9\e(B
+@end enumerate
+
+\e$B:n@.$7$?%"%I%*%s$O!"\e(B@code{load-path} \e$B$NDL$C$?%G%#%l%/%H%j!"$^$?$O\e(B 
+@code{riece-addon-directory} (\e$B%G%U%)%k%H$G$O\e(B @file{~/.riece/addons/}) \e$B$K\e(B
+\e$BCV$/$3$H$GAH$_9~$_2DG=$J>uBV$K$J$j$^$9!#\e(B
+@vindex riece-addon-directory
+
+@node Handler hooks,  , Writing add-ons, Development
+@section Handler hooks
+
+Riece \e$B$K$O!"%O%s%I%i%U%C%/$H8F$P$l$kFC<l$J%U%C%/$,$"$j$^$9!#$3$l$i$O\e(B IRC 
+\e$B$N%a%C%;!<%8$r<u$1<h$C$?A08e$G<B9T$5$l$k%U%C%/$G$9!#\e(B
+
+\e$B@bL@$N$?$a$K\e(B @samp{message} \e$B$r\e(B IRC \e$B$N%a%C%;!<%8L>\e(B(PRIVMSG \e$B$J$I\e(B)\e$B$rA4$F>.\e(B
+\e$BJ8;z$K$7$?$b$N$H$7$^$9!#\e(B
+
+@table @code
+@item riece-<message>-hook
+@samp{message} \e$B$,FO$$$?$H$-$K:G=i$K8F$P$l$k%U%C%/\e(B
+@item riece-after-<message>-hook
+@samp{message} \e$B$N=hM}$,=*$o$C$?8e$K8F$P$l$k%U%C%/\e(B
+@end table
+
+\e$B$3$3$G\e(B @code{riece-<message>-hook} \e$B$NJV$jCM$K$O0UL#$,$"$j!"Hs\e(B nil \e$B$rJV$9\e(B
+\e$B$b$N$,$"$l$P!"$=$N8e$N=hM}$r$*$3$J$$$^$;$s!#$^$?!"$=$N>l9g$K$O\e(B 
+@code{riece-after-<message>-hook} \e$B$b8F$S=P$5$l$^$;$s!#\e(B
+
+\e$B%U%C%/$N0z?t$O\e(B RFC2812 \e$B$N\e(B @samp{prefix} \e$B$H\e(B @samp{Parameters} \e$B$KAjEv$9$k\e(B 
+2 \e$B$D$N0z?t$,EO$j$^$9!#\e(B
+
 @node Index, Function Index, Development, Top
 @chapter Index
 @printindex cp