+1999-12-01 14:21:19 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Topic Parameters): Addition.
+ (Summary Message Commands): New.
+ (Canceling and Superseding): Made into subsection.
+
+1999-11-30 10:54:31 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Mail Source Specifiers): Add a note.
+
+1999-11-27 17:15:00 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi: Typo fixes and @sc.
+
+1999-11-26 16:59:29 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (On Writing Manuals): New.
+
+1999-11-23 17:23:37 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Mail Source Specifiers): Update.
+
+1999-11-23 05:07:59 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Web Archive): Add nnwarchive.
+
+1999-11-23 03:05:32 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Mail Source Specifiers): Add webmail.
+
+1999-11-19 12:15:23 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Slashdot): Addition.
+
+1999-11-17 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * gnus.texi (Finding the Parent): Fix example.
+
+1999-11-16 10:09:44 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi: Addition.
+ (present): Addition.
+
+1999-11-13 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus.texi (Mail Source Specifiers): Fix. Added documentation for
+ IMAP mail-source keywords `fetchflag' and `dontexpunge'.
+
+1999-11-12 18:00:56 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gnus.texi (Fancy Mail Splitting): Fix @vars.
+
+1999-11-12 17:08:35 Gunnar Evermann <ge204@eng.cam.ac.uk>
+
+ * gnus.texi (Splitting in IMAP): @@ fix.
+
+1999-11-12 08:17:49 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Mail Source Specifiers): Addition.
+
+1999-11-12 08:17:44 Ulf Betlehem <flu@iki.fi>
+
+ * gnus.texi (Mail Source Specifiers): Example.
+
+1999-11-12 05:26:22 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Slashdot): Addition.
+
+1999-11-11 04:32:57 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * message.texi (News Headers): Fix.
+
+ * gnus.texi (Browsing the Web): New.
+ (Slashdot): New.
+ (Ultimate): New.
+
+1999-11-10 11:32:00 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Archived Messages): Fix.
+
+1999-11-07 01:28:07 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (MIME Commands): Addition.
+
+1999-11-06 23:09:31 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Customizing Articles): Fix.
+
+1999-11-05 22:34:23 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Posting Styles): Addition.
+
1999-10-23 Simon Josefsson <jas@pdc.kth.se>
* gnus.texi (Mail Source Specifiers): Add imap mail-source.
* emacs-mime.texi (New Viewers): Fix.
+1999-10-29 David S. Goldberg <dsg@mitre.org>
+
+ * emacs-mime.texi (Customization): Document mm-inline-override-types
+
1999-09-25 10:58:17 Lars Magne Ingebrigtsen <larsi@gnus.org>
* message.texi (Forwarding): Updated.
top_srcdir = @top_srcdir@
@SET_MAKE@
+VPATH=$(srcdir)
TEXI2DVI=texi2dvi
EMACS=@EMACS@
MAKEINFO=@MAKEINFO@
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
@vindex gnus-subscribe-killed
\e$B$9$Y$F$N?7$7$$%0%k!<%W$r:o=|$7$^$9!#\e(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
@vindex gnus-group-highlight
\e$B%0%k!<%W%P%C%U%!$N%O%$%i%$%H$O\e(B @code{gnus-group-highlight} \e$BJQ?t\e(B
-\e$B$K$h$C$F@)8f$5$l$F$$$^$9!#$3$l$O\e(B @var{(form . face)} \e$B$N$h$&$J$b\e(B
-\e$B$N$rMWAG$K;}$DO"A[%j%9%H$G$9!#\e(B@var{form} \e$B$,2?$+\e(B @code{nil} \e$B0J30\e(B
+\e$B$K$h$C$F@)8f$5$l$F$$$^$9!#$3$l$O\e(B @code{(@var{form} . @var{face})} \e$B$N$h\e(B
+\e$B$&$J$b$N$rMWAG$K;}$DO"A[%j%9%H$G$9!#\e(B@var{form} \e$B$,2?$+\e(B @code{nil} \e$B0J30\e(B
\e$B$KI>2A$5$l$k$b$N$J$i!"$=$N9T$KBP$7$F\e(B @var{face} \e$B$,;HMQ$5$l$^$9!#\e(B
\e$B0J2<$,$3$NJQ?t$NCM$NNc$G$9!#$3$l$OGX7J$,0E$$@_Dj$G$O$-$l$$$K8+$(\e(B
\e$B$N%0%k!<%W$NA4$F$N8E$$5-;v$r<hF@$7$h$&$H$7$^$9!#\e(B@var{N} \e$B$N?t;z@\F,0z?t$r\e(B
\e$BM?$($k$H!"\e(Bgnus \e$B$N<hF@$9$k5-;v?t$O\e(B @var{N} \e$B$K$J$j$^$9!#\e(B@var{N} \e$B$,@5$N?t\e(B
\e$B$G$"$l$P\e(B gnus\e$B$O?7$7$$J}$+$i\e(B @var{N} \e$B8D$N5-;v$r<hF@$7!"\e(B @var{N} \e$B$,Ii$N?t$G\e(B
-\e$B$"$l$P\e(B gnus \e$B$O8E$$J}$+$i\e(B @var{N} \e$B8D$N5-;v$r<hF@$7$^$9!#\e(B
+\e$B$"$l$P\e(B gnus \e$B$O8E$$J}$+$i\e(B @code{abs(@var{N})} \e$B8D$N5-;v$r<hF@$7$^$9!#\e(B
@item RET
@kindex RET (Group)
@c @code{iso-8859-1} the default charset; that is, the charset that will be
@c used for all articles that do not specify a charset.
-@item @var{(variable form)}
+@item (@var{variable} @var{form})
\e$B%0%k!<%W$KF~$k$H$-$K!"$=$N%0%k!<%W%m!<%+%k$NJQ?t$r@_Dj$9$k%0%k!<%W%Q%i%a!<\e(B
\e$B%?$r;HMQ$9$k$3$H$,$G$-$^$9!#\e(B@samp{news.answers} \e$B$K$*$$$F%9%l%C%II=<($r9T\e(B
\e$B$$$?$/$J$$$H$-$O!"$=$N%0%k!<%W$K%0%k!<%W%Q%i%a!<%?$K\e(B
\e$B%/%Q%i%a!<%?$+$i7Q>5$7$^$9!#%0%k!<%W%Q%i%a!<%?$H$7$F@5$7$$$b$N$OA4$F!"%H%T%C\e(B
\e$B%/%Q%i%a!<%?$H$7$F$b@5$7$$$b$N$G$9\e(B(@pxref{Group Parameters})\e$B!#\e(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
+
\e$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\e(B
\e$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!#\e(B
\e$BJ,$+$k$h$M!#$4$/IaDL$N7Q>5%k!<%k$G$9!J%k!<%k\e(B (@dfn{Rules}) \e$B$O$3$3$G$OL>;l\e(B
* Choosing Articles:: \e$B5-;v$rFI$`!#\e(B
* Paging the Article:: \e$BFI$s$G$$$k5-;v$r%9%/%m!<%k$9$k!#\e(B
* Reply Followup and Post:: \e$B5-;v$rEj9F$9$k!#\e(B
+* Canceling and Superseding:: ``Whoops, I shouldn't have called him that.''
* Canceling and Superseding:: \e$B!X$"$!!"$"$s$J$U$&$K8@$&$s$8$c$J$+$C$?!#!Y\e(B
* Marking Articles:: \e$B5-;v$K4{FI$d4|8B@Z$l:o=|2DG=Ey$N0u$rIU$1$k!#\e(B
* Limiting:: \e$B35N,%P%C%U%!$K@)8B$r2C$($k$3$H$,$G$-$k!#\e(B
@item gnus-summary-highlight
@vindex gnus-summary-highlight
\e$B35N,9T$O$3$NJQ?t$K$7$?$,$C$F%O%$%i%$%H$5$l$^$9!#$3$NJQ?t$OMWAG$,\e(B
-@var{(FORM . FACE)} \e$B$N7A<0$N%j%9%H$G$9!#Nc$($P!"$b$70uIU$-$N5-;v$r%$%?%j%C\e(B
-\e$B%/!"9b$$%9%3%"$N5-;v$r%\!<%k%I$K$7$?$1$l$P!"$3$NJQ?t$r<!$N$h$&$K$G$-$^$9!#\e(B
+@code{(@var{form} . @var{face})} \e$B$N7A<0$N%j%9%H$G$9!#Nc$($P!"$b$70uIU$-\e(B
+\e$B$N5-;v$r%$%?%j%C%/!"9b$$%9%3%"$N5-;v$r%\!<%k%I$K$7$?$1$l$P!"$3$NJQ?t$r\e(B
+\e$B<!$N$h$&$K$G$-$^$9!#\e(B
@lisp
(((eq mark gnus-ticked-mark) . italic)
((> score default) . bold))
@end lisp
-\e$B$4A[A|$N$H$*$j!"$b$7\e(B @var{FORM} \e$B$,\e(B @code{nil} \e$B$G$J$$CM$rJV$9$H!"\e(B
-@var{FACE} \e$B$,$=$N9T$KE,MQ$5$l$^$9!#\e(B
+\e$B$4A[A|$N$H$*$j!"$b$7\e(B @var{form} \e$B$,\e(B @code{nil} \e$B$G$J$$CM$rJV$9$H!"\e(B
+@var{face} \e$B$,$=$N9T$KE,MQ$5$l$^$9!#\e(B
@end table
@menu
* Summary Mail Commands:: \e$B%a!<%k$rAw$k!#\e(B
* Summary Post Commands:: \e$B%K%e!<%9$rAw$k!#\e(B
+* Summary Message Commands:: Other Message-related commands.
+* Canceling and Superseding:: ``Whoops, I shouldn't have called him that.''
@end menu
\e$B$^$?\e(B @pxref{(message)Header Commands} \e$B$K$5$i$J$k>pJs$,$"$j$^$9!#\e(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 \e$B5-;v$r<h$j>C$9\e(B
+@subsection \e$B5-;v$r<h$j>C$9\e(B
@cindex canceling articles
@cindex superseding articles
@item F
@vindex gnus-souped-mark
-@sc{SOUP} \e$B$5$l$F$$$k5-;v\e(B (@code{gnus-souped-mark})\e$B!#\e(B @xref{SOUP}.
+@sc{soup} \e$B$5$l$F$$$k5-;v\e(B (@code{gnus-souped-mark})\e$B!#\e(B @xref{SOUP}.
@item Q
@vindex gnus-sparse-mark
@vindex gnus-header-face-alist
\e$B%X%C%@!<$r%O%$%i%$%H$7$^$9\e(B (@code{gnus-article-highlight-headers})\e$B!#%O%$\e(B
\e$B%i%$%H$OJQ?t\e(B @code{gnus-header-face-alist} \e$B$K$7$?$,$C$F$J$5$l!"$=$l$O$=\e(B
-\e$B$l$>$l$NMWAG$,\e(B @var{(\e$B@55,I=8=\e(B \e$BL>A0\e(B \e$BFbMF\e(B)} \e$B$H$$$&MM<0$N%j%9%H$G$9!#\e(B
+\e$B$l$>$l$NMWAG$,\e(B @code{(@var{\e$B@55,I=8=\e(B} @var{\e$BL>A0\e(B} @var{\e$BFbMF\e(B})} \e$B$H$$$&MM<0\e(B
+\e$B$N%j%9%H$G$9!#\e(B
@var{\e$B@55,I=8=\e(B}\e$B$O%X%C%@!<$K9gCW$9$k@55,I=8=!"\e(B@var{\e$BL>A0\e(B}\e$B$O%X%C%@!<$NL>A0$r\e(B
\e$B%O%$%i%$%H$9$k$N$K;H$o$l$k%U%'%$%9\e(B (face) (@pxref{Faces and Fonts})\e$B!"\e(B
@var{\e$BFbMF\e(B}\e$B$O%X%C%@!<$NCM$r%O%$%i%$%H$9$k%U%'%$%9$G$9!#:G=i$K9gCW$7$?$b$N\e(B
@item W W B
@kindex W W B (\e$B35N,\e(B)
@findex gnus-article-strip-banner
+@cindex banner
+@cindex OneList
+@cindex stripping advertisments
+@cindex advertisments
@code{banner} \e$B%0%k!<%W%Q%i%a!<%?$G;XDj$5$l$?%P%J!<$r<h$j=|$-$^$9\e(B
(@code{gnus-article-strip-banner})\e$B!#$3$l$O<g$K!"$$$/$D$+$N%a!<%j%s%0%j%9\e(B
\e$B%H$d;J2q<TIU$-$N%0%k!<%W$,A4$F$N%0%k!<%W$KDI2C$9$k!"15F+$7$$%P%J!<$H\e(B/\e$B$b\e(B
(HEADER REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR)
@end lisp
-@var{HEADER} \e$B$O@55,I=8=$G$9!#\e(B
+@var{header} \e$B$O@55,I=8=$G$9!#\e(B
@item gnus-button-url-regexp
@vindex gnus-button-url-regexp
\e$B$r99?7$7$F$$$k$HHs>o$KNI$$$G$7$g$&!#$7$+$7!"$=$l$O$I$&$7$F$bI,MW$J$o$1$G$O\e(B
\e$B$"$j$^$;$s!#\e(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
+
\e$B$[$H$s$I$N%a!<%k%P%C%/%(%s%I$O\e(B @code{Message-ID} \e$B$G$N<hF@$,2DG=$G$9$,!"\e(B
\e$B$"$^$jM%2m$JJ}K!$G$d$C$F$$$k$o$1$G$O$"$j$^$;$s!#\e(B@code{nnmbox} \e$B$H\e(B
@code{nnbabyl} \e$B$O$I$N%0%k!<%W$+$i$N5-;v$b0LCV$rF@$k$3$H$,$G$-$^$9$,!"\e(B
@item gnus-tree-brackets
@vindex gnus-tree-brackets
\e$B$3$l$O!XK\Ev$N!Y5-;v$H!X$^$P$i5-;v!Y$K0c$$$rIU$1$k$?$a$K;H$o$l$^$9!#\e(B
-\e$BMM<0$O\e(B
-@var{((\e$BK\Ev$N3+\e(B . \e$BK\Ev$NJD\e(B) (\e$B$^$P$i3+\e(B . \e$B$^$P$iJD\e(B) (\e$B56$N3+\e(B . \e$B56$NJD\e(B))}
-\e$B$H$J$C$F$$$F!"%G%#%U%)%k%H$O\e(B
-@code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))} \e$B$G$9!#\e(B
+\e$BMM<0$O\e(B @code{((@var{\e$BK\Ev$N3+\e(B} . @var{\e$BK\Ev$NJD\e(B}) (@var{\e$B$^$P$i3+\e(B} .
+@var{\e$B$^$P$iJD\e(B}) (@var{\e$B56$N3+\e(B} . @var{\e$B56$NJD\e(B}))} \e$B$H$J$C$F$$$F!"%G%#%U%)\e(B
+\e$B%k%H$O\e(B @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))} \e$B$G$9!#\e(B
@item gnus-tree-parent-child-edges
@vindex gnus-tree-parent-child-edges
\e$B$3$H$b$G$-$^$9!#4X?t$O$=$NItJ,$KHO0O$,69$a$i$l$?>uBV$G8F$P$l!"$[$H$s$I$J\e(B
\e$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\e(B
\e$B$"$j$^$;$s\e(B---\e$B2?$G$bJQ$($k$3$H$,$G$-$^$9!#$7$+$7!"%X%C%@!<$r>C$7$F$O$$$1\e(B
-\e$B$^$;$s!#$=$NBe$o$j$K!"$=$l$r>C$75n$j$?$$$H$-$O!"IT2D;k$K$7$F$/$@$5$$!#\e(B
+\e$B$^$;$s!#\e(B
@node Article Keymap
'((if (message-news-p)
"misc-news"
(concat "mail." (format-time-string
- "%Y-%m" (current-time))))))
+ "%Y-%m" (current-time))))))
@end lisp
\e$B!J\e(BXEmacs 19.13 \e$B$K$O\e(B @code{format-time-string} \e$B$O$"$j$^$;$s$N$G!"$=$N\e(B
\e$B$=$l$>$l$NMM<0$N:G=i$NMWAG$O\e(B @code{\e$B9gCW\e(B} (match) \e$B$H8F$P$l$^$9!#$b$7$=$l\e(B
\e$B$,J8;zNs$G$"$l$P!"\e(Bgnus \e$B$O$=$l$r%0%k!<%WL>$K@55,I=8=$H$7$F9gCWA`:n$r9T$$\e(B
-\e$B$^$9!#$b$7$=$l$,4X?t$N%7%s%\%k$G$"$l$P!"$=$N4X?t$,0z?tL5$7$G8F$P$l$^$9!#\e(B
-\e$B$=$l$,JQ?t$N%7%s%\%k$G$"$l$P!"$=$NJQ?t$,;2>H$5$l$^$9!#$=$l$,%j%9%H$G$"$l\e(B
-\e$B$P!"$=$N%j%9%H$,\e(B @code{\e$BI>2A\e(B} \e$B$5$l$^$9!#$I$N>l9g$G$b!"$3$l$,\e(B @code{nil}
-\e$B$G$J$$CM$r5"$;$P!"MM<0$O\e(B @code{\e$B9gCW$7$?\e(B} \e$B$H8@$$$^$9!#\e(B
+\e$B$^$9!#\e(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.
+\e$B$b$7$=$l$,4X?t$N%7%s%\%k$G$"$l$P!"$=$N4X?t$,0z?tL5$7$G8F$P$l$^$9!#$=$l$,\e(B
+\e$BJQ?t$N%7%s%\%k$G$"$l$P!"$=$NJQ?t$,;2>H$5$l$^$9!#$=$l$,%j%9%H$G$"$l$P!"$=\e(B
+\e$B$N%j%9%H$,\e(B @code{\e$BI>2A\e(B} \e$B$5$l$^$9!#$I$N>l9g$G$b!"$3$l$,\e(B @code{nil} \e$B$G$J$$\e(B
+\e$BCM$r5"$;$P!"MM<0$O\e(B @code{\e$B9gCW$7$?\e(B} \e$B$H8@$$$^$9!#\e(B
\e$B$=$l$>$l$NMM<0$OG$0U$NNL$N\e(B @dfn{\e$BB0@-\e(B} \e$B$r;}$D;v$,$G$-$^$9!#$=$l$>$l$NB0@-\e(B
-\e$B$O\e(B @var{(name value)} \e$B$NBP$K$h$j@.$jN)$C$F$$$^$9!#B0@-L>$O!"\e(B
-@code{signature}, @code{signature-file}, @code{organization},
+\e$B$O\e(B @code{(@var{name} . @var{value})} \e$B$NBP$K$h$j@.$jN)$C$F$$$^$9!#B0@-L>\e(B
+\e$B$O!"\e(B@code{signature}, @code{signature-file}, @code{organization},
@code{address}, @code{name}, @code{body} \e$B$N$I$l$+$G$"$k;v$,$G$-$^$9!#B0\e(B
\e$B@-L>$OJ8;zNs$G$"$k;v$b$G$-$^$9!#$=$N>l9g$O!"$3$l$O%X%C%@!<L>$H$7$F;H$o$l!"\e(B
\e$B$=$NCM$,5-;v$N%X%C%@!<$KA^F~$5$l$^$9!#$b$7B0@-L>$,\e(B @code{eval} \e$B$@$C$?$i\e(B
(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")
* The Server Buffer:: \e$B;v<B>e$N%5!<%P!<$r:n$C$FJT=8$9$k!#\e(B
* Getting News:: USENET \e$B%K%e!<%9$r\e(B gnus \e$B$GFI$`!#\e(B
* Getting Mail:: \e$B8D?ME*$J%a!<%k$r\e(B gnus \e$B$GFI$`!#\e(B
+* Browsing the Web:: Getting messages from a plethora of Web sources.
* Other Sources:: \e$B%G%#%l%/%H%j!<!"%U%!%$%k!"\e(BSOUP \e$B%Q%1%C%H$rFI$`!#\e(B
* Combined Groups:: \e$BJ#?t$N%0%k!<%W$r0l$D$N%0%k!<%W$K7k9g$9$k!#\e(B
* Gnus Unplugged:: \e$B%K%e!<%9$H%a!<%k$r%*%U%i%$%s$GFI$`!#\e(B
@dfn{\e$B%"%I%l%9\e(B} (address) \e$B!"$b$7$/$O$=$&8F$S$?$$$N$G$"$l$P!"\e(B@dfn{\e$BL>A0\e(B} \e$B$G\e(B
\e$B$9!#\e(B
-\e$B$3$l$i$N\e(B2\e$B$D$NMWAG$N8e$K$O!"G$0U$N?t$N\e(B @var{(\e$BJQ?t\e(B \e$BMM<0\e(B)} \e$B$NBP$rF~$l$k;v$,\e(B
-\e$B$G$-$^$9!#\e(B
+\e$B$3$l$i$N\e(B2\e$B$D$NMWAG$N8e$K$O!"G$0U$N?t$N\e(B @code{(@var{\e$BJQ?t\e(B} @var{\e$BMM<0\e(B})} \e$B$N\e(B
+\e$BBP$rF~$l$k;v$,$G$-$^$9!#\e(B
\e$B:G=i$NNc$KLa$j$^$7$g$&\e(B---\e$B$=$N%^%7%s$N%]!<%H\e(B15\e$B$+$iFI$_$?$+$C$?$H;W$C$F$/\e(B
\e$B$@$5$$!#$3$l$,$=$N;~$K!"$J$k$Y$-A*BrJ}K!$G$9\e(B:
\e$B$l$i$O$I$3$+$KJ]B8$5$l$F$$$k$+$i$G$9!#\e(B
\e$B$"$k?M$?$A$O>.?M?t$KMxMQ$5$l$F$$$k%m!<%+%k%K%e!<%9%0%k!<%W$r9VFI$7$F$$\e(B
-\e$B$^$9!#$=$l$i$O\e(B NNTP \e$B$GG[Aw$5$l$k!"%K%e!<%9!"$G$9!#;d$?$A$O<+J,$N;E;v$K\e(B
-\e$BLrN)$F$k$?$a$K!"$=$l$i$NKDBg$J5-;v$NCGJR$rFI$s$@$jJV;v$r$7$J$1$l$P$J$j\e(B
-\e$B$^$;$s!#$=$7$F$=$l$i$OJ]B8$5$l$F$$$J$$$+$b$7$l$^$;$s$+$i!"6=L#$N$"$k5-\e(B
-\e$B;v$r8D?M%a!<%k$HF1$8$h$&$KJ]B8$7$J$1$l$P$J$i$J$$$G$7$g$&!#\e(B
+\e$B$^$9!#$=$l$i$O\e(B @sc{nntp} \e$B$GG[Aw$5$l$k!"%K%e!<%9!"$G$9!#;d$?$A$O<+J,$N;E\e(B
+\e$B;v$KLrN)$F$k$?$a$K!"$=$l$i$NKDBg$J5-;v$NCGJR$rFI$s$@$jJV;v$r$7$J$1$l$P\e(B
+\e$B$J$j$^$;$s!#$=$7$F$=$l$i$OJ]B8$5$l$F$$$J$$$+$b$7$l$^$;$s$+$i!"6=L#$N$"\e(B
+\e$B$k5-;v$r8D?M%a!<%k$HF1$8$h$&$KJ]B8$7$J$1$l$P$J$i$J$$$G$7$g$&!#\e(B
\e$BG[Aw$N;EAH$_$N0c$$$O$I$&$G$b$h$$$3$H$G!"Bg;v$J$N$O$$$+$K<gBj$K6=L#$r;}$C\e(B
\e$B$F$$$k$+$H!"$b$&0lEYFI$_$?$$$H$-$K$$$+$K4JC1$K8F$S=P$;$k$+$J$N$G$9!#\e(B
(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
\e$B%G%#%l%/%H%j!<Cf$NJ#?t$N%U%!%$%k$+$i%a!<%k$r<hF@$7$^$9!#$3$l$OIaDL$O\e(B
procmail \e$B$K?7$7$$%a!<%k$r$$$/$D$+$N%U%!%$%k$KJ,3d$5$;$F$$$k$H$-$K;HMQ$5\e(B
(maildir :path "/home/user-name/Maildir/cur")
@end lisp
-@c TRANSLATEME
@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
@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
\e$B$9!#IaDL$N@55,I=8=$N9gCW$,$J$5$l$^$9!#Nc$O2<$NJ}$r8+$F2<$5$$!#\e(B
@item
-@var{(FIELD VALUE [- RESTRICT [- RESTRICT [...]]] SPLIT)}: \e$B$b$7J,3d$,%j\e(B
-\e$B%9%H$G!":G=i$NMWAG$,J8;zNs$G$"$j!"%X%C%@!<\e(B FIELD (\e$B@55,I=8=\e(B) \e$B$,\e(B VALUE (\e$B$3\e(B
-\e$B$l$b@55,I=8=\e(B) \e$B$r4^$s$G$$$k>l9g!"%a%C%;!<%8$r\e(B SPLIT \e$B$G;XDj$5$l$?$H$3$m$K\e(B
-\e$BC_@Q$7$^$9!#\e(BRESTRICT (\e$B$^$?B>$N@55,I=8=\e(B) \e$B$,\e(B FIELD \e$B$N8e$G!"9gCW$7$?\e(B VALUE
-\e$B$N:G8e$NA0$N$N$$$/$D$+$NJ8;zNs$K9gCW$7$?$i!"\e(BSPLIT \e$B$OL5;k$5$l$^$9!#\e(B
-RESTRICT \e$B$NJDJq$N$I$l$b$,9gCW$7$J$1$l$P!"\e(BSPLIT \e$B$,<B9T$5$l$^$9!#\e(B
+@code{(@var{field} @var{value} @code{[-} @var{restrict} @code{[-} @var{restrict} @code{[@dots{}]}@code{]]}
+@var{split})}: \e$B$b$7J,3d$,%j%9%H$G!":G=i$NMWAG$,J8;zNs$G$"$j!"%X%C%@!<\e(B
+@var{field} (\e$B@55,I=8=\e(B) \e$B$,\e(B @var{value} (\e$B$3$l$b@55,I=8=\e(B) \e$B$r4^$s$G$$$k>l9g!"\e(B
+\e$B%a%C%;!<%8$r\e(B @var{split} \e$B$G;XDj$5$l$?$H$3$m$KC_@Q$7$^$9!#\e(B@var{restrict}
+ (\e$B$^$?B>$N@55,I=8=\e(B) \e$B$,\e(B @var{field} \e$B$N8e$G!"9gCW$7$?\e(B @var{value} \e$B$N:G8e$N\e(B
+\e$BA0$N$N$$$/$D$+$NJ8;zNs$K9gCW$7$?$i!"\e(B@var{split} \e$B$OL5;k$5$l$^$9!#\e(B
+@var{restrict} \e$B$NJDJq$N$I$l$b$,9gCW$7$J$1$l$P\e(B @var{split} \e$B$,<B9T$5$l$^\e(B
+\e$B$9!#\e(B
@item
-@var{(| SPLIT...)}: \e$BJ,3d$,%j%9%H$G!":G=i$NMWAG$,\e(B @code{|} (\e$B?bD>K@\e(B) \e$B$G$"\e(B
-\e$B$k$H!"$=$l$>$l$N\e(B SPLIT \e$B$r$=$N$&$A$N0l$D$,9gCW$9$k$^$G<B9T$7$^$9!#\e(B SPLIT
-\e$B$O%a!<%k%a%C%;!<%8$,0l$D0J>e$N%0%k!<%W$KC_@Q$5$l$?$H$-$K\e(B ``\e$B9gCW$7$?\e(B'' \e$B$H\e(B
-\e$B$7$^$9!#\e(B
+@code{(| @var{split}@dots{})}: \e$BJ,3d$,%j%9%H$G!":G=i$NMWAG$,\e(B @code{|}
+(\e$B?bD>K@\e(B) \e$B$G$"$k$H!"$=$l$>$l$N\e(B @var{split} \e$B$r$=$N$&$A$N0l$D$,9gCW$9$k$^$G\e(B
+\e$B<B9T$7$^$9!#\e(B@var{split} \e$B$O%a!<%k%a%C%;!<%8$,0l$D0J>e$N%0%k!<%W$KC_@Q$5$l\e(B
+\e$B$?$H$-$K\e(B ``\e$B9gCW$7$?\e(B'' \e$B$H$7$^$9!#\e(B
@item
-@var{(& SPLIT...)}: \e$BJ,3d$,%j%9%H$G!":G=i$NMWAG$,\e(B @code{t} \e$B$G$"$k$H!"%j%9\e(B
-\e$B%H$NA4$F$N\e(B SPLIT \e$B$r<B9T$7$^$9!#\e(B
+@code{(& @var{split}@dots{})}: \e$BJ,3d$,%j%9%H$G!":G=i$NMWAG$,\e(B @code{t} \e$B$G\e(B
+\e$B$"$k$H!"%j%9%H$NA4$F$N\e(B @var{split} (\e$BJ#?t\e(B) \e$B$r<B9T$7$^$9!#\e(B
@item
@code{junk}: \e$B$b$7J,3d$,%7%s%\%k\e(B @code{junk} \e$B$G$"$k$H!"$=$N%a%C%;!<%8$rJ]\e(B
\e$BB8$7$^$;$s!#Hs>o$KCm0U$7$F;H$C$F2<$5$$!#\e(B
@item
-@var{(: function arg1 arg2 ...)}: \e$B$b$7J,3d$,%j%9%H$G!":G=i$N4X?t$,\e(B
-@code{:} \e$B$G$"$k$H!"\e(B2\e$BHVL\$NMWAG$,\e(B @var{args} \e$B$r0z?t$H$7$F4X?t$H$7$F8F$P$l\e(B
-\e$B$^$9!#4X?t$O\e(B SPLIT \e$B$rJV$9$Y$-$G$9!#\e(B
+@code{(: @var{function} @var{arg1} @var{arg2} @dots{})}: \e$B$b$7J,3d$,%j%9\e(B
+\e$B%H$G!":G=i$N4X?t$,\e(B @code{:} \e$B$G$"$k$H!"\e(B2\e$BHVL\$NMWAG$,\e(B @var{args} \e$B$r0z?t$H\e(B
+\e$B$7$F4X?t$H$7$F8F$P$l$^$9!#4X?t$O\e(B @var{split} \e$B$rJV$9$Y$-$G$9!#\e(B
@item
-@var{(! FUNC SPLIT)}: \e$BJ,3d$,%j%9%H$G!":G=i$NMWAG$,\e(B @code{!} \e$B$G$"$k$H!"\e(B
-SPLIT \e$B$,<B9T$5$l!"\e(BFUNC \e$B$O\e(B SPLIT \e$B$N7k2L$r0z?t$H$7$F8F$P$l$^$9!#\e(BFUNC \e$B$OJ,\e(B
-\e$B3d$rJV$9$Y$-$G$9!#\e(B
+@code{(! @var{func} @var{split})}: \e$BJ,3d$,%j%9%H$G!":G=i$NMWAG$,\e(B @code{!}
+\e$B$G$"$k$H\e(B @var{split} \e$B$,<B9T$5$l!"\e(B@var{func} \e$B$O\e(B @var{split} \e$B$N7k2L$r0z?t\e(B
+\e$B$H$7$F8F$P$l$^$9!#\e(B@var{func} \e$B$OJ,3d$rJV$9$Y$-$G$9!#\e(B
@item
@code{nil}: \e$B$b$7J,3d$,\e(B @code{nil} \e$B$G$"$l$P!"$=$l$OL5;k$5$l$^$9!#\e(B
@end enumerate
-\e$B$3$l$i$NJ,3d$G!"\e(B@var{FIELD} \e$B$O40A4$J%U%#!<%k%IL>$K9gCW$7$J$1$l$P$J$j$^$;\e(B
-\e$B$s!#\e(B@var{VALUE} \e$B$O4pAC%b!<%I\e(B (fundamental mode) \e$B9=J8%F!<%V%k\e(B (syntax
+\e$B$3$l$i$NJ,3d$G!"\e(B@var{fileld} \e$B$O40A4$J%U%#!<%k%IL>$K9gCW$7$J$1$l$P$J$j$^\e(B
+\e$B$;$s!#\e(B@var{value} \e$B$O4pAC%b!<%I\e(B (fundamental mode) \e$B9=J8%F!<%V%k\e(B (syntax
table) \e$B$K=>$C$F40A4$K9gCW$7$J$1$l$P$J$j$^$;$s!#@55,I=8=$G%U%#!<%k%IL>$+\e(B
\e$B8l$NItJ,$K9gCW$5$;$k$?$a$K\e(B @code{.*} \e$B$r;H$&;v$,$G$-$^$9!#8@$$49$($l$P!"\e(B
-\e$BA4$F$N\e(B @var{VALUE} \e$B$O\e(B @samp{\<} \e$B$H\e(B @samp{\>} \e$B$NBP$G0O$^$l$^$9!#\e(B
+\e$BA4$F$N\e(B @var{value} \e$B$O\e(B @samp{\<} \e$B$H\e(B @samp{\>} \e$B$NBP$G0O$^$l$^$9!#\e(B
@vindex nnmail-split-abbrev-alist
-@var{FIELD} \e$B$H\e(B @var{VALUE} \e$B$O\e(B lisp \e$B%7%s%\%k\e(B (symbol) \e$B$G$"$k;v$b$G$-!"$=\e(B
+@var{field} \e$B$H\e(B @var{value} \e$B$O\e(B lisp \e$B%7%s%\%k\e(B (symbol) \e$B$G$"$k;v$b$G$-!"$=\e(B
\e$B$N>l9g$O$=$l$i$O\e(B @code{nnmail-split-abbrev-alist} \e$B$G;XDj$5$l$F$$$k$h$&$K\e(B
\e$BE83+$5$l$^$9!#$3$l$O%;%k$N\e(B @code{car} \e$B$,%-!<$r4^$s$G$$$F!"\e(B@code{cdr} \e$B$,\e(B
\e$B4XO"IU$1$i$l$?CM$r;}$C$F$$$k%3%s%9%;%k\e(B (cons cell) \e$B$NO"A[%j%9%H$G$9!#\e(B
\e$B;H$$$?$1$l$P!"\e(B@var{split-regexp} \e$B$r@_Dj$7$F$/$@$5$$!#\e(B
\e$B$3$l$i$NA4$F$N%0%k!<%W$N%Q%i%a!<%?$O!"\e(B@code{nnmail-split-fancy} \e$BJ,3d$r:n\e(B
-\e$B@.$9$k$?$a$K;HMQ$5$l!"$=$l$O\e(B @var{FIELD} \e$B$,\e(B @samp{any} \e$B$G!"\e(B@var{VALUE}
+\e$B@.$9$k$?$a$K;HMQ$5$l!"$=$l$O\e(B @var{field} \e$B$,\e(B @samp{any} \e$B$G!"\e(B@var{value}
\e$B$,\e(B@var{to-list}, @var{to-address}, @var{extra-aliases} \e$B$NA4$F!"\e(B
-@var{split-regexp} \e$B$NA4$F$N9gCW$K9gCW$9$kC1FH$N@55,I=8=!"\e(B@var{SPLIT} \e$B$,\e(B
-\e$B%0%k!<%W$NL>A0$K$J$j$^$9!#\e(B@var{RESTRICT} \e$B$b;HMQ$G$-$^$9\e(B:
+@var{split-regexp} \e$B$NA4$F$N9gCW$K9gCW$9$kC1FH$N@55,I=8=!"\e(B@var{split} \e$B$,\e(B
+\e$B%0%k!<%W$NL>A0$K$J$j$^$9!#\e(B@var{restrict} \e$B$b;HMQ$G$-$^$9\e(B:
@var{split-exclude} \e$B%Q%i%a!<%?$r@55,I=8=$N%j%9%H$K@_Dj$9$k$@$1$G$9!#\e(B
\e$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\e(B
(: gnus-mlsplt-fancy GROUPS NO-CROSSPOST CATCH-ALL)
@end lisp
-@var{GROUPS} \e$B$O=PNO$NJ,3d$r@8@.$9$k$?$a$K%Q%i%a!<%?$,Av::$5$l$k%0%k!<%W\e(B
-\e$BL>$N%j%9%H$+@55,I=8=$G$9!#\e(B@var{NO-CROSSPOST} \e$B$OAj8_Ej9F$r;HMQ6X;_$K$k$?\e(B
+@var{groups} \e$B$O=PNO$NJ,3d$r@8@.$9$k$?$a$K%Q%i%a!<%?$,Av::$5$l$k%0%k!<%W\e(B
+\e$BL>$N%j%9%H$+@55,I=8=$G$9!#\e(B@var{no-crosspost} \e$B$OAj8_Ej9F$r;HMQ6X;_$K$k$?\e(B
\e$B$a$K;H$&$3$H$,$G$-$^$9!#$=$N>l9g!"C10l$N\e(B @code{|} \e$BJ,3d$,=PNO$5$l$^$9!#\e(B
-@var{CATCH-ALL} \e$B$O=i4|A4Ja3M%0%k!<%W$H$7$F;HMQ$5$l$k%0%k!<%WL>$G$9!#\e(B
-@var{CATCH-ALL} \e$B$,\e(B @code{nil} \e$B$G$"$k$+!"\e(B@var{SPLIT-REGEXP} \e$B$,$I$l$+$NA*\e(B
+@var{catch-all} \e$B$O=i4|A4Ja3M%0%k!<%W$H$7$F;HMQ$5$l$k%0%k!<%WL>$G$9!#\e(B
+@var{catch-all} \e$B$,\e(B @code{nil} \e$B$G$"$k$+!"\e(B@var{split-regexp} \e$B$,$I$l$+$NA*\e(B
\e$BBr$5$l$?%0%k!<%W6uJ8;zNs$K9gCW$9$k$H!"A4Ja3MJ,3d$O9T$o$l$^$;$s!#$=$&$G$J\e(B
-\e$B$$>l9g!"%0%k!<%W$K\e(B @var{SPLIT-SPEC} \e$B$,\e(B @code{catch-all} \e$B$K@_Dj$5$l$F$$$k\e(B
-\e$B$b$N$,$"$k$H!"$3$N%0%k!<%W$,\e(B @var{CATCH-ALL} \e$B0z?t$r>e=q$-$7$^$9!#\e(B
+\e$B$$>l9g!"%0%k!<%W$K\e(B @var{split-spec} \e$B$,\e(B @code{catch-all} \e$B$K@_Dj$5$l$F$$$k\e(B
+\e$B$b$N$,$"$k$H!"$3$N%0%k!<%W$,\e(B @var{catch-all} \e$B0z?t$r>e=q$-$7$^$9!#\e(B
@findex gnus-group-split-setup
\e$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\e(B
(gnus-group-split-setup AUTO-UPDATE CATCH-ALL)
@end lisp
-@var{AUTO-UPDATE} \e$B$,\e(B @code{nil} \e$B$GL5$$$H!"\e(B@code{gnus-group-split-update}
+@var{auto-update} \e$B$,\e(B @code{nil} \e$B$GL5$$$H!"\e(B@code{gnus-group-split-update}
\e$B$,\e(B @code{nnmail-pre-get-new-mail-hook} \e$B$KDI2C$5$l!"FsEY$H\e(B
@code{nnmail-split-fancy} \e$B$N99?7$r?4G[$9$kI,MW$O$"$j$^$;$s!#\e(B
-@var{CATCH-ALL} \e$B$r>JN,$7$J$$>l9g$O\e(B (\e$B$=$l$O%*%W%7%g%s$G$9\e(B)
+@var{catch-all} \e$B$r>JN,$7$J$$>l9g$O\e(B (\e$B$=$l$O%*%W%7%g%s$G$9\e(B)
@code{gnus-group-split-default-catch-all-group} \e$B$O$=$NCM$K@_Dj$5$l$^$9!#\e(B
@vindex gnus-group-split-updated-hook
\e$B$NA*Br$O!"%a!<%k$r\e(B gnus \e$B$N$9$06a$/$K<hF@$9$k$?$a$KMW5a$5$l$k!"$H$$$&$b$N\e(B
\e$B$G$9!#\e(B
-\e$BF1$835G0$,\e(B Usenet \e$B<+?H$K$bB8:_$7$^$9!#5-;v$X$N@\?($O:#F|$G$O!"IaDL$O\e(B
-NNTP \e$B$G$J$5$l$^$9$,!"@N!9$NM+]5$J?<Lk$N;~Be$O!"3'$O5-;v$,B8:_$9$k%^%7%s\e(B
-(\e$B:#F|$G$O\e(B NNTP \e$B%5!<%P!<$H8F$V$b$N\e(B) \e$B$G%j!<%@!<$rF0$+$7!"%j!<%@!<$+$i$N@\\e(B
-\e$BB3$O!"D>@\5-;v$N%G%#%l%/%H%j!<%9%W!<%k$KF'$_9~$`$H$$$&$b$N$G$7$?!#$=$l$G\e(B
-\e$B$b!"$?$^$?$^%5!<%P!<\e(B (\e$B$b$7$/$O!"\e(BNFS \e$B$G%9%W!<%k$,FI$a$k$h$&$J>l9g\e(B) \e$B$K$$$k\e(B
-\e$B$h$&$J>l9g$O!"$3$l$i$NJ}K!$rA*$V$?$a$K\e(B @code{nntp} \e$B$d\e(B @code{nnspool} \e$B%P%C\e(B
-\e$B%/%(%s%I$N$I$A$i$+$rA*$V$3$H$,$G$-$^$7$?!#\e(B
+\e$BF1$835G0$,\e(B Usenet \e$B<+?H$K$bB8:_$7$^$9!#5-;v$X$N@\?($O:#F|$G$O!"IaDL$O\e(B
+@sc{nntp} \e$B$G$J$5$l$^$9$,!"@N!9$NM+]5$J?<Lk$N;~Be$O!"3'$O5-;v$,B8:_$9$k\e(B
+\e$B%^%7%s\e(B (\e$B:#F|$G$O\e(B @sc{nntp} \e$B%5!<%P!<$H8F$V$b$N\e(B) \e$B$G%j!<%@!<$rF0$+$7!"%j!<\e(B
+\e$B%@!<$+$i$N@\B3$O!"D>@\5-;v$N%G%#%l%/%H%j!<%9%W!<%k$KF'$_9~$`$H$$$&$b$N\e(B
+\e$B$G$7$?!#$=$l$G$b!"$?$^$?$^%5!<%P!<\e(B (\e$B$b$7$/$O!"\e(BNFS \e$B$G%9%W!<%k$,FI$a$k$h\e(B
+\e$B$&$J>l9g\e(B) \e$B$K$$$k$h$&$J>l9g$O!"$3$l$i$NJ}K!$rA*$V$?$a$K\e(B @code{nntp} \e$B$d\e(B
+@code{nnspool} \e$B%P%C%/%(%s%I$N$I$A$i$+$rA*$V$3$H$,$G$-$^$7$?!#\e(B
\e$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!\e(B
\e$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\e(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 \e$B$=$NB>$N%0%k!<%W8;\e(B
* Directory Groups:: \e$B%G%#%l%/%H%j!<$r%K%e!<%9%0%k!<%W$N$h$&$KFI$`!#\e(B
* Anything Groups:: Dired? \e$BC/$,\e(B dired \e$B$J$s$F;H$&$N\e(B?
* Document Groups:: \e$B8DJL$N%U%!%$%k72$O%0%k!<%W$NAG!#\e(B
-* SOUP:: @sc{SOUP} \e$B%Q%1%C%H$r\e(B ``\e$B%*%U%i%$%s\e(B''\e$B$GFI$`!#\e(B
-* Web Searches:: \e$BJ8;zNs$K%^%C%A$9$k5-;v$+$i%0%k!<%W$r:n$k!#\e(B
+* SOUP:: @sc{soup} \e$B%Q%1%C%H$r\e(B ``\e$B%*%U%i%$%s\e(B''\e$B$GFI$`!#\e(B
* Mail-To-News Gateways:: \e$B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$$rDL$7$F5-;v$rEj9F$9$k!#\e(B
-@c TRANSLATEME
-* IMAP:: Using Gnus as a IMAP client.
+* IMAP:: Using Gnus as a @sc{imap} client.
@end menu
@item message packets
\e$B$3$l$O%5!<%P!<$G:n$i$l$k%Q%1%C%H$G!"IaDL$O$"$J$?$,FI$`$?$a$N$?\e(B
\e$B$/$5$s$N%a%C%;!<%8$,4^$^$l$F$$$^$9!#$3$l$i$O=i4|@_Dj$G$O\e(B
-@file{SoupoutX.tgz} \e$B$H$$$&L>A0$G$9!#$3$3$G\e(B @var{X} \e$B$O?t;z$G$9!#\e(B
+@file{SoupoutX.tgz} \e$B$H$$$&L>A0$G$9!#$3$3$G\e(B @var{x} \e$B$O?t;z$G$9!#\e(B
@item response packets
(\e$BJV?.%Q%1%C%H\e(B)
\e$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$$\e(B
\e$B$?JV;v$,4^$^$l$F$$$^$9!#$3$l$i$O=i4|@_Dj$G$O\e(B
-@file{SoupinX.tgz} \e$B$H$$$&L>A0$G$9!#$3$3$G\e(B @var{X} \e$B$O?t;z$G$9!#\e(B
+@file{SoupinX.tgz} \e$B$H$$$&L>A0$G$9!#$3$3$G\e(B @var{x} \e$B$O?t;z$G$9!#\e(B
@end table
@sc{soup} \e$B$5$;$?$+$C$?$i!"FsHVL\$r;H$C$F$/$@$5$$!#\e(B
-@node Web Searches
-@subsection \e$B%&%'%V8!:w\e(B
-@cindex nnweb
-@cindex DejaNews
-@cindex Alta Vista
-@cindex InReference
-@cindex Usenet searches
-@cindex searching the Usenet
-
-\e$B$=$l$O!"$J$s$H$$$&$+!"\e(BUsenet \e$B$+$iJ8;zNs$K%^%C%A$9$k5-;v$r8!:w$9\e(B
-\e$B$k$N$O$H$F$bAG@2$i$7$$$s$@$1$I!"$=$N!"$"$N%&%'%V%V%i%&%6!<$C$F$d\e(B
-\e$B$D$r;H$C$F!"$=$s$G$b$C$F!"@kEA$rFI$^$;$i$l$k$C$F$$$&$N$O!"$=$N!"\e(B
-\e$B$J$s$H$$$&$+!"$[$s$H$&$K\e(B @emph{\e$B!VITMM$M!W\e(B} \e$B$H$$$&$+!"$=$l$G!"\e(B
-gnus \e$B$G$O%V%i%&%6!<$r;H$o$:$K!"$=$N!"\e(B@emph{\e$BD6$+$C$3$h$/\e(B}\e$B$=$l$,$G\e(B
-\e$B$-$k!"$C$F$3$H$G$9!#\e(B
-
-@code{nnweb} \e$B%P%C%/%(%s%I$O!"6/NO$J8!:w%(%s%8%s$KBP$7$F4JC1$J%$\e(B
-\e$B%s%?!<%U%'!<%9$rDs6!$7$^$9!#\e(B@code{nnweb} \e$B%0%k!<%W$r:n@.$7!"8!:w\e(B
-\e$B%Q%?!<%s$rF~NO$7!"$=$7$F$=$N%0%k!<%W$KF~$C$FB>$NIaDL$N%0%k!<%W$N\e(B
-\e$B$h$&$K5-;v$rFI$_$^$9!#%0%k!<%W%P%C%U%!\e(B (@pxref{Foreign
-Groups}) \e$B$N\e(B @kbd{G w} \e$BL?Na$K$h$C$F$*<j7Z$K$3$l$,$G$-$^$9!#\e(B
-
-@code{nnweb} \e$B%0%k!<%W$O!"8GDj%0%k!<%W$K$J$m$&$H$O$7$^$;$s\e(B --- \e$B$3\e(B
-\e$B$N%0%k!<%W$G$O5-;vHV9f$O$4$/0l;~E*$J$b$N$H$7$F07$$$^$9!#$D$^$j!"\e(B
-@code{nnweb} \e$B%0%k!<%W$KF~$k$?$S$K\e(B(\e$B$?$H$(8!:w%Q%?!<%s$rJQ99$7$F$$\e(B
-\e$B$J$/$H$b\e(B)\e$B!"5-;v$N=g=x$,0c$C$F$$$k$+$b$7$l$^$;$s!#$^$?!"=EJ#M^@)\e(B
-(@pxref{Duplicate Suppression}) \e$B$r;H$C$F$b$&$^$/F/$+$J$$$G$7$g$&!#\e(B
-\e$B$H$$$&$N$O!"\e(B@code{nnweb} \e$B$O8!:w%(%s%8%s\e(B(\e$BNc$($P\e(B DejaNews) \e$B$r;H$C\e(B
-\e$B$F5-;v$rFI$_9~$`$^$G$O!"\e(B@code{Message-ID} \e$B$rCN$k$3$H$O$G$-$J$$$+\e(B
-\e$B$i$G$9!#$"$J$?$,FI$s$@5-;v$r21$($F$*$/$?$a$NM#0l$NJ}K!$O!"\e(B
-@code{Date} \e$B%X%C%@!<$r$b$H$K%9%3%"$rIU$1$k$3$H$@$1$G$9\e(B --- \e$B$D$^\e(B
-\e$B$j$"$J$?$,$=$N%0%k!<%W$r:G8e$KFI$s$@F|IU$h$j!"A0$KEj9F$5$l$?5-;v\e(B
-\e$B$rA4$F4{FI$K$9$k!"$H$$$&$3$H$G$9!#\e(B
-
-\e$B$b$78!:w%(%s%8%s$N=PNO7A<0$,JQ99$5$l$k$H!"\e(B@code{nnweb} \e$B$O$=$l$r\e(B
-\e$B$&$^$/2r<a$G$-$:!"=hM}$O<:GT$9$k$G$7$g$&!#$b$7%&%'%VDs6!<TC#$,$=\e(B
-\e$B$s$J$3$H$r$7$?$i!"H`$i$r7c$7$/@U$a$k$Y$-$G$7$g$&\e(B --- \e$B$=$l$O9-9p\e(B
-\e$B$G6b$r2T$0$N$,H`$i$N\e(B @emph{\e$BB8:_M}M3\e(B} \e$B$G$"$j!"<R2q$K%5!<%S%9$rDs\e(B
-\e$B6!$9$k$3$H$G$O$J$$$+$i$G$9!#\e(B@code{nnweb} \e$B$OA4$F$N5-;v$+$i9-9p$r\e(B
-\e$B@v$$N.$7$F$7$^$&$N$G!"Ds6!<T$?$A$,%`%+$D$$$F$$$k$H;W$o$l$k$+$bCN\e(B
-\e$B$l$^$;$s!#$^$"8+$F$F$/$@$5$$!#\e(B
-
-@code{nnweb} \e$B$r;H$&$K$O!"\e(B@code{url} \e$B$H\e(B @code{w3} \e$B%Q%C%1!<%8$r%$\e(B
-\e$B%s%9%H!<%k$7$F$*$+$J$/$F$J$J$j$^$;$s!#\e(B
-
-\e$B0J2<$O2>A[%5!<%P!<JQ?t$G$9!#\e(B
-
-@table @code
-@item nnweb-type
-@vindex nnweb-type
-\e$B$I$N8!:w%(%s%8%s$r;H$C$F$$$k$+!#8=:_%5%]!<%H$5$l$F$$$k<oN`$O!"\e(B
-@code{dejanews}\e$B!"\e(B @code{dejanewsold}\e$B!"\e(B @code{altavista}\e$B!"\e(B
-@code{reference} \e$B$G$9!#\e(B
-
-@item nnweb-search
-@vindex nnweb-search
-\e$B8!:w%(%s%8%s$KM?$($k8!:wJ8;zNs!#\e(B
-
-@item nnweb-max-hits
-@vindex nnweb-max-hits
-\e$BI=<($9$k8!:w7k2L$N:GBg?t!#=i4|CM$O\e(B 100 \e$B$G$9!#\e(B
-
-@item nnweb-type-definition
-@vindex nnweb-type-definition
-\e$B7?!&Dj5AO"A[%j%9%H!#$3$NO"A[%j%9%H$O!"$5$^$6$^$J8!:w%(%s%8%s$N<o\e(B
-\e$BN`$KBP$7$F!"\e(B @code{nnweb} \e$B$,$I$&$9$Y$-$+$rM?$($^$9!#0J2<$K<($9MW\e(B
-\e$BAG$rM?$($J$/$F$O$J$j$^$;$s!#\e(B
-
-@table @code
-@item article
-\e$B5-;v$rI|9f2=$7!"\e(Bgnus \e$B$,M}2r$G$-$k7A$GDs6!$9$k4X?t!#\e(B
-
-@item map
-\e$B5-;vHV9f$+$i%a%C%;!<%8%X%C%@!<$H\e(B URL \e$B$rF@$kO"A[%j%9%H$r:n@.$9$k4X?t!#\e(B
-
-@item search
-\e$B8!:w%(%s%8%s$K8!:wJ8;zNs$rAw$k4X?t!#\e(B
-
-@item address
-\e$BA0=R$N4X?t$,8!:wJ8;zNs$rAw$k$Y$-%"%I%l%9!#\e(B
-
-@item id
-@code{Message-ID} \e$B$r$b$H$K5-;v$r<hF@$9$k$?$a$N\e(B URL \e$B7A<0J8;zNs!#\e(B
-@end table
-
-@end table
-
-
-
@node Mail-To-News Gateways
@subsection \e$B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$\e(B
@cindex mail-to-news gateways
-@c TRANSLATEME
@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.
@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
@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.
@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).
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
@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.
@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
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.
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
@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}
@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
@lisp
;;; Gnus \e$B$,$I$N$h$&$K%K%e!<%9$r<hF@$9$k$+$rDj5A$9$k!#$3$3$G$O\e(B
-;;; ISP \e$B$N%5!<%P!<$+$i\e(B NNTP \e$B$G<h$C$F$/$k$3$H$K$9$k!#\e(B
+;;; ISP \e$B$N%5!<%P!<$+$i\e(B @sc{nntp} \e$B$G<h$C$F$/$k$3$H$K$9$k!#\e(B
(setq gnus-select-method '(nntp "news.your-isp.com"))
;;; Gnus \e$B$,$I$N$h$&$K%a!<%k$rFI$`$+$rDj5A$9$k!#\e(BISP \e$B$N\e(B POP \e$B%5!<%P!<\e(B
@item Thread
\e$B$3$N9gCW%-!<$O\e(B @code{Followup} \e$B9gCW%-!<$HF1$89T$KF0:n$7$^$9!#\e(B
-@code{Message-ID} @var{X} \e$B$G;O$^$C$F$$$k\e(B (\e$BI{\e(B)\e$B%9%l%C%I$K%9%3%"$rIU$1$?$$\e(B
+@code{Message-ID} @var{x} \e$B$G;O$^$C$F$$$k\e(B (\e$BI{\e(B)\e$B%9%l%C%I$K%9%3%"$rIU$1$?$$\e(B
\e$B$N$G$"$l$P!"\e(B@samp{thread} \e$B9gCW$rIU$12C$($^$9!#$3$l$O\e(B @code{Reference} \e$B%X%C\e(B
-\e$B%@!<$K\e(B @var{X} \e$B$r;}$D$=$l$>$l$N5-;v$K?7$7$$\e(B @samp{thread} \e$B9gCW$rDI2C$7$^\e(B
+\e$B%@!<$K\e(B @var{x} \e$B$r;}$D$=$l$>$l$N5-;v$K?7$7$$\e(B @samp{thread} \e$B9gCW$rDI2C$7$^\e(B
\e$B$9!#\e(B (\e$B$3$l$i$N?7$7$$\e(B @samp{thread} \e$B9gCW$O$3$l$i$N9gCW$9$k5-;v$N\e(B
@code{Message-ID} \e$B$r;H$$$^$9!#\e(B) \e$B$3$l$O%9%l%C%I$N$$$/$D$+$N5-;v$,40A4$J\e(B
@code{References} \e$B%X%C%@!<$r;}$C$F$$$J$+$C$?$H$7$F$b!"%9%l%C%IA4BN$N%9%3\e(B
@enumerate
@item
-@var{(regexp file-name)}\e$B!#\e(B@var{regexp} \e$B$,%0%k!<%WL>$K%^%C%A$9$l\e(B
-\e$B$P!"\e(B@var{file-name} \e$B$,%[!<%`%9%3%"%U%!%$%k$H$7$F;HMQ$5$l$^$9!#\e(B
+@code{(@var{regexp} @var{file-name})}\e$B!#\e(B@var{regexp} \e$B$,%0%k!<%WL>$K%^%C%A\e(B
+\e$B$9$l$P!"\e(B@var{file-name} \e$B$,%[!<%`%9%3%"%U%!%$%k$H$7$F;HMQ$5$l$^$9!#\e(B
@item
\e$B4X?t!#$3$N4X?t$,\e(B @code{nil} \e$B0J30$rJV$;$P!"$=$NJV5QCM$,%[!<%`%9%3\e(B
@item !
@itemx not
-@itemx \254
+@itemx ÂŹ
\e$B$3$NO@M}:nMQ;R$OC10l$N0z?t$N$_$r$H$j$^$9!#$=$l$O$=$N0z?t$NCM$NO@M}H]Dj$r\e(B
\e$BJV$7$^$9!#\e(B
\e$B%@!<$,$D$$$F$*$j!"$3$l$O$=$N%a%C%;!<%8$N87L)$JDj5A$rM?$($F$$$^$9\e(B(\e$BB?>/$O\e(B
\e$B87L)$J!"DxEY$M!#$?$$$F$$$O>/$@$1$I\e(B)\e$B!#NI$/;H$o$l$k<oJL$K$O!"\e(B@samp{spam}\e$B!"\e(B
@samp{spew}\e$B!"\e(B @samp{mmf}\e$B!"\e(B@samp{binary}\e$B!"\e(B@samp{troll} \e$B$,$"$j$^$9!#$3$l$r\e(B
-\e$B;XDj$9$k$K$O!"%j%9%H$NCf$G\e(B @var{(\e$BH/9T<T\e(B \e$B>r7o\e(B ...)} \e$BMWAG$r;H$&I,MW$,$"$j\e(B
-\e$B$^$9!#3F>r7o$OJ8;zNs\e(B (\e$B;H$$$?$$<oJL$K%^%C%A$9$k@55,I=8=\e(B) \e$B$+!"$^$?$O\e(B
-@code{(not \e$BJ8;zNs\e(B)} \e$B$H$$$&7A<0$N%j%9%H$G$9!#$3$N>l9g$O\e(B @var{\e$BJ8;zNs\e(B} \e$B$O;H\e(B
-\e$B$$$?$/$J$$<oJL$K%^%C%A$9$k@55,I=8=$G$9!#\e(B
+\e$B;XDj$9$k$K$O!"%j%9%H$NCf$G\e(B @code{(@var{\e$BH/9T<T\e(B} @var{\e$B>r7o\e(B} @dots{})} \e$BMWAG\e(B
+\e$B$r;H$&I,MW$,$"$j$^$9!#3F>r7o$OJ8;zNs\e(B (\e$B;H$$$?$$<oJL$K%^%C%A$9$k@55,I=8=\e(B)
+\e$B$+!"$^$?$O\e(B @code{(not @var{\e$BJ8;zNs\e(B})} \e$B$H$$$&7A<0$N%j%9%H$G$9!#$3$N>l9g$O\e(B
+@var{\e$BJ8;zNs\e(B} \e$B$O;H$$$?$/$J$$<oJL$K%^%C%A$9$k@55,I=8=$G$9!#\e(B
\e$BNc$($P!"\e(BChris Lewis \e$B$+$i$N\e(B NoCeM \e$B%a%C%;!<%8$G!"\e(B@samp{troll} \e$B%a%C\e(B
\e$B%;!<%80J30$NA4$F$rM_$7$$>l9g$K$O!"\e(B
@menu
* History:: \e$B$I$&$d$C$F\e(B gnus \e$B$,:#F|$N$h$&$K$J$C$?$+!#\e(B
+* On Writing Manuals:: Why this is not a beginner's guide.
* Terminology:: \e$B2f!9$OK\Ev$KFq$7$$!"8l$N$h$&$J8l$r;H$&!#\e(B
* Customization:: \e$B$"$J$?$NMW5a$K1h$C$F\e(B gnus \e$B$r;EN)$F$k!#\e(B
* Troubleshooting:: \e$B>e<j$/9T$+$J$+$C$?$H$-$K;n$9$+$b$7$l$J$$;v!#\e(B
\e$BG_ED\e(B \e$B@/?.\e(B---\e$B85$N\e(B @sc{gnus} \e$B$r=q$$$??M$G$9!#\e(B
@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\e$B!"%9%3%"!"%O%$%i%$%H$H\e(B @sc{soup} \e$B%3!<%I\e(B (\e$BB>$NB?$/\e(B
\e$B$N;v$H6&$K\e(B)\e$B!#\e(B
Erik Naggum---\e$B1g=u!"9M$(!"%5%]!<%H!"%3!<%I$H$=$NB>!#\e(B
@item
-Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el \e$B$H\e(B @sc{mime} \e$B$HB>$NId9f\e(B
-\e$B2=I|9f2=$K4X$9$kB?$/$N$b$N!#\e(B
-
-@item
Wes Hardaker---@file{gnus-picon.el} \e$B$H\e(B @dfn{picon} \e$B$NItJ,$N%^%K%e%"%k\e(B
(@pxref{Picons})\e$B!#\e(B
Process Marks})\e$B!#\e(B
@item
-\e$B?7$7$$%a!<%k$+$i%K%e!<%9$X$N%P%C%/%(%s%I$,\e(B NNTP \e$B%5!<%P!<$,Ej9F$r5v2D$7$F\e(B
-\e$B$$$J$$>l9g$G$b!"Ej9F$G$-$k$h$&$K$J$j$^$7$?\e(B (@pxref{Mail-To-News
-Gateways})\e$B!#\e(B
+\e$B?7$7$$%a!<%k$+$i%K%e!<%9$X$N%P%C%/%(%s%I$,\e(B @sc{nntp} \e$B%5!<%P!<$,Ej9F$r\e(B
+\e$B5v2D$7$F$$$J$$>l9g$G$b!"Ej9F$G$-$k$h$&$K$J$j$^$7$?\e(B
+(@pxref{Mail-To-News Gateways})\e$B!#\e(B
@item
\e$B%&%'%V8!:w%(%s%8%s\e(B (@dfn{DejaNews}\e$B!"\e(B@dfn{Alta Vista}\e$B!"\e(B@dfn{InReference})
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.
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.
-
-<URL:http://search.dejanews.com/msgid.xp?MID=%3C62h9l9$hm4@@basement.replay.com%3E&fmt=raw>
-
-@item
A spec for the group line format to display the number of
agent-downloaded articles in the group.
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.
@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 \e$BMQ8l\e(B
@var{group} \e$B$N%G!<%?$r<hF@$7$^$9!#$3$N4X?t$O!"\e(B@var{group} \e$B$r8=:_\e(B
\e$B$N%0%k!<%W$K$9$k!"$H$$$&I{:nMQ$b$"$j$^$9!#\e(B
-@var{FAST} \e$B$,$"$l$P!"JXMx$J%G!<%?$rJV$9LLE]$r9T$J$o$:$K!"C1$K\e(B
+@var{fast} \e$B$,$"$l$P!"JXMx$J%G!<%?$rJV$9LLE]$r9T$J$o$:$K!"C1$K\e(B
@var{group} \e$B$r8=:_$N%0%k!<%W$K$7$^$9!#\e(B
\e$B$3$l$,7k2L$N%G!<%?$NNc$H!"$=$l$NDj5A$G$9!#\e(B
\e$B5-;v$N0u$r@_Dj\e(B/\e$B>C5n\e(B/\e$BDI2C$7$^$9!#IaDL$O\e(B gnus \e$B$O5-;v$N0u\e(B (\e$B4{FI!"2D;k!";~8B\e(B
\e$B>C5n$J$I\e(B) \e$B$rFbIt$G07$$!"\e(B@code{~/.newsrc.eld} \e$B$KJ]B8$7$^$9!#$7$+$7!"%P%C\e(B
-\e$B%/%(%s%I$K$O\e(B (IMAP \e$B$N$h$&$K\e(B) \e$B5-;v$NA4$F$N>pJs$r%5!<%P!<$K<}$a$k$N$G!"\e(B
-gnus \e$B$O0u$N>pJs$r%5!<%P!<$KEAC#$7$J$1$l$P$J$i$J$$$b$N$,$"$j$^$9!#\e(B
+\e$B%/%(%s%I$K$O\e(B (@sc{imap} \e$B$N$h$&$K\e(B) \e$B5-;v$NA4$F$N>pJs$r%5!<%P!<$K<}$a$k$N\e(B
+\e$B$G!"\e(Bgnus \e$B$O0u$N>pJs$r%5!<%P!<$KEAC#$7$J$1$l$P$J$i$J$$$b$N$,$"$j$^$9!#\e(B
ACTION \e$B$O$3$N$h$&$JMM<0$N0u@_Dj$NMW5a$N%j%9%H$G$9\e(B:
-@c \input texinfo @c -*-texinfo-*-
+\input texinfo @c -*-texinfo-*- -*- coding: iso-latin-1 -*-
@setfilename gnus
@settitle T-gnus 6.13 Manual
@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
@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
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)
@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
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
* 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.
@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
@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
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
@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
@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
@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
(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
@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
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
@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
@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
(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
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
(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")
* 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.
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
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.
(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.
@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
@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
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
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
(: 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
(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.
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
@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
* 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
@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
@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
@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.
@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
@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.
@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).
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
@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.
@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
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.
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
@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}
@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
@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"))
@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
@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
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:
@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.
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).
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}).
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
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.
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.
-
-<URL:http://search.dejanews.com/msgid.xp?MID=%3C62h9l9$hm4@@basement.replay.com%3E&fmt=raw>
-
-@item
A spec for the group line format to display the number of
agent-downloaded articles in the group.
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.
@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
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:
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.
\e$BE=$jIU$1$^$9!#IaDL$O\e(B @code{gnus-article-copy} \e$B$O$"$J$?$,JVEz$7$h$&$H$7$F\e(B
\e$B$$$k%a%C%;!<%8$G$9\e(B (@code{messsage-yank-original})\e$B!#\e(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
@cindex Sun
\e$B$3$NI,MW$J%X%C%@!<$O\e(B Message \e$B$K$h$j:n@.$5$l$^$9!#F|IU!";~4V!"MxMQ<TL>!"\e(B
\e$B%7%9%F%`L>$K4p$E$$$?B>$KL5$$\e(B ID \e$B$,:n@.$5$l$^$9!#\e(BMessage \e$B$O\e(B
-@code{mail-host-address} \e$B$,Dj5A$5$l$F$$$l$P!"$=$l$r\e(B fully qualified
-domain name (FQDN) (\e$B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>\e(B) \e$B$H$7$F;H$$$^$9!#$b$7\e(B
-\e$B$=$&$G$J$1$l$P!"$=$l$O\e(B @code{system-name} \e$B$r;H$$!"$=$l$O$$$/$D$+$N%^%7%s\e(B
--- \e$B<g$K\e(B Sun \e$B$G$O!"\e(BFQDN \e$B$rJs9p$7$^$;$s!#\e(B
+@code{system-name} \e$B$r%7%9%F%`L>$r7h$a$k$?$a$K;H$$$^$9!#$b$7$3$l$,\e(B fully
+qualified domain name (FQDN) (\e$B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>\e(B) \e$B$G$J$$$J$i\e(B
+\e$B$P!"\e(BMessage \e$B$O\e(B @code{mail-host-address} \e$B$r\e(B FQDN \e$B$H$7$F;H$$$^$9!#\e(B
@item X-Newsreader
@cindex X-Nesreader
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
@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