(IMAP): Add examples.
[gnus] / texi / gnus.texi
index 32a467a..2652fb2 100644 (file)
@@ -5,9 +5,10 @@
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
-@c @direntry
-@c * Gnus: (gnus).         The newsreader Gnus.
-@c @end direntry
+@dircategory Editors
+@direntry
+* Gnus: (gnus).         The newsreader Gnus.
+@end direntry
 @iftex
 @finalout
 @end iftex
@@ -355,7 +356,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.8.4.
+This manual corresponds to Gnus 5.8.7.
 
 @end ifinfo
 
@@ -2766,6 +2767,16 @@ List all groups that have names that match a regexp
 List all groups that have names or descriptions that match a regexp
 (@code{gnus-group-description-apropos}).
 
+@item A c
+@kindex A c (Group)
+@findex gnus-group-list-cached
+List all groups with cached articles (@code{gnus-group-list-cached}).
+
+@item A ?
+@kindex A ? (Group)
+@findex gnus-group-list-dormant
+List all groups with dormant articles (@code{gnus-group-list-dormant}).
+
 @end table
 
 @vindex gnus-permanently-visible-groups
@@ -3212,6 +3223,18 @@ Copy the current group to some other topic
 (@code{gnus-topic-copy-group}).  This command uses the process/prefix
 convention (@pxref{Process/Prefix}).
 
+@item T h
+@kindex T h (Topic)
+@findex gnus-topic-hide-topic
+Hide the current topic (@code{gnus-topic-hide-topic}).  If given
+a prefix, hide the topic permanently.
+
+@item T s
+@kindex T s (Topic)
+@findex gnus-topic-show-topic
+Show the current topic (@code{gnus-topic-show-topic}).  If given
+a prefix, show the topic permanently.
+
 @item T D
 @kindex T D (Topic)
 @findex gnus-topic-remove-group
@@ -3542,8 +3565,29 @@ generated.  It may be used to move point around, for instance.
 Groups matching this regexp will always be listed in the group buffer,
 whether they are empty or not.
 
-@end table
+@item gnus-group-name-charset-method-alist
+@vindex gnus-group-name-charset-method-alist
+An alist of method and the charset for group names. It is used to show
+non-ASCII group names.
+
+For example:
+@lisp
+(setq gnus-group-name-charset-method-alist
+    '(((nntp "news.com.cn") . cn-gb-2312)))
+@end lisp
 
+@item gnus-group-name-charset-group-alist
+@vindex gnus-group-name-charset-group-alist
+An alist of regexp of group name and the charset for group names. 
+It is used to show non-ASCII group names.
+
+For example:
+@lisp
+(setq gnus-group-name-charset-group-alist
+    '(("\\.com\\.cn:" . cn-gb-2312)))
+@end lisp
+
+@end table
 
 @node Scanning New Messages
 @subsection Scanning New Messages
@@ -3858,7 +3902,8 @@ the @code{a} spec.
 @item L
 Number of lines in the article.
 @item c
-Number of characters in the article.
+Number of characters in the article. This specifier is not supported in some
+methods (like nnfolder).
 @item I
 Indentation based on thread level (@pxref{Customizing Threading}).
 @item T
@@ -4479,12 +4524,21 @@ message (@code{gnus-summary-wide-reply-with-original}).  This command uses
 the process/prefix convention.
 
 @item S o m
+@itemx C-c C-f
 @kindex S o m (Summary)
+@kindex C-c C-f (Summary)
 @findex gnus-summary-mail-forward
 @c @icon{gnus-summary-mail-forward}
 Forward the current article to some other person
-(@code{gnus-summary-mail-forward}).  If given a prefix, include the full
-headers of the forwarded article.
+(@code{gnus-summary-mail-forward}).  If no prefix is given, the message
+is forwarded according to the value of (@code{message-forward-as-mime})
+and (@code{message-forward-show-mml}); if the prefix is 1, decode the
+message and forward directly inline; if the prefix is 2, foward message
+as an rfc822 MIME section; if the prefix is 3, decode message and
+forward as an rfc822 MIME section; if the prefix is 4, foward message
+directly inline; otherwise, the message is forwarded as no prefix given
+but use the flipped value of (@code{message-forward-as-mime}).  By
+default, the message is decoded and forwarded as an rfc822 MIME section.
 
 @item S m
 @itemx m
@@ -4609,8 +4663,16 @@ the process/prefix convention.
 @kindex S o p (Summary)
 @findex gnus-summary-post-forward
 Forward the current article to a newsgroup
-(@code{gnus-summary-post-forward}).  If given a prefix, include the full
-headers of the forwarded article.
+(@code{gnus-summary-post-forward}).  
+ If no prefix is given, the message is forwarded according to the value
+of (@code{message-forward-as-mime}) and
+(@code{message-forward-show-mml}); if the prefix is 1, decode the
+message and forward directly inline; if the prefix is 2, foward message
+as an rfc822 MIME section; if the prefix is 3, decode message and
+forward as an rfc822 MIME section; if the prefix is 4, foward message
+directly inline; otherwise, the message is forwarded as no prefix given
+but use the flipped value of (@code{message-forward-as-mime}).  By
+default, the message is decoded and forwarded as an rfc822 MIME section.
 
 @item S O p
 @kindex S O p (Summary)
@@ -5197,6 +5259,9 @@ Push the current process mark set onto the stack
 
 @end table
 
+Also see the @kbd{&} command in @pxref{Searching for Articles} for how to
+set process marks based on article body contents.
+
 
 @node Limiting
 @section Limiting
@@ -5793,11 +5858,19 @@ understand the numeric prefix.
 
 @item T n
 @kindex T n (Summary)
+@itemx M-C-n
+@kindex M-C-n (Summary)
+@itemx M-down
+@kindex M-down (Summary)
 @findex gnus-summary-next-thread
 Go to the next thread (@code{gnus-summary-next-thread}).
 
 @item T p
 @kindex T p (Summary)
+@itemx M-C-p
+@kindex M-C-p (Summary)
+@itemx M-up
+@kindex M-up (Summary)
 @findex gnus-summary-prev-thread
 Go to the previous thread (@code{gnus-summary-prev-thread}).
 
@@ -6743,7 +6816,7 @@ content type based on the file name.  The result will be fed to
 Non-@code{nil} means that @code{gnus-uu}, when asked to save without
 decoding, will save in digests.  If this variable is @code{nil},
 @code{gnus-uu} will just save everything in a file without any
-embellishments.  The digesting almost conforms to RFC1153---no easy way
+embellishments.  The digesting almost conforms to RFC 1153---no easy way
 to specify any meaningful volume and issue numbers were found, so I
 simply dropped them.
 
@@ -7060,10 +7133,11 @@ Signature}.
 @kindex W W l (Summary)
 @findex gnus-article-hide-list-identifiers
 @vindex gnus-list-identifiers
-Strip list identifiers specified in @code{gnus-list-identifiers}.
-These are strings some mailing list servers add to the beginning of
-all @code{Subject} headers---for example, @samp{[zebra 4711]}.  Any
-leading @samp{Re: } is skipped before stripping.
+Strip list identifiers specified in @code{gnus-list-identifiers}.  These
+are strings some mailing list servers add to the beginning of all
+@code{Subject} headers---for example, @samp{[zebra 4711]}.  Any leading
+@samp{Re: } is skipped before stripping. @code{gnus-list-identifiers}
+may not contain @code{\\(..\\)}.
 
 @table @code
 
@@ -7232,7 +7306,9 @@ positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter
 is rumored to have employed this form of, uh, somewhat weak encryption.
 
 @item W t
+@item t
 @kindex W t (Summary)
+@kindex t (Summary)
 @findex gnus-summary-toggle-header
 Toggle whether to display all headers in the article buffer
 (@code{gnus-summary-toggle-header}).
@@ -7299,6 +7375,31 @@ readable to me.  Note that the this is usually done automatically by
 Gnus if the message in question has a @code{Content-Transfer-Encoding}
 header that says that this encoding has been done.
 
+@item W 6
+@kindex W 6 (Summary)
+@findex gnus-article-de-base64-unreadable
+Treat base64 (@code{gnus-article-de-base64-unreadable}).
+Base64 is one common @sc{mime} encoding employed when sending non-ASCII
+(i. e., 8-bit) articles.  Note that the this is usually done
+automatically by Gnus if the message in question has a
+@code{Content-Transfer-Encoding} header that says that this encoding has
+been done.
+
+@item W Z
+@kindex W Z (Summary)
+@findex gnus-article-decode-HZ
+Treat HZ or HZP (@code{gnus-article-decode-HZ}).  HZ (or HZP) is one
+common encoding employed when sending Chinese articles.  It typically
+makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}.
+
+@item W h
+@kindex W h (Summary)
+@findex gnus-article-wash-html
+Treat HTML (@code{gnus-article-wash-html}).  
+Note that the this is usually done automatically by Gnus if the message
+in question has a @code{Content-Type} header that says that this type
+has been done.
+
 @item W f
 @kindex W f (Summary)
 @cindex x-face
@@ -7318,12 +7419,18 @@ If this variable is a string, this string will be executed in a
 sub-shell.  If it is a function, this function will be called with the
 face as the argument.  If the @code{gnus-article-x-face-too-ugly} (which
 is a regexp) matches the @code{From} header, the face will not be shown.
-The default action under Emacs is to fork off an @code{xv} to view the
-face; under XEmacs the default action is to display the face before the
+The default action under Emacs is to fork off the @code{display}
+program@footnote{@code{display} is from the ImageMagick package.  For the
+@code{uncompface} and @code{icontopbm} programs look for a package
+like `compface' or `faces-xface' on a GNU/Linux system.}
+to view the face.  Under XEmacs or Emacs 21+ with suitable image
+support, the default action is to display the face before the
 @code{From} header.  (It's nicer if XEmacs has been compiled with X-Face
 support---that will make display somewhat faster.  If there's no native
 X-Face support, Gnus will try to convert the @code{X-Face} header using
-external programs from the @code{pbmplus} package and friends.)  If you
+external programs from the @code{pbmplus} package and
+friends.@footnote{On a GNU/Linux system look for packages with names
+like @code{netpbm} or @code{libgr-progs}.})  If you
 want to have this function in the display hook, it should probably come
 last.
 
@@ -7639,6 +7746,8 @@ Translate the article from one language to another
 @node MIME Commands
 @section @sc{mime} Commands
 @cindex MIME decoding
+@cindex attachments
+@cindex viewing attachments
 
 The following commands all understand the numerical prefix.  For
 instance, @kbd{3 b} means ``view the third @sc{mime} part''.
@@ -7677,7 +7786,7 @@ the same manner:
 @table @kbd
 @item K b
 @kindex K b (Summary)
-Make all the @sc{mime} parts have buttons in from of them.  This is
+Make all the @sc{mime} parts have buttons in front of them.  This is
 mostly useful if you wish to save (or perform other actions) on inlined
 parts.
 
@@ -7704,7 +7813,7 @@ Toggle the buttonized display of the article buffer
 
 @item W M w
 @kindex W M w (Summary)
-Decode RFC2047-encoded words in the article headers
+Decode RFC 2047-encoded words in the article headers
 (@code{gnus-article-decode-mime-words}).
 
 @item W M c
@@ -8465,6 +8574,22 @@ If it is @code{nil} (which is the default), Gnus will rename the
 any other article.  If this variable is @code{t}, it won't display the
 article---it'll be as if it never existed.
 
+@vindex gnus-alter-articles-to-read-function
+@item gnus-alter-articles-to-read-function
+This function, which takes two parameters (the group name and the list
+of articles to be selected), is called to allow the user to alter the
+list of articles to be selected.
+
+For instance, the following function adds the list of cached articles to
+the list in one particular group:
+
+@lisp
+(defun my-add-cached-articles (group articles)
+  (if (string= group "some.group")
+      (append gnus-newsgroup-cached articles)
+    articles))
+@end lisp
+
 @end table
 
 
@@ -8525,10 +8650,14 @@ Search through all previous articles for a regexp
 @item &
 @kindex & (Summary)
 @findex gnus-summary-execute-command
-This command will prompt you for a header field, a regular expression to
-match on this field, and a command to be executed if the match is made
-(@code{gnus-summary-execute-command}).  If given a prefix, search
-backward instead.
+This command will prompt you for a header, a regular expression to match
+on this field, and a command to be executed if the match is made
+(@code{gnus-summary-execute-command}).  If the header is an empty
+string, the match is done on the entire article.  If given a prefix,
+search backward instead.
+
+For instance, @kbd{& RET some.*string #} will put the process mark on
+all articles that have heads or bodies that match @samp{some.*string}.
 
 @item M-&
 @kindex M-& (Summary)
@@ -9371,6 +9500,12 @@ headers will be included in the sequence they are matched.
 If non-@code{nil}, add a @code{to-list} group parameter to mail groups
 that have none when you do a @kbd{a}.
 
+@item message-send-mail-partially-limit
+@vindex message-send-mail-partially-limit
+The limitation of messages sent as message/partial.
+The lower bound of message size in characters, beyond which the message 
+should be sent in several parts. If it is nil, the size is unlimited.
+
 @end table
 
 
@@ -9670,8 +9805,9 @@ 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
-article.  If the attribute name is @code{eval}, the form is evaluated,
-and the result is thrown away.
+article; if the value is @code{nil}, the header name will be removed.
+If the attribute name is @code{eval}, the form is evaluated, and the
+result is thrown away.
 
 The attribute value can be a string (used verbatim), a function with
 zero arguments (the return value will be used), a variable (its value
@@ -10044,6 +10180,9 @@ Here's the method for a public spool:
       (nnmh-get-new-mail nil))
 @end lisp
 
+@cindex proxy
+@cindex firewall
+
 If you are behind a firewall and only have access to the @sc{nntp}
 server from the firewall machine, you can instruct Gnus to @code{rlogin}
 on the firewall machine and telnet from there to the @sc{nntp} server.
@@ -10833,7 +10972,10 @@ variable is @code{add-name-to-file} by default.)
 @kindex M-x nnmail-split-history
 @kindex nnmail-split-history
 If you wish to see where the previous mail split put the messages, you
-can use the @kbd{M-x nnmail-split-history} command.
+can use the @kbd{M-x nnmail-split-history} command.  If you wish to see
+where re-spooling messages would put the messages, you can use
+@code{gnus-summary-respool-trace} and related commands (@pxref{Mail
+Group Commands}). 
 
 Gnus gives you all the opportunity you could possibly want for shooting
 yourself in the foot.  Let's say you create a group that will contain
@@ -10909,7 +11051,7 @@ Or using the default path:
 @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 
+use POP or @sc{imap} or the like to fetch the mail.  You can not use ange-ftp 
 file names here---it has no way to lock the mail spool while moving the
 mail.
 
@@ -10928,7 +11070,7 @@ The @samp{getmail} script would look something like the following:
 #  flu@@iki.fi
 
 MOVEMAIL=/usr/lib/emacs/20.3/i386-redhat-linux/movemail
-TMP=~/Mail/tmp
+TMP=$HOME/Mail/tmp
 rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP
 @end example
 
@@ -10937,7 +11079,9 @@ 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.
+you have procmail split the incoming mail into several files.  Setting
+@code{nnmail-scan-directory-mail-source-once} to non-nil force Gnus to
+scan the mail source only once.
 
 Keywords:
 
@@ -10980,7 +11124,10 @@ The name of the POP server.  The default is taken from the
 @code{MAILHOST} environment variable.
 
 @item :port
-The port number of the POP server.  The default is @samp{pop3}.
+The port number of the POP server.  This can be a number (eg,
+@samp{:port 1234}) or a string (eg, @samp{:port "pop3"}).  If it is a
+string, it should be a service name as listed in @file{/etc/services} on
+Unix systems.  The default is @samp{"pop3"}.
 
 @item :user
 The user name to give to the POP server.  The default is the login
@@ -11074,12 +11221,16 @@ Keywords:
 @table @code
 @item :path
 The path of the directory where the mails are stored.  The default is
-@samp{~/Maildir/new}.
+taken from the @code{MAILDIR} environment variable or
+@samp{~/Maildir/}.
+@item :subdirs
+The subdirectories of the Maildir.  The default is
+@samp{("new" "cur")}.
 
-If you sometimes look at your mail through a pop3 daemon before fetching
-them with Gnus, you may also have to fetch your mails from the
-@code{cur} directory inside the maildir, like in the first example
-below.
+@c If you sometimes look at your mail through a pop3 daemon before fetching
+@c them with Gnus, you may also have to fetch your mails from the
+@c @code{cur} directory inside the maildir, like in the first example
+@c below.
 
 You can also get mails from remote hosts (because maildirs don't suffer
 from locking problems).
@@ -11089,11 +11240,11 @@ from locking problems).
 Two example maildir mail sources:
 
 @lisp
-(maildir :path "/home/user-name/Maildir/cur")
+(maildir :path "/home/user-name/Maildir/" :subdirs ("cur" "new"))
 @end lisp
 
 @lisp
-(maildir :path "/user@@remotehost.org:~/Maildir/new")
+(maildir :path "/user@@remotehost.org:~/Maildir/" :subdirs ("new"))
 @end lisp
 
 @item imap
@@ -11126,7 +11277,7 @@ What stream to use for connecting to the server, this is one of the
 symbols in @code{imap-stream-alist}.  Right now, this means
 @samp{kerberos4}, @samp{ssl} or the default @samp{network}.
 
-@item :authenticator
+@item :authentication
 Which authenticator to use for authenticating to the server, this is one
 of the symbols in @code{imap-authenticator-alist}.  Right now, this
 means @samp{kerberos4}, @samp{cram-md5}, @samp{anonymous} or the default
@@ -11142,13 +11293,13 @@ UNDELETED}, is probably the best choice for most people, 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.
+complete list of predicates, see RFC 2060 §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.  These are the two most likely choices,
-but more flags are defined in RFC2060 §2.3.2.
+but more flags are defined in RFC 2060 §2.3.2.
 
 @item :dontexpunge
 If non-nil, don't remove all articles marked as deleted in the mailbox
@@ -11163,11 +11314,14 @@ An example @sc{imap} mail source:
 @end lisp
 
 @item webmail
-Get mail from a webmail server, such as www.hotmail.com, 
-mail.yahoo.com, www.netaddress.com and www.my-deja.com. 
+Get mail from a webmail server, such as www.hotmail.com,
+webmail.netscape.com, www.netaddress.com, www.my-deja.com.
+
+NOTE: Now mail.yahoo.com provides POP3 service, so @sc{pop} mail source
+is suggested.
 
-NOTE: Webmail largely depends on w3 (url) package, whose version of "WWW
-4.0pre.46 1999/10/01" or previous ones may not work.
+NOTE: Webmail largely depends cookies. A "one-line-cookie" patch is
+required for url "4.0pre.46".
 
 WARNING: Mails may lost.  NO WARRANTY.
 
@@ -11176,7 +11330,7 @@ Keywords:
 @table @code
 @item :subtype
 The type of the webmail server.  The default is @code{hotmail}.  The
-alternatives are @code{yahoo}, @code{netaddress}, @code{my-deja}.
+alternatives are @code{netscape}, @code{netaddress}, @code{my-deja}.
 
 @item :user
 The user name to give to the webmail server.  The default is the login
@@ -11195,7 +11349,7 @@ folder after finishing the fetch.
 An example webmail source:
 
 @lisp
-(webmail :subtype 'yahoo :user "user-name" :password "secret")
+(webmail :subtype 'hotmail :user "user-name" :password "secret")
 @end lisp
 @end table
 
@@ -11207,11 +11361,43 @@ Keywords:
 
 @table @code
 @item :plugged
-If non-nil, fetch the mail even when Gnus is unplugged.
+If non-nil, fetch the mail even when Gnus is unplugged.  If you use
+directory source to get mail, you can specify it as in this example:
+
+@lisp
+(setq mail-sources
+      '((directory :path "/home/pavel/.Spool/" 
+                   :suffix ""
+                   :plugged t)))
+@end lisp
+
+Gnus will then fetch your mail even when you are unplugged.  This is
+useful when you use local mail and news.
 
 @end table
 @end table
 
+@subsubheading Function Interface
+
+Some of the above keywords specify a Lisp function to be executed.
+For each keyword @code{:foo}, the Lisp variable @code{foo} is bound to
+the value of the keyword while the function is executing.  For example,
+consider the following mail-source setting:
+
+@lisp
+(setq mail-sources '((pop :user "jrl"
+                          :server "pophost" :function fetchfunc)))
+@end lisp
+
+While the function @code{fetchfunc} is executing, the symbol @code{user}
+is bound to @code{"jrl"}, and the symbol @code{server} is bound to
+@code{"pophost"}.  The symbols @code{port}, @code{password},
+@code{program}, @code{prescript}, @code{postscript}, @code{function},
+and @code{authentication} are also bound (to their default values).
+
+See above for a list of keywords for each type of mail source.
+
+
 @node Mail Source Customization
 @subsubsection Mail Source Customization
 
@@ -11302,8 +11488,8 @@ use this hook to notify any mail watch programs, if you want to.
 @vindex nnmail-split-hook
 @item nnmail-split-hook
 @findex article-decode-encoded-words
-@findex RFC1522 decoding
-@findex RFC2047 decoding
+@findex RFC 1522 decoding
+@findex RFC 2047 decoding
 Hook run in the buffer where the mail headers of each message is kept
 just before the splitting based on these headers is done.  The hook is
 free to modify the buffer contents in any way it sees fit---the buffer
@@ -11434,6 +11620,18 @@ 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}.
 
+For instance, the following function could be used to split based on the
+body of the messages:
+
+@lisp
+(defun split-on-body ()
+  (save-excursion
+    (set-buffer " *nnmail incoming*")
+    (goto-char (point-min))
+    (when (re-search-forward "Some.*string" nil t)
+      "string.group")))
+@end lisp
+
 @item
 @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
@@ -11759,14 +11957,22 @@ change the expiry period (@pxref{Group Parameters}).
 @vindex nnmail-expiry-target
 The normal action taken when expiring articles is to delete them.
 However, in some circumstances it might make more sense to move them to
-other groups instead of deleting them.  The @code{nnmail-expiry-target}
+other groups instead of deleting them.  The variable @code{nnmail-expiry-target}
 (and the @code{expiry-target} group parameter) controls this.  The
+variable supplies a default value for all groups, which can be
+overridden for specific groups by the group parameter.
 default value is @code{delete}, but this can also be a string (which
 should be the name of the group the message should be moved to), or a
 function (which will be called in a buffer narrowed to the message in
 question, and with the name of the group being moved from as its
 parameter) which should return a target -- either a group name or
-@code{delete}. 
+@code{delete}.
+
+Here's an example for specifying a group name:
+@lisp
+(setq nnmail-expiry-target "nnml:expired")
+@end lisp
+
 
 @vindex nnmail-keep-last-article
 If @code{nnmail-keep-last-article} is non-@code{nil}, Gnus will never
@@ -11803,10 +12009,10 @@ auto-expire turned on.
 @cindex incoming mail treatment
 
 Mailers and list servers are notorious for doing all sorts of really,
-really stupid things with mail.  ``Hey, RFC822 doesn't explicitly
+really stupid things with mail.  ``Hey, RFC 822 doesn't explicitly
 prohibit us from adding the string @code{wE aRe ElItE!!!!!1!!} to the
 end of all lines passing through our server, so let's do that!!!!1!''
-Yes, but RFC822 wasn't designed to be read by morons.  Things that were
+Yes, but RFC 822 wasn't designed to be read by morons.  Things that were
 considered to be self-evident were not discussed.  So.  Here we are.
 
 Case in point:  The German version of Microsoft Exchange adds @samp{AW:
@@ -11851,7 +12057,8 @@ Some list servers add an identifier---for example, @samp{(idm)}---to the
 beginning of all @code{Subject} headers.  I'm sure that's nice for
 people who use stone age mail readers.  This function will remove
 strings that match the @code{nnmail-list-identifiers} regexp, which can
-also be a list of regexp.
+also be a list of regexp.  @code{nnmail-list-identifiers} may not contain
+@code{\\(..\\)}.
 
 For instance, if you want to remove the @samp{(idm)} and the
 @samp{nagnagnag} identifiers:
@@ -12616,7 +12823,7 @@ 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
+gnus-group-make-warchive-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.), or to browse the
@@ -13380,6 +13587,13 @@ server name if not specified.
 @vindex nnimap-server-port
 Port on server to contact.  Defaults to port 143, or 993 for SSL.
 
+Note that this should be a integer, example server specification:
+
+@lisp
+(nnimap "mail.server.com"
+        (nnimap-server-port 4711))
+@end lisp
+
 @item nnimap-list-pattern
 @vindex nnimap-list-pattern
 String or list of strings of mailboxes to limit available groups to.
@@ -13393,10 +13607,12 @@ REFERENCE is used for is server specific, but on the University of
 Washington server it's a directory that will be concatenated with the
 mailbox.
 
-Example:
+Example server specification:
 
 @lisp
-("INBOX" "Mail/*" "alt.sex.*" ("~friend/Mail/" . "list/*"))
+(nnimap "mail.server.com"
+        (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" 
+                               ("~friend/Mail/" . "list/*"))))
 @end lisp
 
 @item nnimap-stream
@@ -13406,6 +13622,15 @@ will detect and automatically use all of the below, with the exception
 of SSL. (SSL is being replaced by STARTTLS, which can be automatically
 detected, but it's not widely deployed yet).
 
+Example server specification:
+
+@lisp
+(nnimap "mail.server.com"
+        (nnimap-stream ssl))
+@end lisp
+
+Please note that the value of @code{nnimap-stream} is a symbol!
+
 @itemize @bullet
 @item
 @dfn{gssapi:} Connect with GSSAPI (usually kerberos 5). Require the
@@ -13420,17 +13645,30 @@ SSL). Require the external library @samp{starttls.el} and program
 @dfn{ssl:} Connect through SSL. Require OpenSSL (the
 program @samp{openssl}) or SSLeay (@samp{s_client}).
 @item
+@dfn{shell:} Use a shell command to start IMAP connection.
+@item
 @dfn{network:} Plain, TCP/IP network connection.
 @end itemize
 
+@vindex imap-kerberos4-program
 The @samp{imtest} program is shipped with Cyrus IMAPD, nnimap support
-both @samp{imtest} version 1.5.x and version 1.6.x.
+both @samp{imtest} version 1.5.x and version 1.6.x.  The variable
+@code{imap-kerberos4-program} contain parameters to pass to the imtest
+program.
 
+@vindex imap-ssl-program
 For SSL connections, the OpenSSL program is available from
 @file{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay,
-and nnimap support it too - altough the most recent versions of SSLeay,
-0.9.x, are known to have serious bugs making it useless. Earlier
-versions, especially 0.8.x, of SSLeay are known to work.
+and nnimap support it too - altough the most recent versions of
+SSLeay, 0.9.x, are known to have serious bugs making it
+useless. Earlier versions, especially 0.8.x, of SSLeay are known to
+work. The variable @code{imap-ssl-program} contain parameters to pass
+to OpenSSL/SSLeay.
+
+@vindex imap-shell-program
+@vindex imap-shell-host
+For IMAP connections using the @code{shell} stream, the variable
+@code{imap-shell-program} specify what program to call.
 
 @item nnimap-authenticator
 @vindex nnimap-authenticator
@@ -13438,6 +13676,15 @@ versions, especially 0.8.x, of SSLeay are known to work.
 The authenticator used to connect to the server.  By default, nnimap
 will use the most secure authenticator your server is capable of.
 
+Example server specification:
+
+@lisp
+(nnimap "mail.server.com"
+        (nnimap-authenticator anonymous))
+@end lisp
+
+Please note that the value of @code{nnimap-authenticator} is a symbol!
+
 @itemize @bullet
 @item
 @dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require
@@ -13489,8 +13736,17 @@ manually, @xref{Expunging mailboxes}.
 @item ask
 When closing mailboxes, nnimap will ask if you wish to expunge deleted
 articles or not.
+
 @end table
 
+@item nnimap-authinfo-file
+@vindex nnimap-authinfo-file
+
+A file containing credentials used to log in on servers.  The format is
+(almost) the same as the @code{ftp} @file{~/.netrc} file.  See the
+variable @code{nntp-authinfo-file} for exact syntax; also see
+@xref{NNTP}.
+
 @end table
 
 @menu
@@ -13591,10 +13847,30 @@ crossposting enabled.  In that case, all matching rules will "win".
 
 This variable can also have a function as its value, the function will
 be called with the headers narrowed and should return a group where it
-thinks the article should be splitted to.
+thinks the article should be splitted to.  See @code{nnimap-split-fancy}.
 
 The splitting code tries to create mailboxes if it need too.
 
+To allow for different split rules on different virtual servers, and
+even different split rules in different inboxes on the same server,
+the syntax of this variable have been extended along the lines of:
+
+@lisp
+(setq nnimap-split-rule
+      '(("my1server"    (".*"    (("ding"    "ding@@gnus.org")
+                                  ("junk"    "From:.*Simon")))
+        ("my2server"    ("INBOX" nnimap-split-fancy))
+        ("my[34]server" (".*"    (("private" "To:.*Simon")
+                                  ("junk"    my-junk-func)))))
+@end lisp
+
+The virtual server name is in fact a regexp, so that the same rules
+may apply to several servers.  In the example, the servers
+@code{my3server} and @code{my4server} both use the same rules.
+Similarly, the inbox string is also a regexp.  The actual splitting
+rules are as before, either a function, or a list with group/regexp or
+group/function elements.
+
 Nnmail equivalent: @code{nnmail-split-methods}.
 
 @item nnimap-split-predicate
@@ -13913,11 +14189,14 @@ already fetched while in this mode.
 @item
 You then decide to see whether any new news has arrived.  You connect
 your machine to the net (using PPP or whatever), and then hit @kbd{J j}
-to make Gnus become @dfn{plugged}.
+to make Gnus become @dfn{plugged} and use @kbd{g} to check for new mail
+as usual.  To check for new mail in unplugged mode, see (@pxref{Mail
+Source Specifiers}).
 
 @item
 You can then read the new news immediately, or you can download the news
-onto your local machine.  If you want to do the latter, you press @kbd{J
+onto your local machine.  If you want to do the latter, you press @kbd{g}
+to check if there are any new news and then @kbd{J
 s} to fetch all the eligible articles in all the groups.  (To let Gnus
 know which articles you want to download, @pxref{Agent Categories}.)
 
@@ -18148,6 +18427,17 @@ some headers.  I don't see why you'd want that, though.
 @vindex gnus-shell-command-separator
 String used to separate two shell commands.  The default is @samp{;}.
 
+@item gnus-invalid-group-regexp
+@vindex gnus-invalid-group-regexp
+
+Regexp to match ``invalid'' group names when querying user for a group
+name.  The default value catches some @strong{really} invalid group
+names who could possibly mess up Gnus internally (like allowing
+@samp{:} in a group name, which is normally used to delimit method and
+group).
+
+IMAP users might want to allow @samp{/} in group names though.
+
 
 @end table
 
@@ -20760,6 +21050,23 @@ a message?  That is, `B WHATEVER', you're popped into a buffer, write
 something, end with `C-c C-c', and then the thing you've written gets
 to be the child of the message you're commenting.
 
+@item
+Handle external-body parts.
+
+@item
+When renaming a group name, nnmail-split-history does not get the group
+name renamed.
+
+@item
+Allow mail splitting on bodies when using advanced mail splitting.
+
+@lisp
+  (body "whatever.text")
+@end lisp
+
+@item
+Be able to run `J u' from summary buffers.
+
 @item
 Solve the halting problem.
 
@@ -21036,7 +21343,7 @@ An article that responds to a different article---its parent.
 @item digest
 @cindex digest
 A collection of messages in one file.  The most common digest format is
-specified by RFC1153.
+specified by RFC 1153.
 
 @end table
 
@@ -22288,7 +22595,7 @@ almost suspect that the author looked at the @sc{nov} specification and
 just shamelessly @emph{stole} the entire thing, and one would be right.
 
 @dfn{Header} is a severely overloaded term.  ``Header'' is used in
-RFC1036 to talk about lines in the head of an article (e.g.,
+RFC 1036 to talk about lines in the head of an article (e.g.,
 @code{From}).  It is used by many people as a synonym for
 ``head''---``the header and the body''.  (That should be avoided, in my
 opinion.)  And Gnus uses a format internally that it calls ``header'',