(Maildir): Filled.
[gnus] / texi / gnus.texi
index 7a8d155..27ff007 100644 (file)
@@ -53,6 +53,9 @@
 
 \newcommand{\gnustt}[1]{{\gnusselectttfont{}#1}}
 \newcommand{\gnuscode}[1]{\gnustt{#1}}
+\newcommand{\gnusasis}[1]{\gnustt{#1}}
+\newcommand{\gnusurl}[1]{\gnustt{#1}}
+\newcommand{\gnuscommand}[1]{\gnustt{#1}}
 \newcommand{\gnusenv}[1]{\gnustt{#1}}
 \newcommand{\gnussamp}[1]{``{\fontencoding{OT1}\gnusselectttfont{}#1}''}
 \newcommand{\gnuslisp}[1]{\gnustt{#1}}
 }
 }{\end{list}}
 
+\newenvironment{asislist}%
+{\begin{list}{}{
+}
+}{\end{list}}
+
 \newenvironment{kbdlist}%
 {\begin{list}{}{
 \labelwidth=0cm
@@ -565,15 +573,9 @@ Marking Articles
 * Unread Articles::             Marks for unread articles.
 * Read Articles::               Marks for read articles.
 * Other Marks::                 Marks that do not affect readedness.
-* Setting Marks::
-* Generic Marking Commands::
-* Setting Process Marks::
-
-Marking Articles
-
-* Setting Marks::             How to set and remove marks.
-* Generic Marking Commands::  How to customize the marking.
-* Setting Process Marks::     How to mark articles for later processing.
+* Setting Marks::               How to set and remove marks.
+* Generic Marking Commands::    How to customize the marking.
+* Setting Process Marks::       How to mark articles for later processing.
 
 Threading
 
@@ -728,6 +730,7 @@ Browsing the Web
 * Editing IMAP ACLs::           Limiting/enabling other users access to a mailbox.
 * Expunging mailboxes::         Equivalent of a ``compress mailbox'' button.
 * A note on namespaces::        How to (not) use @acronym{IMAP} namespace in Gnus.
+* Debugging IMAP::              What to do when things don't work.
 
 Other Sources
 
@@ -848,9 +851,10 @@ Formatting Variables
 
 Image Enhancements
 
-* Picons::                      How to display pictures of what you're reading.
-* Smileys::                     Show all those happy faces the way they were meant to be shown.
 * X-Face::                      Display a funky, teensy black-and-white image.
+* Face::                        Display a funkier, teensier colored image.
+* Smileys::                     Show all those happy faces the way they were meant to be shown.
+* Picons::                      How to display pictures of what you're reading.
 * XVarious::                    Other XEmacsy Gnusey variables.
 
 Thwarting Email Spam
@@ -862,6 +866,26 @@ Thwarting Email Spam
 * Filtering Spam Using The Spam ELisp Package::
 * Filtering Spam Using Statistics with spam-stat::
 
+Filtering Spam Using The Spam ELisp Package
+
+* Blacklists and Whitelists::
+* BBDB Whitelists::
+* Gmane Spam Reporting::
+* Anti-spam Hashcash Payments::
+* Blackholes::
+* Regular Expressions Header Matching::
+* Bogofilter::
+* ifile spam filtering::
+* spam-stat spam filtering::
+* SpamOracle::
+* Extending the spam elisp package::
+
+Filtering Spam Using Statistics with spam-stat
+
+* Creating a spam-stat dictionary::
+* Splitting mail using spam-stat::
+* Low-level interface to the spam-stat dictionary::
+
 Appendices
 
 * XEmacs::                      Requirements for installing under XEmacs.
@@ -953,7 +977,7 @@ If you want to start Gnus in a different frame, you can use the command
 
 If things do not go smoothly at startup, you have to twiddle some
 variables in your @file{~/.gnus.el} file.  This file is similar to
-@file{~/.emacs}, but is read when gnus starts.
+@file{~/.emacs}, but is read when Gnus starts.
 
 If you puzzle at any terms used in this manual, please refer to the
 terminology section (@pxref{Terminology}).
@@ -1329,11 +1353,11 @@ subscribed, and if it matches the latter, it will be ignored.
 @vindex gnus-auto-subscribed-groups
 Yet another variable that meddles here is
 @code{gnus-auto-subscribed-groups}.  It works exactly like
-@code{gnus-options-subscribe}, and is therefore really superfluous, but I
-thought it would be nice to have two of these.  This variable is more
-meant for setting some ground rules, while the other variable is used
-more for user fiddling.  By default this variable makes all new groups
-that come from mail back ends (@code{nnml}, @code{nnbabyl},
+@code{gnus-options-subscribe}, and is therefore really superfluous,
+but I thought it would be nice to have two of these.  This variable is
+more meant for setting some ground rules, while the other variable is
+used more for user fiddling.  By default this variable makes all new
+groups that come from mail back ends (@code{nnml}, @code{nnbabyl},
 @code{nnfolder}, @code{nnmbox}, @code{nnmh}, and @code{nnmaildir})
 subscribed.  If you don't like that, just set this variable to
 @code{nil}.
@@ -2506,7 +2530,7 @@ consulted.
 @cindex making groups
 Make a new group (@code{gnus-group-make-group}).  Gnus will prompt you
 for a name, a method and possibly an @dfn{address}.  For an easier way
-to subscribe to @acronym{NNTP} groups, @pxref{Browse Foreign Server}.
+to subscribe to @acronym{NNTP} groups (@pxref{Browse Foreign Server}).
 
 @item G r
 @kindex G r (Group)
@@ -2624,6 +2648,13 @@ If you use the @code{google} search engine, you can limit the search
 to a particular group by using a match string like
 @samp{shaving group:alt.sysadmin.recovery}.
 
+@item G R
+@kindex G R (Group)
+@findex gnus-group-make-rss-group
+Make a group based on an @acronym{RSS} feed
+(@code{gnus-group-make-rss-group}).  You will be prompted for an URL.
+@xref{RSS}.
+
 @item G DEL
 @kindex G DEL (Group)
 @findex gnus-group-delete-group
@@ -2632,7 +2663,7 @@ This function will delete the current group
 actually delete all the articles in the group, and forcibly remove the
 group itself from the face of the Earth.  Use a prefix only if you are
 absolutely sure of what you are doing.  This command can't be used on
-read-only groups (like @code{nntp} group), though.
+read-only groups (like @code{nntp} groups), though.
 
 @item G V
 @kindex G V (Group)
@@ -2723,10 +2754,6 @@ then a @code{to-list} group parameter will be added automatically upon
 sending the message if @code{gnus-add-to-list} is set to @code{t}.
 @vindex gnus-add-to-list
 
-If you do an @kbd{a} command in a mail group and you don't have a
-@code{to-list} group parameter, one will be added automatically upon
-sending the message.
-
 @findex gnus-mailing-list-mode
 @cindex mail list groups
 If this variable is set, @code{gnus-mailing-list-mode} is turned on when
@@ -2737,16 +2764,22 @@ See also @code{gnus-parameter-to-list-alist}.
 @anchor{subscribed}
 @item subscribed
 @cindex subscribed
+@cindex Mail-Followup-To
+@findex gnus-find-subscribed-addresses
 If this parameter is set to @code{t}, Gnus will consider the
 to-address and to-list parameters for this group as addresses of
 mailing lists you are subscribed to.  Giving Gnus this information is
 (only) a first step in getting it to generate correct Mail-Followup-To
-headers for your posts to these lists.  Look here @pxref{Mailing
-Lists, , Mailing Lists, message, The Message Manual} for a complete
-treatment of available MFT support.
+headers for your posts to these lists.  The second step is to put the
+following in your @file{.gnus.el}
 
-See also @code{gnus-find-subscribed-addresses}, the function that
-directly uses this group parameter.
+@lisp
+(setq message-subscribed-address-functions
+      '(gnus-find-subscribed-addresses))
+@end lisp
+
+@xref{Mailing Lists, ,Mailing Lists, message, The Message Manual}, for
+a complete treatment of available MFT support.
 
 @item visible
 @cindex visible
@@ -2783,9 +2816,11 @@ composed messages will be @code{Gcc}'d to the current group.  If
 generated, if @code{(gcc-self . "string")} is present, this string will
 be inserted literally as a @code{gcc} header.  This parameter takes
 precedence over any default @code{Gcc} rules as described later
-(@pxref{Archived Messages}).  CAVEAT:: It yields an error putting
-@code{(gcc-self . t)} in groups of a @code{nntp} server or so, because
-a @code{nntp} server doesn't accept articles.
+(@pxref{Archived Messages}).
+
+@strong{Caveat}: Adding @code{(gcc-self . t)} to the parameter list of
+@code{nntp} groups (or the like) isn't valid.  An @code{nntp} server
+doesn't accept articles.
 
 @item auto-expire
 @cindex auto-expire
@@ -2815,6 +2850,11 @@ If the group parameter has an element that looks like
 can either be a number of days (not necessarily an integer) or the
 symbols @code{never} or @code{immediate}.
 
+@item expiry-target
+@cindex expiry-target
+Where expired messages end up.  This parameter overrides
+@code{nnmail-expiry-target}.
+
 @item score-file
 @cindex score file group parameter
 Elements that look like @code{(score-file . "file")} will make
@@ -2941,7 +2981,7 @@ that should be placed in this group.  From this group parameter, a
 Sieve @samp{IF} control structure is generated, having the test as the
 condition and @samp{fileinto "group.name";} as the body.
 
-For example, if the INBOX.list.sieve group has the @code{(sieve
+For example, if the @samp{INBOX.list.sieve} group has the @code{(sieve
 address "sender" "sieve-admin@@extundo.com")} group parameter, when
 translating the group parameter into a Sieve script (@pxref{Sieve
 Commands}) the following Sieve code is generated:
@@ -2952,8 +2992,15 @@ if address \"sender\" \"sieve-admin@@extundo.com\" @{
 @}
 @end example
 
-The Sieve language is described in RFC 3028.  @xref{Top, , Top, sieve,
-Emacs Sieve}.
+The Sieve language is described in RFC 3028.  @xref{Top, Emacs Sieve,
+Top, sieve, Emacs Sieve}.
+
+@item (agent parameters)
+If the agent has been enabled, you can set any of the its parameters
+to control the behavior of the agent in individual groups. See Agent
+Parameters in @ref{Category Syntax}.  Most users will choose to set
+agent parameters in either an agent category or group topic to
+minimize the configuration effort.
 
 @item (@var{variable} @var{form})
 You can use the group parameters to set variables local to the group you
@@ -2971,6 +3018,7 @@ question to @code{gnus-newsgroup-variables}.  @xref{Various Summary
 Stuff}.  So if you want to set @code{message-from-style} via the group
 parameters, then you may need the following statement elsewhere in your
 @file{~/.gnus} file:
+
 @lisp
 (add-to-list 'gnus-newsgroup-variables 'message-from-style)
 @end lisp
@@ -2978,9 +3026,11 @@ parameters, then you may need the following statement elsewhere in your
 @vindex gnus-list-identifiers
 A use for this feature is to remove a mailing list identifier tag in
 the subject fields of articles.  E.g. if the news group
+
 @example
 nntp+news.gnus.org:gmane.text.docbook.apps
 @end example
+
 has the tag @samp{DOC-BOOK-APPS:} in the subject of all articles, this
 tag can be removed from the article subjects in the summary buffer for
 the group by putting @code{(gnus-list-identifiers "DOCBOOK-APPS:")}
@@ -3600,9 +3650,9 @@ Yank the previously killed group or topic
 before all groups.
 
 So, to move a topic to the beginning of the list of topics, just hit
-@kbd{C-k} on it.  This is like the `cut' part of cut and paste.  Then,
-move the cursor to the beginning of the buffer (just below the `Gnus'
-topic) and hit @kbd{C-y}.  This is like the `paste' part of cut and
+@kbd{C-k} on it.  This is like the ``cut'' part of cut and paste.  Then,
+move the cursor to the beginning of the buffer (just below the ``Gnus''
+topic) and hit @kbd{C-y}.  This is like the ``paste'' part of cut and
 paste.  Like I said -- E-Z.
 
 You can use @kbd{C-k} and @kbd{C-y} on groups as well as on topics.  So
@@ -3849,7 +3899,7 @@ Sort the current topic alphabetically by server name
 (@code{gnus-topic-sort-groups-by-server}).
 
 @item T S s
-@kindex T S s
+@kindex T S s (Topic)
 @findex gnus-topic-sort-groups
 Sort the current topic according to the function(s) given by the
 @code{gnus-group-sort-function} variable
@@ -3912,9 +3962,11 @@ allowed---@code{visible} and @code{invisible}.
 @subsection Topic Parameters
 @cindex topic parameters
 
-All groups in a topic will inherit group parameters from the parent (and
-ancestor) topic parameters.  All valid group parameters are valid topic
-parameters (@pxref{Group Parameters}).
+All groups in a topic will inherit group parameters from the parent
+(and ancestor) topic parameters.  All valid group parameters are valid
+topic parameters (@pxref{Group Parameters}).  When the agent is
+enabled, all agent parameters (See Agent Parameters in @ref{Category
+Syntax}) are also valid topic parameters.
 
 In addition, the following parameters are only valid as topic
 parameters:
@@ -3939,6 +3991,7 @@ know.  Normal inheritance rules.  (@dfn{Rules} is here a noun, not a
 verb, although you may feel free to disagree with me here.)
 
 @example
+@group
 Gnus
   Emacs
      3: comp.emacs
@@ -3951,6 +4004,7 @@ Gnus
      8: comp.binaries.fractals
     13: comp.sources.unix
    452: alt.sex.emacs
+@end group   
 @end example
 
 The @samp{Emacs} topic has the topic parameter @code{(score-file
@@ -4631,7 +4685,7 @@ Age sensitive date format.  Various date format is defined in
 @item u
 User defined specifier.  The next character in the format string should
 be a letter.  Gnus will call the function
-@code{gnus-user-format-function-}@samp{X}, where @samp{X} is the letter
+@code{gnus-user-format-function-@var{x}}, where @var{x} is the letter
 following @samp{%u}.  The function will be passed the current header as
 argument.  The function should return a string, which will be inserted
 into the summary just like information from any other summary specifier.
@@ -4950,7 +5004,7 @@ unread article (@code{gnus-summary-next-page}).
 
 If you have an article window open already and you press @kbd{SPACE}
 again, the article will be scrolled.  This lets you conveniently
-@kbd{SPACE} through an entire newsgroup.  @pxref{Paging the Article}.
+@kbd{SPACE} through an entire newsgroup.  @xref{Paging the Article}.
 
 @item G n
 @itemx n
@@ -5217,7 +5271,8 @@ command uses the process/prefix convention.
 Mail a wide reply to the author of the current article
 (@code{gnus-summary-wide-reply}).  A @dfn{wide reply} is a reply that
 goes out to all people listed in the @code{To}, @code{From} (or
-@code{Reply-to}) and @code{Cc} headers.
+@code{Reply-to}) and @code{Cc} headers.  If @code{Mail-Followup-To} is
+present, that's used instead.
 
 @item S W
 @kindex S W (Summary)
@@ -5816,7 +5871,7 @@ Compare with @code{gnus-recent-mark}.
 
 @item
 @vindex gnus-downloaded-mark
-When using the Gnus agent @pxref{Agent Basics}, articles may be
+When using the Gnus agent (@pxref{Agent Basics}), articles may be
 downloaded for unplugged (offline) viewing.  If you are using the
 @samp{%O} spec, these articles get the @samp{+} mark in that spec.
 (The variable @code{gnus-downloaded-mark} controls which character to
@@ -5824,7 +5879,7 @@ use.)
 
 @item
 @vindex gnus-undownloaded-mark
-When using the Gnus agent @pxref{Agent Basics}, some articles might
+When using the Gnus agent (@pxref{Agent Basics}), some articles might
 not have been downloaded.  Such articles cannot be viewed while you
 are unplugged (offline).  If you are using the @samp{%O} spec, these
 articles get the @samp{-} mark in that spec.  (The variable
@@ -5832,7 +5887,7 @@ articles get the @samp{-} mark in that spec.  (The variable
 
 @item
 @vindex gnus-downloadable-mark
-The Gnus agent @pxref{Agent Basics} downloads some articles
+The Gnus agent (@pxref{Agent Basics}) downloads some articles
 automatically, but it is also possible to explicitly mark articles for
 download, even if they would not be downloaded automatically.  Such
 explicitly-marked articles get the @samp{%} mark in the first column.
@@ -6115,7 +6170,7 @@ expression (@code{gnus-uu-unmark-by-regexp}).
 Mark articles in region (@code{gnus-uu-mark-region}).
 
 @item M P g
-@kindex M P g
+@kindex M P g (Summary)
 @findex gnus-uu-unmark-region
 Unmark articles in region (@code{gnus-uu-unmark-region}).
 
@@ -6179,7 +6234,7 @@ Push the current process mark set onto the stack
 
 @end table
 
-Also see the @kbd{&} command in @pxref{Searching for Articles} for how to
+Also see the @kbd{&} command in @ref{Searching for Articles}, for how to
 set process marks based on article body contents.
 
 
@@ -6275,8 +6330,8 @@ score (@code{gnus-summary-limit-to-score}).
 @findex gnus-summary-limit-to-display-predicate
 Limit the summary buffer to articles that satisfy the @code{display}
 group parameter predicate
-(@code{gnus-summary-limit-to-display-predicate}).  See @pxref{Group
-Parameters} for more on this predicate.
+(@code{gnus-summary-limit-to-display-predicate}).  @xref{Group
+Parameters}, for more on this predicate.
 
 @item / E
 @itemx M S
@@ -6357,7 +6412,7 @@ trees, but unfortunately, the @code{References} header is often broken
 or simply missing.  Weird news propagation exacerbates the problem,
 so one has to employ other heuristics to get pleasing results.  A
 plethora of approaches exists, as detailed in horrible detail in
-@pxref{Customizing Threading}.
+@ref{Customizing Threading}.
 
 First, a quick overview of the concepts:
 
@@ -6603,16 +6658,16 @@ something like:
 @item gnus-fetch-old-headers
 @vindex gnus-fetch-old-headers
 If non-@code{nil}, Gnus will attempt to build old threads by fetching
-more old headers---headers to articles marked as read.  If you
-would like to display as few summary lines as possible, but still
-connect as many loose threads as possible, you should set this variable
-to @code{some} or a number.  If you set it to a number, no more than
-that number of extra old headers will be fetched.  In either case,
-fetching old headers only works if the back end you are using carries
-overview files---this would normally be @code{nntp}, @code{nnspool},
+more old headers---headers to articles marked as read.  If you would
+like to display as few summary lines as possible, but still connect as
+many loose threads as possible, you should set this variable to
+@code{some} or a number.  If you set it to a number, no more than that
+number of extra old headers will be fetched.  In either case, fetching
+old headers only works if the back end you are using carries overview
+files---this would normally be @code{nntp}, @code{nnspool},
 @code{nnml}, and @code{nnmaildir}.  Also remember that if the root of
-the thread has been expired by the server, there's not much Gnus can do
-about that.
+the thread has been expired by the server, there's not much Gnus can
+do about that.
 
 This variable can also be set to @code{invisible}.  This won't have any
 visible effects, but is useful if you use the @kbd{A T} command a lot
@@ -6906,7 +6961,8 @@ Matching}).
 @findex gnus-thread-sort-by-number
 @findex gnus-thread-sort-by-random
 @vindex gnus-thread-sort-functions
-@findex gnus-thread-sort-by-most-recent-thread
+@findex gnus-thread-sort-by-most-recent-number
+@findex gnus-thread-sort-by-most-recent-date
 If you are using a threaded summary display, you can sort the threads by
 setting @code{gnus-thread-sort-functions}, which can be either a single
 function, a list of functions, or a list containing functions and
@@ -8643,7 +8699,7 @@ Fold all the message headers
 (@code{gnus-article-treat-fold-headers}).
 
 @item W E w
-@kindex W E w
+@kindex W E w (Summary)
 @findex gnus-article-remove-leading-whitespace
 Remove excessive whitespace from all headers
 (@code{gnus-article-remove-leading-whitespace}).
@@ -9583,11 +9639,11 @@ then ask Google if that fails:
 
 Most of the mail back ends support fetching by @code{Message-ID}, but
 do not do a particularly excellent job at it.  That is, @code{nnmbox},
-@code{nnbabyl}, and @code{nnmaildir} are able to locate articles from
-any groups, while @code{nnml}, @code{nnfolder}, and @code{nnimap} are
-only able to locate articles that have been posted to the current group.
-(Anything else would be too time consuming.)  @code{nnmh} does not
-support this at all.
+@code{nnbabyl}, @code{nnmaildir}, @code{nnml}, are able to locate
+articles from any groups, while @code{nnfolder}, and @code{nnimap} are
+only able to locate articles that have been posted to the current
+group.  (Anything else would be too time consuming.)  @code{nnmh} does
+not support this at all.
 
 
 @node Alternative Approaches
@@ -10171,7 +10227,7 @@ on this field, and a command to be executed if the match is made
 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
+For instance, @kbd{& RET some.*string RET #} will put the process mark on
 all articles that have heads or bodies that match @samp{some.*string}.
 
 @item M-&
@@ -10276,8 +10332,10 @@ group and return you to the group buffer.
 @table @kbd
 
 @item Z Z
+@itemx Z Q
 @itemx q
 @kindex Z Z (Summary)
+@kindex Z Q (Summary)
 @kindex q (Summary)
 @findex gnus-summary-exit
 @vindex gnus-summary-exit-hook
@@ -10322,7 +10380,9 @@ Mark all articles as read and go to the next group
 (@code{gnus-summary-catchup-and-goto-next-group}).
 
 @item Z R
+@itemx C-x C-s
 @kindex Z R (Summary)
+@kindex C-x C-s (Summary)
 @findex gnus-summary-reselect-current-group
 Exit this group, and then enter it again
 (@code{gnus-summary-reselect-current-group}).  If given a prefix, select
@@ -10740,7 +10800,7 @@ variable, will be displayed in random order after all the headers listed in this
 You can hide further boring headers by setting
 @code{gnus-treat-hide-boring-headers} to @code{head}.  What this function
 does depends on the @code{gnus-boring-article-headers} variable.  It's a
-list, but this list doesn't actually contain header names.  Instead is
+list, but this list doesn't actually contain header names.  Instead it
 lists various @dfn{boring conditions} that Gnus can check and remove
 from sight.
 
@@ -10752,9 +10812,9 @@ Remove all empty headers.
 Remove the @code{Followup-To} header if it is identical to the
 @code{Newsgroups} header.
 @item reply-to
-Remove the @code{Reply-To} header if it lists the same address as the
-@code{From} header, or if the @code{broken-reply-to} group parameter is
-set.
+Remove the @code{Reply-To} header if it lists the same addresses as
+the @code{From} header, or if the @code{broken-reply-to} group
+parameter is set.
 @item newsgroups
 Remove the @code{Newsgroups} header if it only contains the current group
 name.
@@ -10886,7 +10946,7 @@ Insert the contents of the @acronym{MIME} object into the buffer
 (@code{gnus-mime-inline-part}) as text/plain.  If given a prefix, insert
 the raw contents without decoding.  If given a numerical prefix, you can
 do semi-manual charset stuff (see
-@code{gnus-summary-show-article-charset-alist} in @pxref{Paging the
+@code{gnus-summary-show-article-charset-alist} in @ref{Paging the
 Article}).
 
 @findex gnus-mime-view-part-internally
@@ -10931,7 +10991,7 @@ to look at you disdainfully, and you'll feel rather stupid.)
 
 Any similarity to real events and people is purely coincidental.  Ahem.
 
-Also see @pxref{MIME Commands}.
+Also @pxref{MIME Commands}.
 
 
 @node Customizing Articles
@@ -11050,7 +11110,7 @@ is controlled by @code{gnus-body-boundary-delimiter}.
 
 @xref{Smileys}.
 
-@item gnus-treat-display-xface (head)
+@item gnus-treat-display-x-face (head)
 
 @xref{X-Face}.
 
@@ -11318,7 +11378,7 @@ on your setup (@pxref{Posting Server}).
 * Signing and encrypting::      How to compose secure messages.
 @end menu
 
-Also see @pxref{Canceling and Superseding} for information on how to
+Also @pxref{Canceling and Superseding} for information on how to
 remove articles you shouldn't have posted.
 
 
@@ -11531,9 +11591,8 @@ determined by the @code{gnus-message-archive-group} variable.
 
 This variable can be used to do the following:
 
-@itemize @bullet
-@item
-a string
+@table @asis
+@item a string
 Messages will be saved in that group.
 
 Note that you can include a select method in the group name, then the
@@ -11545,16 +11604,16 @@ has the default value shown above.  Then setting
 messages are stored in @samp{nnfolder+archive:foo}, but if you use the
 value @code{"nnml:foo"}, then outgoing messages will be stored in
 @samp{nnml:foo}.
-@item
-a list of strings
+
+@item a list of strings
 Messages will be saved in all those groups.
-@item
-an alist of regexps, functions and forms
+
+@item an alist of regexps, functions and forms
 When a key ``matches'', the result is used.
-@item
-@code{nil}
+
+@item @code{nil}
 No message archiving will take place.  This is the default.
-@end itemize
+@end table
 
 Let's illustrate:
 
@@ -11687,7 +11746,7 @@ string, then Gnus will try to regexp match it against the group name.
 If it is the form @code{(header @var{match} @var{regexp})}, then Gnus
 will look in the original article for a header whose name is
 @var{match} and compare that @var{regexp}.  @var{match} and
-@var{regexp} are strings.  (There original article is the one you are
+@var{regexp} are strings.  (The original article is the one you are
 replying or following up to.  If you are not composing a reply or a
 followup, then there is nothing to match against.)  If the
 @code{match} is a function symbol, that function will be called with
@@ -11698,15 +11757,22 @@ said to @dfn{match}.
 
 Each style may contain an arbitrary amount of @dfn{attributes}.  Each
 attribute consists of a @code{(@var{name} @var{value})} pair.  The
-attribute name can be one of @code{signature}, @code{signature-file},
-@code{x-face-file}, @code{address} (overriding
-@code{user-mail-address}), @code{name} (overriding
-@code{(user-full-name)}) or @code{body}.  The attribute name can also
-be a string or a symbol.  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 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.
+attribute name can be one of:
+
+@itemize @bullet
+@item @code{signature}
+@item @code{signature-file}
+@item @code{x-face-file}
+@item @code{address}, overriding @code{user-mail-address}
+@item @code{name}, overriding @code{(user-full-name)}
+@item @code{body}
+@end itemize
+
+The attribute name can also be a string or a symbol.  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 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
@@ -11887,52 +11953,52 @@ are in reply to encrypted messages.  Gnus offers
 @code{gnus-message-replysignencrypted} (on by default) will sign
 automatically encrypted messages.
 
-Instructing MML to perform security operations on a @acronym{MIME} part is
-done using the @kbd{C-c C-m s} key map for signing and the @kbd{C-c
-C-m c} key map for encryption, as follows.
+Instructing @acronym{MML} to perform security operations on a
+@acronym{MIME} part is done using the @kbd{C-c C-m s} key map for
+signing and the @kbd{C-c C-m c} key map for encryption, as follows.
 
 @table @kbd
 
 @item C-c C-m s s
-@kindex C-c C-m s s
+@kindex C-c C-m s s (Message)
 @findex mml-secure-message-sign-smime
 
 Digitally sign current message using @acronym{S/MIME}.
 
 @item C-c C-m s o
-@kindex C-c C-m s o
+@kindex C-c C-m s o (Message)
 @findex mml-secure-message-sign-pgp
 
 Digitally sign current message using @acronym{PGP}.
 
 @item C-c C-m s p
-@kindex C-c C-m s p
+@kindex C-c C-m s p (Message)
 @findex mml-secure-message-sign-pgp
 
 Digitally sign current message using @acronym{PGP/MIME}.
 
 @item C-c C-m c s
-@kindex C-c C-m c s
+@kindex C-c C-m c s (Message)
 @findex mml-secure-message-encrypt-smime
 
 Digitally encrypt current message using @acronym{S/MIME}.
 
 @item C-c C-m c o
-@kindex C-c C-m c o
+@kindex C-c C-m c o (Message)
 @findex mml-secure-message-encrypt-pgp
 
 Digitally encrypt current message using @acronym{PGP}.
 
 @item C-c C-m c p
-@kindex C-c C-m c p
+@kindex C-c C-m c p (Message)
 @findex mml-secure-message-encrypt-pgpmime
 
 Digitally encrypt current message using @acronym{PGP/MIME}.
 
 @item C-c C-m C-n
-@kindex C-c C-m C-n
+@kindex C-c C-m C-n (Message)
 @findex mml-unsecure-message
-Remove security related MML tags from message.
+Remove security related @acronym{MML} tags from message.
 
 @end table
 
@@ -12229,27 +12295,26 @@ If you're saving lots of articles in the cache by using persistent
 articles, you may want to create a virtual server to read the cache.
 
 First you need to add a new server.  The @kbd{a} command does that.  It
-would probably be best to use @code{nnspool} to read the cache.  You
-could also use @code{nnml} or @code{nnmh}, though.
+would probably be best to use @code{nnml} to read the cache.  You
+could also use @code{nnspool} or @code{nnmh}, though.
 
-Type @kbd{a nnspool RET cache RET}.
+Type @kbd{a nnml RET cache RET}.
 
-You should now have a brand new @code{nnspool} virtual server called
+You should now have a brand new @code{nnml} virtual server called
 @samp{cache}.  You now need to edit it to have the right definitions.
 Type @kbd{e} to edit the server.  You'll be entered into a buffer that
 will contain the following:
 
 @lisp
-(nnspool "cache")
+(nnml "cache")
 @end lisp
 
 Change that to:
 
 @lisp
-(nnspool "cache"
-         (nnspool-spool-directory "~/News/cache/")
-         (nnspool-nov-directory "~/News/cache/")
-         (nnspool-active-file "~/News/cache/active"))
+(nnml "cache"
+         (nnml-directory "~/News/cache/")
+         (nnml-active-file "~/News/cache/active"))
 @end lisp
 
 Type @kbd{C-c C-c} to return to the server buffer.  If you now press
@@ -12967,7 +13032,7 @@ deleted?  How awful!
 But, no, it means that old messages are @dfn{expired} according to some
 scheme or other.  For news messages, the expire process is controlled by
 the news administrator; for mail, the expire process is controlled by
-you.  The expire process for mail is covered in depth in @pxref{Expiring
+you.  The expire process for mail is covered in depth in @ref{Expiring
 Mail}.
 
 What many Gnus users find, after using it a while for both news and
@@ -13140,7 +13205,7 @@ useful if you want to match articles based on the raw header data.
 @vindex nnmail-resplit-incoming
 By default, splitting is performed on all incoming messages.  If you
 specify a @code{directory} entry for the variable @code{mail-sources}
-@pxref{Mail Source Specifiers}, however, then splitting does
+(@pxref{Mail Source Specifiers}), however, then splitting does
 @emph{not} happen by default.  You can set the variable
 @code{nnmail-resplit-incoming} to a non-@code{nil} value to make
 splitting happen even in this case.  (This variable has no effect on
@@ -13534,11 +13599,11 @@ An example @acronym{IMAP} mail source:
 @end lisp
 
 @item webmail
-Get mail from a webmail server, such as @uref{www.hotmail.com},
-@uref{webmail.netscape.com}, @uref{www.netaddress.com},
-@uref{mail.yahoo.com}.
+Get mail from a webmail server, such as @uref{http://www.hotmail.com/},
+@uref{http://webmail.netscape.com/}, @uref{http://www.netaddress.com/},
+@uref{http://mail.yahoo.com/}.
 
-NOTE: Webmail largely depends cookies.  A "one-line-cookie" patch is
+NOTE: Webmail largely depends on cookies.  A "one-line-cookie" patch is
 required for url "4.0pre.46".
 
 WARNING: Mails may be lost.  NO WARRANTY.
@@ -13837,46 +13902,42 @@ Let's look at an example value of this variable first:
    "misc.misc")
 @end lisp
 
-This variable has the format of a @dfn{split}.  A split is a (possibly)
-recursive structure where each split may contain other splits.  Here are
-the five possible split syntaxes:
-
-@enumerate
-
-@item
-@samp{group}: If the split is a string, that will be taken as a group
-name.  Normal regexp match expansion will be done.  See below for
-examples.
-
-@item
-@code{(@var{field} @var{value} @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
-@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.
+This variable has the format of a @dfn{split}.  A split is a
+(possibly) recursive structure where each split may contain other
+splits.  Here are the possible split syntaxes:
 
-@item
-@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.
+@table @code
 
-@item
-@code{junk}: If the split is the symbol @code{junk}, then don't save
-(i.e., delete) this message.  Use with extreme caution.
-
-@item
-@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 group 
+If the split is a string, that will be taken as a group name.  Normal
+regexp match expansion will be done.  See below for examples.
+
+@item (@var{field} @var{value} [- @var{restrict} [@dots{}] ] @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} @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} @dots{})
+If the split is a list, and the first element is @code{&}, then
+process all @var{split}s in the list.
+
+@item junk
+If the split is the symbol @code{junk}, then don't save (i.e., delete)
+this message.  Use with extreme caution.
+
+@item (: @var{function} @var{arg1} @var{arg2} @dots{})
+If the split is a list, and the first element is @samp{:}, then the
+second element will be called as a function with @var{args} given as
+arguments.  The function should return a @var{split}.
 
 @cindex body split
 For instance, the following function could be used to split based on the
@@ -13885,25 +13946,31 @@ 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
+    (save-restriction
+      (widen)
+      (goto-char (point-min))
+      (when (re-search-forward "Some.*string" nil t)
+        "string.group"))))
+@end lisp
+
+The buffer is narrowed to the message in question when @var{function}
+is run.  That's why @code{(widen)} needs to be called after
+@code{save-excursion} and @code{save-restriction} in the example
+above.  Also note that with the nnimap backend, message bodies will
+not be downloaded by default.  You need to set
+@code{nnimap-split-download-body} to t to do that (@pxref{Splitting in
+IMAP}).
+
+@item (! @var{func} @var{split})
+If the split is a list, and the first element is @code{!}, then
+@var{split} will be processed, and @var{func} will be called as a
+function with the result of @var{split} as argument.  @var{func}
+should return a split.
 
-The @samp{" *nnmail incoming*"} is narrowed to the message in question
-when the @code{:} function is run.
-
-@item
-@code{(! @var{func} @var{split})}: If the split is a list, and the
-first element is @code{!}, then @var{split} will be processed, and
-@var{func} will be called as a function with the result of @var{split}
-as argument.  @var{func} should return a split.
-
-@item
-@code{nil}: If the split is @code{nil}, it is ignored.
+@item nil
+If the split is @code{nil}, it is ignored.
 
-@end enumerate
+@end table
 
 In these splits, @var{field} must match a complete field name.
 @var{value} must match a complete word according to the fundamental mode
@@ -13915,7 +13982,7 @@ field names or words.  In other words, all @var{value}'s are wrapped in
 @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}
+where the @sc{car} of a cell contains the key, and the @sc{cdr}
 contains the associated value.  Predefined entries in
 @code{nnmail-split-abbrev-alist} include:
 
@@ -13949,6 +14016,25 @@ matched string will be substituted.  Similarly, the elements @samp{\\1}
 up to @samp{\\9} will be substituted with the text matched by the
 groupings 1 through 9.
 
+@vindex nnmail-split-fancy-match-partial-words
+@code{nnmail-split-fancy-match-partial-words} controls whether partial
+words are matched during fancy splitting.
+
+Normally, regular expressions given in @code{nnmail-split-fancy} are
+implicitly surrounded by @code{\<...\>} markers, which are word
+delimiters.  If this variable is true, they are not implicitly
+surrounded by anything.
+
+@example
+(any "joe" "joemail")
+@end example
+
+In this example, messages sent from @samp{joedavis@@foo.org} will
+normally not be filed in @samp{joemail}.  With
+@code{nnmail-split-fancy-match-partial-words} set to t, however, the
+match will happen.  In effect, the requirement of a word boundary is
+removed and instead the match becomes more like a grep.
+
 @findex nnmail-split-fancy-with-parent
 @code{nnmail-split-fancy-with-parent} is a function which allows you to
 split followups into the same groups their parents are in.  Sometimes
@@ -13994,10 +14080,10 @@ messages goes into the new group.
 
 Also see the variable @code{nnmail-cache-ignore-groups} if you don't
 want certain groups to be recorded in the cache.  For example, if all
-outgoing messages are written to an `outgoing' group, you could set
+outgoing messages are written to an ``outgoing'' group, you could set
 @code{nnmail-cache-ignore-groups} to match that group name.
 Otherwise, answers to all your messages would end up in the
-`outgoing' group.
+``outgoing'' group.
 
 
 @node Group Mail Splitting
@@ -14008,31 +14094,31 @@ Otherwise, answers to all your messages would end up in the
 @findex gnus-group-split
 If you subscribe to dozens of mailing lists but you don't want to
 maintain mail splitting rules manually, group mail splitting is for you.
-You just have to set @var{to-list} and/or @var{to-address} in group
+You just have to set @code{to-list} and/or @code{to-address} in group
 parameters or group customization and set @code{nnmail-split-methods} to
 @code{gnus-group-split}.  This splitting function will scan all groups
 for those parameters and split mail accordingly, i.e., messages posted
-from or to the addresses specified in the parameters @var{to-list} or
-@var{to-address} of a mail group will be stored in that group.
+from or to the addresses specified in the parameters @code{to-list} or
+@code{to-address} of a mail group will be stored in that group.
 
 Sometimes, mailing lists have multiple addresses, and you may want mail
-splitting to recognize them all: just set the @var{extra-aliases} group
+splitting to recognize them all: just set the @code{extra-aliases} group
 parameter to the list of additional addresses and it's done.  If you'd
-rather use a regular expression, set @var{split-regexp}.
+rather use a regular expression, set @code{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
-@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
+@code{to-list}, @code{to-address}, all of @code{extra-aliases} and all
+matches of @code{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.
+@code{split-exclude} parameter to a list of regular expressions.
 
 If you can't get the right split to be generated using all these
 parameters, or you just need something fancier, you can set the
-parameter @var{split-spec} to an @code{nnmail-split-fancy} split.  In
+parameter @code{split-spec} to an @code{nnmail-split-fancy} split.  In
 this case, all other aforementioned parameters will be ignored by
-@code{gnus-group-split}.  In particular, @var{split-spec} may be set to
+@code{gnus-group-split}.  In particular, @code{split-spec} may be set to
 @code{nil}, in which case the group will be ignored by
 @code{gnus-group-split}.
 
@@ -14041,7 +14127,7 @@ this case, all other aforementioned parameters will be ignored by
 by defining a single @code{&} fancy split containing one split for each
 group.  If a message doesn't match any split, it will be stored in the
 group named in @code{gnus-group-split-default-catch-all-group}, unless
-some group has @var{split-spec} set to @code{catch-all}, in which case
+some group has @code{split-spec} set to @code{catch-all}, in which case
 that group is used as the catch-all group.  Even though this variable is
 often used just to name a group, it may also be set to an arbitrarily
 complex fancy split (after all, a group name is a fancy split), and this
@@ -14090,10 +14176,10 @@ splits like this:
 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} is the fall back
-fancy split, used like @var{gnus-group-split-default-catch-all-group}.
-If @var{catch-all} is @code{nil}, or if @var{split-regexp} matches the
+fancy split, used like @code{gnus-group-split-default-catch-all-group}.
+If @var{catch-all} is @code{nil}, or if @code{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},
+Otherwise, if some group has @code{split-spec} set to @code{catch-all},
 this group will override the value of the @var{catch-all} argument.
 
 @findex gnus-group-split-setup
@@ -14207,9 +14293,9 @@ repeating one more time, with some spurious capitalizations: IF you do
 NOT mark articles as EXPIRABLE, Gnus will NEVER delete those ARTICLES.
 
 You do not have to mark articles as expirable by hand.  Gnus provides
-two features, called `auto-expire' and `total-expire', that can help you
-with this.  In a nutshell, `auto-expire' means that Gnus hits @kbd{E}
-for you when you select an article.  And `total-expire' means that Gnus
+two features, called ``auto-expire'' and ``total-expire'', that can help you
+with this.  In a nutshell, ``auto-expire'' means that Gnus hits @kbd{E}
+for you when you select an article.  And ``total-expire'' means that Gnus
 considers all articles as expirable that are read.  So, in addition to
 the articles marked @samp{E}, also the articles marked @samp{r},
 @samp{R}, @samp{O}, @samp{K}, @samp{Y} and so on are considered
@@ -14227,8 +14313,8 @@ advantage of auto-expire is that you get more marks to work with: for
 the articles that are supposed to stick around, you can still choose
 between tick and dormant and read marks.  But with total-expire, you
 only have dormant and ticked to choose from.  The advantage of
-total-expire is that it works well with adaptive scoring @pxref{Adaptive
-Scoring}.  Auto-expire works with normal scoring but not with adaptive
+total-expire is that it works well with adaptive scoring (@pxref{Adaptive
+Scoring}).  Auto-expire works with normal scoring but not with adaptive
 scoring.
 
 @vindex gnus-auto-expirable-newsgroups
@@ -14749,8 +14835,8 @@ files.
 @end table
 
 @findex nnml-generate-nov-databases
-If your @code{nnml} groups and @acronym{NOV} files get totally out of whack,
-you can do a complete update by typing @kbd{M-x
+If your @code{nnml} groups and @acronym{NOV} files get totally out of
+whack, you can do a complete update by typing @kbd{M-x
 nnml-generate-nov-databases}.  This command will trawl through the
 entire @code{nnml} hierarchy, looking at each and every article, so it
 might take a while to complete.  A better interface to this
@@ -14764,9 +14850,10 @@ Commands}).
 @cindex mh-e mail spool
 
 @code{nnmh} is just like @code{nnml}, except that is doesn't generate
-@acronym{NOV} databases and it doesn't keep an active file or marks file.
-This makes @code{nnmh} a @emph{much} slower back end than @code{nnml},
-but it also makes it easier to write procmail scripts for.
+@acronym{NOV} databases and it doesn't keep an active file or marks
+file.  This makes @code{nnmh} a @emph{much} slower back end than
+@code{nnml}, but it also makes it easier to write procmail scripts
+for.
 
 Virtual server settings:
 
@@ -14785,11 +14872,11 @@ If non-@code{nil}, @code{nnmh} will read incoming mail.  The default is
 @item nnmh-be-safe
 @vindex nnmh-be-safe
 If non-@code{nil}, @code{nnmh} will go to ridiculous lengths to make
-sure that the articles in the folder are actually what Gnus thinks they
-are.  It will check date stamps and stat everything in sight, so
+sure that the articles in the folder are actually what Gnus thinks
+they are.  It will check date stamps and stat everything in sight, so
 setting this to @code{t} will mean a serious slow-down.  If you never
-use anything but Gnus to read the @code{nnmh} articles, you do not have
-to set this variable to @code{t}.  The default is @code{nil}.
+use anything but Gnus to read the @code{nnmh} articles, you do not
+have to set this variable to @code{t}.  The default is @code{nil}.
 @end table
 
 
@@ -14801,40 +14888,40 @@ to set this variable to @code{t}.  The default is @code{nil}.
 @code{nnmaildir} stores mail in the maildir format, with each maildir
 corresponding to a group in Gnus.  This format is documented here:
 @uref{http://cr.yp.to/proto/maildir.html} and here:
-@uref{http://www.qmail.org/man/man5/maildir.html}.  nnmaildir also
-stores extra information in the @file{.nnmaildir/} directory within a
-maildir.
+@uref{http://www.qmail.org/man/man5/maildir.html}.  @code{nnmaildir}
+also stores extra information in the @file{.nnmaildir/} directory
+within a maildir.
 
 Maildir format was designed to allow concurrent deliveries and
 reading, without needing locks.  With other back ends, you would have
 your mail delivered to a spool of some kind, and then you would
 configure Gnus to split mail from that spool into your groups.  You
-can still do that with nnmaildir, but the more common configuration is
-to have your mail delivered directly to the maildirs that appear as
-group in Gnus.
+can still do that with @code{nnmaildir}, but the more common
+configuration is to have your mail delivered directly to the maildirs
+that appear as group in Gnus.
 
-nnmaildir is designed to be perfectly reliable: @kbd{C-g} will never
-corrupt its data in memory, and @code{SIGKILL} will never corrupt its
-data in the filesystem.
+@code{nnmaildir} is designed to be perfectly reliable: @kbd{C-g} will
+never corrupt its data in memory, and @code{SIGKILL} will never
+corrupt its data in the filesystem.
 
-nnmaildir stores article marks and @acronym{NOV} data in each maildir.  So you
-can copy a whole maildir from one Gnus setup to another, and you will
-keep your marks.
+@code{nnmaildir} stores article marks and @acronym{NOV} data in each
+maildir.  So you can copy a whole maildir from one Gnus setup to
+another, and you will keep your marks.
 
 Virtual server settings:
 
 @table @code
 @item directory
-For each of your nnmaildir servers (it's very unlikely that you'd need
-more than one), you need to create a directory and populate it with
-maildirs or symlinks to maildirs (and nothing else; do not choose a
-directory already used for other purposes).  Each maildir will be
-represented in Gnus as a newsgroup on that server; the filename of the
-symlink will be the name of the group.  Any filenames in the directory
-starting with `.' are ignored.  The directory is scanned when you
-first start Gnus, and each time you type @kbd{g} in the group buffer;
-if any maildirs have been removed or added, nnmaildir notices at these
-times.
+For each of your @code{nnmaildir} servers (it's very unlikely that
+you'd need more than one), you need to create a directory and populate
+it with maildirs or symlinks to maildirs (and nothing else; do not
+choose a directory already used for other purposes).  Each maildir
+will be represented in Gnus as a newsgroup on that server; the
+filename of the symlink will be the name of the group.  Any filenames
+in the directory starting with @samp{.} are ignored.  The directory is
+scanned when you first start Gnus, and each time you type @kbd{g} in
+the group buffer; if any maildirs have been removed or added,
+@code{nnmaildir} notices at these times.
 
 The value of the @code{directory} parameter should be a Lisp form
 which is processed by @code{eval} and @code{expand-file-name} to get
@@ -14845,7 +14932,8 @@ don't worry---a simple string will work.)  This parameter is not
 optional; you must specify it.  I don't recommend using
 @code{"~/Mail"} or a subdirectory of it; several other parts of Gnus
 use that directory by default for various things, and may get confused
-if nnmaildir uses it too.  @code{"~/.nnmaildir"} is a typical value.
+if @code{nnmaildir} uses it too.  @code{"~/.nnmaildir"} is a typical
+value.
 
 @item target-prefix
 This should be a Lisp form which is processed by @code{eval} and
@@ -14853,12 +14941,12 @@ This should be a Lisp form which is processed by @code{eval} and
 server is opened; the resulting string is used until the server is
 closed.
 
-When you create a group on an nnmaildir server, the maildir is created
-with @code{target-prefix} prepended to its name, and a symlink
+When you create a group on an @code{nnmaildir} server, the maildir is
+created with @code{target-prefix} prepended to its name, and a symlink
 pointing to that maildir is created, named with the plain group name.
 So if @code{directory} is @code{"~/.nnmaildir"} and
 @code{target-prefix} is @code{"../maildirs/"}, then when you create
-the group @code{foo}, nnmaildir will create
+the group @code{foo}, @code{nnmaildir} will create
 @file{~/.nnmaildir/../maildirs/foo} as a maildir, and will create
 @file{~/.nnmaildir/foo} as a symlink pointing to
 @file{../maildirs/foo}.
@@ -14895,20 +14983,21 @@ the conventional Gnus way, from @code{mail-sources} according to
 value is @code{nil}.
 
 Do @emph{not} use the same maildir both in @code{mail-sources} and as
-an nnmaildir group.  The results might happen to be useful, but that
-would be by chance, not by design, and the results might be different
-in the future.  If your split rules create new groups, remember to
-supply a @code{create-directory} server parameter.
+an @code{nnmaildir} group.  The results might happen to be useful, but
+that would be by chance, not by design, and the results might be
+different in the future.  If your split rules create new groups,
+remember to supply a @code{create-directory} server parameter.
 @end table
 
 @subsubsection Group parameters
 
-nnmaildir uses several group parameters.  It's safe to ignore all
-this; the default behavior for nnmaildir is the same as the default
-behavior for other mail back ends: articles are deleted after one week,
-etc.  Except for the expiry parameters, all this functionality is
-unique to nnmaildir, so you can ignore it if you're just trying to
-duplicate the behavior you already have with another back end.
+@code{nnmaildir} uses several group parameters.  It's safe to ignore
+all this; the default behavior for @code{nnmaildir} is the same as the
+default behavior for other mail back ends: articles are deleted after
+one week, etc.  Except for the expiry parameters, all this
+functionality is unique to @code{nnmaildir}, so you can ignore it if
+you're just trying to duplicate the behavior you already have with
+another back end.
 
 If the value of any of these parameters is a vector, the first element
 is evaluated as a Lisp form and the result is used, rather than the
@@ -14922,15 +15011,15 @@ quote and wrap the value in a vector when appropriate.)
 
 @table @code
 @item expire-age
-An integer specifying the minimum age, in seconds, of an article before
-it will be expired, or the symbol @code{never} to specify that
+An integer specifying the minimum age, in seconds, of an article
+before it will be expired, or the symbol @code{never} to specify that
 articles should never be expired.  If this parameter is not set,
-nnmaildir falls back to the usual
+@code{nnmaildir} falls back to the usual
 @code{nnmail-expiry-wait}(@code{-function}) variables (overrideable by
 the @code{expiry-wait}(@code{-function}) group parameters.  If you
 wanted a value of 3 days, you could use something like @code{[(* 3 24
-60 60)]}; nnmaildir will evaluate the form and use the result.  An
-article's age is measured starting from the article file's
+60 60)]}; @code{nnmaildir} will evaluate the form and use the result.
+An article's age is measured starting from the article file's
 modification time.  Normally, this is the same as the article's
 delivery time, but editing an article makes it younger.  Moving an
 article (other than via expiry) may also make an article younger.
@@ -14942,30 +15031,30 @@ If this is set to a string such as a full Gnus group name, like
 @end example
 and if it is not the name of the same group that the parameter belongs
 to, then articles will be moved to the specified group during expiry
-before being deleted.  @emph{If this is set to an nnmaildir group, the
-article will be just as old in the destination group as it was in the
-source group.}  So be careful with @code{expire-age} in the
+before being deleted.  @emph{If this is set to an @code{nnmaildir}
+group, the article will be just as old in the destination group as it
+was in the source group.}  So be careful with @code{expire-age} in the
 destination group.  If this is set to the name of the same group that
 the parameter belongs to, then the article is not expired at all.  If
 you use the vector form, the first element is evaluated once for each
 article.  So that form can refer to
 @code{nnmaildir-article-file-name}, etc., to decide where to put the
-article.  @emph{If this parameter is not set, nnmaildir does not fall
-back to the @code{expiry-target} group parameter or the
+article.  @emph{If this parameter is not set, @code{nnmaildir} does
+not fall back to the @code{expiry-target} group parameter or the
 @code{nnmail-expiry-target} variable.}
 
 @item read-only
-If this is set to @code{t}, nnmaildir will treat the articles in this
-maildir as read-only.  This means: articles are not renamed from
-@file{new/} into @file{cur/}; articles are only found in @file{new/},
-not @file{cur/}; articles are never deleted; articles cannot be
-edited.  @file{new/} is expected to be a symlink to the @file{new/}
-directory of another maildir---e.g., a system-wide mailbox containing
-a mailing list of common interest.  Everything in the maildir outside
-@file{new/} is @emph{not} treated as read-only, so for a shared
-mailbox, you do still need to set up your own maildir (or have write
-permission to the shared mailbox); your maildir just won't contain
-extra copies of the articles.
+If this is set to @code{t}, @code{nnmaildir} will treat the articles
+in this maildir as read-only.  This means: articles are not renamed
+from @file{new/} into @file{cur/}; articles are only found in
+@file{new/}, not @file{cur/}; articles are never deleted; articles
+cannot be edited.  @file{new/} is expected to be a symlink to the
+@file{new/} directory of another maildir---e.g., a system-wide mailbox
+containing a mailing list of common interest.  Everything in the
+maildir outside @file{new/} is @emph{not} treated as read-only, so for
+a shared mailbox, you do still need to set up your own maildir (or
+have write permission to the shared mailbox); your maildir just won't
+contain extra copies of the articles.
 
 @item directory-files
 A function with the same interface as @code{directory-files}.  It is
@@ -14974,45 +15063,45 @@ group to find articles.  The default is the function specified by the
 server's @code{directory-files} parameter.
 
 @item distrust-Lines:
-If non-@code{nil}, nnmaildir will always count the lines of an
+If non-@code{nil}, @code{nnmaildir} will always count the lines of an
 article, rather than use the @code{Lines:} header field.  If
 @code{nil}, the header field will be used if present.
 
 @item always-marks
-A list of mark symbols, such as
-@code{['(read expire)]}.  Whenever Gnus asks nnmaildir for
-article marks, nnmaildir will say that all articles have these
-marks, regardless of whether the marks stored in the filesystem
-say so.  This is a proof-of-concept feature that will probably be
-removed eventually; it ought to be done in Gnus proper, or
-abandoned if it's not worthwhile.
+A list of mark symbols, such as @code{['(read expire)]}.  Whenever
+Gnus asks @code{nnmaildir} for article marks, @code{nnmaildir} will
+say that all articles have these marks, regardless of whether the
+marks stored in the filesystem say so.  This is a proof-of-concept
+feature that will probably be removed eventually; it ought to be done
+in Gnus proper, or abandoned if it's not worthwhile.
 
 @item never-marks
 A list of mark symbols, such as @code{['(tick expire)]}.  Whenever
-Gnus asks nnmaildir for article marks, nnmaildir will say that no
-articles have these marks, regardless of whether the marks stored in
-the filesystem say so.  @code{never-marks} overrides
+Gnus asks @code{nnmaildir} for article marks, @code{nnmaildir} will
+say that no articles have these marks, regardless of whether the marks
+stored in the filesystem say so.  @code{never-marks} overrides
 @code{always-marks}.  This is a proof-of-concept feature that will
 probably be removed eventually; it ought to be done in Gnus proper, or
 abandoned if it's not worthwhile.
 
 @item nov-cache-size
-An integer specifying the size of the @acronym{NOV} memory cache.  To speed
-things up, nnmaildir keeps @acronym{NOV} data in memory for a limited number of
-articles in each group.  (This is probably not worthwhile, and will
-probably be removed in the future.)  This parameter's value is noticed
-only the first time a group is seen after the server is opened---i.e.,
-when you first start Gnus, typically.  The @acronym{NOV} cache is never resized
-until the server is closed and reopened.  The default is an estimate
-of the number of articles that would be displayed in the summary
-buffer: a count of articles that are either marked with @code{tick} or
-not marked with @code{read}, plus a little extra.
+An integer specifying the size of the @acronym{NOV} memory cache.  To
+speed things up, @code{nnmaildir} keeps @acronym{NOV} data in memory
+for a limited number of articles in each group.  (This is probably not
+worthwhile, and will probably be removed in the future.)  This
+parameter's value is noticed only the first time a group is seen after
+the server is opened---i.e., when you first start Gnus, typically.
+The @acronym{NOV} cache is never resized until the server is closed
+and reopened.  The default is an estimate of the number of articles
+that would be displayed in the summary buffer: a count of articles
+that are either marked with @code{tick} or not marked with
+@code{read}, plus a little extra.
 @end table
 
 @subsubsection Article identification
 Articles are stored in the @file{cur/} subdirectory of each maildir.
 Each article file is named like @code{uniq:info}, where @code{uniq}
-contains no colons.  nnmaildir ignores, but preserves, the
+contains no colons.  @code{nnmaildir} ignores, but preserves, the
 @code{:info} part.  (Other maildir readers typically use this part of
 the filename to store marks.)  The @code{uniq} part uniquely
 identifies the article, and is used in various places in the
@@ -15022,36 +15111,37 @@ available in the variable @code{nnmaildir-article-file-name} after you
 request the article in the summary buffer.
 
 @subsubsection NOV data
-An article identified by @code{uniq} has its @acronym{NOV} data (used to
-generate lines in the summary buffer) stored in
+An article identified by @code{uniq} has its @acronym{NOV} data (used
+to generate lines in the summary buffer) stored in
 @code{.nnmaildir/nov/uniq}.  There is no
 @code{nnmaildir-generate-nov-databases} function.  (There isn't much
-need for it---an article's @acronym{NOV} data is updated automatically when the
-article or @code{nnmail-extra-headers} has changed.)  You can force
-nnmaildir to regenerate the @acronym{NOV} data for a single article simply by
-deleting the corresponding @acronym{NOV} file, but @emph{beware}: this will also
-cause nnmaildir to assign a new article number for this article, which
-may cause trouble with @code{seen} marks, the Agent, and the cache.
+need for it---an article's @acronym{NOV} data is updated automatically
+when the article or @code{nnmail-extra-headers} has changed.)  You can
+force @code{nnmaildir} to regenerate the @acronym{NOV} data for a
+single article simply by deleting the corresponding @acronym{NOV}
+file, but @emph{beware}: this will also cause @code{nnmaildir} to
+assign a new article number for this article, which may cause trouble
+with @code{seen} marks, the Agent, and the cache.
 
 @subsubsection Article marks
 An article identified by @code{uniq} is considered to have the mark
 @code{flag} when the file @file{.nnmaildir/marks/flag/uniq} exists.
-When Gnus asks nnmaildir for a group's marks, nnmaildir looks for such
-files and reports the set of marks it finds.  When Gnus asks nnmaildir
-to store a new set of marks, nnmaildir creates and deletes the
-corresponding files as needed.  (Actually, rather than create a new
-file for each mark, it just creates hard links to
-@file{.nnmaildir/markfile}, to save inodes.)
+When Gnus asks @code{nnmaildir} for a group's marks, @code{nnmaildir}
+looks for such files and reports the set of marks it finds.  When Gnus
+asks @code{nnmaildir} to store a new set of marks, @code{nnmaildir}
+creates and deletes the corresponding files as needed.  (Actually,
+rather than create a new file for each mark, it just creates hard
+links to @file{.nnmaildir/markfile}, to save inodes.)
 
 You can invent new marks by creating a new directory in
 @file{.nnmaildir/marks/}.  You can tar up a maildir and remove it from
 your server, untar it later, and keep your marks.  You can add and
 remove marks yourself by creating and deleting mark files.  If you do
-this while Gnus is running and your nnmaildir server is open, it's
-best to exit all summary buffers for nnmaildir groups and type @kbd{s}
-in the group buffer first, and to type @kbd{g} or @kbd{M-g} in the
-group buffer afterwards.  Otherwise, Gnus might not pick up the
-changes, and might undo them.
+this while Gnus is running and your @code{nnmaildir} server is open,
+it's best to exit all summary buffers for @code{nnmaildir} groups and
+type @kbd{s} in the group buffer first, and to type @kbd{g} or
+@kbd{M-g} in the group buffer afterwards.  Otherwise, Gnus might not
+pick up the changes, and might undo them.
 
 
 @node Mail Folders
@@ -15060,10 +15150,10 @@ changes, and might undo them.
 @cindex mbox folders
 @cindex mail folders
 
-@code{nnfolder} is a back end for storing each mail group in a separate
-file.  Each file is in the standard Un*x mbox format.  @code{nnfolder}
-will add extra headers to keep track of article numbers and arrival
-dates.
+@code{nnfolder} is a back end for storing each mail group in a
+separate file.  Each file is in the standard Un*x mbox format.
+@code{nnfolder} will add extra headers to keep track of article
+numbers and arrival dates.
 
 @cindex self contained nnfolder servers
 @cindex marks
@@ -15073,19 +15163,19 @@ similar, and later be able to restore them into Gnus (by adding the
 proper @code{nnfolder} server) and have all your marks be preserved.
 Marks for a group is usually stored in a file named as the mbox file
 with @code{.mrk} concatenated to it (but see
-@code{nnfolder-marks-file-suffix}) within the @code{nnfolder} directory.
-Individual @code{nnfolder} groups are also possible to backup, use
-@kbd{G m} to restore the group (after restoring the backup into the
-@code{nnfolder} directory).
+@code{nnfolder-marks-file-suffix}) within the @code{nnfolder}
+directory.  Individual @code{nnfolder} groups are also possible to
+backup, use @kbd{G m} to restore the group (after restoring the backup
+into the @code{nnfolder} directory).
 
 Virtual server settings:
 
 @table @code
 @item nnfolder-directory
 @vindex nnfolder-directory
-All the @code{nnfolder} mail boxes will be stored under this directory.
-The default is the value of @code{message-directory} (whose default is
-@file{~/Mail})
+All the @code{nnfolder} mail boxes will be stored under this
+directory.  The default is the value of @code{message-directory}
+(whose default is @file{~/Mail})
 
 @item nnfolder-active-file
 @vindex nnfolder-active-file
@@ -15098,16 +15188,16 @@ Format}.  The default is @file{~/Mail/newsgroups}
 
 @item nnfolder-get-new-mail
 @vindex nnfolder-get-new-mail
-If non-@code{nil}, @code{nnfolder} will read incoming mail.  The default
-is @code{t}
+If non-@code{nil}, @code{nnfolder} will read incoming mail.  The
+default is @code{t}
 
 @item nnfolder-save-buffer-hook
 @vindex nnfolder-save-buffer-hook
 @cindex backup files
 Hook run before saving the folders.  Note that Emacs does the normal
-backup renaming of files even with the @code{nnfolder} buffers.  If you
-wish to switch this off, you could say something like the following in
-your @file{.emacs} file:
+backup renaming of files even with the @code{nnfolder} buffers.  If
+you wish to switch this off, you could say something like the
+following in your @file{.emacs} file:
 
 @lisp
 (defun turn-off-backup ()
@@ -15535,7 +15625,7 @@ command is the most handy tool (@pxref{Foreign Groups}).
 When following up to @code{nnslashdot} comments (or posting new
 comments), some light @acronym{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
+@samp{blockquote} instead, and signatures will have @samp{br} added to
 the end of each line.  Other than that, you can just write @acronym{HTML}
 directly into the message buffer.  Note that Slashdot filters out some
 @acronym{HTML} forms.
@@ -15566,20 +15656,18 @@ Where @code{nnslashdot} will store its files.  The default is
 
 @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@*
+The @acronym{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}.
+The @acronym{URL} format string that will be used to fetch comments.
 
 @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
+The @acronym{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
@@ -15607,7 +15695,7 @@ 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}
+http://www.tcj.com/messboard/ubbcgi/ RET}.  (Substitute the @acronym{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
@@ -15665,14 +15753,21 @@ The password for your account on the web server.
 @cindex nnrss
 @cindex RSS
 
-Some sites have RDF site summary (RSS)
-@uref{http://purl.org/rss/1.0/spec}.  It has a quite regular and nice
-interface, and it's possible to get the information Gnus needs to keep
-groups updated.
+Some web sites have an RDF Site Summary (@acronym{RSS}).
+@acronym{RSS} is a format for summarizing headlines from news related
+sites (such as BBC or CNN).  But basically anything list-like can be
+presented as an @acronym{RSS} feed: weblogs, changelogs or recent
+changes to a wiki (e.g. @url{http://cliki.net/recent-changes.rdf}).
+
+@acronym{RSS} 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{nnrss} is to say something
-like the following in the group buffer: @kbd{B nnrss RET RET}, then
-subscribe groups.
+Use @kbd{G R} from the summary buffer to subscribe to a feed---you
+will be prompted for the location of the feed.
+
+An easy way to get started with @code{nnrss} is to say something like
+the following in the group buffer: @kbd{B nnrss RET y}, then
+subscribe to groups.
 
 The following @code{nnrss} variables can be altered:
 
@@ -15682,6 +15777,13 @@ The following @code{nnrss} variables can be altered:
 The directory where @code{nnrss} stores its files.  The default is
 @file{~/News/rss/}.
 
+@item nnrss-use-local
+@vindex nnrss-use-local
+@findex nnrss-generate-download-script
+If you set @code{nnrss-use-local} to @code{t}, @code{nnrss} will read
+the feeds from local files in @code{nnrss-directory}.  You can use
+the command @code{nnrss-generate-download-script} to generate a
+download script using @command{wget}.
 @end table
 
 The following code may be helpful, if you want to show the description in
@@ -15963,7 +16065,7 @@ external library @code{digest-md5.el}.
 @item
 @dfn{login:} Plain-text username/password via LOGIN.
 @item
-@dfn{anonymous:} Login as `anonymous', supplying your email address as password.
+@dfn{anonymous:} Login as ``anonymous'', supplying your email address as password.
 @end itemize
 
 @item nnimap-expunge-on-close
@@ -16062,6 +16164,7 @@ Courier 1.7.1 did.
 * Editing IMAP ACLs::           Limiting/enabling other users access to a mailbox.
 * Expunging mailboxes::         Equivalent of a ``compress mailbox'' button.
 * A note on namespaces::        How to (not) use @acronym{IMAP} namespace in Gnus.
+* Debugging IMAP::              What to do when things don't work.
 @end menu
 
 
@@ -16070,14 +16173,18 @@ Courier 1.7.1 did.
 @subsection Splitting in IMAP
 @cindex splitting imap mail
 
-Splitting is something Gnus users has loved and used for years, and now
+Splitting is something Gnus users have loved and used for years, and now
 the rest of the world is catching up.  Yeah, dream on, not many
-@acronym{IMAP} server has server side splitting and those that have splitting
-seem to use some non-standard protocol.  This means that @acronym{IMAP}
-support for Gnus has to do its own splitting.
+@acronym{IMAP} servers have server side splitting and those that have
+splitting seem to use some non-standard protocol.  This means that
+@acronym{IMAP} support for Gnus has to do its own splitting.
 
 And it does.
 
+(Incidentally, people seem to have been dreaming on, and Sieve has
+gaining a market share and is supported by several IMAP servers.
+Fortunately, Gnus support it too, @xref{Sieve Commands}.)
+
 Here are the variables of interest:
 
 @table @code
@@ -16133,7 +16240,7 @@ This will put all articles from the nnimap mailing list into mailbox
 INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line
 into INBOX.junk and everything else in INBOX.private.
 
-The first string may contain `\\1' forms, like the ones used by
+The first string may contain @samp{\\1} forms, like the ones used by
 replace-match to insert sub-expressions from the matched text.  For
 instance:
 
@@ -16277,7 +16384,7 @@ article is copied instead of appended (that is, uploaded again).
 @cindex editing imap acls
 @cindex Access Control Lists
 @cindex Editing @acronym{IMAP} ACLs
-@kindex G l
+@kindex G l (Group)
 @findex gnus-group-nnimap-edit-acl
 
 ACL stands for Access Control List.  ACLs are used in @acronym{IMAP} for
@@ -16309,7 +16416,7 @@ INBOX.mailbox).
 
 @cindex expunge
 @cindex manual expunging
-@kindex G x
+@kindex G x (Group)
 @findex gnus-group-nnimap-expunge
 
 If you're using the @code{never} setting of @code{nnimap-expunge-on-close},
@@ -16361,6 +16468,40 @@ See the UoW IMAPD documentation for the @code{#driver.*/} prefix
 for more information on how to use the prefixes.  They are a power
 tool and should be used only if you are sure what the effects are.
 
+@node Debugging IMAP
+@subsection Debugging IMAP
+@cindex IMAP debugging
+@cindex protocol dump (IMAP)
+
+@acronym{IMAP} is a complex protocol, more so than @acronym{NNTP} or
+@acronym{POP3}.  Implementation bugs are not unlikely, and we do our
+best to fix them right away.  If you encounter odd behaviour, chances
+are that either the server or Gnus is buggy.
+
+If you are familiar with network protocols in general, you will
+probably be able to extract some clues from the protocol dump of the
+exchanges between Gnus and the server.  Even if you are not familiar
+with network protocols, when you include the protocol dump in
+@acronym{IMAP}-related bug reports you are helping us with data
+critical to solving the problem.  Therefore, we strongly encourage you
+to include the protocol dump when reporting IMAP bugs in Gnus.
+
+
+@vindex imap-log
+Because the protocol dump, when enabled, generates lots of data, it is
+disabled by default.  You can enable it by setting @code{imap-log} as
+follows: 
+
+@lisp
+(setq imap-log t)
+@end lisp
+
+This instructs the @code{imap.el} package to log any exchanges with
+the server.  The log is stored in the buffer @samp{*imap-log*}.  Look
+for error messages, which sometimes are tagged with the keyword
+@code{BAD} - but when submitting a bug, make sure to include all the
+data.
+
 @node Other Sources
 @section Other Sources
 
@@ -17182,10 +17323,10 @@ inherited.
 @cindex nnkiboze
 @cindex kibozing
 
-@dfn{Kibozing} is defined by @acronym{oed} as ``grepping through (parts of)
-the news feed''.  @code{nnkiboze} is a back end that will do this for
-you.  Oh joy!  Now you can grind any @acronym{NNTP} server down to a halt
-with useless requests!  Oh happiness!
+@dfn{Kibozing} is defined by the @acronym{OED} as ``grepping through
+(parts of) the news feed''.  @code{nnkiboze} is a back end that will
+do this for you.  Oh joy!  Now you can grind any @acronym{NNTP} server
+down to a halt with useless requests!  Oh happiness!
 
 @kindex G k (Group)
 To create a kibozed group, use the @kbd{G k} command in the group
@@ -17219,10 +17360,11 @@ and they can be foreign.  No restrictions.
 
 @vindex nnkiboze-directory
 The generation of an @code{nnkiboze} group means writing two files in
-@code{nnkiboze-directory}, which is @file{~/News/} by default.  One
-contains the @acronym{NOV} header lines for all the articles in the group,
-and the other is an additional @file{.newsrc} file to store information
-on what groups have been searched through to find component articles.
+@code{nnkiboze-directory}, which is @file{~/News/kiboze/} by default.
+One contains the @acronym{NOV} header lines for all the articles in
+the group, and the other is an additional @file{.newsrc} file to store
+information on what groups have been searched through to find
+component articles.
 
 Articles marked as read in the @code{nnkiboze} group will have
 their @acronym{NOV} lines removed from the @acronym{NOV} file.
@@ -17328,15 +17470,15 @@ already fetched while in this mode.
 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} and use @kbd{g} to check for new mail
-as usual.  To check for new mail in unplugged mode, see (@pxref{Mail
+as usual.  To check for new mail in unplugged mode (@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{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}.)
+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{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}).
 
 @item
 After fetching the articles, you press @kbd{J j} to make Gnus become
@@ -17428,6 +17570,7 @@ category, and a number of optional parameters that override the
 customizable variables.  The complete list of agent parameters are
 listed below.
 
+@cindex Agent Parameters
 @table @code
 @item gnus-agent-cat-name
 The name of the category.
@@ -17466,6 +17609,12 @@ an integer that overrides the value of
 
 @item gnus-agent-cat-length-when-long
 an integer that overrides the value of @code{gnus-agent-long-article}.
+
+@item gnus-agent-cat-disable-undownloaded-faces
+a symbol indicating whether the summary buffer should @emph{not} display
+undownloaded articles using the gnus-summary-*-undownloaded-face
+faces.  The symbol nil will enable the use of undownloaded faces while
+all other symbols disable them.
 @end table
 
 The name of a category can not be changed once the category has been
@@ -17647,7 +17796,7 @@ three forms:
 @item
 Score rule
 
-This has the same syntax as a normal gnus score file except only a
+This has the same syntax as a normal Gnus score file except only a
 subset of scoring keywords are available as mentioned above.
 
 example:
@@ -17965,7 +18114,7 @@ Mark all articles as read (@code{gnus-agent-catchup}) that are neither cached, d
 @item J S
 @kindex J S (Agent Summary)
 @findex gnus-agent-fetch-group
-Download all eligible (See @pxref{Agent Categories}) articles in this group.
+Download all eligible (@pxref{Agent Categories}) articles in this group.
 (@code{gnus-agent-fetch-group}).
 
 @item J s
@@ -18278,8 +18427,13 @@ read.  The default is t.
 @item gnus-agent-consider-all-articles
 @vindex gnus-agent-consider-all-articles
 If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the
-agent will fetch all missing headers.  When @code{nil}, the agent will
-fetch only new headers.  The default is @code{nil}.
+agent will let the agent predicate decide whether articles need to be
+downloaded or not, for all articles.  When @code{nil}, the default,
+the agent will only let the predicate decide whether unread articles
+are downloaded or not.  If you enable this, you may also want to look
+into the agent expiry settings (@pxref{Category Variables}), so that
+the agent doesn't download articles which the agent will later expire,
+over and over again.
 
 @item gnus-agent-max-fetch-size
 @vindex gnus-agent-max-fetch-size
@@ -18318,6 +18472,18 @@ have not been fetched), @code{always-undownloaded} (maneuvering always
 ignores articles that have not been fetched), @code{unfetched}
 (maneuvering ignores articles whose headers have not been fetched).
 
+@item gnus-agent-auto-agentize-methods
+@vindex gnus-agent-auto-agentize-methods
+If you have never used the Agent before (or more technically, if
+@file{~/News/agent/lib/servers} does not exist), Gnus will
+automatically agentize a few servers for you.  This variable control
+which backends should be auto-agentized.  It is typically only useful
+to agentize remote backends.  The auto-agentizing has the same effect
+as running @kbd{J a} on the servers (@pxref{Server Agent Commands}).
+If the file exist, you must manage the servers manually by adding or
+removing them, this variable is only applicable the first time you
+start Gnus.  The default is @samp{(nntp nnimap)}.
+
 @end table
 
 
@@ -18941,8 +19107,8 @@ Anyway, if you'd like to dig into it yourself, here's an example:
  (eval (ding)))
 @end lisp
 
-This example demonstrates most score file elements.  For a different
-approach, see @pxref{Advanced Scoring}.
+This example demonstrates most score file elements.  @xref{Advanced
+Scoring}, for a different approach.
 
 Even though this looks much like Lisp code, nothing here is actually
 @code{eval}ed.  The Lisp reader is used to read this form, though, so it
@@ -19014,11 +19180,13 @@ Just as for the standard string overview headers, if you are using
 gnus-extra-headers, you can score on these headers' values.  In this
 case, there is a 5th element in the score entry, being the name of the
 header to be scored.  The following entry is useful in your
-@file{all.SCORE} file in case of spam attacks from a single origin host,
-if your @acronym{NNTP} server tracks NNTP-Posting-Host in overviews:
+@file{all.SCORE} file in case of spam attacks from a single origin
+host, if your @acronym{NNTP} server tracks @samp{NNTP-Posting-Host} in
+overviews:
 
 @lisp
-("111.222.333.444" -1000 nil s "NNTP-Posting-Host")
+("111.222.333.444" -1000 nil s
+ "NNTP-Posting-Host")
 @end lisp
 
 @item Lines, Chars
@@ -19555,10 +19723,10 @@ that Gnus has to request every single article from the back end to find
 matches.  This takes a long time in big groups.
 
 Now, there's not much you can do about this for news groups, but for
-mail groups, you have greater control.  In the @pxref{To From
-Newsgroups} section of the manual, it's explained in greater detail what
-this mechanism does, but here's a cookbook example for @code{nnml} on
-how to allow scoring on the @samp{To} and @samp{Cc} headers.
+mail groups, you have greater control.  In @ref{To From Newsgroups},
+it's explained in greater detail what this mechanism does, but here's
+a cookbook example for @code{nnml} on how to allow scoring on the
+@samp{To} and @samp{Cc} headers.
 
 Put the following in your @file{~/.gnus.el} file.
 
@@ -19842,6 +20010,9 @@ before.
 @section GroupLens
 @cindex GroupLens
 
+@sc{Note:} Unfortunately the GroupLens system seems to have shut down,
+so this section is mostly of historical interest.
+
 @uref{http://www.cs.umn.edu/Research/GroupLens/, GroupLens} is a
 collaborative filtering system that helps you work together with other
 people to find the quality news articles out of the huge volume of
@@ -19857,9 +20028,6 @@ of a prediction, what they thought of the article.  You can use this
 prediction to help you decide whether or not you want to read the
 article.
 
-@sc{Note:} Unfortunately the GroupLens system seems to have shut down,
-so this section is mostly of historical interest.
-
 @menu
 * Using GroupLens::             How to make Gnus use GroupLens.
 * Rating Articles::             Letting GroupLens know how you rate articles.
@@ -19963,7 +20131,7 @@ from GroupLens in one of three ways controlled by the variable
 @vindex gnus-grouplens-override-scoring
 There are three ways to display predictions in grouplens.  You may
 choose to have the GroupLens scores contribute to, or override the
-regular gnus scoring mechanism.  override is the default; however, some
+regular Gnus scoring mechanism.  override is the default; however, some
 people prefer to see the Gnus scores plus the grouplens scores.  To get
 the separate scoring behavior you need to set
 @code{gnus-grouplens-override-scoring} to @code{'separate}.  To have the
@@ -20232,16 +20400,21 @@ definition of that function:
 
 @lisp
 (defun gnus-decay-score (score)
-  "Decay SCORE.
-This is done according to `gnus-score-decay-constant'
+  "Decay SCORE according to `gnus-score-decay-constant'
 and `gnus-score-decay-scale'."
-  (floor
-   (- score
-      (* (if (< score 0) 1 -1)
-         (min (abs score)
-              (max gnus-score-decay-constant
-                   (* (abs score)
-                      gnus-score-decay-scale)))))))
+  (let ((n (- score
+              (* (if (< score 0) -1 1)
+                 (min (abs score)
+                      (max gnus-score-decay-constant
+                           (* (abs score)
+                              gnus-score-decay-scale)))))))
+    (if (and (featurep 'xemacs)
+             ;; XEmacs' floor can handle only the floating point
+             ;; number below the half of the maximum integer.
+             (> (abs n) (lsh -1 -2)))
+        (string-to-number
+         (car (split-string (number-to-string n) "\\.")))
+      (floor n))))
 @end lisp
 
 @vindex gnus-score-decay-scale
@@ -21693,7 +21866,7 @@ represent the author of the message.
 @cindex face
 @findex gnus-article-display-face
 The contents of a @code{Face} header must be a base64 encoded PNG image.
-See @url{http://quimby.gnus.org/circus/face/} for the precise
+See @uref{http://quimby.gnus.org/circus/face/} for the precise
 specifications.
 
 Gnus provides a few convenience functions and variables to allow
@@ -22054,14 +22227,12 @@ Then put the following split rule in @code{nnmail-split-fancy}
 (@pxref{Fancy Mail Splitting}):
 
 @lisp
-(
- ...
+(...
  (to "larsi@@trym.ifi.uio.no"
-      (| ("subject" "re:.*" "misc")
-         ("references" ".*@@.*" "misc")
-         "spam"))
- ...
-)
+     (| ("subject" "re:.*" "misc")
+        ("references" ".*@@.*" "misc")
+        "spam"))
+ ...)
 @end lisp
 
 This says that all mail to this address is suspect, but if it has a
@@ -22120,7 +22291,8 @@ Specifiers}) follow.
       '((file :prescript "formail -bs spamassassin < /var/mail/%u")
         (pop :user "jrl"
              :server "pophost"
-             :postscript "mv %t /tmp/foo; formail -bs spamc < /tmp/foo > %t")))
+             :postscript
+             "mv %t /tmp/foo; formail -bs spamc < /tmp/foo > %t")))
 @end lisp
 
 Once you manage to process your incoming spool somehow, thus making
@@ -22150,16 +22322,18 @@ call the external tools during splitting.  Example fancy split method:
                              ...))
 (defun kevin-spamassassin ()
   (save-excursion
-    (let ((buf (or (get-buffer " *nnmail incoming*")
-                   (get-buffer " *nnml move*"))))
-      (if (not buf)
-          (progn (message "Oops, cannot find message buffer") nil)
-        (set-buffer buf)
-        (if (eq 1 (call-process-region (point-min) (point-max)
-                                       "spamc" nil nil nil "-c"))
-            "spam")))))
+    (save-restriction
+      (widen)
+      (if (eq 1 (call-process-region (point-min) (point-max)
+                                     "spamc" nil nil nil "-c"))
+          "spam"))))
 @end lisp
 
+Note that with the nnimap backend, message bodies will not be
+downloaded by default.  You need to set
+@code{nnimap-split-download-body} to t to do that (@pxref{Splitting in
+IMAP}).
+
 That is about it.  As some spam is likely to get through anyway, you
 might want to have a nifty function to call when you happen to read
 spam.  And here is the nifty function:
@@ -22257,8 +22431,20 @@ filters incoming mail, and it analyzes mail known to be spam or ham.
 @dfn{Ham} is the name used throughout @file{spam.el} to indicate
 non-spam messages.
 
-So, what happens when you load @file{spam.el}?  First of all, you get
-the following keyboard commands:
+First of all, you @strong{must} run the function
+@code{spam-initialize} to autoload @code{spam.el} and to install the
+@code{spam.el} hooks.  There is one exception: if you use the
+@code{spam-use-stat} (@pxref{spam-stat spam filtering}) setting, you
+should turn it on before @code{spam-initialize}:
+
+@example
+(setq spam-use-stat t) ;; if needed
+(spam-initialize)
+@end example
+
+So, what happens when you load @file{spam.el}?
+
+You get the following keyboard commands:
 
 @table @kbd
 
@@ -22327,13 +22513,13 @@ group.  If you have seen a message, had it marked as spam, then
 unmarked it, it won't be marked as spam when you enter the group
 thereafter.  You can disable that behavior, so all unread messages
 will get the @samp{$} mark, if you set the
-@code{spam-mark-only-unseen-as-spam} parameter to nil.  You should
-remove the @samp{$} mark when you are in the group summary buffer for
-every message that is not spam after all.  To remove the @samp{$}
-mark, you can use @kbd{M-u} to ``unread'' the article, or @kbd{d} for
-declaring it read the non-spam way.  When you leave a group, all
-spam-marked (@samp{$}) articles are sent to a spam processor which
-will study them as spam samples.
+@code{spam-mark-only-unseen-as-spam} parameter to @code{nil}.  You
+should remove the @samp{$} mark when you are in the group summary
+buffer for every message that is not spam after all.  To remove the
+@samp{$} mark, you can use @kbd{M-u} to ``unread'' the article, or
+@kbd{d} for declaring it read the non-spam way.  When you leave a
+group, all spam-marked (@samp{$}) articles are sent to a spam
+processor which will study them as spam samples.
 
 Messages may also be deleted in various other ways, and unless
 @code{ham-marks} group parameter gets overridden below, marks @samp{R}
@@ -22373,15 +22559,31 @@ determined by either the @code{ham-process-destination} group
 parameter or a match in the @code{gnus-ham-process-destinations}
 variable, which is a list of regular expressions matched with group
 names (it's easiest to customize this variable with
-@code{customize-variable gnus-ham-process-destinations}).  The ultimate
-location is a group name.  If the @code{ham-process-destination}
-parameter is not set, ham articles are left in place.  If the
+@code{customize-variable gnus-ham-process-destinations}).  Each
+newsgroup specification has the format (REGEXP PROCESSOR) in a
+standard Lisp list, if you prefer to customize the variable manually.
+The ultimate location is a group name.  If the
+@code{ham-process-destination} parameter is not set, ham articles are
+left in place.  If the
 @code{spam-mark-ham-unread-before-move-from-spam-group} parameter is
 set, the ham articles are marked as unread before being moved.
 
 When you leave a @emph{ham} group, all ham-marked articles are sent to
 a ham processor, which will study these as non-spam samples.
 
+@vindex spam-process-ham-in-spam-groups
+By default the variable @code{spam-process-ham-in-spam-groups} is
+@code{nil}.  Set it to @code{t} if you want ham found in spam groups
+to be processed.  Normally this is not done, you are expected instead
+to send your ham to a ham group and process it there.
+
+@vindex spam-process-ham-in-nonham-groups
+By default the variable @code{spam-process-ham-in-nonham-groups} is
+@code{nil}.  Set it to @code{t} if you want ham found in non-ham (spam
+or unclassified) groups to be processed.  Normally this is not done,
+you are expected instead to send your ham to a ham group and process
+it there.
+
 @vindex gnus-spam-process-destinations
 When you leave a @emph{ham} or @emph{unclassified} group, all
 @strong{spam} articles are moved to a location determined by either
@@ -22389,9 +22591,12 @@ the @code{spam-process-destination} group parameter or a match in the
 @code{gnus-spam-process-destinations} variable, which is a list of
 regular expressions matched with group names (it's easiest to
 customize this variable with @code{customize-variable
-gnus-spam-process-destinations}).  The ultimate location is a group
-name.  If the @code{spam-process-destination} parameter is not set,
-the spam articles are only expired.
+gnus-spam-process-destinations}).  Each newsgroup specification has
+the repeated format (REGEXP PROCESSOR) and they are all in a standard
+Lisp list, if you prefer to customize the variable manually.  The
+ultimate location is a group name.  If the
+@code{spam-process-destination} parameter is not set, the spam
+articles are only expired.
 
 To use the @file{spam.el} facilities for incoming mail filtering, you
 must add the following to your fancy split list
@@ -22408,10 +22613,18 @@ nnimap back ends to retrieve your mail.
 The @code{spam-split} function will process incoming mail and send the
 mail considered to be spam into the group name given by the variable
 @code{spam-split-group}.  By default that group name is @samp{spam},
-but you can customize @code{spam-split-group}.
+but you can customize @code{spam-split-group}.  Make sure the contents
+of @code{spam-split-group} are an @emph{unqualified} group name, for
+instance in an @code{nnimap} server @samp{your-server} the value
+@samp{spam} will turn out to be @samp{nnimap+your-server:spam}.  The
+value @samp{nnimap+server:spam}, therefore, is wrong and will
+actually give you the group
+@samp{nnimap+your-server:nnimap+server:spam} which may or may not
+work depending on your server's tolerance for strange group names.
 
 You can also give @code{spam-split} a parameter,
-e.g. @samp{'spam-use-regex-headers}.  Why is this useful?
+e.g. @samp{'spam-use-regex-headers} or @samp{"maybe-spam"}.  Why is
+this useful?
 
 Take these split rules (with @code{spam-use-regex-headers} and
 @code{spam-use-blackholes} set):
@@ -22431,21 +22644,24 @@ when it's sent to the ding list.  On the other hand, some messages to
 the ding list are from a mail server in the blackhole list, so the
 invocation of @code{spam-split} can't be before the ding rule.
 
-You can let SpamAssassin headers supercede ding rules, but all other
+You can let SpamAssassin headers supersede ding rules, but all other
 @code{spam-split} rules (including a second invocation of the
 regex-headers check) will be after the ding rule:
 
 @example
  nnimap-split-fancy '(|
-                     (: spam-split 'spam-use-regex-headers)
+;;; all spam detected by spam-use-regex-headers goes to "regex-spam"
+                     (: spam-split "regex-spam" 'spam-use-regex-headers)
                      (any "ding" "ding")
+;;; all other spam detected by spam-split goes to spam-split-group
                      (: spam-split)
                      ;; default mailbox
                      "mail")
 @end example
 
 Basically, this lets you invoke specific @code{spam-split} checks
-depending on your particular needs.  You don't have to throw all mail
+depending on your particular needs, and to target the results of those
+checks to a particular spam group.  You don't have to throw all mail
 into all the spam tests.  Another reason why this is nice is that
 messages to mailing lists you have rules for don't have to have
 resource-intensive blackhole checks performed on them.  You could also
@@ -22625,7 +22841,21 @@ Add this symbol to a group's @code{spam-process} parameter by
 customizing the group parameters or the
 @code{gnus-spam-process-newsgroups} variable.  When this symbol is
 added to a group's @code{spam-process} parameter, the spam-marked
-articles groups will be reported to the Gmane administrators.
+articles groups will be reported to the Gmane administrators via a
+HTTP request.
+
+Gmane can be found at @uref{http://gmane.org}.
+
+@end defvar
+
+@defvar spam-report-gmane-use-article-number
+
+This variable is @code{t} by default.  Set it to @code{nil} if you are
+running your own news server, for instance, and the local article
+numbers don't correspond to the Gmane article numbers.  When
+@code{spam-report-gmane-use-article-number} is @code{nil},
+@code{spam-report.el} will use the @code{X-Report-Spam} header that
+Gmane provides.
 
 @end defvar
 
@@ -22982,7 +23212,7 @@ messages.
   (spam-process
    (gnus-group-spam-exit-processor-spamoracle)))
 @end example
-For this group the `gnus-group-spam-exit-processor-spamoracle' is
+For this group the @code{gnus-group-spam-exit-processor-spamoracle} is
 installed.  If the group contains spam message (e.g. because SpamOracle
 has not had enough sample messages yet) and the user marks some
 messages as spam messages, these messages will be processed by
@@ -23805,7 +24035,7 @@ know.
 @cindex Mule
 @cindex Emacs
 
-Gnus should work on :
+Gnus should work on:
 
 @itemize @bullet
 
@@ -24732,11 +24962,11 @@ New features in Gnus 5.6:
 
 @item
 New functionality for using Gnus as an offline newsreader has been
-added.  A plethora of new commands and modes have been added.  See
-@pxref{Gnus Unplugged} for the full story.
+added.  A plethora of new commands and modes have been added.
+@xref{Gnus Unplugged}, for the full story.
 
 @item
- The @code{nndraft} back end has returned, but works differently than
+The @code{nndraft} back end has returned, but works differently than
 before.  All Message buffers are now also articles in the @code{nndraft}
 group, which is created automatically.
 
@@ -24745,110 +24975,110 @@ group, which is created automatically.
 values.
 
 @item
- @code{gnus-summary-goto-article} now accept Message-ID's.
+@code{gnus-summary-goto-article} now accept Message-ID's.
 
 @item
- A new Message command for deleting text in the body of a message
+A new Message command for deleting text in the body of a message
 outside the region: @kbd{C-c C-v}.
 
 @item
- You can now post to component group in @code{nnvirtual} groups with
+You can now post to component group in @code{nnvirtual} groups with
 @kbd{C-u C-c C-c}.
 
 @item
  @code{nntp-rlogin-program}---new variable to ease customization.
 
 @item
- @code{C-u C-c C-c} in @code{gnus-article-edit-mode} will now inhibit
+@code{C-u C-c C-c} in @code{gnus-article-edit-mode} will now inhibit
 re-highlighting of the article buffer.
 
 @item
- New element in @code{gnus-boring-article-headers}---@code{long-to}.
+New element in @code{gnus-boring-article-headers}---@code{long-to}.
 
 @item
- @kbd{M-i} symbolic prefix command.  See the section ``Symbolic
-Prefixes'' in the Gnus manual for details.
+@kbd{M-i} symbolic prefix command.  @xref{Symbolic Prefixes}, for
+details.
 
 @item
- @kbd{L} and @kbd{I} in the summary buffer now take the symbolic prefix
+@kbd{L} and @kbd{I} in the summary buffer now take the symbolic prefix
 @kbd{a} to add the score rule to the @file{all.SCORE} file.
 
 @item
- @code{gnus-simplify-subject-functions} variable to allow greater
+@code{gnus-simplify-subject-functions} variable to allow greater
 control over simplification.
 
 @item
- @kbd{A T}---new command for fetching the current thread.
+@kbd{A T}---new command for fetching the current thread.
 
 @item
- @kbd{/ T}---new command for including the current thread in the
+@kbd{/ T}---new command for including the current thread in the
 limit.
 
 @item
- @kbd{M-RET} is a new Message command for breaking cited text.
+@kbd{M-RET} is a new Message command for breaking cited text.
 
 @item
- @samp{\\1}-expressions are now valid in @code{nnmail-split-methods}.
+@samp{\\1}-expressions are now valid in @code{nnmail-split-methods}.
 
 @item
- The @code{custom-face-lookup} function has been removed.
+The @code{custom-face-lookup} function has been removed.
 If you used this function in your initialization files, you must
 rewrite them to use @code{face-spec-set} instead.
 
 @item
- Canceling now uses the current select method.  Symbolic prefix
+Canceling now uses the current select method.  Symbolic prefix
 @kbd{a} forces normal posting method.
 
 @item
- New command to translate M******** sm*rtq**t*s into proper
+New command to translate M******** sm*rtq**t*s into proper
 text---@kbd{W d}.
 
 @item
- For easier debugging of @code{nntp}, you can set
+For easier debugging of @code{nntp}, you can set
 @code{nntp-record-commands} to a non-@code{nil} value.
 
 @item
- @code{nntp} now uses @file{~/.authinfo}, a @file{.netrc}-like file, for
+@code{nntp} now uses @file{~/.authinfo}, a @file{.netrc}-like file, for
 controlling where and how to send @sc{authinfo} to @acronym{NNTP} servers.
 
 @item
- A command for editing group parameters from the summary buffer
+A command for editing group parameters from the summary buffer
 has been added.
 
 @item
- A history of where mails have been split is available.
+A history of where mails have been split is available.
 
 @item
- A new article date command has been added---@code{article-date-iso8601}.
+A new article date command has been added---@code{article-date-iso8601}.
 
 @item
- Subjects can be simplified when threading by setting
+Subjects can be simplified when threading by setting
 @code{gnus-score-thread-simplify}.
 
 @item
- A new function for citing in Message has been
+A new function for citing in Message has been
 added---@code{message-cite-original-without-signature}.
 
 @item
- @code{article-strip-all-blank-lines}---new article command.
+@code{article-strip-all-blank-lines}---new article command.
 
 @item
- A new Message command to kill to the end of the article has
+A new Message command to kill to the end of the article has
 been added.
 
 @item
- A minimum adaptive score can be specified by using the
+A minimum adaptive score can be specified by using the
 @code{gnus-adaptive-word-minimum} variable.
 
 @item
- The ``lapsed date'' article header can be kept continually
+The ``lapsed date'' article header can be kept continually
 updated by the @code{gnus-start-date-timer} command.
 
 @item
- Web listserv archives can be read with the @code{nnlistserv} back end.
+Web listserv archives can be read with the @code{nnlistserv} back end.
 
 @item
- Old dejanews archives can now be read by @code{nnweb}.
+Old dejanews archives can now be read by @code{nnweb}.
 
 @end itemize
 
@@ -24924,6 +25154,10 @@ New features in Gnus 5.10:
 
 @itemize @bullet
 
+@item
+In draft groups, @kbd{e} is now bound to @code{gnus-draft-edit-message}.
+Use @kbd{B w} for @code{gnus-summary-edit-article} instead.
+
 @item
 The revised Gnus @acronym{FAQ} is included in the manual,
 @xref{Frequently Asked Questions}.
@@ -25366,7 +25600,7 @@ the valid values.
 Gnus supports Cancel Locks in News.
 
 This means a header @samp{Cancel-Lock} is inserted in news posting.  It is
-used to determine if you wrote an article or not (for cancelling and
+used to determine if you wrote an article or not (for canceling and
 superseding).  Gnus generates a random password string the first time
 you post a message, and saves it in your @file{~/.emacs} using the Custom
 system.  While the variable is called @code{canlock-password}, it is not
@@ -25468,6 +25702,14 @@ C-m}.
 
 This change was made to avoid conflict with the standard binding of
 @code{back-to-indentation}, which is also useful in message mode.
+
+@item
+The default for @code{message-forward-show-mml} changed to symbol @code{best}.
+
+The behaviour for the @code{best} value is to show @acronym{MML} (i.e.,
+convert to @acronym{MIME}) when appropriate.  @acronym{MML} will not be
+used when forwarding signed or encrypted messages, as the conversion
+invalidate the digital signature.
 @end itemize
 
 @iftex
@@ -25591,10 +25833,10 @@ Gnus considers mail and news to be mostly the same, really.  The only
 difference is how to access the actual articles.  News articles are
 commonly fetched via the protocol @acronym{NNTP}, whereas mail
 messages could be read from a file on the local disk.  The internal
-architecture of Gnus thus comprises a `front end' and a number of
-`back ends'.  Internally, when you enter a group (by hitting
+architecture of Gnus thus comprises a ``front end'' and a number of
+``back ends''.  Internally, when you enter a group (by hitting
 @key{RET}, say), you thereby invoke a function in the front end in
-Gnus.  The front end then `talks' to a back end and says things like
+Gnus.  The front end then ``talks'' to a back end and says things like
 ``Give me the list of articles in the foo group'' or ``Show me article
 number 4711''.
 
@@ -25602,16 +25844,16 @@ So a back end mainly defines either a protocol (the @code{nntp} back
 end accesses news via @acronym{NNTP}, the @code{nnimap} back end
 accesses mail via @acronym{IMAP}) or a file format and directory
 layout (the @code{nnspool} back end accesses news via the common
-`spool directory' format, the @code{nnml} back end access mail via a
+``spool directory'' format, the @code{nnml} back end access mail via a
 file format and directory layout that's quite similar).
 
 Gnus does not handle the underlying media, so to speak---this is all
 done by the back ends.  A back end is a collection of functions to
 access the articles.
 
-However, sometimes the term `back end' is also used where `server'
-would have been more appropriate.  And then there is the term `select
-method' which can mean either.  The Gnus terminology can be quite
+However, sometimes the term ``back end'' is also used where ``server''
+would have been more appropriate.  And then there is the term ``select
+method'' which can mean either.  The Gnus terminology can be quite
 confusing.
 
 @item native
@@ -25928,9 +26170,8 @@ Gnus will work.
 
 @item
 Try doing an @kbd{M-x gnus-version}.  If you get something that looks
-like @samp{Gnus v5.46; nntp 4.0} you have the right files loaded.  If,
-on the other hand, you get something like @samp{NNTP 3.x} or @samp{nntp
-flee}, you have some old @file{.el} files lying around.  Delete these.
+like @samp{Gnus v5.10.3} you have the right files loaded.  Otherwise
+you have some old @file{.el} files lying around.  Delete these.
 
 @item
 Read the help group (@kbd{G h} in the group buffer) for a
@@ -26230,7 +26471,7 @@ more.
 Gnus identifies each message by way of group name and article number.  A
 few remarks about these article numbers might be useful.  First of all,
 the numbers are positive integers.  Secondly, it is normally not
-possible for later articles to `re-use' older article numbers without
+possible for later articles to ``re-use'' older article numbers without
 confusing Gnus.  That is, if a group has ever contained a message
 numbered 42, then no other message may get that number, or Gnus will get
 mightily confused.@footnote{See the function
@@ -26238,15 +26479,15 @@ mightily confused.@footnote{See the function
 Third, article numbers must be assigned in order of arrival in the
 group; this is not necessarily the same as the date of the message.
 
-The previous paragraph already mentions all the `hard' restrictions that
+The previous paragraph already mentions all the ``hard'' restrictions that
 article numbers must fulfill.  But it seems that it might be useful to
 assign @emph{consecutive} article numbers, for Gnus gets quite confused
 if there are holes in the article numbering sequence.  However, due to
-the `no-reuse' restriction, holes cannot be avoided altogether.  It's
+the ``no-reuse'' restriction, holes cannot be avoided altogether.  It's
 also useful for the article numbers to start at 1 to avoid running out
 of numbers as long as possible.
 
-Note that by convention, backends are named @code{nnsomething}, but
+Note that by convention, back ends are named @code{nnsomething}, but
 Gnus also comes with some @code{nnnotbackends}, such as
 @file{nnheader.el}, @file{nnmail.el} and @file{nnoo.el}.
 
@@ -26638,7 +26879,7 @@ created after @samp{date}, which is in normal human-readable date format
 the function @code{message-make-date} by default).  The data should be
 in the active buffer format.
 
-It is okay for this function to return `too many' groups; some back ends
+It is okay for this function to return ``too many'' groups; some back ends
 might find it cheaper to return the full list of groups, rather than
 just the new groups.  But don't do this for back ends with many groups.
 Normally, if the user creates the groups herself, there won't be too
@@ -26700,7 +26941,7 @@ this function in short order.
 The function should return a cons where the @code{car} is the group name and
 the @code{cdr} is the article number that the article was entered as.
 
-The group should exist before the backend is asked to accept the
+The group should exist before the back end is asked to accept the
 article for that group.
 
 There should be no data returned.