From: yamaoka Date: Thu, 2 Dec 1999 03:40:58 +0000 (+0000) Subject: Sync up with Pterodactyl Gnus v0.99. X-Git-Tag: t-gnus-6_13_4-00~5 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=518a00195aa53404f51996a5f63d865824746bc9;p=elisp%2Fgnus.git- Sync up with Pterodactyl Gnus v0.99. --- diff --git a/texi/ChangeLog b/texi/ChangeLog index 42cd590..54e7f9b 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,95 @@ +1999-12-01 14:21:19 Lars Magne Ingebrigtsen + + * gnus.texi (Topic Parameters): Addition. + (Summary Message Commands): New. + (Canceling and Superseding): Made into subsection. + +1999-11-30 10:54:31 Shenghuo ZHU + + * gnus.texi (Mail Source Specifiers): Add a note. + +1999-11-27 17:15:00 Lars Magne Ingebrigtsen + + * gnus.texi: Typo fixes and @sc. + +1999-11-26 16:59:29 Lars Magne Ingebrigtsen + + * gnus.texi (On Writing Manuals): New. + +1999-11-23 17:23:37 Shenghuo ZHU + + * gnus.texi (Mail Source Specifiers): Update. + +1999-11-23 05:07:59 Shenghuo ZHU + + * gnus.texi (Web Archive): Add nnwarchive. + +1999-11-23 03:05:32 Shenghuo ZHU + + * gnus.texi (Mail Source Specifiers): Add webmail. + +1999-11-19 12:15:23 Lars Magne Ingebrigtsen + + * gnus.texi (Slashdot): Addition. + +1999-11-17 Per Abrahamsen + + * gnus.texi (Finding the Parent): Fix example. + +1999-11-16 10:09:44 Lars Magne Ingebrigtsen + + * gnus.texi: Addition. + (present): Addition. + +1999-11-13 Simon Josefsson + + * gnus.texi (Mail Source Specifiers): Fix. Added documentation for + IMAP mail-source keywords `fetchflag' and `dontexpunge'. + +1999-11-12 18:00:56 Eli Zaretskii + + * gnus.texi (Fancy Mail Splitting): Fix @vars. + +1999-11-12 17:08:35 Gunnar Evermann + + * gnus.texi (Splitting in IMAP): @@ fix. + +1999-11-12 08:17:49 Lars Magne Ingebrigtsen + + * gnus.texi (Mail Source Specifiers): Addition. + +1999-11-12 08:17:44 Ulf Betlehem + + * gnus.texi (Mail Source Specifiers): Example. + +1999-11-12 05:26:22 Lars Magne Ingebrigtsen + + * gnus.texi (Slashdot): Addition. + +1999-11-11 04:32:57 Lars Magne Ingebrigtsen + + * message.texi (News Headers): Fix. + + * gnus.texi (Browsing the Web): New. + (Slashdot): New. + (Ultimate): New. + +1999-11-10 11:32:00 Lars Magne Ingebrigtsen + + * gnus.texi (Archived Messages): Fix. + +1999-11-07 01:28:07 Lars Magne Ingebrigtsen + + * gnus.texi (MIME Commands): Addition. + +1999-11-06 23:09:31 Lars Magne Ingebrigtsen + + * gnus.texi (Customizing Articles): Fix. + +1999-11-05 22:34:23 Lars Magne Ingebrigtsen + + * gnus.texi (Posting Styles): Addition. + 1999-10-23 Simon Josefsson * gnus.texi (Mail Source Specifiers): Add imap mail-source. @@ -8,6 +100,10 @@ * emacs-mime.texi (New Viewers): Fix. +1999-10-29 David S. Goldberg + + * emacs-mime.texi (Customization): Document mm-inline-override-types + 1999-09-25 10:58:17 Lars Magne Ingebrigtsen * message.texi (Forwarding): Updated. diff --git a/texi/Makefile.in b/texi/Makefile.in index 58b8f55..eb03f40 100644 --- a/texi/Makefile.in +++ b/texi/Makefile.in @@ -5,6 +5,7 @@ subdir = texi top_srcdir = @top_srcdir@ @SET_MAKE@ +VPATH=$(srcdir) TEXI2DVI=texi2dvi EMACS=@EMACS@ MAKEINFO=@MAKEINFO@ diff --git a/texi/emacs-mime.texi b/texi/emacs-mime.texi index 08cd7fa..225a5f5 100644 --- a/texi/emacs-mime.texi +++ b/texi/emacs-mime.texi @@ -899,6 +899,14 @@ library will display it externally (e.g. with @samp{ImageMagick} or makes the library display all inline images as inline, regardless of their size. +@item mm-inline-override-p +@code{mm-inlined-types} may include regular expressions, for example to +specify that all @samp{text/.*} parts be displayed inline. If a user +prefers to have a type that matches such a regular expression be treated +as an attachment, that can be accomplished by setting this variable to a +list containing that type. For example assuming @code{mm-inlined-types} +includes @samp{text/.*}, then including @samp{text/html} in this +variable will cause @samp{text/html} parts to be treated as attachments. @end table diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 77395df..cfe873b 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -772,6 +772,22 @@ Gnus $B$O!"IaDL$O%0%k!<%W$,?7$7$$$+$I$&$+$r!"9XFI$7$F$$$k%0%k!<%W$H:o=|$5(B @vindex gnus-subscribe-killed $B$9$Y$F$N?7$7$$%0%k!<%W$r:o=|$7$^$9!#(B +@item gnus-subscribe-topics +@vindex gnus-subscribe-topics +Put the groups into the topic that has a matching @code{subscribe} topic +parameter (@pxref{Topic Parameters}). For instance, a @code{subscribe} +topic parameter that looks like + +@example +"nnslashdot" +@end example + +will mean that all groups that match that regex will be subscribed under +that topic. + +If no topics match the groups, the groups will be subscribed in the +top-level topic. + @end table @vindex gnus-subscribe-hierarchical-interactive @@ -1336,8 +1352,8 @@ Formatting}) $B$r@_Dj$9$k$3$H$GJQ99$G$-$^$9!#$3$$$D$O;XDjJ8;z$r$"$s$^$j$?(B @vindex gnus-group-highlight $B%0%k!<%W%P%C%U%!$N%O%$%i%$%H$O(B @code{gnus-group-highlight} $BJQ?t(B -$B$K$h$C$F@)8f$5$l$F$$$^$9!#$3$l$O(B @var{(form . face)} $B$N$h$&$J$b(B -$B$N$rMWAG$K;}$DO"A[%j%9%H$G$9!#(B@var{form} $B$,2?$+(B @code{nil} $B0J30(B +$B$K$h$C$F@)8f$5$l$F$$$^$9!#$3$l$O(B @code{(@var{form} . @var{face})} $B$N$h(B +$B$&$J$b$N$rMWAG$K;}$DO"A[%j%9%H$G$9!#(B@var{form} $B$,2?$+(B @code{nil} $B0J30(B $B$KI>2A$5$l$k$b$N$J$i!"$=$N9T$KBP$7$F(B @var{face} $B$,;HMQ$5$l$^$9!#(B $B0J2<$,$3$NJQ?t$NCM$NNc$G$9!#$3$l$OGX7J$,0E$$@_Dj$G$O$-$l$$$K8+$((B @@ -1495,7 +1511,7 @@ Formatting}) $B$r@_Dj$9$k$3$H$GJQ99$G$-$^$9!#$3$$$D$O;XDjJ8;z$r$"$s$^$j$?(B $B$N%0%k!<%W$NA4$F$N8E$$5-;v$r5$7$^$9!#%0%k!<%W%Q%i%a!<%?$H$7$F@5$7$$$b$N$OA4$F!"%H%T%C(B $B%/%Q%i%a!<%?$H$7$F$b@5$7$$$b$N$G$9(B(@pxref{Group Parameters})$B!#(B +In addition, the following parameters are only valid as topic +parameters: + +@table @code +@item subscribe +When subscribing new groups by topic (@pxref{Subscription Methods}), the +@code{subscribe} topic parameter says what groups go in what topic. Its +value should be a regexp to match the groups that should go in that +topic. + +@end table + $B%0%k!<%W%Q%i%a!<%?$O!J$b$A$m$s!K%H%T%C%/%Q%i%a!<%?$h$j$bM%@h$5$l!"I{%H%T%C(B $B%/$N%H%T%C%/%Q%i%a!<%?$O?F%H%T%C%/$N%H%T%C%/%Q%i%a!<%?$h$j$bM%@h$5$l$^$9!#(B $BJ,$+$k$h$M!#$4$/IaDL$N7Q>5%k!<%k$G$9!J%k!<%k(B (@dfn{Rules}) $B$O$3$3$G$OL>;l(B @@ -3314,6 +3342,7 @@ Gnus $B$K!"$"$J$?$,:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k$HJXMx(B * Choosing Articles:: $B5-;v$rFI$`!#(B * Paging the Article:: $BFI$s$G$$$k5-;v$r%9%/%m!<%k$9$k!#(B * Reply Followup and Post:: $B5-;v$rEj9F$9$k!#(B +* Canceling and Superseding:: ``Whoops, I shouldn't have called him that.'' * Canceling and Superseding:: $B!X$"$!!"$"$s$J$U$&$K8@$&$s$8$c$J$+$C$?!#!Y(B * Marking Articles:: $B5-;v$K4{FI$d4|8B@Z$l:o=|2DG=Ey$N0u$rIU$1$k!#(B * Limiting:: $B35N,%P%C%U%!$K@)8B$r2C$($k$3$H$,$G$-$k!#(B @@ -3651,14 +3680,15 @@ Gnus $B%P!<%8%g%s!#(B @item gnus-summary-highlight @vindex gnus-summary-highlight $B35N,9T$O$3$NJQ?t$K$7$?$,$C$F%O%$%i%$%H$5$l$^$9!#$3$NJQ?t$OMWAG$,(B -@var{(FORM . FACE)} $B$N7A<0$N%j%9%H$G$9!#Nc$($P!"$b$70uIU$-$N5-;v$r%$%?%j%C(B -$B%/!"9b$$%9%3%"$N5-;v$r%\!<%k%I$K$7$?$1$l$P!"$3$NJQ?t$r score default) . bold)) @end lisp -$B$4A[A|$N$H$*$j!"$b$7(B @var{FORM} $B$,(B @code{nil} $B$G$J$$CM$rJV$9$H!"(B -@var{FACE} $B$,$=$N9T$KE,MQ$5$l$^$9!#(B +$B$4A[A|$N$H$*$j!"$b$7(B @var{form} $B$,(B @code{nil} $B$G$J$$CM$rJV$9$H!"(B +@var{face} $B$,$=$N9T$KE,MQ$5$l$^$9!#(B @end table @@ -3952,6 +3982,8 @@ Gnus $B$,pJs$,$"$j$^$9!#(B +@node Summary Message Commands +@subsection Summary Message Commands + +@table @kbd +@item S y +@kindex S y (Summary) +@findex gnus-summary-yank-message +Yank the current article into an already existing Message composition +buffer (@code{gnus-summary-yank-message}). This command prompts for +what message buffer you want to yank into, and understands the +process/prefix convention (@pxref{Process/Prefix}). + +@end table + + @node Canceling and Superseding -@section $B5-;v$rC$9(B +@subsection $B5-;v$rC$9(B @cindex canceling articles @cindex superseding articles @@ -4310,7 +4357,7 @@ Prefixes})$B!#(B @item F @vindex gnus-souped-mark -@sc{SOUP} $B$5$l$F$$$k5-;v(B (@code{gnus-souped-mark})$B!#(B @xref{SOUP}. +@sc{soup} $B$5$l$F$$$k5-;v(B (@code{gnus-souped-mark})$B!#(B @xref{SOUP}. @item Q @vindex gnus-sparse-mark @@ -6292,7 +6339,8 @@ gnus $B$,Ds0F$r$7$^$9!K$rF~NO$9$k$h$&$KB%$5$l!"$=$l$+$iL?Na$,$l$NMWAG$,(B @var{($B@55,I=8=(B $BL>A0(B $BFbMF(B)} $B$H$$$&MM<0$N%j%9%H$G$9!#(B +$B$l$>$l$NMWAG$,(B @code{(@var{$B@55,I=8=(B} @var{$BL>A0(B} @var{$BFbMF(B})} $B$H$$$&MM<0(B +$B$N%j%9%H$G$9!#(B @var{$B@55,I=8=(B}$B$O%X%C%@!<$K9gCW$9$k@55,I=8=!"(B@var{$BL>A0(B}$B$O%X%C%@!<$NL>A0$r(B $B%O%$%i%$%H$9$k$N$K;H$o$l$k%U%'%$%9(B (face) (@pxref{Faces and Fonts})$B!"(B @var{$BFbMF(B}$B$O%X%C%@!<$NCM$r%O%$%i%$%H$9$k%U%'%$%9$G$9!#:G=i$K9gCW$7$?$b$N(B @@ -6515,6 +6563,10 @@ Signature}. @item W W B @kindex W W B ($B35N,(B) @findex gnus-article-strip-banner +@cindex banner +@cindex OneList +@cindex stripping advertisments +@cindex advertisments @code{banner} $B%0%k!<%W%Q%i%a!<%?$G;XDj$5$l$?%P%J!<$ro$KNI$$$G$7$g$&!#$7$+$7!"$=$l$O$I$&$7$F$bI,MW$J$o$1$G$O(B $B$"$j$^$;$s!#(B +It can also be a list of select methods, as well as the special symbol +@code{current}, which means to use the current select method. If it +is a list, Gnus will try all the methods in the list until it finds a +match. + +Here's an example setting that will first try the current method, and +then ask Deja if that fails: + +@lisp +(setq gnus-refer-article-method + '(current + (nnweb "refer" (nnweb-type dejanews)))) +@end lisp + $B$[$H$s$I$N%a!<%k%P%C%/%(%s%I$O(B @code{Message-ID} $B$G$N))} $B$G$9!#(B +$BMM<0$O(B @code{((@var{$BK\Ev$N3+(B} . @var{$BK\Ev$NJD(B}) (@var{$B$^$P$i3+(B} . +@var{$B$^$P$iJD(B}) (@var{$B56$N3+(B} . @var{$B56$NJD(B}))} $B$H$J$C$F$$$F!"%G%#%U%)(B +$B%k%H$O(B @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))} $B$G$9!#(B @item gnus-tree-parent-child-edges @vindex gnus-tree-parent-child-edges @@ -8271,7 +8336,7 @@ GNUS $B$d(B Gnus $B$G$O!"$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N, $B$3$H$b$G$-$^$9!#4X?t$O$=$NItJ,$KHO0O$,69$a$i$l$?>uBV$G8F$P$l!"$[$H$s$I$J(B $B$s$G$b9%$-$J$3$H$r$G$-$^$9!#%P%C%U%!$KJ]B8$7$F$*$+$J$1$l$P$J$i$J$$>pJs$O(B $B$"$j$^$;$s(B---$B2?$G$bJQ$($k$3$H$,$G$-$^$9!#$7$+$7!"%X%C%@!<$r>C$7$F$O$$$1(B -$B$^$;$s!#$=$NBe$o$j$K!"$=$l$r>C$75n$j$?$$$H$-$O!"IT2D;k$K$7$F$/$@$5$$!#(B +$B$^$;$s!#(B @node Article Keymap @@ -8632,7 +8697,7 @@ Gnus $B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0%k!<( '((if (message-news-p) "misc-news" (concat "mail." (format-time-string - "%Y-%m" (current-time)))))) + "%Y-%m" (current-time)))))) @end lisp $B!J(BXEmacs 19.13 $B$K$O(B @code{format-time-string} $B$O$"$j$^$;$s$N$G!"$=$N(B @@ -8707,14 +8772,18 @@ Gnus $B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0%k!<( $B$=$l$>$l$NMM<0$N:G=i$NMWAG$O(B @code{$B9gCW(B} (match) $B$H8F$P$l$^$9!#$b$7$=$l(B $B$,J8;zNs$G$"$l$P!"(Bgnus $B$O$=$l$r%0%k!<%WL>$K@55,I=8=$H$7$F9gCWA`:n$r9T$$(B -$B$^$9!#$b$7$=$l$,4X?t$N%7%s%\%k$G$"$l$P!"$=$N4X?t$,0z?tL5$7$G8F$P$l$^$9!#(B -$B$=$l$,JQ?t$N%7%s%\%k$G$"$l$P!"$=$NJQ?t$,;2>H$5$l$^$9!#$=$l$,%j%9%H$G$"$l(B -$B$P!"$=$N%j%9%H$,(B @code{$BI>2A(B} $B$5$l$^$9!#$I$N>l9g$G$b!"$3$l$,(B @code{nil} -$B$G$J$$CM$r5"$;$P!"MM<0$O(B @code{$B9gCW$7$?(B} $B$H8@$$$^$9!#(B +$B$^$9!#(B +If it is the symbol @code{header}, then Gnus will look for header that +match the next element in the match, and compare that to the last header +in the match. +$B$b$7$=$l$,4X?t$N%7%s%\%k$G$"$l$P!"$=$N4X?t$,0z?tL5$7$G8F$P$l$^$9!#$=$l$,(B +$BJQ?t$N%7%s%\%k$G$"$l$P!"$=$NJQ?t$,;2>H$5$l$^$9!#$=$l$,%j%9%H$G$"$l$P!"$=(B +$B$N%j%9%H$,(B @code{$BI>2A(B} $B$5$l$^$9!#$I$N>l9g$G$b!"$3$l$,(B @code{nil} $B$G$J$$(B +$BCM$r5"$;$P!"MM<0$O(B @code{$B9gCW$7$?(B} $B$H8@$$$^$9!#(B $B$=$l$>$l$NMM<0$OG$0U$NNL$N(B @dfn{$BB0@-(B} $B$r;}$D;v$,$G$-$^$9!#$=$l$>$l$NB0@-(B -$B$O(B @var{(name value)} $B$NBP$K$h$j@.$jN)$C$F$$$^$9!#B0@-L>$O!"(B -@code{signature}, @code{signature-file}, @code{organization}, +$B$O(B @code{(@var{name} . @var{value})} $B$NBP$K$h$j@.$jN)$C$F$$$^$9!#B0@-L>(B +$B$O!"(B@code{signature}, @code{signature-file}, @code{organization}, @code{address}, @code{name}, @code{body} $B$N$I$l$+$G$"$k;v$,$G$-$^$9!#B0(B $B@-L>$OJ8;zNs$G$"$k;v$b$G$-$^$9!#$=$N>l9g$O!"$3$l$O%X%C%@!$H$7$F;H$o$l!"(B $B$=$NCM$,5-;v$N%X%C%@!<$KA^F~$5$l$^$9!#$b$7B0@-L>$,(B @code{eval} $B$@$C$?$i(B @@ -8748,6 +8817,8 @@ Gnus $B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0%k!<( (signature my-quote-randomizer)) ((message-news-p) (signature my-news-signature)) + ((header "From.*To" "larsi.*org") + (Organization "Somewhere, Inc.")) ((posting-from-work-p) (signature-file "~/.work-signature") (address "user@@bar.foo") @@ -8883,6 +8954,7 @@ Buffer})$B!#(B * The Server Buffer:: $B;ve$N%5!<%P!<$r:n$C$FJT=8$9$k!#(B * Getting News:: USENET $B%K%e!<%9$r(B gnus $B$GFI$`!#(B * Getting Mail:: $B8D?ME*$J%a!<%k$r(B gnus $B$GFI$`!#(B +* Browsing the Web:: Getting messages from a plethora of Web sources. * Other Sources:: $B%G%#%l%/%H%j!A0(B} $B$G(B $B$9!#(B -$B$3$l$i$N(B2$B$D$NMWAG$N8e$K$O!"G$0U$N?t$N(B @var{($BJQ?t(B $BMM<0(B)} $B$NBP$rF~$l$k;v$,(B -$B$G$-$^$9!#(B +$B$3$l$i$N(B2$B$D$NMWAG$N8e$K$O!"G$0U$N?t$N(B @code{(@var{$BJQ?t(B} @var{$BMM<0(B})} $B$N(B +$BBP$rF~$l$k;v$,$G$-$^$9!#(B $B:G=i$NNc$KLa$j$^$7$g$&(B---$B$=$N%^%7%s$N%]!<%H(B15$B$+$iFI$_$?$+$C$?$H;W$C$F$/(B $B$@$5$$!#$3$l$,$=$N;~$K!"$J$k$Y$-A*BrJ}K!$G$9(B: @@ -9696,10 +9768,10 @@ gnus $B$O$U$D$&F1$8.?M?t$KMxMQ$5$l$F$$$k%m!<%+%k%K%e!<%9%0%k!<%W$r9VFI$7$F$$(B -$B$^$9!#$=$l$i$O(B NNTP $B$GG[Aw$5$l$k!"%K%e!<%9!"$G$9!#;d$?$A$O<+J,$N;E;v$K(B -$BLrN)$F$k$?$a$K!"$=$l$i$NKDBg$J5-;v$NCGJR$rFI$s$@$jJV;v$r$7$J$1$l$P$J$j(B -$B$^$;$s!#$=$7$F$=$l$i$OJ]B8$5$l$F$$$J$$$+$b$7$l$^$;$s$+$i!"6=L#$N$"$k5-(B -$B;v$r8D?M%a!<%k$HF1$8$h$&$KJ]B8$7$J$1$l$P$J$i$J$$$G$7$g$&!#(B +$B$^$9!#$=$l$i$O(B @sc{nntp} $B$GG[Aw$5$l$k!"%K%e!<%9!"$G$9!#;d$?$A$O<+J,$N;E(B +$B;v$KLrN)$F$k$?$a$K!"$=$l$i$NKDBg$J5-;v$NCGJR$rFI$s$@$jJV;v$r$7$J$1$l$P(B +$B$J$j$^$;$s!#$=$7$F$=$l$i$OJ]B8$5$l$F$$$J$$$+$b$7$l$^$;$s$+$i!"6=L#$N$"(B +$B$k5-;v$r8D?M%a!<%k$HF1$8$h$&$KJ]B8$7$J$1$l$P$J$i$J$$$G$7$g$&!#(B $BG[Aw$N;EAH$_$N0c$$$O$I$&$G$b$h$$$3$H$G!"Bg;v$J$N$O$$$+$K%t"))) +@end lisp + +The @samp{getmail} script would look something like the following: + +@example +#!/bin/sh +# getmail - move mail from spool to stdout +# flu@@iki.fi + +MOVEMAIL=/usr/lib/emacs/20.3/i386-redhat-linux/movemail +TMP=~/Mail/tmp +rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP +@end example + +Alter this script to fit find the @samp{movemail} you want to use. + + @item directory $B%G%#%l%/%H%j!l9g!"%a%C%;!<%8$r(B SPLIT $B$G;XDj$5$l$?$H$3$m$K(B -$BC_@Q$7$^$9!#(BRESTRICT ($B$^$?B>$N@55,I=8=(B) $B$,(B FIELD $B$N8e$G!"9gCW$7$?(B VALUE -$B$N:G8e$NA0$N$N$$$/$D$+$NJ8;zNs$K9gCW$7$?$i!"(BSPLIT $B$OL5;k$5$l$^$9!#(B -RESTRICT $B$NJDJq$N$I$l$b$,9gCW$7$J$1$l$P!"(BSPLIT $B$,l9g!"(B +$B%a%C%;!<%8$r(B @var{split} $B$G;XDj$5$l$?$H$3$m$KC_@Q$7$^$9!#(B@var{restrict} + ($B$^$?B>$N@55,I=8=(B) $B$,(B @var{field} $B$N8e$G!"9gCW$7$?(B @var{value} $B$N:G8e$N(B +$BA0$N$N$$$/$D$+$NJ8;zNs$K9gCW$7$?$i!"(B@var{split} $B$OL5;k$5$l$^$9!#(B +@var{restrict} $B$NJDJq$N$I$l$b$,9gCW$7$J$1$l$P(B @var{split} $B$,K@(B) $B$G$"(B -$B$k$H!"$=$l$>$l$N(B SPLIT $B$r$=$N$&$A$N0l$D$,9gCW$9$k$^$Ge$N%0%k!<%W$KC_@Q$5$l$?$H$-$K(B ``$B9gCW$7$?(B'' $B$H(B -$B$7$^$9!#(B +@code{(| @var{split}@dots{})}: $BJ,3d$,%j%9%H$G!":G=i$NMWAG$,(B @code{|} +($B?bD>K@(B) $B$G$"$k$H!"$=$l$>$l$N(B @var{split} $B$r$=$N$&$A$N0l$D$,9gCW$9$k$^$G(B +$Be$N%0%k!<%W$KC_@Q$5$l(B +$B$?$H$-$K(B ``$B9gCW$7$?(B'' $B$H$7$^$9!#(B @item -@var{(& SPLIT...)}: $BJ,3d$,%j%9%H$G!":G=i$NMWAG$,(B @code{t} $B$G$"$k$H!"%j%9(B -$B%H$NA4$F$N(B SPLIT $B$ro$KCm0U$7$F;H$C$F2<$5$$!#(B @item -@var{(: function arg1 arg2 ...)}: $B$b$7J,3d$,%j%9%H$G!":G=i$N4X?t$,(B -@code{:} $B$G$"$k$H!"(B2$BHVL\$NMWAG$,(B @var{args} $B$r0z?t$H$7$F4X?t$H$7$F8F$P$l(B -$B$^$9!#4X?t$O(B SPLIT $B$rJV$9$Y$-$G$9!#(B +@code{(: @var{function} @var{arg1} @var{arg2} @dots{})}: $B$b$7J,3d$,%j%9(B +$B%H$G!":G=i$N4X?t$,(B @code{:} $B$G$"$k$H!"(B2$BHVL\$NMWAG$,(B @var{args} $B$r0z?t$H(B +$B$7$F4X?t$H$7$F8F$P$l$^$9!#4X?t$O(B @var{split} $B$rJV$9$Y$-$G$9!#(B @item -@var{(! FUNC SPLIT)}: $BJ,3d$,%j%9%H$G!":G=i$NMWAG$,(B @code{!} $B$G$"$k$H!"(B -SPLIT $B$,$K9gCW$7$J$1$l$P$J$j$^$;(B -$B$s!#(B@var{VALUE} $B$O4pAC%b!<%I(B (fundamental mode) $B9=J8%F!<%V%k(B (syntax +$B$3$l$i$NJ,3d$G!"(B@var{fileld} $B$O40A4$J%U%#!<%k%IL>$K9gCW$7$J$1$l$P$J$j$^(B +$B$;$s!#(B@var{value} $B$O4pAC%b!<%I(B (fundamental mode) $B9=J8%F!<%V%k(B (syntax table) $B$K=>$C$F40A4$K9gCW$7$J$1$l$P$J$j$^$;$s!#@55,I=8=$G%U%#!<%k%IL>$+(B $B8l$NItJ,$K9gCW$5$;$k$?$a$K(B @code{.*} $B$r;H$&;v$,$G$-$^$9!#8@$$49$($l$P!"(B -$BA4$F$N(B @var{VALUE} $B$O(B @samp{\<} $B$H(B @samp{\>} $B$NBP$G0O$^$l$^$9!#(B +$BA4$F$N(B @var{value} $B$O(B @samp{\<} $B$H(B @samp{\>} $B$NBP$G0O$^$l$^$9!#(B @vindex nnmail-split-abbrev-alist -@var{FIELD} $B$H(B @var{VALUE} $B$O(B lisp $B%7%s%\%k(B (symbol) $B$G$"$k;v$b$G$-!"$=(B +@var{field} $B$H(B @var{value} $B$O(B lisp $B%7%s%\%k(B (symbol) $B$G$"$k;v$b$G$-!"$=(B $B$N>l9g$O$=$l$i$O(B @code{nnmail-split-abbrev-alist} $B$G;XDj$5$l$F$$$k$h$&$K(B $BE83+$5$l$^$9!#$3$l$O%;%k$N(B @code{car} $B$,%-!<$r4^$s$G$$$F!"(B@code{cdr} $B$,(B $B4XO"IU$1$i$l$?CM$r;}$C$F$$$k%3%s%9%;%k(B (cons cell) $B$NO"A[%j%9%H$G$9!#(B @@ -10380,10 +10521,10 @@ table) $B$K=>$C$F40A4$K9gCW$7$J$1$l$P$J$j$^$;$s!#@55,I=8=$G%U%#!<%k%IL>$+(B $B;H$$$?$1$l$P!"(B@var{split-regexp} $B$r@_Dj$7$F$/$@$5$$!#(B $B$3$l$i$NA4$F$N%0%k!<%W$N%Q%i%a!<%?$O!"(B@code{nnmail-split-fancy} $BJ,3d$r:n(B -$B@.$9$k$?$a$K;HMQ$5$l!"$=$l$O(B @var{FIELD} $B$,(B @samp{any} $B$G!"(B@var{VALUE} +$B@.$9$k$?$a$K;HMQ$5$l!"$=$l$O(B @var{field} $B$,(B @samp{any} $B$G!"(B@var{value} $B$,(B@var{to-list}, @var{to-address}, @var{extra-aliases} $B$NA4$F!"(B -@var{split-regexp} $B$NA4$F$N9gCW$K9gCW$9$kC1FH$N@55,I=8=!"(B@var{SPLIT} $B$,(B -$B%0%k!<%W$NL>A0$K$J$j$^$9!#(B@var{RESTRICT} $B$b;HMQ$G$-$^$9(B: +@var{split-regexp} $B$NA4$F$N9gCW$K9gCW$9$kC1FH$N@55,I=8=!"(B@var{split} $B$,(B +$B%0%k!<%W$NL>A0$K$J$j$^$9!#(B@var{restrict} $B$b;HMQ$G$-$^$9(B: @var{split-exclude} $B%Q%i%a!<%?$r@55,I=8=$N%j%9%H$K@_Dj$9$k$@$1$G$9!#(B $B$3$l$i$NA4$F$N%Q%i%a!<%?$r;H$C$F@5$7$$J,3d$,@8@.$5$l$J$$$H$-$d!"2?$+0c$C(B @@ -10440,14 +10581,14 @@ nnml:mail.others: (: gnus-mlsplt-fancy GROUPS NO-CROSSPOST CATCH-ALL) @end lisp -@var{GROUPS} $B$O=PNO$NJ,3d$r@8@.$9$k$?$a$K%Q%i%a!<%?$,Av::$5$l$k%0%k!<%W(B -$BL>$N%j%9%H$+@55,I=8=$G$9!#(B@var{NO-CROSSPOST} $B$OAj8_Ej9F$r;HMQ6X;_$K$k$?(B +@var{groups} $B$O=PNO$NJ,3d$r@8@.$9$k$?$a$K%Q%i%a!<%?$,Av::$5$l$k%0%k!<%W(B +$BL>$N%j%9%H$+@55,I=8=$G$9!#(B@var{no-crosspost} $B$OAj8_Ej9F$r;HMQ6X;_$K$k$?(B $B$a$K;H$&$3$H$,$G$-$^$9!#$=$N>l9g!"C10l$N(B @code{|} $BJ,3d$,=PNO$5$l$^$9!#(B -@var{CATCH-ALL} $B$O=i4|A4Ja3M%0%k!<%W$H$7$F;HMQ$5$l$k%0%k!<%WL>$G$9!#(B -@var{CATCH-ALL} $B$,(B @code{nil} $B$G$"$k$+!"(B@var{SPLIT-REGEXP} $B$,$I$l$+$NA*(B +@var{catch-all} $B$O=i4|A4Ja3M%0%k!<%W$H$7$F;HMQ$5$l$k%0%k!<%WL>$G$9!#(B +@var{catch-all} $B$,(B @code{nil} $B$G$"$k$+!"(B@var{split-regexp} $B$,$I$l$+$NA*(B $BBr$5$l$?%0%k!<%W6uJ8;zNs$K9gCW$9$k$H!"A4Ja3MJ,3d$O9T$o$l$^$;$s!#$=$&$G$J(B -$B$$>l9g!"%0%k!<%W$K(B @var{SPLIT-SPEC} $B$,(B @code{catch-all} $B$K@_Dj$5$l$F$$$k(B -$B$b$N$,$"$k$H!"$3$N%0%k!<%W$,(B @var{CATCH-ALL} $B0z?t$r>e=q$-$7$^$9!#(B +$B$$>l9g!"%0%k!<%W$K(B @var{split-spec} $B$,(B @code{catch-all} $B$K@_Dj$5$l$F$$$k(B +$B$b$N$,$"$k$H!"$3$N%0%k!<%W$,(B @var{catch-all} $B0z?t$r>e=q$-$7$^$9!#(B @findex gnus-group-split-setup $BIT1?$J$3$H$K!"A4$F$N%0%k%W$H%Q%i%a!<%?$rAv::$9$k$3$H$OHs>o$KCY$$$G$9!#FC(B @@ -10470,10 +10611,10 @@ nnml:mail.others: (gnus-group-split-setup AUTO-UPDATE CATCH-ALL) @end lisp -@var{AUTO-UPDATE} $B$,(B @code{nil} $B$GL5$$$H!"(B@code{gnus-group-split-update} +@var{auto-update} $B$,(B @code{nil} $B$GL5$$$H!"(B@code{gnus-group-split-update} $B$,(B @code{nnmail-pre-get-new-mail-hook} $B$KDI2C$5$l!"FsEY$H(B @code{nnmail-split-fancy} $B$N99?7$r?4G[$9$kI,MW$O$"$j$^$;$s!#(B -@var{CATCH-ALL} $B$r>JN,$7$J$$>l9g$O(B ($B$=$l$O%*%W%7%g%s$G$9(B) +@var{catch-all} $B$r>JN,$7$J$$>l9g$O(B ($B$=$l$O%*%W%7%g%s$G$9(B) @code{gnus-group-split-default-catch-all-group} $B$O$=$NCM$K@_Dj$5$l$^$9!#(B @vindex gnus-group-split-updated-hook @@ -11082,13 +11223,13 @@ nnfolder-generate-active-file} $B$r;H$&;v$,$G$-$^$9!#$3$l$OD9$$%U%!%$%kL>(B $B$NA*Br$O!"%a!<%k$r(B gnus $B$N$9$06a$/$K@\5-;v$N%G%#%l%/%H%j!<%9%W!<%k$KF'$_9~$`$H$$$&$b$N$G$7$?!#$=$l$G(B -$B$b!"$?$^$?$^%5!<%P!<(B ($B$b$7$/$O!"(BNFS $B$G%9%W!<%k$,FI$a$k$h$&$J>l9g(B) $B$K$$$k(B -$B$h$&$J>l9g$O!"$3$l$i$NJ}K!$rA*$V$?$a$K(B @code{nntp} $B$d(B @code{nnspool} $B%P%C(B -$B%/%(%s%I$N$I$A$i$+$rA*$V$3$H$,$G$-$^$7$?!#(B +$BF1$835G0$,(B Usenet $B<+?H$K$bB8:_$7$^$9!#5-;v$X$N@\?($O:#F|$G$O!"IaDL$O(B +@sc{nntp} $B$G$J$5$l$^$9$,!"@N!9$NM+]5$J?@\5-;v$N%G%#%l%/%H%j!<%9%W!<%k$KF'$_9~$`$H$$$&$b$N(B +$B$G$7$?!#$=$l$G$b!"$?$^$?$^%5!<%P!<(B ($B$b$7$/$O!"(BNFS $B$G%9%W!<%k$,FI$a$k$h(B +$B$&$J>l9g(B) $B$K$$$k$h$&$J>l9g$O!"$3$l$i$NJ}K!$rA*$V$?$a$K(B @code{nntp} $B$d(B +@code{nnspool} $B%P%C%/%(%s%I$N$I$A$i$+$rA*$V$3$H$,$G$-$^$7$?!#(B $B%a!<%k%P%C%/%(%s%I$rA*Br$9$k$3$H$N%4!<%k$O!"85$N7A<0$r07$&$N$KE,$7$?J}K!(B $B$H!">-Mh;HMQ$9$k$?$a$KJXMx$J7A<0$K%a!<%k$r;D$9$3$H$NN>J}$rF1;~$KI=8=$9$k(B @@ -11183,6 +11324,289 @@ gnus $B$,$=$l$>$l$NJL$N%0%k!<%W$K$I$N$/$i$$$N%a%C%;!<%8$,$"$k$+$rD4$Y$k$?(B @end table +@node Browsing the Web +@section Browsing the Web +@cindex web +@cindex browsing the web +@cindex www +@cindex http + +Web-based discussion forums are getting more and more popular. On many +subjects, the web-based forums have become the most important forums, +eclipsing the importance of mailing lists and news groups. The reason +is easy to understand---they are friendly to new users; you just point +and click, and there's the discussion. With mailing lists, you have to +go through a cumbersome subscription procedure, and most people don't +even know what a news group is. + +The problem with this scenario is that web browsers are not very good at +being newsreaders. They do not keep track of what articles you've read; +they do not allow you to score on subjects you're interested in; they do +not allow off-line browsing; they require you to click around and drive +you mad in the end. + +So---if web browsers suck at reading discussion forums, why not use Gnus +to do it instead? + +Gnus has been getting a bit of a collection of backends for providing +interfaces to these sources. + +@menu +* Web Searches:: Creating groups from articles that match a string. +* Slashdot:: Reading the Slashdot comments. +* Ultimate:: The Ultimate Bulletin Board systems. +* Web Archive:: Reading mailing list archived on web. +@end menu + +The main caveat with all these web sources is that they probably won't +work for a very long time. Gleaning information from the @sc{html} data +is guesswork at best, and when the layout is altered, the Gnus backend +will fail. If you have reasonably new versions of these backends, +though, you should be ok. + +One thing all these Web methods have in common is that the Web sources +are often down, unavailable or just plain too slow to be fun. In those +cases, it makes a lot of sense to let the Gnus Agent (@pxref{Gnus +Unplugged}) handle downloading articles, and then you can read them at +leisure from your local disk. No more World Wide Wait for you. + + +@node Web Searches +@subsection Web Searches +@cindex nnweb +@cindex DejaNews +@cindex Alta Vista +@cindex InReference +@cindex Usenet searches +@cindex searching the Usenet + +It's, like, too neat to search the Usenet for articles that match a +string, but it, like, totally @emph{sucks}, like, totally, to use one of +those, like, Web browsers, and you, like, have to, rilly, like, look at +the commercials, so, like, with Gnus you can do @emph{rad}, rilly, +searches without having to use a browser. + +The @code{nnweb} backend allows an easy interface to the mighty search +engine. You create an @code{nnweb} group, enter a search pattern, and +then enter the group and read the articles like you would any normal +group. The @kbd{G w} command in the group buffer (@pxref{Foreign +Groups}) will do this in an easy-to-use fashion. + +@code{nnweb} groups don't really lend themselves to being solid +groups---they have a very fleeting idea of article numbers. In fact, +each time you enter an @code{nnweb} group (not even changing the search +pattern), you are likely to get the articles ordered in a different +manner. Not even using duplicate suppression (@pxref{Duplicate +Suppression}) will help, since @code{nnweb} doesn't even know the +@code{Message-ID} of the articles before reading them using some search +engines (DejaNews, for instance). The only possible way to keep track +of which articles you've read is by scoring on the @code{Date} +header---mark all articles posted before the last date you read the +group as read. + +If the search engine changes its output substantially, @code{nnweb} +won't be able to parse it and will fail. One could hardly fault the Web +providers if they were to do this---their @emph{raison d'être} is to +make money off of advertisements, not to provide services to the +community. Since @code{nnweb} washes the ads off all the articles, one +might think that the providers might be somewhat miffed. We'll see. + +You must have the @code{url} and @code{w3} package installed to be able +to use @code{nnweb}. + +Virtual server variables: + +@table @code +@item nnweb-type +@vindex nnweb-type +What search engine type is being used. The currently supported types +are @code{dejanews}, @code{dejanewsold}, @code{altavista} and +@code{reference}. + +@item nnweb-search +@vindex nnweb-search +The search string to feed to the search engine. + +@item nnweb-max-hits +@vindex nnweb-max-hits +Advisory maximum number of hits per search to display. The default is +100. + +@item nnweb-type-definition +@vindex nnweb-type-definition +Type-to-definition alist. This alist says what @code{nnweb} should do +with the various search engine types. The following elements must be +present: + +@table @code +@item article +Function to decode the article and provide something that Gnus +understands. + +@item map +Function to create an article number to message header and URL alist. + +@item search +Function to send the search string to the search engine. + +@item address +The address the aforementioned function should send the search string +to. + +@item id +Format string URL to fetch an article by @code{Message-ID}. +@end table + +@end table + + +@node Slashdot +@subsection Slashdot +@cindex Slashdot +@cindex nnslashdot + +Slashdot (@file{http://slashdot.org/}) is a popular news site, with +lively discussion following the news articles. @code{nnslashdot} will +let you read this forum in a convenient manner. + +The easiest way to read this source is to put something like the +following in your @file{.gnus.el} file: + +@lisp +(setq gnus-secondary-select-methods + '((nnslashdot ""))) +@end lisp + +This will make Gnus query the @code{nnslashdot} backend for new comments +and groups. The @kbd{F} command will subscribe each new news article as +a new Gnus group, and you can read the comments by entering these +groups. (Note that the default subscription method is to subscribe new +groups as zombies. Other methods are available (@pxref{Subscription +Methods}). + +When following up to @code{nnslashdot} comments (or posting new +comments), some light @sc{html}izations will be performed. In +particular, text quoted with @samp{> } will be quoted with +@code{blockquote} instead, and signatures will have @code{br} added to +the end of each line. Other than that, you can just write @sc{html} +directly into the message buffer. Note that Slashdot filters out some +@sc{html} forms. + +The following variables can be altered to change its behavior: + +@table @code +@item nnslashdot-threaded +Whether @code{nnslashdot} should display threaded groups or not. The +default is @code{t}. To be able to display threads, @code{nnslashdot} +has to retrieve absolutely all comments in a group upon entry. If a +threaded display is not required, @code{nnslashdot} will only retrieve +the comments that are actually wanted by the user. Threading is nicer, +but much, much slower than untreaded. + +@item nnslashdot-login-name +@vindex nnslashdot-login-name +The login name to use when posting. + +@item nnslashdot-password +@vindex nnslashdot-password +The password to use when posting. + +@item nnslashdot-directory +@vindex nnslashdot-directory +Where @code{nnslashdot} will store its files. The default value is +@samp{~/News/slashdot/}. + +@item nnslashdot-active-url +@vindex nnslashdot-active-url +The @sc{url} format string that will be used to fetch the information on +news articles and comments. The default is +@samp{http://slashdot.org/search.pl?section=&min=%d}. + +@item nnslashdot-comments-url +@vindex nnslashdot-comments-url +The @sc{url} format string that will be used to fetch comments. The +default is +@samp{http://slashdot.org/comments.pl?sid=%s&threshold=%d&commentsort=%d&mode=flat&startat=%d}. + +@item nnslashdot-article-url +@vindex nnslashdot-article-url +The @sc{url} format string that will be used to fetch the news article. The +default is +@samp{http://slashdot.org/article.pl?sid=%s&mode=nocomment}. + +@item nnslashdot-threshold +@vindex nnslashdot-threshold +The score threshold. The default is -1. + +@item nnslashdot-group-number +@vindex nnslashdot-group-number +The number of old groups, in addition to the ten latest, to keep +updated. The default is 0. + +@end table + + + +@node Ultimate +@subsection Ultimate +@cindex nnultimate +@cindex Ultimate Bulletin Board + +The Ultimate Bulletin Board (@file{http://www.ultimatebb.com/}) is +probably the most popular Web bulletin board system used. It has a +quite regular and nice interface, and it's possible to get the +information Gnus needs to keep groups updated. + +The easiest way to get started with @code{nnultimate} is to say +something like the following in the group buffer: @kbd{B nnultimate RET +http://www.tcj.com/messboard/ubbcgi/ RET}. (Substitute the @sc{url} +(not including @samp{Ultimate.cgi} or the like at the end) for a forum +you're interested in; there's quite a list of them on the Ultimate web +site.) Then subscribe to the groups you're interested in from the +server buffer, and read them from the group buffer. + +The following @code{nnultimate} variables can be altered: + +@table @code +@item nnultimate-directory +@vindex nnultimate-directory +The directory where @code{nnultimate} stores its files. The default is +@samp{~/News/ultimate/}. +@end table + +@node Web Archive +@subsection Web Archive +@cindex nnwarchive +@cindex Web Archive + +Some mailing lists only have archives on Web servers, such as +(@file{http://www.egroups.com/}). It has a quite regular and nice +interface, and it's possible to get the information Gnus needs to keep +groups updated. + +The easiest way to get started with @code{nnwarchive} is to say +something like the following in the group buffer: @kbd{M-x +gnus-group-make-nnwarchive-group RET an_egroup RET egroups RET +www.egroups.com RET your@@email.address RET}. (Substitute the +@sc{an_egroup} with the mailing list you subscribed, the +@sc{your@@email.address} with your email address.) + +The following @code{nnwarchive} variables can be altered: + +@table @code +@item nnwarchive-directory +@vindex nnwarchive-directory +The directory where @code{nnwarchive} stores its files. The default is +@samp{~/News/warchive/}. + +@item nnwarchive-login +@vindex nnwarchive-login +The account name on the web server. + +@item nnwarchive-passwd +@vindex nnwarchive-passwd +The password for your account on the web server. +@end table @node Other Sources @section $B$=$NB>$N%0%k!<%W8;(B @@ -11196,11 +11620,9 @@ Gnus $B$O$?$@C1$K%K%e!<%9$d%a!<%k$rFI$`0J>e$N$3$H$,$G$-$^$9!#0J2<(B * Directory Groups:: $B%G%#%l%/%H%j!<$r%K%e!<%9%0%k!<%W$N$h$&$KFI$`!#(B * Anything Groups:: Dired? $BC/$,(B dired $B$J$s$F;H$&$N(B? * Document Groups:: $B8DJL$N%U%!%$%k72$O%0%k!<%W$NAG!#(B -* SOUP:: @sc{SOUP} $B%Q%1%C%H$r(B ``$B%*%U%i%$%s(B''$B$GFI$`!#(B -* Web Searches:: $BJ8;zNs$K%^%C%A$9$k5-;v$+$i%0%k!<%W$r:n$k!#(B +* SOUP:: @sc{soup} $B%Q%1%C%H$r(B ``$B%*%U%i%$%s(B''$B$GFI$`!#(B * Mail-To-News Gateways:: $B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$$rDL$7$F5-;v$rEj9F$9$k!#(B -@c TRANSLATEME -* IMAP:: Using Gnus as a IMAP client. +* IMAP:: Using Gnus as a @sc{imap} client. @end menu @@ -11566,13 +11988,13 @@ PC $B$N@$3&$N?M!9$O$h$/!"(B``$B%*%U%i%$%s(B'' $B%K%e!<%9%j!<%@$K$D$$$FOC$r @item message packets $B$3$l$O%5!<%P!<$G:n$i$l$k%Q%1%C%H$G!"IaDL$O$"$J$?$,FI$`$?$a$N$?(B $B$/$5$s$N%a%C%;!<%8$,4^$^$l$F$$$^$9!#$3$l$i$O=i4|@_Dj$G$O(B -@file{SoupoutX.tgz} $B$H$$$&L>A0$G$9!#$3$3$G(B @var{X} $B$O?t;z$G$9!#(B +@file{SoupoutX.tgz} $B$H$$$&L>A0$G$9!#$3$3$G(B @var{x} $B$O?t;z$G$9!#(B @item response packets ($BJV?.%Q%1%C%H(B) $B$3$N%Q%1%C%H$O<+Bp%^%7%s$G:n$i$l$k%Q%1%C%H$G!"IaDL$O$"$J$?$N=q$$(B $B$?JV;v$,4^$^$l$F$$$^$9!#$3$l$i$O=i4|@_Dj$G$O(B -@file{SoupinX.tgz} $B$H$$$&L>A0$G$9!#$3$3$G(B @var{X} $B$O?t;z$G$9!#(B +@file{SoupinX.tgz} $B$H$$$&L>A0$G$9!#$3$3$G(B @var{x} $B$O?t;z$G$9!#(B @end table @@ -11814,95 +12236,6 @@ gnus $B$,JV?.%Q%1%C%H$rC5$7$K9T$/>l=j!#=i4|@_DjCM$O(B @file{~/}$B!#(B @sc{soup} $B$5$;$?$+$C$?$i!"FsHVL\$r;H$C$F$/$@$5$$!#(B -@node Web Searches -@subsection $B%&%'%V8!:w(B -@cindex nnweb -@cindex DejaNews -@cindex Alta Vista -@cindex InReference -@cindex Usenet searches -@cindex searching the Usenet - -$B$=$l$O!"$J$s$H$$$&$+!"(BUsenet $B$+$iJ8;zNs$K%^%C%A$9$k5-;v$r8!:w$9(B -$B$k$N$O$H$F$bAG@2$i$7$$$s$@$1$I!"$=$N!"$"$N%&%'%V%V%i%&%6!<$C$F$d(B -$B$D$r;H$C$F!"$=$s$G$b$C$F!"@kEA$rFI$^$;$i$l$k$C$F$$$&$N$O!"$=$N!"(B -$B$J$s$H$$$&$+!"$[$s$H$&$K(B @emph{$B!VITMM$M!W(B} $B$H$$$&$+!"$=$l$G!"(B -gnus $B$G$O%V%i%&%6!<$r;H$o$:$K!"$=$N!"(B@emph{$BD6$+$C$3$h$/(B}$B$=$l$,$G(B -$B$-$k!"$C$F$3$H$G$9!#(B - -@code{nnweb} $B%P%C%/%(%s%I$O!"6/NO$J8!:w%(%s%8%s$KBP$7$F4JC1$J%$(B -$B%s%?!<%U%'!<%9$rDs6!$7$^$9!#(B@code{nnweb} $B%0%k!<%W$r:n@.$7!"8!:w(B -$B%Q%?!<%s$rF~NO$7!"$=$7$F$=$N%0%k!<%W$KF~$C$FB>$NIaDL$N%0%k!<%W$N(B -$B$h$&$K5-;v$rFI$_$^$9!#%0%k!<%W%P%C%U%!(B (@pxref{Foreign -Groups}) $B$N(B @kbd{G w} $BL?Na$K$h$C$F$*A[%5!<%P!l=j!#=i4|@_DjCM$O(B @lisp ;;; Gnus $B$,$I$N$h$&$K%K%e!<%9$r$l$N5-;v$K?7$7$$(B @samp{thread} $B9gCW$rDI2C$7$^(B +$B%@!<$K(B @var{x} $B$r;}$D$=$l$>$l$N5-;v$K?7$7$$(B @samp{thread} $B9gCW$rDI2C$7$^(B $B$9!#(B ($B$3$l$i$N?7$7$$(B @samp{thread} $B9gCW$O$3$l$i$N9gCW$9$k5-;v$N(B @code{Message-ID} $B$r;H$$$^$9!#(B) $B$3$l$O%9%l%C%I$N$$$/$D$+$N5-;v$,40A4$J(B @code{References} $B%X%C%@!<$r;}$C$F$$$J$+$C$?$H$7$F$b!"%9%l%C%IA4BN$N%9%3(B @@ -14218,8 +14550,8 @@ gnus $B$O%0%k!<%WL>$NA4$F$N8l$K$D$$$F!"C18lE,1~@-%9%3%"$r$7$^$;$s!#$[$H$s(B @enumerate @item -@var{(regexp file-name)}$B!#(B@var{regexp} $B$,%0%k!<%WL>$K%^%C%A$9$l(B -$B$P!"(B@var{file-name} $B$,%[!<%`%9%3%"%U%!%$%k$H$7$F;HMQ$5$l$^$9!#(B +@code{(@var{regexp} @var{file-name})}$B!#(B@var{regexp} $B$,%0%k!<%WL>$K%^%C%A(B +$B$9$l$P!"(B@var{file-name} $B$,%[!<%`%9%3%"%U%!%$%k$H$7$F;HMQ$5$l$^$9!#(B @item $B4X?t!#$3$N4X?t$,(B @code{nil} $B0J30$rJV$;$P!"$=$NJV5QCM$,%[!<%`%9%3(B @@ -14849,7 +15181,7 @@ bbbd $B%5!<%P!<$,/$O(B $B87L)$J!"DxEY$M!#$?$$$F$$$O>/$@$1$I(B)$B!#NI$/;H$o$l$kr7o(B ...)} $BMWAG$r;H$&I,MW$,$"$j(B -$B$^$9!#3F>r7o$OJ8;zNs(B ($B;H$$$?$$l9g$O(B @var{$BJ8;zNs(B} $B$O;H(B -$B$$$?$/$J$$r7o(B} @dots{})} $BMWAG(B +$B$r;H$&I,MW$,$"$j$^$9!#3F>r7o$OJ8;zNs(B ($B;H$$$?$$l9g$O(B +@var{$BJ8;zNs(B} $B$O;H$$$?$/$J$$l9g$K$O!"(B @@ -16862,6 +17194,7 @@ but at the common table.@* @menu * History:: $B$I$&$d$C$F(B gnus $B$,:#F|$N$h$&$K$J$C$?$+!#(B +* On Writing Manuals:: Why this is not a beginner's guide. * Terminology:: $B2f!9$OK\Ev$KFq$7$$!"8l$N$h$&$J8l$r;H$&!#(B * Customization:: $B$"$J$?$NMW5a$K1h$C$F(B gnus $B$r;EN)$F$k!#(B * Troubleshooting:: $B>e$NB?$/(B $B$N;v$H6&$K(B)$B!#(B @@ -17171,10 +17510,6 @@ Luis Fernandes---$B%G%6%$%s$H%0%i%U%#%C%/!#(B Erik Naggum---$B1g=u!"9M$(!"%5%]!<%H!"%3!<%I$H$=$NB>!#(B @item -Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el $B$H(B @sc{mime} $B$HB>$NId9f(B -$B2=I|9f2=$K4X$9$kB?$/$N$b$N!#(B - -@item Wes Hardaker---@file{gnus-picon.el} $B$H(B @dfn{picon} $B$NItJ,$N%^%K%e%"%k(B (@pxref{Picons})$B!#(B @@ -17938,9 +18273,9 @@ Commands})$B!#(B Process Marks})$B!#(B @item -$B?7$7$$%a!<%k$+$i%K%e!<%9$X$N%P%C%/%(%s%I$,(B NNTP $B%5!<%P!<$,Ej9F$r5v2D$7$F(B -$B$$$J$$>l9g$G$b!"Ej9F$G$-$k$h$&$K$J$j$^$7$?(B (@pxref{Mail-To-News -Gateways})$B!#(B +$B?7$7$$%a!<%k$+$i%K%e!<%9$X$N%P%C%/%(%s%I$,(B @sc{nntp} $B%5!<%P!<$,Ej9F$r(B +$B5v2D$7$F$$$J$$>l9g$G$b!"Ej9F$G$-$k$h$&$K$J$j$^$7$?(B +(@pxref{Mail-To-News Gateways})$B!#(B @item $B%&%'%V8!:w%(%s%8%s(B (@dfn{DejaNews}$B!"(B@dfn{Alta Vista}$B!"(B@dfn{InReference}) @@ -19248,7 +19583,7 @@ New limit command---limit to articles that have a certain string in the head or body. @item -Allow breaking lengthy NNTP commands. +Allow breaking lengthy @sc{nntp} commands. @item gnus-article-highlight-limit, to disable highlighting in big articles. @@ -19317,18 +19652,10 @@ Crossposted articles should "inherit" the % or @ mark from the other groups it has been crossposted to, or something. (Agent.) @item -`S D r' should allow expansion of aliases. - -@item If point is on a group that appears multiple times in topics, and you press `l', point will move to the first instance of the group. @item -Fetch by Message-ID from dejanews. - - - -@item A spec for the group line format to display the number of agent-downloaded articles in the group. @@ -19379,6 +19706,19 @@ Allow "orphan" scores in the Agent scoring. just changed to. @end example + +@item +Remove list identifiers from the subject in the summary when doing `^' +and the like. + +@item +Have the Agent write out articles, one by one, as it retrieves them, +to avoid having to re-fetch them all if Emacs should crash while +fetching. + +@item +Be able to forward groups of messages as MIME digests. + @item Solve the halting problem. @@ -19443,6 +19783,26 @@ Solve the halting problem. @end iftex +@node On Writing Manuals +@section On Writing Manuals + +I guess most manuals are written after-the-fact; documenting a program +that's already there. This is not how this manual is written. When +implementing something, I write the manual entry for that something +straight away. I then see that it's difficult to explain the +functionality, so I write how it's supposed to be, and then I change the +implementation. Writing the documentation and writing the code goes +hand in hand. + +This, of course, means that this manual has no, or little, flow. It +documents absolutely everything in Gnus, but often not where you're +looking for it. It is a reference manual, and not a guide to how to get +started with Gnus. + +That would be a totally different book, that should be written using the +reference manual as source material. It would look quite differently. + + @page @node Terminology @section $BMQ8l(B @@ -20205,7 +20565,7 @@ gnus $B$,K\Ev$N%0%k!<%W$H5-;vHV9f$rCN$k$3$H$,$G$-$k$h$&$K$J$k$G$7$g(B @var{group} $B$N%G!<%?$rpJs(B (@pxref{Group Info}) $B$,JQ992U=j$H$7$F%P%C%/%((B $B5-;v$N0u$r@_Dj(B/$B>C5n(B/$BDI2C$7$^$9!#IaDL$O(B gnus $B$O5-;v$N0u(B ($B4{FI!"2D;k!";~8B(B $B>C5n$J$I(B) $B$rFbIt$G07$$!"(B@code{~/.newsrc.eld} $B$KJ]B8$7$^$9!#$7$+$7!"%P%C(B -$B%/%(%s%I$K$O(B (IMAP $B$N$h$&$K(B) $B5-;v$NA4$F$N>pJs$r%5!<%P!<$K<}$a$k$N$G!"(B -gnus $B$O0u$N>pJs$r%5!<%P!<$KEAC#$7$J$1$l$P$J$i$J$$$b$N$,$"$j$^$9!#(B +$B%/%(%s%I$K$O(B (@sc{imap} $B$N$h$&$K(B) $B5-;v$NA4$F$N>pJs$r%5!<%P!<$K<}$a$k$N(B +$B$G!"(Bgnus $B$O0u$N>pJs$r%5!<%P!<$KEAC#$7$J$1$l$P$J$i$J$$$b$N$,$"$j$^$9!#(B ACTION $B$O$3$N$h$&$JMM<0$N0u@_Dj$NMW5a$N%j%9%H$G$9(B: diff --git a/texi/gnus.texi b/texi/gnus.texi index 4224838..13a5dc6 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,4 +1,4 @@ -@c \input texinfo @c -*-texinfo-*- +\input texinfo @c -*-texinfo-*- -*- coding: iso-latin-1 -*- @setfilename gnus @settitle T-gnus 6.13 Manual @@ -729,6 +729,22 @@ to will be subscribed hierarchically. @vindex gnus-subscribe-killed Kill all new groups. +@item gnus-subscribe-topics +@vindex gnus-subscribe-topics +Put the groups into the topic that has a matching @code{subscribe} topic +parameter (@pxref{Topic Parameters}). For instance, a @code{subscribe} +topic parameter that looks like + +@example +"nnslashdot" +@end example + +will mean that all groups that match that regex will be subscribed under +that topic. + +If no topics match the groups, the groups will be subscribed in the +top-level topic. + @end table @vindex gnus-subscribe-hierarchical-interactive @@ -1296,7 +1312,7 @@ The native select method. @vindex gnus-group-highlight Highlighting in the group buffer is controlled by the @code{gnus-group-highlight} variable. This is an alist with elements -that look like @var{(form . face)}. If @var{form} evaluates to +that look like @code{(@var{form} . @var{face})}. If @var{form} evaluates to something non-@code{nil}, the @var{face} will be used on the line. Here's an example value for this variable that might look nice if the @@ -1454,7 +1470,7 @@ this command, gnus will offer to fetch all the old articles in this group from the server. If you give a numerical prefix @var{N}, @var{N} determines the number of articles gnus will fetch. If @var{N} is positive, gnus fetches the @var{N} newest articles, if @var{N} is -negative, gnus fetches the @var{abs(N)} oldest articles. +negative, Gnus fetches the @code{abs(@var{N})} oldest articles. @item RET @kindex RET (Group) @@ -2171,7 +2187,7 @@ Elements that look like @code{(charset . iso-8859-1)} will make @code{iso-8859-1} the default charset; that is, the charset that will be used for all articles that do not specify a charset. -@item @var{(variable form)} +@item (@var{variable} @var{form}) You can use the group parameters to set variables local to the group you are entering. If you want to turn threading off in @samp{news.answers}, you could put @code{(gnus-show-threads nil)} in the group parameters of @@ -2959,6 +2975,18 @@ All groups in a topic will inherit group parameters from the parent (and ancestor) topic parameters. All valid group parameters are valid topic parameters (@pxref{Group Parameters}). +In addition, the following parameters are only valid as topic +parameters: + +@table @code +@item subscribe +When subscribing new groups by topic (@pxref{Subscription Methods}), the +@code{subscribe} topic parameter says what groups go in what topic. Its +value should be a regexp to match the groups that should go in that +topic. + +@end table + Group parameters (of course) override topic parameters, and topic parameters in sub-topics override topic parameters in super-topics. You know. Normal inheritance rules. (@dfn{Rules} is here a noun, not a @@ -3264,7 +3292,6 @@ You can have as many summary buffers open as you wish. * Choosing Articles:: Reading articles. * Paging the Article:: Scrolling the current article. * Reply Followup and Post:: Posting articles. -* Canceling and Superseding:: ``Whoops, I shouldn't have called him that.'' * Marking Articles:: Marking articles as read, expirable, etc. * Limiting:: You can limit the summary buffer. * Threading:: How threads are made. @@ -3610,15 +3637,16 @@ highlight the current article in the summary buffer. @item gnus-summary-highlight @vindex gnus-summary-highlight Summary lines are highlighted according to this variable, which is a -list where the elements are of the format @var{(FORM . FACE)}. If you -would, for instance, like ticked articles to be italic and high-scored -articles to be bold, you could set this variable to something like +list where the elements are of the format @code{(@var{form} +. @var{face})}. If you would, for instance, like ticked articles to be +italic and high-scored articles to be bold, you could set this variable +to something like @lisp (((eq mark gnus-ticked-mark) . italic) ((> score default) . bold)) @end lisp -As you may have guessed, if @var{FORM} returns a non-@code{nil} value, -@var{FACE} will be applied to the line. +As you may have guessed, if @var{form} returns a non-@code{nil} value, +@var{face} will be applied to the line. @end table @@ -3931,8 +3959,10 @@ Select the article buffer (@code{gnus-summary-select-article-buffer}). @section Reply, Followup and Post @menu -* Summary Mail Commands:: Sending mail. -* Summary Post Commands:: Sending news. +* Summary Mail Commands:: Sending mail. +* Summary Post Commands:: Sending news. +* Summary Message Commands:: Other Message-related commands. +* Canceling and Superseding:: ``Whoops, I shouldn't have called him that.'' @end menu @@ -4134,8 +4164,23 @@ Uuencode a file, split it into parts, and post it as a series Also @pxref{(message)Header Commands} for more information. +@node Summary Message Commands +@subsection Summary Message Commands + +@table @kbd +@item S y +@kindex S y (Summary) +@findex gnus-summary-yank-message +Yank the current article into an already existing Message composition +buffer (@code{gnus-summary-yank-message}). This command prompts for +what message buffer you want to yank into, and understands the +process/prefix convention (@pxref{Process/Prefix}). + +@end table + + @node Canceling and Superseding -@section Canceling Articles +@subsection Canceling Articles @cindex canceling articles @cindex superseding articles @@ -4299,7 +4344,7 @@ Canceled article (@code{gnus-canceled-mark}) @item F @vindex gnus-souped-mark -@sc{SOUP}ed article (@code{gnus-souped-mark}). @xref{SOUP}. +@sc{soup}ed article (@code{gnus-souped-mark}). @xref{SOUP}. @item Q @vindex gnus-sparse-mark @@ -6357,8 +6402,9 @@ text, the signature, and adds buttons to the body and the head. @vindex gnus-header-face-alist Highlight the headers (@code{gnus-article-highlight-headers}). The highlighting will be done according to the @code{gnus-header-face-alist} -variable, which is a list where each element has the form @var{(regexp -name content)}. @var{regexp} is a regular expression for matching the +variable, which is a list where each element has the form +@code{(@var{regexp} @var{name} @var{content})}. +@var{regexp} is a regular expression for matching the header, @var{name} is the face used for highlighting the header name (@pxref{Faces and Fonts}) and @var{content} is the face for highlighting the header value. The first match made will be used. Note that @@ -6588,6 +6634,10 @@ Hide @sc{pem} (privacy enhanced messages) cruft @item W W B @kindex W W B (Summary) @findex gnus-article-strip-banner +@cindex banner +@cindex OneList +@cindex stripping advertisments +@cindex advertisments Strip the banner specified by the @code{banner} group parameter (@code{gnus-article-strip-banner}). This is mainly used to hide those annoying banners and/or signatures that some mailing lists and moderated @@ -6930,7 +6980,7 @@ used to say what headers to apply the buttonize coding to: (HEADER REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR) @end lisp -@var{HEADER} is a regular expression. +@var{header} is a regular expression. @item gnus-button-url-regexp @vindex gnus-button-url-regexp @@ -7111,7 +7161,51 @@ Translate the article from one language to another @section @sc{mime} Commands @cindex MIME decoding +The following commands all understand the numerical prefix. For +instance, @kbd{3 b} means ``view the third @sc{mime} part''. + +@table @kbd +@item b +@itemx K b +@kindex b (Summary) +@kindex K b (Summary) +View the @sc{mime} part. + +@item K o +@kindex K o (Summary) +Save the @sc{mime} part. + +@item K c +@kindex K c (Summary) +Copy the @sc{mime} part. + +@item K e +@kindex K e (Summary) +View the @sc{mime} part externally. + +@item K i +@kindex K i (Summary) +View the @sc{mime} part internally. + +@item K | +@kindex K | (Summary) +Pipe the @sc{mime} part to an external command. +@end table + +The rest of these @sc{mime} commands do not use the numerical prefix in +the same manner: + @table @kbd +@item K b +@kindex K b (Summary) +Make all the @sc{mime} parts have buttons in from of them. + +@item K m +@kindex K m (Summary) +Some multipart messages are transmitted with missing or faulty headers. +This command will attempt to ``repair'' these messages so that they can +be viewed in a more pleasant manner. + @item X m @kindex X m (Summary) @findex gnus-summary-save-parts @@ -7371,6 +7465,20 @@ would, perhaps, be best if the @sc{nntp} server you consult is the one updating the spool you are reading from, but that's not really necessary. +It can also be a list of select methods, as well as the special symbol +@code{current}, which means to use the current select method. If it +is a list, Gnus will try all the methods in the list until it finds a +match. + +Here's an example setting that will first try the current method, and +then ask Deja if that fails: + +@lisp +(setq gnus-refer-article-method + '(current + (nnweb "refer" (nnweb-type dejanews)))) +@end lisp + Most of the mail backends support fetching by @code{Message-ID}, but do not do a particularly excellent job at it. That is, @code{nnmbox} and @code{nnbabyl} are able to locate articles from any groups, while @@ -7558,8 +7666,8 @@ Variables related to the display are: @item gnus-tree-brackets @vindex gnus-tree-brackets This is used for differentiating between ``real'' articles and -``sparse'' articles. The format is @var{((real-open . real-close) -(sparse-open . sparse-close) (dummy-open . dummy-close))}, and the +``sparse'' articles. The format is @code{((@var{real-open} . @var{real-close}) +(@var{sparse-open} . @var{sparse-close}) (@var{dummy-open} . @var{dummy-close}))}, and the default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))}. @item gnus-tree-parent-child-edges @@ -8514,8 +8622,7 @@ You can, of course, write your own functions to be called from @code{gnus-part-display-hook}. The functions are called narrowed to the part, and you can do anything you like, pretty much. There is no information that you have to keep in the buffer---you can change -everything. However, you shouldn't delete any headers. Instead make -them invisible if you want to make them go away. +everything. @node Article Keymap @@ -8883,8 +8990,7 @@ messages in one file per month: (setq gnus-message-archive-group '((if (message-news-p) "misc-news" - (concat "mail." (format-time-string - "%Y-%m" (current-time)))))) + (concat "mail." (format-time-string "%Y-%m"))))) @end lisp (XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to @@ -8964,15 +9070,17 @@ signature and the @samp{What me?} @code{Organization} header. The first element in each style is called the @code{match}. If it's a string, then Gnus will try to regexp match it against the group name. -If it's a function symbol, that function will be called with no -arguments. If it's a variable symbol, then the variable will be +If it is the symbol @code{header}, then Gnus will look for header that +match the next element in the match, and compare that to the last header +in the match. If it's a function symbol, that function will be called +with no arguments. If it's a variable symbol, then the variable will be referenced. If it's a list, then that list will be @code{eval}ed. In any case, if this returns a non-@code{nil} value, then the style is said to @dfn{match}. Each style may contain a arbitrary amount of @dfn{attributes}. Each -attribute consists of a @var{(name value)} pair. The attribute name -can be one of @code{signature}, @code{signature-file}, +attribute consists of a @code{(@var{name} . @var{value})} pair. The +attribute name can be one of @code{signature}, @code{signature-file}, @code{organization}, @code{address}, @code{name} or @code{body}. The attribute name can also be a string. In that case, this will be used as a header name, and the value will be inserted in the headers of the @@ -9008,6 +9116,8 @@ So here's a new example: (signature my-quote-randomizer)) ((message-news-p) (signature my-news-signature)) + ((header "From.*To" "larsi.*org") + (Organization "Somewhere, Inc.")) ((posting-from-work-p) (signature-file "~/.work-signature") (address "user@@bar.foo") @@ -9145,6 +9255,7 @@ The different methods all have their peculiarities, of course. * The Server Buffer:: Making and editing virtual servers. * Getting News:: Reading USENET news with Gnus. * Getting Mail:: Reading your personal mail with Gnus. +* Browsing the Web:: Getting messages from a plethora of Web sources. * Other Sources:: Reading directories, files, SOUP packets. * Combined Groups:: Combining groups into one group. * Gnus Unplugged:: Reading news and mail offline. @@ -9314,7 +9425,7 @@ backend, and the second is the @dfn{address}, or @dfn{name}, if you will. After these two elements, there may be an arbitrary number of -@var{(variable form)} pairs. +@code{(@var{variable} @var{form})} pairs. To go back to the first example---imagine that you want to read from port 15 on that machine. This is what the select method should @@ -9999,7 +10110,7 @@ need to save them because if we should need to read one again, they are archived somewhere else. Some people have local news groups which have only a handful of readers. -These are transported via NNTP, and are therefore news. But we may need +These are transported via @sc{nntp}, and are therefore news. But we may need to read and answer a large fraction of the messages very carefully in order to do our work. And there may not be an archive, so we may need to save the interesting messages the same way we would personal mail. @@ -10210,6 +10321,33 @@ Or using the default path: (file) @end lisp +If the mail spool file is not located on the local machine, it's best to +use POP or @sc{imap} or the like to fetch the mail. You can not you ange-ftp +file names here---it has no way to lock the mail spool while moving the +mail. + +If it's impossible to set up a proper server, you can use ssh instead. + +@lisp +(setq mail-sources + '((file :prescript "ssh host bin/getmail >%t"))) +@end lisp + +The @samp{getmail} script would look something like the following: + +@example +#!/bin/sh +# getmail - move mail from spool to stdout +# flu@@iki.fi + +MOVEMAIL=/usr/lib/emacs/20.3/i386-redhat-linux/movemail +TMP=~/Mail/tmp +rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP +@end example + +Alter this script to fit find the @samp{movemail} you want to use. + + @item directory Get mail from several files in a directory. This is typically used when you have procmail split the incoming mail into several files. @@ -10364,28 +10502,28 @@ An example maildir mail source: @end lisp @item imap -Get mail from a IMAP server. If you don't want to use IMAP as intended, -as a network mail reading protocol, for some reason or other Gnus let -you treat it similar to a POP server and fetches articles from a given -IMAP mailbox. +Get mail from a @sc{imap} server. If you don't want to use @sc{imap} as intended, +as a network mail reading protocol (ie with nnimap), for some reason or +other, Gnus let you treat it similar to a POP server and fetches +articles from a given @sc{imap} mailbox. Keywords: @table @code @item :server -The name of the IMAP server. The default is taken from the +The name of the @sc{imap} server. The default is taken from the @code{MAILHOST} environment variable. @item :port -The port number of the IMAP server. The default is @samp{143}, or +The port number of the @sc{imap} server. The default is @samp{143}, or @samp{993} for SSL connections. @item :user -The user name to give to the IMAP server. The default is the login +The user name to give to the @sc{imap} server. The default is the login name. @item :password -The password to give to the IMAP server. If not specified, the user is +The password to give to the @sc{imap} server. If not specified, the user is prompted. @item :stream @@ -10406,19 +10544,60 @@ which normally is the mailbox which receive incoming mail. @item :predicate The predicate used to find articles to fetch. The default, @samp{UNSEEN UNDELETED}, is probably the best choice for most people, -but if you sometimes peek in your mailbox with a IMAP client and mark +but if you sometimes peek in your mailbox with a @sc{imap} client and mark some articles as read (or; SEEN) you might want to set this to @samp{nil}. Then all articles in the mailbox is fetched, no matter what. For a complete list of predicates, see RFC2060 §6.4.4. +@item :fetchflag +How to flag fetched articles on the server, the default @samp{\Deleted} +will mark them as deleted, an alternative would be @samp{\Seen} which +would simply mark them as read. Theese are the two most likely choices, +but more flags are defined in RFC2060 §2.3.2. + +@item :dontexpunge +If non-nil, don't remove all articles marked as deleted in the mailbox +after finishing the fetch. + @end table -An example IMAP mail source: +An example @sc{imap} mail source: @lisp (imap :server "mail.mycorp.com" :stream kerberos4) @end lisp +@item webmail +Get mail from a webmail server, such as www.hotmail.com, +mail.yahoo.com, and www.netaddress.com. + +NOTE: Webmail largely depends on w3 (url) package, whose version of "WWW +4.0pre.46 1999/10/01" or previous ones may not work. + +WARNING: Mails may lost. NO WARRANTY. + +Keywords: + +@table @code +@item :subtype +The type of the webmail server. The default is @code{hotmail}. The +alternatives are @code{yahoo}, @code{netaddress}. + +@item :user +The user name to give to the webmail server. The default is the login +name. + +@item :password +The password to give to the webmail server. If not specified, the user is +prompted. + +@end table + +An example webmail source: + +@lisp +(webmail :subtype 'yahoo :user "user-name" :password "secret") +@end lisp @end table @@ -10615,51 +10794,54 @@ name. Normal regexp match expansion will be done. See below for examples. @item -@var{(FIELD VALUE [- RESTRICT [- RESTRICT [...]]] SPLIT)}: If the split -is a list, the first element of which is a string, then store the -message as specified by SPLIT, if header FIELD (a regexp) contains VALUE -(also a regexp). If RESTRICT (yet another regexp) matches some string -after FIELD and before the end of the matched VALUE, the SPLIT is -ignored. If none of the RESTRICT clauses match, SPLIT is processed. +@code{(@var{field} @var{value} @code{[-} @var{restrict} @code{[-} @var{restrict} @code{[@dots{}]}@code{]]} +@var{split})}: If the split is a list, the first element of which is a +string, then store the message as specified by @var{split}, if header +@var{field} (a regexp) contains @var{value} (also a regexp). If +@var{restrict} (yet another regexp) matches some string after +@var{field} and before the end of the matched @var{value}, the +@var{split} is ignored. If none of the @var{restrict} clauses match, +@var{split} is processed. @item -@var{(| SPLIT...)}: If the split is a list, and the first element is -@code{|} (vertical bar), then process each SPLIT until one of them -matches. A SPLIT is said to match if it will cause the mail message to -be stored in one or more groups. +@code{(| @var{split}@dots{})}: If the split is a list, and the first +element is @code{|} (vertical bar), then process each @var{split} until +one of them matches. A @var{split} is said to match if it will cause +the mail message to be stored in one or more groups. @item -@var{(& SPLIT...)}: If the split is a list, and the first element is -@code{&}, then process all SPLITs in the list. +@code{(& @var{split}@dots{})}: If the split is a list, and the first +element is @code{&}, then process all @var{split}s in the list. @item @code{junk}: If the split is the symbol @code{junk}, then don't save this message. Use with extreme caution. @item -@var{(: function arg1 arg2 ...)}: If the split is a list, and the first -element is @code{:}, then the second element will be called as a -function with @var{args} given as arguments. The function should return -a SPLIT. +@code{(: @var{function} @var{arg1} @var{arg2} @dots{})}: If the split is +a list, and the first element is @code{:}, then the second element will +be called as a function with @var{args} given as arguments. The +function should return a @var{split}. @item -@var{(! FUNC SPLIT)}: If the split is a list, and the first element -is @code{!}, then SPLIT will be processed, and FUNC will be called as a -function with the result of SPLIT as argument. FUNC should return a split. +@code{(! @var{func} @var{split})}: If the split is a list, and the first +element is @code{!}, then SPLIT will be processed, and FUNC will be +called as a function with the result of SPLIT as argument. FUNC should +return a split. @item @code{nil}: If the split is @code{nil}, it is ignored. @end enumerate -In these splits, @var{FIELD} must match a complete field name. -@var{VALUE} must match a complete word according to the fundamental mode +In these splits, @var{field} must match a complete field name. +@var{value} must match a complete word according to the fundamental mode syntax table. You can use @code{.*} in the regexps to match partial -field names or words. In other words, all @var{VALUE}'s are wrapped in +field names or words. In other words, all @var{value}'s are wrapped in @samp{\<} and @samp{\>} pairs. @vindex nnmail-split-abbrev-alist -@var{FIELD} and @var{VALUE} can also be lisp symbols, in that case they +@var{field} and @var{value} can also be lisp symbols, in that case they are expanded as specified by the variable @code{nnmail-split-abbrev-alist}. This is an alist of cons cells, where the @code{car} of a cell contains the key, and the @code{cdr} contains the associated @@ -10707,11 +10889,11 @@ parameter to the list of additional addresses and it's done. If you'd rather use a regular expression, set @var{split-regexp}. All these parameters in a group will be used to create an -@code{nnmail-split-fancy} split, in which the @var{FIELD} is @samp{any}, -the @var{VALUE} is a single regular expression that matches +@code{nnmail-split-fancy} split, in which the @var{field} is @samp{any}, +the @var{value} is a single regular expression that matches @var{to-list}, @var{to-address}, all of @var{extra-aliases} and all -matches of @var{split-regexp}, and the @var{SPLIT} is the name of the -group. @var{RESTRICT}s are also supported: just set the +matches of @var{split-regexp}, and the @var{split} is the name of the +group. @var{restrict}s are also supported: just set the @var{split-exclude} parameter to a list of regular expressions. If you can't get the right split to be generated using all these @@ -10768,15 +10950,15 @@ splits like this: (: gnus-mlsplt-fancy GROUPS NO-CROSSPOST CATCH-ALL) @end lisp -@var{GROUPS} may be a regular expression or a list of group names whose +@var{groups} may be a regular expression or a list of group names whose parameters will be scanned to generate the output split. -@var{NO-CROSSPOST} can be used to disable cross-posting; in this case, a -single @code{|} split will be output. @var{CATCH-ALL} may be the name +@var{no-crosspost} can be used to disable cross-posting; in this case, a +single @code{|} split will be output. @var{catch-all} may be the name of a group to be used as the default catch-all group. If -@var{CATCH-ALL} is @code{nil}, or if @var{SPLIT-REGEXP} matches the +@var{catch-all} is @code{nil}, or if @var{split-regexp} matches the empty string in any selected group, no catch-all split will be issued. -Otherwise, if some group has @var{SPLIT-SPEC} set to @code{catch-all}, -this group will override the value of the @var{CATCH-ALL} argument. +Otherwise, if some group has @var{split-spec} set to @code{catch-all}, +this group will override the value of the @var{catch-all} argument. @findex gnus-group-split-setup Unfortunately, scanning all groups and their parameters can be quite @@ -10799,10 +10981,10 @@ you. For example, add to your @file{.gnus}: (gnus-group-split-setup AUTO-UPDATE CATCH-ALL) @end lisp -If @var{AUTO-UPDATE} is non-@code{nil}, @code{gnus-group-split-update} +If @var{auto-update} is non-@code{nil}, @code{gnus-group-split-update} will be added to @code{nnmail-pre-get-new-mail-hook}, so you won't ever have to worry about updating @code{nnmail-split-fancy} again. If you -don't omit @var{CATCH-ALL} (it's optional), +don't omit @var{catch-all} (it's optional), @code{gnus-group-split-default-catch-all-group} will be set to its value. @@ -11430,9 +11612,9 @@ and so selection of a suitable backend is required in order to get that mail within spitting distance of Gnus. The same concept exists for Usenet itself: Though access to articles is -typically done by NNTP these days, once upon a midnight dreary, everyone +typically done by @sc{nntp} these days, once upon a midnight dreary, everyone in the world got at Usenet by running a reader on the machine where the -articles lay (the machine which today we call an NNTP server), and +articles lay (the machine which today we call an @sc{nntp} server), and access was by the reader stepping into the articles' directory spool area directly. One can still select between either the @code{nntp} or @code{nnspool} backends, to select between these methods, if one happens @@ -11541,6 +11723,289 @@ friendly mail backend all over. @end table +@node Browsing the Web +@section Browsing the Web +@cindex web +@cindex browsing the web +@cindex www +@cindex http + +Web-based discussion forums are getting more and more popular. On many +subjects, the web-based forums have become the most important forums, +eclipsing the importance of mailing lists and news groups. The reason +is easy to understand---they are friendly to new users; you just point +and click, and there's the discussion. With mailing lists, you have to +go through a cumbersome subscription procedure, and most people don't +even know what a news group is. + +The problem with this scenario is that web browsers are not very good at +being newsreaders. They do not keep track of what articles you've read; +they do not allow you to score on subjects you're interested in; they do +not allow off-line browsing; they require you to click around and drive +you mad in the end. + +So---if web browsers suck at reading discussion forums, why not use Gnus +to do it instead? + +Gnus has been getting a bit of a collection of backends for providing +interfaces to these sources. + +@menu +* Web Searches:: Creating groups from articles that match a string. +* Slashdot:: Reading the Slashdot comments. +* Ultimate:: The Ultimate Bulletin Board systems. +* Web Archive:: Reading mailing list archived on web. +@end menu + +The main caveat with all these web sources is that they probably won't +work for a very long time. Gleaning information from the @sc{html} data +is guesswork at best, and when the layout is altered, the Gnus backend +will fail. If you have reasonably new versions of these backends, +though, you should be ok. + +One thing all these Web methods have in common is that the Web sources +are often down, unavailable or just plain too slow to be fun. In those +cases, it makes a lot of sense to let the Gnus Agent (@pxref{Gnus +Unplugged}) handle downloading articles, and then you can read them at +leisure from your local disk. No more World Wide Wait for you. + + +@node Web Searches +@subsection Web Searches +@cindex nnweb +@cindex DejaNews +@cindex Alta Vista +@cindex InReference +@cindex Usenet searches +@cindex searching the Usenet + +It's, like, too neat to search the Usenet for articles that match a +string, but it, like, totally @emph{sucks}, like, totally, to use one of +those, like, Web browsers, and you, like, have to, rilly, like, look at +the commercials, so, like, with Gnus you can do @emph{rad}, rilly, +searches without having to use a browser. + +The @code{nnweb} backend allows an easy interface to the mighty search +engine. You create an @code{nnweb} group, enter a search pattern, and +then enter the group and read the articles like you would any normal +group. The @kbd{G w} command in the group buffer (@pxref{Foreign +Groups}) will do this in an easy-to-use fashion. + +@code{nnweb} groups don't really lend themselves to being solid +groups---they have a very fleeting idea of article numbers. In fact, +each time you enter an @code{nnweb} group (not even changing the search +pattern), you are likely to get the articles ordered in a different +manner. Not even using duplicate suppression (@pxref{Duplicate +Suppression}) will help, since @code{nnweb} doesn't even know the +@code{Message-ID} of the articles before reading them using some search +engines (DejaNews, for instance). The only possible way to keep track +of which articles you've read is by scoring on the @code{Date} +header---mark all articles posted before the last date you read the +group as read. + +If the search engine changes its output substantially, @code{nnweb} +won't be able to parse it and will fail. One could hardly fault the Web +providers if they were to do this---their @emph{raison d'être} is to +make money off of advertisements, not to provide services to the +community. Since @code{nnweb} washes the ads off all the articles, one +might think that the providers might be somewhat miffed. We'll see. + +You must have the @code{url} and @code{w3} package installed to be able +to use @code{nnweb}. + +Virtual server variables: + +@table @code +@item nnweb-type +@vindex nnweb-type +What search engine type is being used. The currently supported types +are @code{dejanews}, @code{dejanewsold}, @code{altavista} and +@code{reference}. + +@item nnweb-search +@vindex nnweb-search +The search string to feed to the search engine. + +@item nnweb-max-hits +@vindex nnweb-max-hits +Advisory maximum number of hits per search to display. The default is +100. + +@item nnweb-type-definition +@vindex nnweb-type-definition +Type-to-definition alist. This alist says what @code{nnweb} should do +with the various search engine types. The following elements must be +present: + +@table @code +@item article +Function to decode the article and provide something that Gnus +understands. + +@item map +Function to create an article number to message header and URL alist. + +@item search +Function to send the search string to the search engine. + +@item address +The address the aforementioned function should send the search string +to. + +@item id +Format string URL to fetch an article by @code{Message-ID}. +@end table + +@end table + + +@node Slashdot +@subsection Slashdot +@cindex Slashdot +@cindex nnslashdot + +Slashdot (@file{http://slashdot.org/}) is a popular news site, with +lively discussion following the news articles. @code{nnslashdot} will +let you read this forum in a convenient manner. + +The easiest way to read this source is to put something like the +following in your @file{.gnus.el} file: + +@lisp +(setq gnus-secondary-select-methods + '((nnslashdot ""))) +@end lisp + +This will make Gnus query the @code{nnslashdot} backend for new comments +and groups. The @kbd{F} command will subscribe each new news article as +a new Gnus group, and you can read the comments by entering these +groups. (Note that the default subscription method is to subscribe new +groups as zombies. Other methods are available (@pxref{Subscription +Methods}). + +When following up to @code{nnslashdot} comments (or posting new +comments), some light @sc{html}izations will be performed. In +particular, text quoted with @samp{> } will be quoted with +@code{blockquote} instead, and signatures will have @code{br} added to +the end of each line. Other than that, you can just write @sc{html} +directly into the message buffer. Note that Slashdot filters out some +@sc{html} forms. + +The following variables can be altered to change its behavior: + +@table @code +@item nnslashdot-threaded +Whether @code{nnslashdot} should display threaded groups or not. The +default is @code{t}. To be able to display threads, @code{nnslashdot} +has to retrieve absolutely all comments in a group upon entry. If a +threaded display is not required, @code{nnslashdot} will only retrieve +the comments that are actually wanted by the user. Threading is nicer, +but much, much slower than untreaded. + +@item nnslashdot-login-name +@vindex nnslashdot-login-name +The login name to use when posting. + +@item nnslashdot-password +@vindex nnslashdot-password +The password to use when posting. + +@item nnslashdot-directory +@vindex nnslashdot-directory +Where @code{nnslashdot} will store its files. The default value is +@samp{~/News/slashdot/}. + +@item nnslashdot-active-url +@vindex nnslashdot-active-url +The @sc{url} format string that will be used to fetch the information on +news articles and comments. The default is +@samp{http://slashdot.org/search.pl?section=&min=%d}. + +@item nnslashdot-comments-url +@vindex nnslashdot-comments-url +The @sc{url} format string that will be used to fetch comments. The +default is +@samp{http://slashdot.org/comments.pl?sid=%s&threshold=%d&commentsort=%d&mode=flat&startat=%d}. + +@item nnslashdot-article-url +@vindex nnslashdot-article-url +The @sc{url} format string that will be used to fetch the news article. The +default is +@samp{http://slashdot.org/article.pl?sid=%s&mode=nocomment}. + +@item nnslashdot-threshold +@vindex nnslashdot-threshold +The score threshold. The default is -1. + +@item nnslashdot-group-number +@vindex nnslashdot-group-number +The number of old groups, in addition to the ten latest, to keep +updated. The default is 0. + +@end table + + + +@node Ultimate +@subsection Ultimate +@cindex nnultimate +@cindex Ultimate Bulletin Board + +The Ultimate Bulletin Board (@file{http://www.ultimatebb.com/}) is +probably the most popular Web bulletin board system used. It has a +quite regular and nice interface, and it's possible to get the +information Gnus needs to keep groups updated. + +The easiest way to get started with @code{nnultimate} is to say +something like the following in the group buffer: @kbd{B nnultimate RET +http://www.tcj.com/messboard/ubbcgi/ RET}. (Substitute the @sc{url} +(not including @samp{Ultimate.cgi} or the like at the end) for a forum +you're interested in; there's quite a list of them on the Ultimate web +site.) Then subscribe to the groups you're interested in from the +server buffer, and read them from the group buffer. + +The following @code{nnultimate} variables can be altered: + +@table @code +@item nnultimate-directory +@vindex nnultimate-directory +The directory where @code{nnultimate} stores its files. The default is +@samp{~/News/ultimate/}. +@end table + +@node Web Archive +@subsection Web Archive +@cindex nnwarchive +@cindex Web Archive + +Some mailing lists only have archives on Web servers, such as +(@file{http://www.egroups.com/}). It has a quite regular and nice +interface, and it's possible to get the information Gnus needs to keep +groups updated. + +The easiest way to get started with @code{nnwarchive} is to say +something like the following in the group buffer: @kbd{M-x +gnus-group-make-nnwarchive-group RET an_egroup RET egroups RET +www.egroups.com RET your@@email.address RET}. (Substitute the +@sc{an_egroup} with the mailing list you subscribed, the +@sc{your@@email.address} with your email address.) + +The following @code{nnwarchive} variables can be altered: + +@table @code +@item nnwarchive-directory +@vindex nnwarchive-directory +The directory where @code{nnwarchive} stores its files. The default is +@samp{~/News/warchive/}. + +@item nnwarchive-login +@vindex nnwarchive-login +The account name on the web server. + +@item nnwarchive-passwd +@vindex nnwarchive-passwd +The password for your account on the web server. +@end table @node Other Sources @section Other Sources @@ -11553,10 +12018,9 @@ newsgroups. * Directory Groups:: You can read a directory as if it was a newsgroup. * Anything Groups:: Dired? Who needs dired? * Document Groups:: Single files can be the basis of a group. -* SOUP:: Reading @sc{SOUP} packets ``offline''. -* Web Searches:: Creating groups from articles that match a string. +* SOUP:: Reading @sc{soup} packets ``offline''. * Mail-To-News Gateways:: Posting articles via mail-to-news gateways. -* IMAP:: Using Gnus as a IMAP client. +* IMAP:: Using Gnus as a @sc{imap} client. @end menu @@ -11907,12 +12371,12 @@ of packets: @item message packets These are packets made at the server, and typically contain lots of messages for you to read. These are called @file{SoupoutX.tgz} by -default, where @var{X} is a number. +default, where @var{x} is a number. @item response packets These are packets made at the home machine, and typically contains replies that you've written. These are called @file{SoupinX.tgz} by -default, where @var{X} is a number. +default, where @var{x} is a number. @end table @@ -12148,96 +12612,6 @@ system you just use the first line. If you only want mail to be @sc{soup}ed you use the second. -@node Web Searches -@subsection Web Searches -@cindex nnweb -@cindex DejaNews -@cindex Alta Vista -@cindex InReference -@cindex Usenet searches -@cindex searching the Usenet - -It's, like, too neat to search the Usenet for articles that match a -string, but it, like, totally @emph{sucks}, like, totally, to use one of -those, like, Web browsers, and you, like, have to, rilly, like, look at -the commercials, so, like, with Gnus you can do @emph{rad}, rilly, -searches without having to use a browser. - -The @code{nnweb} backend allows an easy interface to the mighty search -engine. You create an @code{nnweb} group, enter a search pattern, and -then enter the group and read the articles like you would any normal -group. The @kbd{G w} command in the group buffer (@pxref{Foreign -Groups}) will do this in an easy-to-use fashion. - -@code{nnweb} groups don't really lend themselves to being solid -groups---they have a very fleeting idea of article numbers. In fact, -each time you enter an @code{nnweb} group (not even changing the search -pattern), you are likely to get the articles ordered in a different -manner. Not even using duplicate suppression (@pxref{Duplicate -Suppression}) will help, since @code{nnweb} doesn't even know the -@code{Message-ID} of the articles before reading them using some search -engines (DejaNews, for instance). The only possible way to keep track -of which articles you've read is by scoring on the @code{Date} -header---mark all articles posted before the last date you read the -group as read. - -If the search engine changes its output substantially, @code{nnweb} -won't be able to parse it and will fail. One could hardly fault the Web -providers if they were to do this---their @emph{raison d'être} is to -make money off of advertisements, not to provide services to the -community. Since @code{nnweb} washes the ads off all the articles, one -might think that the providers might be somewhat miffed. We'll see. - -You must have the @code{url} and @code{w3} package installed to be able -to use @code{nnweb}. - -Virtual server variables: - -@table @code -@item nnweb-type -@vindex nnweb-type -What search engine type is being used. The currently supported types -are @code{dejanews}, @code{dejanewsold}, @code{altavista} and -@code{reference}. - -@item nnweb-search -@vindex nnweb-search -The search string to feed to the search engine. - -@item nnweb-max-hits -@vindex nnweb-max-hits -Advisory maximum number of hits per search to display. The default is -100. - -@item nnweb-type-definition -@vindex nnweb-type-definition -Type-to-definition alist. This alist says what @code{nnweb} should do -with the various search engine types. The following elements must be -present: - -@table @code -@item article -Function to decode the article and provide something that Gnus -understands. - -@item map -Function to create an article number to message header and URL alist. - -@item search -Function to send the search string to the search engine. - -@item address -The address the aforementioned function should send the search string -to. - -@item id -Format string URL to fetch an article by @code{Message-ID}. -@end table - -@end table - - - @node Mail-To-News Gateways @subsection Mail-To-News Gateways @cindex mail-to-news gateways @@ -12318,12 +12692,12 @@ So, to use this, simply say something like: @node IMAP -@subsection IMAP +@subsection @sc{imap} @cindex nnimap -@cindex IMAP +@cindex @sc{imap} -IMAP is a network protocol for reading mail (or news, or ...), think of -it as a modernized NNTP. Connecting to a IMAP server is much similar to +@sc{imap} is a network protocol for reading mail (or news, or ...), think of +it as a modernized @sc{nntp}. Connecting to a @sc{imap} server is much similar to connecting to a news server, you just specify the network address of the server. @@ -12335,7 +12709,7 @@ server: @item nnimap-address @vindex nnimap-address -The address of the remote IMAP server. Defaults to the virtual server +The address of the remote @sc{imap} server. Defaults to the virtual server name if not specified. @item nnimap-server-port @@ -12346,7 +12720,7 @@ Port on server to contact. Defaults to port 143, or 993 for SSL. @vindex nnimap-list-pattern String or list of strings of mailboxes to limit available groups to. This is used when the server has very many mailboxes and you're only -interested in a few -- some servers export your home directory via IMAP, +interested in a few -- some servers export your home directory via @sc{imap}, you'll probably want to limit the mailboxes to those in @file{~/Mail/*} then. @@ -12395,8 +12769,8 @@ use the most secure authenticator your server is capable of. @item nnimap-expunge-on-close @cindex Expunging @vindex nnimap-expunge-on-close -Unlike Parmenides the IMAP designers has decided that things that -doesn't exist actually does exist. More specifically, IMAP has this +Unlike Parmenides the @sc{imap} designers has decided that things that +doesn't exist actually does exist. More specifically, @sc{imap} has this concept of marking articles @code{Deleted} which doesn't actually delete them, and this (marking them @code{Deleted}, that is) is what nnimap does when you delete a article in Gnus (with @kbd{G DEL} or similair). @@ -12418,7 +12792,7 @@ The default behaviour, delete all articles marked as "Deleted" when closing a mailbox. @item never Never actually delete articles. Currently there is no way of showing the -articles marked for deletion in nnimap, but other IMAP clients may allow +articles marked for deletion in nnimap, but other @sc{imap} clients may allow you to do this. If you ever want to run the EXPUNGE command manually, @xref{Expunging mailboxes}. @item ask @@ -12437,13 +12811,13 @@ articles or not. @node Splitting in IMAP -@subsubsection Splitting in IMAP +@subsubsection Splitting in @sc{imap} @cindex splitting imap mail Splitting is something Gnus users has loved and used for years, and now -the rest of the world is catching up. Yeah, dream on, not many IMAP +the rest of the world is catching up. Yeah, dream on, not many @sc{imap} server has server side splitting and those that have splitting seem to -use some non-standard protocol. This means that IMAP support for Gnus +use some non-standard protocol. This means that @sc{imap} support for Gnus has to do it's own splitting. And it does. @@ -12467,7 +12841,7 @@ Nnmail equivalent: @code{nnmail-crosspost}. @cindex inbox @vindex nnimap-split-inbox -A string or a list of strings that gives the name(s) of IMAP mailboxes +A string or a list of strings that gives the name(s) of @sc{imap} mailboxes to split from. Defaults to nil, which means that splitting is disabled! @lisp @@ -12484,7 +12858,7 @@ New mail found in @code{nnimap-split-inbox} will be split according to this variable. This variable contains a list of lists, where the first element in the -sublist gives the name of the IMAP mailbox to move articles matching the +sublist gives the name of the @sc{imap} mailbox to move articles matching the regexp in the second element in the sublist. Got that? Neither did I, we need examples. @@ -12504,7 +12878,7 @@ replace-match to insert sub-expressions from the matched text. For instance: @lisp - ("INBOX.lists.\\1" "^Sender: owner-\\([a-z-]+\\)@") +("INBOX.lists.\\1" "^Sender: owner-\\([a-z-]+\\)@@") @end lisp The second element can also be a function. In that case, it will be @@ -12530,15 +12904,15 @@ Nnmail equivalent: @code{nnmail-split-methods}. @end table @node Editing IMAP ACLs -@subsubsection Editing IMAP ACLs +@subsubsection Editing @sc{imap} ACLs @cindex editing imap acls @cindex Access Control Lists -@cindex Editing IMAP ACLs +@cindex Editing @sc{imap} ACLs @kindex G l @findex gnus-group-nnimap-edit-acl -ACL stands for Access Control List. ACLs are used in IMAP for limiting -(or enabling) other users access to your mail boxes. Not all IMAP +ACL stands for Access Control List. ACLs are used in @sc{imap} for limiting +(or enabling) other users access to your mail boxes. Not all @sc{imap} servers support this, this function will give an error if it doesn't. To edit a ACL for a mailbox, type @kbd{G l} @@ -12555,7 +12929,7 @@ follow the list without subscribing to it. @item At least with the Cyrus server, you are required to give the user "anyone" posting ("p") capabilities to have "plussing" work (that is, -mail sent to user+mailbox@@domain ending up in the IMAP mailbox +mail sent to user+mailbox@@domain ending up in the @sc{imap} mailbox INBOX.mailbox). @end itemize @@ -13431,7 +13805,7 @@ setup, you may be able to use something like the following as your @file{.gnus.el} file to get started. @lisp -;;; Define how Gnus is to fetch news. We do this over NNTP +;;; Define how Gnus is to fetch news. We do this over @sc{nntp} ;;; from your ISP's server. (setq gnus-select-method '(nntp "news.your-isp.com")) @@ -14138,13 +14512,14 @@ files.) @item Thread This match key works along the same lines as the @code{Followup} match -key. If you say that you want to score on a (sub-)thread started by an article with a @code{Message-ID} @var{X}, then you add a -@samp{thread} match. This will add a new @samp{thread} match for each -article that has @var{X} in its @code{References} header. (These new -@samp{thread} matches will use the @code{Message-ID}s of these matching -articles.) This will ensure that you can raise/lower the score of an -entire thread, even though some articles in the thread may not have -complete @code{References} headers. Note that using this may lead to +key. If you say that you want to score on a (sub-)thread started by an +article with a @code{Message-ID} @var{x}, then you add a @samp{thread} +match. This will add a new @samp{thread} match for each article that +has @var{x} in its @code{References} header. (These new @samp{thread} +matches will use the @code{Message-ID}s of these matching articles.) +This will ensure that you can raise/lower the score of an entire thread, +even though some articles in the thread may not have complete +@code{References} headers. Note that using this may lead to undeterministic scores of the articles in the thread. (Using this match key will lead to creation of @file{ADAPT} files.) @end table @@ -14473,8 +14848,8 @@ A list. The elements in this list can be: @enumerate @item -@var{(regexp file-name)}. If the @var{regexp} matches the group name, -the @var{file-name} will will be used as the home score file. +@code{(@var{regexp} @var{file-name})}. If the @var{regexp} matches the +group name, the @var{file-name} will will be used as the home score file. @item A function. If the function returns non-nil, the result will be used as @@ -16265,10 +16640,10 @@ messages from the people you like. Each NoCeM message has a @dfn{type} header that gives the message a (more or less, usually less) rigorous definition. Common types are @samp{spam}, @samp{spew}, @samp{mmf}, @samp{binary}, and @samp{troll}. To specify this, you have to use -@var{(issuer conditions ...)} elements in the list. Each condition is -either a string (which is a regexp that matches types you want to use) -or a list on the form @code{(not STRING)}, where @var{string} is a -regexp that matches types you don't want to use. +@code{(@var{issuer} @var{conditions} @dots{})} elements in the list. +Each condition is either a string (which is a regexp that matches types +you want to use) or a list on the form @code{(not @var{string})}, where +@var{string} is a regexp that matches types you don't want to use. For instance, if you want all NoCeM messages from Chris Lewis except his @samp{troll} messages, you'd say: @@ -17076,6 +17451,7 @@ but at the common table.@* @menu * History:: How Gnus got where it is today. +* On Writing Manuals:: Why this is not a beginner's guide. * Terminology:: We use really difficult, like, words here. * Customization:: Tailoring Gnus to your needs. * Troubleshooting:: What you might try if things do not work. @@ -17379,6 +17755,12 @@ wrong show. Masanobu @sc{Umeda}---the writer of the original @sc{gnus}. @item +Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el, webmail.el, +nnwarchive and many, many other things connected with @sc{mime} and +other types of en/decoding, as well as general bug fixing, new +functionality and stuff. + +@item Per Abrahamsen---custom, scoring, highlighting and @sc{soup} code (as well as numerous other things). @@ -17389,10 +17771,6 @@ Luis Fernandes---design and graphics. Erik Naggum---help, ideas, support, code and stuff. @item -Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el and many other things -connected with @sc{mime} and other types of en/decoding. - -@item Wes Hardaker---@file{gnus-picon.el} and the manual section on @dfn{picons} (@pxref{Picons}). @@ -18155,7 +18533,7 @@ Process mark sets can be pushed and popped (@pxref{Setting Process Marks}). @item -A new mail-to-news backend makes it possible to post even when the NNTP +A new mail-to-news backend makes it possible to post even when the @sc{nntp} server doesn't allow posting (@pxref{Mail-To-News Gateways}). @item @@ -19460,7 +19838,7 @@ New limit command---limit to articles that have a certain string in the head or body. @item -Allow breaking lengthy NNTP commands. +Allow breaking lengthy @sc{nntp} commands. @item gnus-article-highlight-limit, to disable highlighting in big articles. @@ -19532,18 +19910,10 @@ Crossposted articles should "inherit" the % or @ mark from the other groups it has been crossposted to, or something. (Agent.) @item -`S D r' should allow expansion of aliases. - -@item If point is on a group that appears multiple times in topics, and you press `l', point will move to the first instance of the group. @item -Fetch by Message-ID from dejanews. - - - -@item A spec for the group line format to display the number of agent-downloaded articles in the group. @@ -19594,6 +19964,19 @@ Allow "orphan" scores in the Agent scoring. just changed to. @end example + +@item +Remove list identifiers from the subject in the summary when doing `^' +and the like. + +@item +Have the Agent write out articles, one by one, as it retrieves them, +to avoid having to re-fetch them all if Emacs should crash while +fetching. + +@item +Be able to forward groups of messages as MIME digests. + @item Solve the halting problem. @@ -19664,6 +20047,26 @@ of the mysteries of this world, I guess.) @end iftex +@node On Writing Manuals +@section On Writing Manuals + +I guess most manuals are written after-the-fact; documenting a program +that's already there. This is not how this manual is written. When +implementing something, I write the manual entry for that something +straight away. I then see that it's difficult to explain the +functionality, so I write how it's supposed to be, and then I change the +implementation. Writing the documentation and writing the code goes +hand in hand. + +This, of course, means that this manual has no, or little, flow. It +documents absolutely everything in Gnus, but often not where you're +looking for it. It is a reference manual, and not a guide to how to get +started with Gnus. + +That would be a totally different book, that should be written using the +reference manual as source material. It would look quite differently. + + @page @node Terminology @section Terminology @@ -20423,7 +20826,7 @@ on successful article retrieval. Get data on @var{group}. This function also has the side effect of making @var{group} the current group. -If @var{FAST}, don't bother to return useful data, just make @var{group} +If @var{fast}, don't bother to return useful data, just make @var{group} the current group. Here's an example of some result data and a definition of the same: @@ -20548,7 +20951,7 @@ There should be no result data from this function. Set/remove/add marks on articles. Normally Gnus handles the article marks (such as read, ticked, expired etc) internally, and store them in -@code{~/.newsrc.eld}. Some backends (such as IMAP) however carry all +@code{~/.newsrc.eld}. Some backends (such as @sc{imap}) however carry all information about the articles on the server, so Gnus need to propagate the mark information to the server. diff --git a/texi/message-ja.texi b/texi/message-ja.texi index 17f7a11..4657d7c 100644 --- a/texi/message-ja.texi +++ b/texi/message-ja.texi @@ -420,6 +420,12 @@ Message $B$O%U%)%m!<%"%C%W$,$I$3$K9T$/$+$rIaDL$NJ}K!$r;H$C$F7hDj$7$^$9$,!"(B $BE=$jIU$1$^$9!#IaDL$O(B @code{gnus-article-copy} $B$O$"$J$?$,JVEz$7$h$&$H$7$F(B $B$$$k%a%C%;!<%8$G$9(B (@code{messsage-yank-original})$B!#(B +@item C-c C-Y +@kindex C-c C-Y +@findex message-yank-buffer +Prompt for a buffer name and yank the contents of that buffer into the +message buffer (@code{message-yank-buffer}). + @item C-c C-q @kindex C-c C-q @findex message-fill-yanked-message @@ -849,10 +855,9 @@ Lines (optional . X-Mailer))} $B$G$9!#(B @cindex Sun $B$3$NI,MW$J%X%C%@!<$O(B Message $B$K$h$j:n@.$5$l$^$9!#F|IU!";~4V!"MxMQ!"(B $B%7%9%F%`L>$K4p$E$$$?B>$KL5$$(B ID $B$,:n@.$5$l$^$9!#(BMessage $B$O(B -@code{mail-host-address} $B$,Dj5A$5$l$F$$$l$P!"$=$l$r(B fully qualified -domain name (FQDN) ($B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>(B) $B$H$7$F;H$$$^$9!#$b$7(B -$B$=$&$G$J$1$l$P!"$=$l$O(B @code{system-name} $B$r;H$$!"$=$l$O$$$/$D$+$N%^%7%s(B --- $B$r7h$a$k$?$a$K;H$$$^$9!#$b$7$3$l$,(B fully +qualified domain name (FQDN) ($B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>(B) $B$G$J$$$J$i(B +$B$P!"(BMessage $B$O(B @code{mail-host-address} $B$r(B FQDN $B$H$7$F;H$$$^$9!#(B @item X-Newsreader @cindex X-Nesreader diff --git a/texi/message.texi b/texi/message.texi index 7bdf307..7543a26 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -422,6 +422,12 @@ Yank the message in the buffer @code{gnus-article-copy} into the message buffer. Normally @code{gnus-article-copy} is what you are replying to (@code{message-yank-original}). +@item C-c C-Y +@kindex C-c C-Y +@findex message-yank-buffer +Prompt for a buffer name and yank the contents of that buffer into the +message buffer (@code{message-yank-buffer}). + @item C-c C-q @kindex C-c C-q @findex message-fill-yanked-message @@ -857,11 +863,10 @@ This optional header will be computed by Message. @findex system-name @cindex Sun This required header will be generated by Message. A unique ID will be -created based on the date, time, user name and system name. Message will -use @code{mail-host-address} as the fully qualified domain name (FQDN) -of the machine if that variable is defined. If not, it will use -@code{system-name}, which doesn't report a FQDN on some machines -- -notably Suns. +created based on the date, time, user name and system name. Message +will use @code{system-name} to determine the name of the system. If +this isn't a fully qualified domain name (FQDN), Message will use +@code{mail-host-address} as the FQDN of the machine. @item X-Newsreader @cindex X-Newsreader