]> code.delx.au - gnu-emacs/blobdiff - man/gnus.texi
Fix a few blunders.
[gnu-emacs] / man / gnus.texi
index 71b83f7652ece6023f050f8b1918fff2a85eab54..0de65081dba4a160b4eca59f28a3d500cc09ddee 100644 (file)
@@ -1,4 +1,4 @@
-\input texinfo                  @c -*-texinfo-*-  -*- coding: iso-latin-1 -*-
+\input texinfo                  @c -*- mode: texinfo; coding: iso-latin-1; -*-
 
 @setfilename ../info/gnus
 @settitle Gnus Manual
 
 \thispagestyle{empty}
 
-Copyright \copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright \copyright{} 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
 
 
 Permission is granted to copy, distribute and/or modify this document
@@ -300,7 +300,7 @@ license to the document, as described in section 6 of the license.
 
 This file documents Gnus, the GNU Emacs newsreader.
 
-Copyright (C) 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright (C) 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -329,7 +329,7 @@ license to the document, as described in section 6 of the license.
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright @copyright{} 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -364,7 +364,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.8.7.
+This manual corresponds to Gnus 5.9.0.
 
 @end ifinfo
 
@@ -593,7 +593,6 @@ The Article Buffer
 Composing Messages
 
 * Mail::                 Mailing and replying.
-* Post::                 Posting and following up.
 * Posting Server::       What server should you post via?
 * Mail and Post::        Mailing and posting at the same time.
 * Archived Messages::    Where Gnus stores the messages you've sent.
@@ -632,15 +631,15 @@ Getting Mail
 * Getting Started Reading Mail:: A simple cookbook example.
 * Splitting Mail::               How to create mail groups.
 * Mail Sources::                 How to tell Gnus where to get mail from.
-* Mail Backend Variables::       Variables for customizing mail handling.
+* Mail Back End Variables::      Variables for customizing mail handling.
 * Fancy Mail Splitting::         Gnus can do hairy splitting of incoming mail.
 * Group Mail Splitting::         Use group customize to drive mail splitting.
 * Incorporating Old Mail::       What about the old mail you have?
 * Expiring Mail::                Getting rid of unwanted mail.
 * Washing Mail::                 Removing cruft from the mail you get.
 * Duplicates::                   Dealing with duplicated mail.
-* Not Reading Mail::             Using mail backends for reading other files.
-* Choosing a Mail Backend::      Gnus can read a variety of mail formats.
+* Not Reading Mail::             Using mail back ends for reading other files.
+* Choosing a Mail Back End::     Gnus can read a variety of mail formats.
 
 Mail Sources
 
@@ -648,14 +647,14 @@ Mail Sources
 * Mail Source Customization::    Some variables that influence things.
 * Fetching Mail::                Using the mail source specifiers.
 
-Choosing a Mail Backend
+Choosing a Mail Back End
 
 * Unix Mail Box::               Using the (quite) standard Un*x mbox.
 * Rmail Babyl::                 Emacs programs use the rmail babyl format.
 * Mail Spool::                  Store your mail in a private spool?
-* MH Spool::                    An mhspool-like backend.
+* MH Spool::                    An mhspool-like back end.
 * Mail Folders::                Having one file for each group.
-* Comparing Mail Backends::     An in-depth looks at pros and cons.
+* Comparing Mail Back Ends::    An in-depth looks at pros and cons.
 
 Browsing the Web
 
@@ -680,7 +679,7 @@ Document Groups
 SOUP
 
 * SOUP Commands::     Commands for creating and sending @sc{soup} packets
-* SOUP Groups::       A backend for reading @sc{soup} packets.
+* SOUP Groups::       A back end for reading @sc{soup} packets.
 * SOUP Replies::      How to enable @code{nnsoup} to take over mail and news.
 
 @sc{imap}
@@ -762,7 +761,7 @@ Various
 * Compilation::                How to speed Gnus up.
 * Mode Lines::                 Displaying information in the mode lines.
 * Highlighting and Menus::     Making buffers look all nice and cozy.
-* Buttons::                    Get tendonitis in ten easy steps!
+* Buttons::                    Get tendinitis in ten easy steps!
 * Daemons::                    Gnus can do things behind your back.
 * NoCeM::                      How to avoid spam and other fatty foods.
 * Undo::                       Some actions can be undone.
@@ -817,14 +816,14 @@ History
 * Gnus Development::    How Gnus is developed.
 * Contributors::        Oodles of people.
 * New Features::        Pointers to some of the new stuff in Gnus.
-* Newest Features::     Features so new that they haven't been written yet.
 
 New Features
 
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
-* September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
+* September Gnus::     The Thing Formally Known As Gnus 5.2/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::       Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus::   Pentad also starts with P, AKA Gnus 5.8/5.9.
 
 Customization
 
@@ -836,7 +835,7 @@ Customization
 Gnus Reference Guide
 
 * Gnus Utility Functions::   Common functions and variable to use.
-* Backend Interface::        How Gnus communicates with the servers.
+* Back End Interface::       How Gnus communicates with the servers.
 * Score File Syntax::        A BNF definition of the score file standard.
 * Headers::                  How Gnus stores headers internally.
 * Ranges::                   A handy format for storing mucho numbers.
@@ -845,14 +844,14 @@ Gnus Reference Guide
 * Emacs/XEmacs Code::        Gnus can be run under all modern Emacsen.
 * Various File Formats::     Formats of files that Gnus use.
 
-Backend Interface
+Back End Interface
 
-* Required Backend Functions::        Functions that must be implemented.
-* Optional Backend Functions::        Functions that need not be implemented.
+* Required Back End Functions::       Functions that must be implemented.
+* Optional Back End Functions::       Functions that need not be implemented.
 * Error Messaging::                   How to get messages and report errors.
-* Writing New Backends::              Extending old backends.
-* Hooking New Backends Into Gnus::    What has to be done on the Gnus end.
-* Mail-like Backends::                Some tips on mail backends.
+* Writing New Back Ends::             Extending old back ends.
+* Hooking New Back Ends Into Gnus::   What has to be done on the Gnus end.
+* Mail-like Back Ends::               Some tips on mail back ends.
 
 Various File Formats
 
@@ -958,7 +957,7 @@ gnus} later in the same Emacs session, Gnus will contact the same
 server.)
 
 @findex gnus-group-browse-foreign-server
-@kindex B (Group)
+@kindex B @r{(Group)}
 However, if you use one @sc{nntp} server regularly and are just
 interested in a couple of groups from a different server, you would be
 better served by using the @kbd{B} command in the group buffer.  It will
@@ -976,8 +975,8 @@ files during startup (if that's required), and new newsgroups that
 appear on these servers will be subscribed (or not) just as native
 groups are.
 
-For instance, if you use the @code{nnmbox} backend to read your mail, you
-would typically set this variable to
+For instance, if you use the @code{nnmbox} back end to read your mail,
+you would typically set this variable to
 
 @lisp
 (setq gnus-secondary-select-methods '((nnmbox "")))
@@ -1057,7 +1056,7 @@ conjunction with each other, you have to send $1 per usage instance to
 me.  Usage of the patent (@dfn{Master/Slave Relationships In Computer
 Applications}) will be much more expensive, of course.)
 
-Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
+Anyway, you start one Gnus up the normal way with @kbd{M-x gnus} (or
 however you do it).  Each subsequent slave Gnusae should be started with
 @kbd{M-x gnus-slave}.  These slaves won't save normal @file{.newsrc}
 files, but instead save @dfn{slave files} that contain information only
@@ -1094,7 +1093,7 @@ also save you some time at startup.  Even if this variable is
 @code{nil}, you can always subscribe to the new groups just by pressing
 @kbd{U} in the group buffer (@pxref{Group Maintenance}).  This variable
 is @code{ask-server} by default.  If you set this variable to
-@code{always}, then Gnus will query the backends for new groups even
+@code{always}, then Gnus will query the back ends for new groups even
 when you do the @kbd{g} command (@pxref{Scanning New Messages}).
 
 @menu
@@ -1256,7 +1255,7 @@ Yet another variable that meddles here is
 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 backends (@code{nnml}, @code{nnbabyl},
+that come from mail back ends (@code{nnml}, @code{nnbabyl},
 @code{nnfolder}, @code{nnmbox}, and @code{nnmh}) subscribed.  If you
 don't like that, just set this variable to @code{nil}.
 
@@ -1474,9 +1473,10 @@ support the @code{LIST ACTIVE group} command), on others this isn't fast
 at all.  In any case, @code{some} should be faster than @code{nil}, and
 is certainly faster than @code{t} over slow lines.
 
-Some news servers (Leafnode and old versions of INN, for instance) do
-not support the @code{LIST ACTIVE group}.  For these servers, @code{nil}
-is probably the most efficient value for this variable.
+Some news servers (old versions of Leafnode and old versions of INN, for
+instance) do not support the @code{LIST ACTIVE group}.  For these
+servers, @code{nil} is probably the most efficient value for this
+variable.
 
 If this variable is @code{nil}, Gnus will ask for group info in total
 lock-step, which isn't very fast.  If it is @code{some} and you use an
@@ -1725,6 +1725,9 @@ The default is 1---this will mean that group names like
 @samp{%} (@code{gnus-new-mail-mark}) if there has arrived new mail to
 the group lately.
 
+@item p
+@samp{#} (@code{gnus-process-mark}) if the group is process marked.
+
 @item d
 A string that says when you last read the group (@pxref{Group
 Timestamp}).
@@ -1847,37 +1850,37 @@ expected, hopefully.
 @table @kbd
 
 @item n
-@kindex n (Group)
+@kindex n @r{(Group)}
 @findex gnus-group-next-unread-group
 Go to the next group that has unread articles
 (@code{gnus-group-next-unread-group}).
 
 @item p
-@itemx DEL
-@kindex DEL (Group)
-@kindex p (Group)
+@itemx @key{DEL}
+@kindex @key{DEL} @r{(Group)}
+@kindex p @r{(Group)}
 @findex gnus-group-prev-unread-group
 Go to the previous group that has unread articles
 (@code{gnus-group-prev-unread-group}).
 
 @item N
-@kindex N (Group)
+@kindex N @r{(Group)}
 @findex gnus-group-next-group
 Go to the next group (@code{gnus-group-next-group}).
 
 @item P
-@kindex P (Group)
+@kindex P @r{(Group)}
 @findex gnus-group-prev-group
 Go to the previous group (@code{gnus-group-prev-group}).
 
 @item M-n
-@kindex M-n (Group)
+@kindex M-n @r{(Group)}
 @findex gnus-group-next-unread-group-same-level
 Go to the next unread group on the same (or lower) level
 (@code{gnus-group-next-unread-group-same-level}).
 
 @item M-p
-@kindex M-p (Group)
+@kindex M-p @r{(Group)}
 @findex gnus-group-prev-unread-group-same-level
 Go to the previous unread group on the same (or lower) level
 (@code{gnus-group-prev-unread-group-same-level}).
@@ -1888,20 +1891,20 @@ Three commands for jumping to groups:
 @table @kbd
 
 @item j
-@kindex j (Group)
+@kindex j @r{(Group)}
 @findex gnus-group-jump-to-group
 Jump to a group (and make it visible if it isn't already)
 (@code{gnus-group-jump-to-group}).  Killed groups can be jumped to, just
 like living groups.
 
 @item ,
-@kindex , (Group)
+@kindex , @r{(Group)}
 @findex gnus-group-best-unread-group
 Jump to the unread group with the lowest level
 (@code{gnus-group-best-unread-group}).
 
 @item .
-@kindex . (Group)
+@kindex . @r{(Group)}
 @findex gnus-group-first-unread-group
 Jump to the first group with unread articles
 (@code{gnus-group-first-unread-group}).
@@ -1920,8 +1923,8 @@ is @code{t}.
 
 @table @kbd
 
-@item SPACE
-@kindex SPACE (Group)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Group)}
 @findex gnus-group-read-group
 Select the current group, switch to the summary buffer and display the
 first unread article (@code{gnus-group-read-group}).  If there are no
@@ -1932,8 +1935,17 @@ determines the number of articles Gnus will fetch.  If @var{N} is
 positive, Gnus fetches the @var{N} newest articles, if @var{N} is
 negative, Gnus fetches the @code{abs(@var{N})} oldest articles.
 
-@item RET
-@kindex RET (Group)
+Thus, @kbd{SPC} enters the group normally, @kbd{C-u SPC} offers old
+articles, @kbd{C-u 4 2 SPC} fetches the 42 newest articles, and @kbd{C-u
+- 4 2 SPC} fetches the 42 oldest ones.
+
+When you are in the group (in the Summary buffer), you can type
+@kbd{M-g} to fetch new articles, or @kbd{C-u M-g} to also show the old
+ones.
+
+@item @key{RET}
+@kindex @key{RET} @r{(Group)}
+
 @findex gnus-group-select-group
 Select the current group and switch to the summary buffer
 (@code{gnus-group-select-group}).  Takes the same arguments as
@@ -1941,27 +1953,27 @@ Select the current group and switch to the summary buffer
 does not display the first unread article automatically upon group
 entry.
 
-@item M-RET
-@kindex M-RET (Group)
+@item M-@key{RET}
+@kindex M-@key{RET} @r{(Group)}
 @findex gnus-group-quick-select-group
 This does the same as the command above, but tries to do it with the
 minimum amount of fuzz (@code{gnus-group-quick-select-group}).  No
 scoring/killing will be performed, there will be no highlights and no
 expunging.  This might be useful if you're in a real hurry and have to
 enter some humongous group.  If you give a 0 prefix to this command
-(i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer,
+(i.e., @kbd{0 M-@key{RET}}), Gnus won't even generate the summary buffer,
 which is useful if you want to toggle threading before generating the
 summary buffer (@pxref{Summary Generation Commands}).
 
-@item M-SPACE
-@kindex M-SPACE (Group)
+@item M-@key{SPC}
+@kindex M-@key{SPC} @r{(Group)}
 @findex gnus-group-visible-select-group
-This is yet one more command that does the same as the @kbd{RET}
+This is yet one more command that does the same as the @key{RET}
 command, but this one does it without expunging and hiding dormants
 (@code{gnus-group-visible-select-group}).
 
-@item M-C-RET
-@kindex M-C-RET (Group)
+@item C-M-@key{RET}
+@kindex C-M-@key{RET} @r{(Group)}
 @findex gnus-group-select-group-ephemerally
 Finally, this command selects the current group ephemerally without
 doing any processing of its contents
@@ -1984,7 +1996,7 @@ be fetched.
 @vindex gnus-select-group-hook
 @vindex gnus-auto-select-first
 @code{gnus-auto-select-first} control whether any articles are selected
-automatically when entering a group with the @kbd{SPACE} command.
+automatically when entering a group with the @key{SPC} command.
 
 @table @code
 
@@ -2032,8 +2044,8 @@ selected.
 
 @item S t
 @itemx u
-@kindex S t (Group)
-@kindex u (Group)
+@kindex S t @r{(Group)}
+@kindex u @r{(Group)}
 @findex gnus-group-unsubscribe-current-group
 @c @icon{gnus-group-unsubscribe}
 Toggle subscription to the current group
@@ -2041,8 +2053,8 @@ Toggle subscription to the current group
 
 @item S s
 @itemx U
-@kindex S s (Group)
-@kindex U (Group)
+@kindex S s @r{(Group)}
+@kindex U @r{(Group)}
 @findex gnus-group-unsubscribe-group
 Prompt for a group to subscribe, and then subscribe it.  If it was
 subscribed already, unsubscribe it instead
@@ -2050,21 +2062,21 @@ subscribed already, unsubscribe it instead
 
 @item S k
 @itemx C-k
-@kindex S k (Group)
-@kindex C-k (Group)
+@kindex S k @r{(Group)}
+@kindex C-k @r{(Group)}
 @findex gnus-group-kill-group
 @c @icon{gnus-group-kill-group}
 Kill the current group (@code{gnus-group-kill-group}).
 
 @item S y
 @itemx C-y
-@kindex S y (Group)
-@kindex C-y (Group)
+@kindex S y @r{(Group)}
+@kindex C-y @r{(Group)}
 @findex gnus-group-yank-group
 Yank the last killed group (@code{gnus-group-yank-group}).
 
 @item C-x C-t
-@kindex C-x C-t (Group)
+@kindex C-x C-t @r{(Group)}
 @findex gnus-group-transpose-groups
 Transpose two groups (@code{gnus-group-transpose-groups}).  This isn't
 really a subscription command, but you can use it instead of a
@@ -2072,18 +2084,18 @@ kill-and-yank sequence sometimes.
 
 @item S w
 @itemx C-w
-@kindex S w (Group)
-@kindex C-w (Group)
+@kindex S w @r{(Group)}
+@kindex C-w @r{(Group)}
 @findex gnus-group-kill-region
 Kill all groups in the region (@code{gnus-group-kill-region}).
 
 @item S z
-@kindex S z (Group)
+@kindex S z @r{(Group)}
 @findex gnus-group-kill-all-zombies
 Kill all zombie groups (@code{gnus-group-kill-all-zombies}).
 
 @item S C-k
-@kindex S C-k (Group)
+@kindex S C-k @r{(Group)}
 @findex gnus-group-kill-level
 Kill all groups on a certain level (@code{gnus-group-kill-level}).
 These groups can't be yanked back after killing, so this command should
@@ -2104,7 +2116,7 @@ Also @pxref{Group Levels}.
 @table @kbd
 
 @item c
-@kindex c (Group)
+@kindex c @r{(Group)}
 @findex gnus-group-catchup-current
 @vindex gnus-group-catchup-group-hook
 @c @icon{gnus-group-catchup-current}
@@ -2114,13 +2126,13 @@ Mark all unticked articles in this group as read
 the group buffer.
 
 @item C
-@kindex C (Group)
+@kindex C @r{(Group)}
 @findex gnus-group-catchup-current-all
 Mark all articles in this group, even the ticked ones, as read
 (@code{gnus-group-catchup-current-all}).
 
 @item M-c
-@kindex M-c (Group)
+@kindex M-c @r{(Group)}
 @findex gnus-group-clear-data
 Clear the data from the current group---nix out marks and the list of
 read articles (@code{gnus-group-clear-data}).
@@ -2152,7 +2164,7 @@ Remember:  The higher the level of the group, the less important it is.
 @table @kbd
 
 @item S l
-@kindex S l (Group)
+@kindex S l @r{(Group)}
 @findex gnus-group-set-current-level
 Set the level of the current group.  If a numeric prefix is given, the
 next @var{n} groups will have their levels set.  The user will be
@@ -2292,37 +2304,37 @@ with the process mark and then execute the command.
 @table @kbd
 
 @item #
-@kindex # (Group)
+@kindex # @r{(Group)}
 @itemx M m
-@kindex M m (Group)
+@kindex M m @r{(Group)}
 @findex gnus-group-mark-group
 Set the mark on the current group (@code{gnus-group-mark-group}).
 
 @item M-#
-@kindex M-# (Group)
+@kindex M-# @r{(Group)}
 @itemx M u
-@kindex M u (Group)
+@kindex M u @r{(Group)}
 @findex gnus-group-unmark-group
 Remove the mark from the current group
 (@code{gnus-group-unmark-group}).
 
 @item M U
-@kindex M U (Group)
+@kindex M U @r{(Group)}
 @findex gnus-group-unmark-all-groups
 Remove the mark from all groups (@code{gnus-group-unmark-all-groups}).
 
 @item M w
-@kindex M w (Group)
+@kindex M w @r{(Group)}
 @findex gnus-group-mark-region
 Mark all groups between point and mark (@code{gnus-group-mark-region}).
 
 @item M b
-@kindex M b (Group)
+@kindex M b @r{(Group)}
 @findex gnus-group-mark-buffer
 Mark all groups in the buffer (@code{gnus-group-mark-buffer}).
 
 @item M r
-@kindex M r (Group)
+@kindex M r @r{(Group)}
 @findex gnus-group-mark-regexp
 Mark all groups that match some regular expression
 (@code{gnus-group-mark-regexp}).
@@ -2350,7 +2362,7 @@ consulted.
 @table @kbd
 
 @item G m
-@kindex G m (Group)
+@kindex G m @r{(Group)}
 @findex gnus-group-make-group
 @cindex making groups
 Make a new group (@code{gnus-group-make-group}).  Gnus will prompt you
@@ -2358,54 +2370,54 @@ for a name, a method and possibly an @dfn{address}.  For an easier way
 to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}.
 
 @item G r
-@kindex G r (Group)
+@kindex G r @r{(Group)}
 @findex gnus-group-rename-group
 @cindex renaming groups
 Rename the current group to something else
 (@code{gnus-group-rename-group}).  This is valid only on some
 groups---mail groups mostly.  This command might very well be quite slow
-on some backends.
+on some back ends.
 
 @item G c
-@kindex G c (Group)
+@kindex G c @r{(Group)}
 @cindex customizing
 @findex gnus-group-customize
 Customize the group parameters (@code{gnus-group-customize}).
 
 @item G e
-@kindex G e (Group)
+@kindex G e @r{(Group)}
 @findex gnus-group-edit-group-method
 @cindex renaming groups
 Enter a buffer where you can edit the select method of the current
 group (@code{gnus-group-edit-group-method}).
 
 @item G p
-@kindex G p (Group)
+@kindex G p @r{(Group)}
 @findex gnus-group-edit-group-parameters
 Enter a buffer where you can edit the group parameters
 (@code{gnus-group-edit-group-parameters}).
 
 @item G E
-@kindex G E (Group)
+@kindex G E @r{(Group)}
 @findex gnus-group-edit-group
 Enter a buffer where you can edit the group info
 (@code{gnus-group-edit-group}).
 
 @item G d
-@kindex G d (Group)
+@kindex G d @r{(Group)}
 @findex gnus-group-make-directory-group
 @cindex nndir
 Make a directory group (@pxref{Directory Groups}).  You will be prompted
 for a directory name (@code{gnus-group-make-directory-group}).
 
 @item G h
-@kindex G h (Group)
+@kindex G h @r{(Group)}
 @cindex help group
 @findex gnus-group-make-help-group
 Make the Gnus help group (@code{gnus-group-make-help-group}).
 
 @item G a
-@kindex G a (Group)
+@kindex G a @r{(Group)}
 @cindex (ding) archive
 @cindex archive group
 @findex gnus-group-make-archive-group
@@ -2417,7 +2429,7 @@ default a group pointing to the most recent articles will be created
 group will be created from @code{gnus-group-archive-directory}.
 
 @item G k
-@kindex G k (Group)
+@kindex G k @r{(Group)}
 @findex gnus-group-make-kiboze-group
 @cindex nnkiboze
 Make a kiboze group.  You will be prompted for a name, for a regexp to
@@ -2426,15 +2438,15 @@ strings to match on headers (@code{gnus-group-make-kiboze-group}).
 @xref{Kibozed Groups}.
 
 @item G D
-@kindex G D (Group)
+@kindex G D @r{(Group)}
 @findex gnus-group-enter-directory
 @cindex nneething
 Read an arbitrary directory as if it were a newsgroup with the
-@code{nneething} backend (@code{gnus-group-enter-directory}).
+@code{nneething} back end (@code{gnus-group-enter-directory}).
 @xref{Anything Groups}.
 
 @item G f
-@kindex G f (Group)
+@kindex G f @r{(Group)}
 @findex gnus-group-make-doc-group
 @cindex ClariNet Briefs
 @cindex nndoc
@@ -2448,14 +2460,14 @@ If you run this command without a prefix, Gnus will guess at the file
 type.  @xref{Document Groups}.
 
 @item G u
-@kindex G u (Group)
+@kindex G u @r{(Group)}
 @vindex gnus-useful-groups
 @findex gnus-group-make-useful-group
 Create one of the groups mentioned in @code{gnus-useful-groups}
 (@code{gnus-group-make-useful-group}).
 
 @item G w
-@kindex G w (Group)
+@kindex G w @r{(Group)}
 @findex gnus-group-make-web-group
 @cindex DejaNews
 @cindex Alta Vista
@@ -2472,8 +2484,8 @@ If you use the @code{dejanews} search engine, you can limit the search
 to a particular group by using a match string like
 @samp{~g alt.sysadmin.recovery shaving}.
 
-@item G DEL
-@kindex G DEL (Group)
+@item G @key{DEL}
+@kindex G @key{DEL} @r{(Group)}
 @findex gnus-group-delete-group
 This function will delete the current group
 (@code{gnus-group-delete-group}).  If given a prefix, this function will
@@ -2483,13 +2495,13 @@ absolutely sure of what you are doing.  This command can't be used on
 read-only groups (like @code{nntp} group), though.
 
 @item G V
-@kindex G V (Group)
+@kindex G V @r{(Group)}
 @findex gnus-group-make-empty-virtual
 Make a new, fresh, empty @code{nnvirtual} group
 (@code{gnus-group-make-empty-virtual}).  @xref{Virtual Groups}.
 
 @item G v
-@kindex G v (Group)
+@kindex G v @r{(Group)}
 @findex gnus-group-add-to-virtual
 Add the current group to an @code{nnvirtual} group
 (@code{gnus-group-add-to-virtual}).  Uses the process/prefix convention.
@@ -2548,6 +2560,9 @@ the articles from a mail-to-news gateway.  Posting directly to this
 group is therefore impossible---you have to send mail to the mailing
 list address instead.
 
+Some parameters have corresponding customizable variables, each of which
+is an alist of regexps and values.
+
 @item to-list
 @cindex to-list
 Address used when doing @kbd{a} in that group.
@@ -2570,6 +2585,8 @@ 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.
 
+See also @code{gnus-parameter-to-list-alist}.
+
 @item visible
 @cindex visible
 If the group parameter list has the element @code{(visible . t)},
@@ -2620,6 +2637,8 @@ expiry process, even if they are not marked as expirable.  Use with
 caution.  Unread, ticked and dormant articles are not eligible for
 expiry.
 
+See also @code{gnus-total-expirable-newsgroups}.
+
 @item expiry-wait
 @cindex expiry-wait
 @vindex nnmail-expiry-wait-function
@@ -2671,20 +2690,15 @@ Elements that look like @code{(charset . iso-8859-1)} will make
 @code{iso-8859-1} the default charset; that is, the charset that will be
 used for all articles that do not specify a charset.
 
-@item (@var{variable} @var{form})
-You can use the group parameters to set variables local to the group you
-are entering.  If you want to turn threading off in @samp{news.answers},
-you could put @code{(gnus-show-threads nil)} in the group parameters of
-that group.  @code{gnus-show-threads} will be made into a local variable
-in the summary buffer you enter, and the form @code{nil} will be
-@code{eval}ed there.
+See also @code{gnus-group-charset-alist}.
 
-This can also be used as a group-specific hook function, if you'd like.
-If you want to hear a beep when you enter a group, you could put
-something like @code{(dummy-variable (ding))} in the parameters of that
-group.  @code{dummy-variable} will be set to the result of the
-@code{(ding)} form, but who cares?
+@item ignored-charsets
+Elements that look like @code{(ignored-charsets x-known iso-8859-1)}
+will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the
+default charset will be used for decoding articles.
 
+See also @code{gnus-group-ignored-charsets-alist}.
 @item posting-style
 You can store additional posting style information for this group only
 here (@pxref{Posting Styles}).  The format is that of an entry in the
@@ -2702,11 +2716,34 @@ like this in the group parameters:
   (signature "Funky Signature"))
 @end example
 
+@item banner
+An item like @code{(banner . "regex")} causes any part of an article
+that matches the regular expression "regex" to be stripped. Instead of
+"regex", you can also use the symbol @code{signature} which strips the
+last signature or any of the elements of the alist
+@code{gnus-article-banner-alist}.
+
+@item (@var{variable} @var{form})
+You can use the group parameters to set variables local to the group you
+are entering.  If you want to turn threading off in @samp{news.answers},
+you could put @code{(gnus-show-threads nil)} in the group parameters of
+that group.  @code{gnus-show-threads} will be made into a local variable
+in the summary buffer you enter, and the form @code{nil} will be
+@code{eval}ed there.
+
+This can also be used as a group-specific hook function, if you like.
+If you want to hear a beep when you enter a group, you could put
+something like @code{(dummy-variable (ding))} in the parameters of that
+group.  @code{dummy-variable} will be set to the result of the
+@code{(ding)} form, but who cares?
+
 @end table
 
-Use the @kbd{G p} command to edit group parameters of a group.  You
-might also be interested in reading about topic parameters (@pxref{Topic
-Parameters}).
+Use the @kbd{G p} or the @kbd{G c} command to edit group parameters of a
+group.  (@kbd{G p} presents you with a Lisp-based interface, @kbd{G c}
+presents you with a Customize-like interface.  The latter helps avoid
+silly Lisp errors.)  You might also be interested in reading about topic
+parameters (@pxref{Topic Parameters}).
 
 
 @node Listing Groups
@@ -2719,8 +2756,8 @@ These commands all list various slices of the groups available.
 
 @item l
 @itemx A s
-@kindex A s (Group)
-@kindex l (Group)
+@kindex A s @r{(Group)}
+@kindex l @r{(Group)}
 @findex gnus-group-list-groups
 List all groups that have unread articles
 (@code{gnus-group-list-groups}).  If the numeric prefix is used, this
@@ -2731,8 +2768,8 @@ groups).
 
 @item L
 @itemx A u
-@kindex A u (Group)
-@kindex L (Group)
+@kindex A u @r{(Group)}
+@kindex L @r{(Group)}
 @findex gnus-group-list-all-groups
 List all groups, whether they have unread articles or not
 (@code{gnus-group-list-all-groups}).  If the numeric prefix is used,
@@ -2741,14 +2778,14 @@ it lists groups of level seven or lower (i.e., just subscribed and
 unsubscribed groups).
 
 @item A l
-@kindex A l (Group)
+@kindex A l @r{(Group)}
 @findex gnus-group-list-level
 List all unread groups on a specific level
 (@code{gnus-group-list-level}).  If given a prefix, also list the groups
 with no unread articles.
 
 @item A k
-@kindex A k (Group)
+@kindex A k @r{(Group)}
 @findex gnus-group-list-killed
 List all killed groups (@code{gnus-group-list-killed}).  If given a
 prefix argument, really list all groups that are available, but aren't
@@ -2756,23 +2793,23 @@ currently (un)subscribed.  This could entail reading the active file
 from the server.
 
 @item A z
-@kindex A z (Group)
+@kindex A z @r{(Group)}
 @findex gnus-group-list-zombies
 List all zombie groups (@code{gnus-group-list-zombies}).
 
 @item A m
-@kindex A m (Group)
+@kindex A m @r{(Group)}
 @findex gnus-group-list-matching
 List all unread, subscribed groups with names that match a regexp
 (@code{gnus-group-list-matching}).
 
 @item A M
-@kindex A M (Group)
+@kindex A M @r{(Group)}
 @findex gnus-group-list-all-matching
 List groups that match a regexp (@code{gnus-group-list-all-matching}).
 
 @item A A
-@kindex A A (Group)
+@kindex A A @r{(Group)}
 @findex gnus-group-list-active
 List absolutely all groups in the active file(s) of the
 server(s) you are connected to (@code{gnus-group-list-active}).  This
@@ -2783,24 +2820,24 @@ don't exist (yet)---these will be listed as if they were killed groups.
 Take the output with some grains of salt.
 
 @item A a
-@kindex A a (Group)
+@kindex A a @r{(Group)}
 @findex gnus-group-apropos
 List all groups that have names that match a regexp
 (@code{gnus-group-apropos}).
 
 @item A d
-@kindex A d (Group)
+@kindex A d @r{(Group)}
 @findex gnus-group-description-apropos
 List all groups that have names or descriptions that match a regexp
 (@code{gnus-group-description-apropos}).
 
 @item A c
-@kindex A c (Group)
+@kindex A c @r{(Group)}
 @findex gnus-group-list-cached
 List all groups with cached articles (@code{gnus-group-list-cached}).
 
 @item A ?
-@kindex A ? (Group)
+@kindex A ? @r{(Group)}
 @findex gnus-group-list-dormant
 List all groups with dormant articles (@code{gnus-group-list-dormant}).
 
@@ -2824,7 +2861,7 @@ groups.  It is @code{t} by default.
 @section Sorting Groups
 @cindex sorting groups
 
-@kindex C-c C-s (Group)
+@kindex C-c C-s @r{(Group)}
 @findex gnus-group-sort-groups
 @vindex gnus-group-sort-function
 The @kbd{C-c C-s} (@code{gnus-group-sort-groups}) command sorts the
@@ -2876,39 +2913,39 @@ some sorting criteria:
 
 @table @kbd
 @item G S a
-@kindex G S a (Group)
+@kindex G S a @r{(Group)}
 @findex gnus-group-sort-groups-by-alphabet
 Sort the group buffer alphabetically by group name
 (@code{gnus-group-sort-groups-by-alphabet}).
 
 @item G S u
-@kindex G S u (Group)
+@kindex G S u @r{(Group)}
 @findex gnus-group-sort-groups-by-unread
 Sort the group buffer by the number of unread articles
 (@code{gnus-group-sort-groups-by-unread}).
 
 @item G S l
-@kindex G S l (Group)
+@kindex G S l @r{(Group)}
 @findex gnus-group-sort-groups-by-level
 Sort the group buffer by group level
 (@code{gnus-group-sort-groups-by-level}).
 
 @item G S v
-@kindex G S v (Group)
+@kindex G S v @r{(Group)}
 @findex gnus-group-sort-groups-by-score
 Sort the group buffer by group score
 (@code{gnus-group-sort-groups-by-score}).  @xref{Group Score}.
 
 @item G S r
-@kindex G S r (Group)
+@kindex G S r @r{(Group)}
 @findex gnus-group-sort-groups-by-rank
 Sort the group buffer by group rank
 (@code{gnus-group-sort-groups-by-rank}).  @xref{Group Score}.
 
 @item G S m
-@kindex G S m (Group)
+@kindex G S m @r{(Group)}
 @findex gnus-group-sort-groups-by-method
-Sort the group buffer alphabetically by backend name
+Sort the group buffer alphabetically by back end name
 (@code{gnus-group-sort-groups-by-method}).
 
 @end table
@@ -2923,39 +2960,39 @@ You can also sort a subset of the groups:
 
 @table @kbd
 @item G P a
-@kindex G P a (Group)
+@kindex G P a @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-alphabet
 Sort the groups alphabetically by group name
 (@code{gnus-group-sort-selected-groups-by-alphabet}).
 
 @item G P u
-@kindex G P u (Group)
+@kindex G P u @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-unread
 Sort the groups by the number of unread articles
 (@code{gnus-group-sort-selected-groups-by-unread}).
 
 @item G P l
-@kindex G P l (Group)
+@kindex G P l @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-level
 Sort the groups by group level
 (@code{gnus-group-sort-selected-groups-by-level}).
 
 @item G P v
-@kindex G P v (Group)
+@kindex G P v @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-score
 Sort the groups by group score
 (@code{gnus-group-sort-selected-groups-by-score}).  @xref{Group Score}.
 
 @item G P r
-@kindex G P r (Group)
+@kindex G P r @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-rank
 Sort the groups by group rank
 (@code{gnus-group-sort-selected-groups-by-rank}).  @xref{Group Score}.
 
 @item G P m
-@kindex G P m (Group)
+@kindex G P m @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-method
-Sort the groups alphabetically by backend name
+Sort the groups alphabetically by back end name
 (@code{gnus-group-sort-selected-groups-by-method}).
 
 @end table
@@ -2968,13 +3005,13 @@ Sort the groups alphabetically by backend name
 
 @table @kbd
 @item b
-@kindex b (Group)
+@kindex b @r{(Group)}
 @findex gnus-group-check-bogus-groups
 Find bogus groups and delete them
 (@code{gnus-group-check-bogus-groups}).
 
 @item F
-@kindex F (Group)
+@kindex F @r{(Group)}
 @findex gnus-group-find-new-groups
 Find new groups and process them (@code{gnus-group-find-new-groups}).
 With 1 @kbd{C-u}, use the @code{ask-server} method to query the server
@@ -2983,13 +3020,13 @@ to query the server for new groups, and subscribe the new groups as
 zombies.
 
 @item C-c C-x
-@kindex C-c C-x (Group)
+@kindex C-c C-x @r{(Group)}
 @findex gnus-group-expire-articles
 Run all expirable articles in the current group through the expiry
 process (if any) (@code{gnus-group-expire-articles}).
 
-@item C-c M-C-x
-@kindex C-c M-C-x (Group)
+@item C-c C-M-x
+@kindex C-c C-M-x @r{(Group)}
 @findex gnus-group-expire-all-groups
 Run all articles in all groups through the expiry process
 (@code{gnus-group-expire-all-groups}).
@@ -3004,7 +3041,7 @@ Run all articles in all groups through the expiry process
 
 @table @kbd
 @item B
-@kindex B (Group)
+@kindex B @r{(Group)}
 @findex gnus-group-browse-foreign-server
 You will be queried for a select method and a server name.  Gnus will
 then attempt to contact this server and let you browse the groups there
@@ -3029,14 +3066,14 @@ Go to the next group (@code{gnus-group-next-group}).
 @findex gnus-group-prev-group
 Go to the previous group (@code{gnus-group-prev-group}).
 
-@item SPACE
-@kindex SPACE (Browse)
+@item @key{SPC}
+@kindex @key{SPC} (Browse)
 @findex gnus-browse-read-group
 Enter the current group and display the first article
 (@code{gnus-browse-read-group}).
 
-@item RET
-@kindex RET (Browse)
+@item @key{RET}
+@kindex @key{RET} (Browse)
 @findex gnus-browse-select-group
 Enter the current group (@code{gnus-browse-select-group}).
 
@@ -3069,20 +3106,20 @@ Yes, Gnus is ex(c)iting.
 
 @table @kbd
 @item z
-@kindex z (Group)
+@kindex z @r{(Group)}
 @findex gnus-group-suspend
 Suspend Gnus (@code{gnus-group-suspend}).  This doesn't really exit Gnus,
 but it kills all buffers except the Group buffer.  I'm not sure why this
 is a gain, but then who am I to judge?
 
 @item q
-@kindex q (Group)
+@kindex q @r{(Group)}
 @findex gnus-group-exit
 @c @icon{gnus-group-exit}
 Quit Gnus (@code{gnus-group-exit}).
 
 @item Q
-@kindex Q (Group)
+@kindex Q @r{(Group)}
 @findex gnus-group-quit
 Quit Gnus without saving the @file{.newsrc} files (@code{gnus-group-quit}).
 The dribble file will be saved, though (@pxref{Auto Save}).
@@ -3146,7 +3183,7 @@ Gnus
 @end example
 
 @findex gnus-topic-mode
-@kindex t (Group)
+@kindex t @r{(Group)}
 To get this @emph{fab} functionality you simply turn on (ooh!) the
 @code{gnus-topic} minor mode---type @kbd{t} in the group buffer.  (This
 is a toggling command.)
@@ -3321,10 +3358,10 @@ previous topic (@code{gnus-topic-indent}).  If given a prefix,
 ``Un-indent'' the current topic so that it becomes a sub-topic of the
 parent of its current parent (@code{gnus-topic-unindent}).
 
-@item RET
-@kindex RET (Topic)
+@item @key{RET}
+@kindex @key{RET} (Topic)
 @findex gnus-topic-select-group
-@itemx SPACE
+@itemx @key{SPC}
 Either select a group or fold a topic (@code{gnus-topic-select-group}).
 When you perform this command on a group, you'll enter the group, as
 usual.  When done on a topic line, the topic will be folded (if it was
@@ -3356,8 +3393,8 @@ before all groups.
 @findex gnus-topic-rename
 Rename a topic (@code{gnus-topic-rename}).
 
-@item T DEL
-@kindex T DEL (Topic)
+@item T @key{DEL}
+@kindex T @key{DEL} (Topic)
 @findex gnus-topic-delete
 Delete an empty topic (@code{gnus-topic-delete}).
 
@@ -3421,7 +3458,7 @@ Sort the current topic by group rank
 @item T S m
 @kindex T S m (Topic)
 @findex gnus-topic-sort-groups-by-method
-Sort the current topic alphabetically by backend name
+Sort the current topic alphabetically by back end name
 (@code{gnus-topic-sort-groups-by-method}).
 
 @end table
@@ -3549,19 +3586,19 @@ happens.  You just have to be careful if you do stuff like that.
 @table @kbd
 
 @item ^
-@kindex ^ (Group)
+@kindex ^ @r{(Group)}
 @findex gnus-group-enter-server-mode
 Enter the server buffer (@code{gnus-group-enter-server-mode}).
 @xref{The Server Buffer}.
 
 @item a
-@kindex a (Group)
+@kindex a @r{(Group)}
 @findex gnus-group-post-news
 Post an article to a group (@code{gnus-group-post-news}).  If given a
 prefix, the current group name will be used as the default.
 
 @item m
-@kindex m (Group)
+@kindex m @r{(Group)}
 @findex gnus-group-mail
 Mail a message somewhere (@code{gnus-group-mail}).
 
@@ -3624,17 +3661,17 @@ For example:
 @table @kbd
 
 @item g
-@kindex g (Group)
+@kindex g @r{(Group)}
 @findex gnus-group-get-new-news
 @c @icon{gnus-group-get-new-news}
 Check the server(s) for new articles.  If the numerical prefix is used,
 this command will check only groups of level @var{arg} and lower
 (@code{gnus-group-get-new-news}).  If given a non-numerical prefix, this
 command will force a total re-reading of the active file(s) from the
-backend(s).
+back end(s).
 
 @item M-g
-@kindex M-g (Group)
+@kindex M-g @r{(Group)}
 @findex gnus-group-get-new-news-this-group
 @vindex gnus-goto-next-group-when-activating
 @c @icon{gnus-group-get-new-news-this-group}
@@ -3646,11 +3683,11 @@ to move point to the next group or not.  It is @code{t} by default.
 @findex gnus-activate-all-groups
 @cindex activating groups
 @item C-c M-g
-@kindex C-c M-g (Group)
+@kindex C-c M-g @r{(Group)}
 Activate absolutely all groups (@code{gnus-activate-all-groups}).
 
 @item R
-@kindex R (Group)
+@kindex R @r{(Group)}
 @cindex restarting
 @findex gnus-group-restart
 Restart Gnus (@code{gnus-group-restart}).  This saves the @file{.newsrc}
@@ -3676,7 +3713,7 @@ news.
 
 
 @item H f
-@kindex H f (Group)
+@kindex H f @r{(Group)}
 @findex gnus-group-fetch-faq
 @vindex gnus-group-faq-directory
 @cindex FAQ
@@ -3695,8 +3732,8 @@ through @code{gnus-group-faq-directory} and try to open them one by one.
 @item H d
 @itemx C-c C-d
 @c @icon{gnus-group-describe-group}
-@kindex H d (Group)
-@kindex C-c C-d (Group)
+@kindex H d @r{(Group)}
+@kindex C-c C-d @r{(Group)}
 @cindex describing groups
 @cindex group description
 @findex gnus-group-describe-group
@@ -3704,26 +3741,26 @@ Describe the current group (@code{gnus-group-describe-group}).  If given
 a prefix, force Gnus to re-read the description from the server.
 
 @item M-d
-@kindex M-d (Group)
+@kindex M-d @r{(Group)}
 @findex gnus-group-describe-all-groups
 Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 prefix, force Gnus to re-read the description file from the server.
 
 @item H v
 @itemx V
-@kindex V (Group)
-@kindex H v (Group)
+@kindex V @r{(Group)}
+@kindex H v @r{(Group)}
 @cindex version
 @findex gnus-version
 Display current Gnus version numbers (@code{gnus-version}).
 
 @item ?
-@kindex ? (Group)
+@kindex ? @r{(Group)}
 @findex gnus-group-describe-briefly
 Give a very short help message (@code{gnus-group-describe-briefly}).
 
 @item C-c C-i
-@kindex C-c C-i (Group)
+@kindex C-c C-i @r{(Group)}
 @cindex info
 @cindex manual
 @findex gnus-info-find-node
@@ -3778,7 +3815,7 @@ something like:
 @table @kbd
 
 @item r
-@kindex r (Group)
+@kindex r @r{(Group)}
 @findex gnus-group-read-init-file
 @vindex gnus-init-file
 @cindex reading init file
@@ -3786,7 +3823,7 @@ Re-read the init file (@code{gnus-init-file}, which defaults to
 @file{~/.gnus}) (@code{gnus-group-read-init-file}).
 
 @item s
-@kindex s (Group)
+@kindex s @r{(Group)}
 @findex gnus-group-save-newsrc
 @cindex saving .newsrc
 Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
@@ -3794,7 +3831,7 @@ Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
 file(s) whether Gnus thinks it is necessary or not.
 
 @c @item Z
-@c @kindex Z (Group)
+@c @kindex Z @r{(Group)}
 @c @findex gnus-group-clear-dribble
 @c Clear the dribble buffer (@code{gnus-group-clear-dribble}).
 
@@ -3839,7 +3876,8 @@ You can have as many summary buffers open as you wish.
 * Tree Display::                A more visual display of threads.
 * Mail Group Commands::         Some commands can only be used in mail groups.
 * Various Summary Stuff::       What didn't fit anywhere else.
-* Exiting the Summary Buffer::  Returning to the Group buffer.
+* Exiting the Summary Buffer::  Returning to the Group buffer,
+                                or reselecting the current group.
 * Crosspost Handling::          How crossposted articles are dealt with.
 * Duplicate Suppression::       An alternative when crosspost handling fails.
 @end menu
@@ -4189,30 +4227,22 @@ None of these commands select articles.
 @table @kbd
 @item G M-n
 @itemx M-n
-@kindex M-n (Summary)
-@kindex G M-n (Summary)
+@kindex M-n @r{(Summary)}
+@kindex G M-n @r{(Summary)}
 @findex gnus-summary-next-unread-subject
 Go to the next summary line of an unread article
 (@code{gnus-summary-next-unread-subject}).
 
 @item G M-p
 @itemx M-p
-@kindex M-p (Summary)
-@kindex G M-p (Summary)
+@kindex M-p @r{(Summary)}
+@kindex G M-p @r{(Summary)}
 @findex gnus-summary-prev-unread-subject
 Go to the previous summary line of an unread article
 (@code{gnus-summary-prev-unread-subject}).
 
-@item G j
-@itemx j
-@kindex j (Summary)
-@kindex G j (Summary)
-@findex gnus-summary-goto-article
-Ask for an article number or @code{Message-ID}, and then go to that
-article (@code{gnus-summary-goto-article}).
-
 @item G g
-@kindex G g (Summary)
+@kindex G g @r{(Summary)}
 @findex gnus-summary-goto-subject
 Ask for an article number and then go to the summary line of that article
 without displaying the article (@code{gnus-summary-goto-subject}).
@@ -4290,79 +4320,82 @@ the given number of lines from the top.
 None of the following movement commands understand the numeric prefix,
 and they all select and display an article.
 
+If you want to fetch new articles or redisplay the group, see
+@ref{Exiting the Summary Buffer}.
+
 @table @kbd
-@item SPACE
-@kindex SPACE (Summary)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Summary)}
 @findex gnus-summary-next-page
 Select the current article, or, if that one's read already, the next
 unread article (@code{gnus-summary-next-page}).
 
 @item G n
 @itemx n
-@kindex n (Summary)
-@kindex G n (Summary)
+@kindex n @r{(Summary)}
+@kindex G n @r{(Summary)}
 @findex gnus-summary-next-unread-article
 @c @icon{gnus-summary-next-unread}
 Go to next unread article (@code{gnus-summary-next-unread-article}).
 
 @item G p
 @itemx p
-@kindex p (Summary)
+@kindex p @r{(Summary)}
 @findex gnus-summary-prev-unread-article
 @c @icon{gnus-summary-prev-unread}
 Go to previous unread article (@code{gnus-summary-prev-unread-article}).
 
 @item G N
 @itemx N
-@kindex N (Summary)
-@kindex G N (Summary)
+@kindex N @r{(Summary)}
+@kindex G N @r{(Summary)}
 @findex gnus-summary-next-article
 Go to the next article (@code{gnus-summary-next-article}).
 
 @item G P
 @itemx P
-@kindex P (Summary)
-@kindex G P (Summary)
+@kindex P @r{(Summary)}
+@kindex G P @r{(Summary)}
 @findex gnus-summary-prev-article
 Go to the previous article (@code{gnus-summary-prev-article}).
 
 @item G C-n
-@kindex G C-n (Summary)
+@kindex G C-n @r{(Summary)}
 @findex gnus-summary-next-same-subject
 Go to the next article with the same subject
 (@code{gnus-summary-next-same-subject}).
 
 @item G C-p
-@kindex G C-p (Summary)
+@kindex G C-p @r{(Summary)}
 @findex gnus-summary-prev-same-subject
 Go to the previous article with the same subject
 (@code{gnus-summary-prev-same-subject}).
 
 @item G f
 @itemx .
-@kindex G f  (Summary)
-@kindex .  (Summary)
+@kindex G f  @r{(Summary)}
+@kindex .  @r{(Summary)}
 @findex gnus-summary-first-unread-article
 Go to the first unread article
 (@code{gnus-summary-first-unread-article}).
 
 @item G b
 @itemx ,
-@kindex G b (Summary)
-@kindex , (Summary)
+@kindex G b @r{(Summary)}
+@kindex , @r{(Summary)}
 @findex gnus-summary-best-unread-article
 Go to the article with the highest score
 (@code{gnus-summary-best-unread-article}).
 
 @item G l
 @itemx l
-@kindex l (Summary)
-@kindex G l (Summary)
+@kindex l @r{(Summary)}
+@kindex G l @r{(Summary)}
 @findex gnus-summary-goto-last-article
 Go to the previous article read (@code{gnus-summary-goto-last-article}).
 
 @item G o
-@kindex G o (Summary)
+@kindex G o @r{(Summary)}
 @findex gnus-summary-pop-article
 @cindex history
 @cindex article history
@@ -4372,6 +4405,14 @@ command above in that you can pop as many previous articles off the
 history as you like, while @kbd{l} toggles the two last read articles.
 For a somewhat related issue (if you use these commands a lot),
 @pxref{Article Backlog}.
+
+@item G j
+@itemx j
+@kindex j @r{(Summary)}
+@kindex G j @r{(Summary)}
+@findex gnus-summary-goto-article
+Ask for an article number or @code{Message-ID}, and then go to that
+article (@code{gnus-summary-goto-article}).
 @end table
 
 
@@ -4417,34 +4458,34 @@ instead.  It will leave marks like @code{gnus-low-score-mark},
 
 @table @kbd
 
-@item SPACE
-@kindex SPACE (Summary)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Summary)}
 @findex gnus-summary-next-page
-Pressing @kbd{SPACE} will scroll the current article forward one page,
+Pressing @key{SPC} will scroll the current article forward one page,
 or, if you have come to the end of the current article, will choose the
 next article (@code{gnus-summary-next-page}).
 
-@item DEL
-@kindex DEL (Summary)
+@item @key{DEL}
+@kindex @key{DEL} @r{(Summary)}
 @findex gnus-summary-prev-page
 Scroll the current article back one page (@code{gnus-summary-prev-page}).
 
-@item RET
-@kindex RET (Summary)
+@item @key{RET}
+@kindex @key{RET} @r{(Summary)}
 @findex gnus-summary-scroll-up
 Scroll the current article one line forward
 (@code{gnus-summary-scroll-up}).
 
-@item M-RET
-@kindex M-RET (Summary)
+@item M-@key{RET}
+@kindex M-@key{RET} @r{(Summary)}
 @findex gnus-summary-scroll-down
 Scroll the current article one line backward
 (@code{gnus-summary-scroll-down}).
 
 @item A g
 @itemx g
-@kindex A g (Summary)
-@kindex g (Summary)
+@kindex A g @r{(Summary)}
+@kindex g @r{(Summary)}
 @findex gnus-summary-show-article
 @vindex gnus-summary-show-article-charset-alist
 (Re)fetch the current article (@code{gnus-summary-show-article}).  If
@@ -4453,7 +4494,7 @@ article treatment functions.  This will give you a ``raw'' article, just
 the way it came from the server.
 
 If given a numerical prefix, you can do semi-manual charset stuff.
-@kbd{C-u 0 g cn-gb-2312 RET} will decode the message as if it were
+@kbd{C-u 0 g cn-gb-2312 @key{RET}} will decode the message as if it were
 encoded in the @code{cn-gb-2312} charset.  If you have
 
 @lisp
@@ -4466,29 +4507,29 @@ then you can say @kbd{C-u 1 g} to get the same effect.
 
 @item A <
 @itemx <
-@kindex < (Summary)
-@kindex A < (Summary)
+@kindex < @r{(Summary)}
+@kindex A < @r{(Summary)}
 @findex gnus-summary-beginning-of-article
 Scroll to the beginning of the article
 (@code{gnus-summary-beginning-of-article}).
 
 @item A >
 @itemx >
-@kindex > (Summary)
-@kindex A > (Summary)
+@kindex > @r{(Summary)}
+@kindex A > @r{(Summary)}
 @findex gnus-summary-end-of-article
 Scroll to the end of the article (@code{gnus-summary-end-of-article}).
 
 @item A s
 @itemx s
-@kindex A s (Summary)
-@kindex s (Summary)
+@kindex A s @r{(Summary)}
+@kindex s @r{(Summary)}
 @findex gnus-summary-isearch-article
 Perform an isearch in the article buffer
 (@code{gnus-summary-isearch-article}).
 
 @item h
-@kindex h (Summary)
+@kindex h @r{(Summary)}
 @findex gnus-summary-select-article-buffer
 Select the article buffer (@code{gnus-summary-select-article-buffer}).
 
@@ -4517,8 +4558,8 @@ Commands for composing a mail message:
 
 @item S r
 @itemx r
-@kindex S r (Summary)
-@kindex r (Summary)
+@kindex S r @r{(Summary)}
+@kindex r @r{(Summary)}
 @findex gnus-summary-reply
 @c @icon{gnus-summary-mail-reply}
 @c @icon{gnus-summary-reply}
@@ -4527,8 +4568,8 @@ Mail a reply to the author of the current article
 
 @item S R
 @itemx R
-@kindex R (Summary)
-@kindex S R (Summary)
+@kindex R @r{(Summary)}
+@kindex S R @r{(Summary)}
 @findex gnus-summary-reply-with-original
 @c @icon{gnus-summary-reply-with-original}
 Mail a reply to the author of the current article and include the
@@ -4536,7 +4577,7 @@ original message (@code{gnus-summary-reply-with-original}).  This
 command uses the process/prefix convention.
 
 @item S w
-@kindex S w (Summary)
+@kindex S w @r{(Summary)}
 @findex gnus-summary-wide-reply
 Mail a wide reply to the author of the current article
 (@code{gnus-summary-wide-reply}).  A @dfn{wide reply} is a reply that
@@ -4544,7 +4585,7 @@ goes out to all people listed in the @code{To}, @code{From} (or
 @code{Reply-to}) and @code{Cc} headers.
 
 @item S W
-@kindex S W (Summary)
+@kindex S W @r{(Summary)}
 @findex gnus-summary-wide-reply-with-original
 Mail a wide reply to the current article and include the original
 message (@code{gnus-summary-wide-reply-with-original}).  This command uses
@@ -4552,32 +4593,32 @@ the process/prefix convention.
 
 @item S o m
 @itemx C-c C-f
-@kindex S o m (Summary)
-@kindex C-c C-f (Summary)
+@kindex S o m @r{(Summary)}
+@kindex C-c C-f @r{(Summary)}
 @findex gnus-summary-mail-forward
 @c @icon{gnus-summary-mail-forward}
 Forward the current article to some other person
 (@code{gnus-summary-mail-forward}).  If no prefix is given, the message
 is forwarded according to the value of (@code{message-forward-as-mime})
 and (@code{message-forward-show-mml}); if the prefix is 1, decode the
-message and forward directly inline; if the prefix is 2, foward message
+message and forward directly inline; if the prefix is 2, forward message
 as an rfc822 MIME section; if the prefix is 3, decode message and
-forward as an rfc822 MIME section; if the prefix is 4, foward message
+forward as an rfc822 MIME section; if the prefix is 4, forward message
 directly inline; otherwise, the message is forwarded as no prefix given
 but use the flipped value of (@code{message-forward-as-mime}).  By
 default, the message is decoded and forwarded as an rfc822 MIME section.
 
 @item S m
 @itemx m
-@kindex m (Summary)
-@kindex S m (Summary)
+@kindex m @r{(Summary)}
+@kindex S m @r{(Summary)}
 @findex gnus-summary-mail-other-window
 @c @icon{gnus-summary-mail-originate}
 Send a mail to some other person
 (@code{gnus-summary-mail-other-window}).
 
 @item S D b
-@kindex S D b (Summary)
+@kindex S D b @r{(Summary)}
 @findex gnus-summary-resend-bounced-mail
 @cindex bouncing mail
 If you have sent a mail, but the mail was bounced back to you for some
@@ -4590,7 +4631,7 @@ that mail and display it for easy perusal of its headers.  This might
 very well fail, though.
 
 @item S D r
-@kindex S D r (Summary)
+@kindex S D r @r{(Summary)}
 @findex gnus-summary-resend-message
 Not to be confused with the previous command,
 @code{gnus-summary-resend-message} will prompt you for an address to
@@ -4611,14 +4652,14 @@ This command understands the process/prefix convention
 (@pxref{Process/Prefix}).
 
 @item S O m
-@kindex S O m (Summary)
+@kindex S O m @r{(Summary)}
 @findex gnus-uu-digest-mail-forward
 Digest the current series (@pxref{Decoding Articles}) and forward the
 result using mail (@code{gnus-uu-digest-mail-forward}).  This command
 uses the process/prefix convention (@pxref{Process/Prefix}).
 
 @item S M-c
-@kindex S M-c (Summary)
+@kindex S M-c @r{(Summary)}
 @findex gnus-summary-mail-crosspost-complaint
 @cindex crossposting
 @cindex excessive crossposting
@@ -4647,8 +4688,8 @@ Commands for posting a news article:
 @table @kbd
 @item S p
 @itemx a
-@kindex a (Summary)
-@kindex S p (Summary)
+@kindex a @r{(Summary)}
+@kindex S p @r{(Summary)}
 @findex gnus-summary-post-news
 @c @icon{gnus-summary-post-news}
 Post an article to the current group
@@ -4656,16 +4697,16 @@ Post an article to the current group
 
 @item S f
 @itemx f
-@kindex f (Summary)
-@kindex S f (Summary)
+@kindex f @r{(Summary)}
+@kindex S f @r{(Summary)}
 @findex gnus-summary-followup
 @c @icon{gnus-summary-followup}
 Post a followup to the current article (@code{gnus-summary-followup}).
 
 @item S F
 @itemx F
-@kindex S F (Summary)
-@kindex F (Summary)
+@kindex S F @r{(Summary)}
+@kindex F @r{(Summary)}
 @c @icon{gnus-summary-followup-with-original}
 @findex gnus-summary-followup-with-original
 Post a followup to the current article and include the original message
@@ -4673,13 +4714,13 @@ Post a followup to the current article and include the original message
 process/prefix convention.
 
 @item S n
-@kindex S n (Summary)
+@kindex S n @r{(Summary)}
 @findex gnus-summary-followup-to-mail
 Post a followup to the current article via news, even if you got the
 message through mail (@code{gnus-summary-followup-to-mail}).
 
 @item S N
-@kindex S N (Summary)
+@kindex S N @r{(Summary)}
 @findex gnus-summary-followup-to-mail-with-original
 Post a followup to the current article via news, even if you got the
 message through mail and include the original message
@@ -4687,22 +4728,22 @@ message through mail and include the original message
 the process/prefix convention.
 
 @item S o p
-@kindex S o p (Summary)
+@kindex S o p @r{(Summary)}
 @findex gnus-summary-post-forward
 Forward the current article to a newsgroup
 (@code{gnus-summary-post-forward}).  
  If no prefix is given, the message is forwarded according to the value
 of (@code{message-forward-as-mime}) and
 (@code{message-forward-show-mml}); if the prefix is 1, decode the
-message and forward directly inline; if the prefix is 2, foward message
+message and forward directly inline; if the prefix is 2, forward message
 as an rfc822 MIME section; if the prefix is 3, decode message and
-forward as an rfc822 MIME section; if the prefix is 4, foward message
+forward as an rfc822 MIME section; if the prefix is 4, forward message
 directly inline; otherwise, the message is forwarded as no prefix given
 but use the flipped value of (@code{message-forward-as-mime}).  By
 default, the message is decoded and forwarded as an rfc822 MIME section.
 
 @item S O p
-@kindex S O p (Summary)
+@kindex S O p @r{(Summary)}
 @findex gnus-uu-digest-post-forward
 @cindex digests
 @cindex making digests
@@ -4711,7 +4752,7 @@ Digest the current series and forward the result to a newsgroup
 process/prefix convention.
 
 @item S u
-@kindex S u (Summary)
+@kindex S u @r{(Summary)}
 @findex gnus-uu-post-news
 @c @icon{gnus-uu-post-news}
 Uuencode a file, split it into parts, and post it as a series
@@ -4726,7 +4767,7 @@ Also @pxref{(message)Header Commands} for more information.
 
 @table @kbd
 @item S y
-@kindex S y (Summary)
+@kindex S y @r{(Summary)}
 @findex gnus-summary-yank-message
 Yank the current article into an already existing Message composition
 buffer (@code{gnus-summary-yank-message}).  This command prompts for
@@ -4747,7 +4788,7 @@ really, really wish you hadn't posted that?
 Well, you can't cancel mail, but you can cancel posts.
 
 @findex gnus-summary-cancel-article
-@kindex C (Summary)
+@kindex C @r{(Summary)}
 @c @icon{gnus-summary-cancel-article}
 Find the article you wish to cancel (you can only cancel your own
 articles, so don't try any funny stuff).  Then press @kbd{C} or @kbd{S
@@ -4768,7 +4809,7 @@ corrections, you can post a @dfn{superseding} article that will replace
 your original article.
 
 @findex gnus-summary-supersede-article
-@kindex S (Summary)
+@kindex S @r{(Summary)}
 Go to the original article and press @kbd{S s}
 (@code{gnus-summary-supersede-article}).  You will be put in a buffer
 where you can edit the article all you want before sending it off the
@@ -4849,7 +4890,7 @@ Marked as dormant (@code{gnus-dormant-mark}).
 are followups to it.  If you want to see them even if they don't have
 followups, you can use the @kbd{/ D} command (@pxref{Limiting}).
 
-@item SPACE
+@item @key{SPC}
 @vindex gnus-unread-mark
 Marked as unread (@code{gnus-unread-mark}).
 
@@ -5002,8 +5043,8 @@ All the marking commands understand the numeric prefix.
 @table @kbd
 @item M c
 @itemx M-u
-@kindex M c (Summary)
-@kindex M-u (Summary)
+@kindex M c @r{(Summary)}
+@kindex M-u @r{(Summary)}
 @findex gnus-summary-clear-mark-forward
 @cindex mark as unread
 Clear all readedness-marks from the current article
@@ -5012,38 +5053,38 @@ article as unread.
 
 @item M t
 @itemx !
-@kindex ! (Summary)
-@kindex M t (Summary)
+@kindex ! @r{(Summary)}
+@kindex M t @r{(Summary)}
 @findex gnus-summary-tick-article-forward
 Tick the current article (@code{gnus-summary-tick-article-forward}).
 @xref{Article Caching}.
 
 @item M ?
 @itemx ?
-@kindex ? (Summary)
-@kindex M ? (Summary)
+@kindex ? @r{(Summary)}
+@kindex M ? @r{(Summary)}
 @findex gnus-summary-mark-as-dormant
 Mark the current article as dormant
 (@code{gnus-summary-mark-as-dormant}).  @xref{Article Caching}.
 
 @item M d
 @itemx d
-@kindex M d (Summary)
-@kindex d (Summary)
+@kindex M d @r{(Summary)}
+@kindex d @r{(Summary)}
 @findex gnus-summary-mark-as-read-forward
 Mark the current article as read
 (@code{gnus-summary-mark-as-read-forward}).
 
 @item D
-@kindex D (Summary)
+@kindex D @r{(Summary)}
 @findex gnus-summary-mark-as-read-backward
 Mark the current article as read and move point to the previous line
 (@code{gnus-summary-mark-as-read-backward}).
 
 @item M k
 @itemx k
-@kindex k (Summary)
-@kindex M k (Summary)
+@kindex k @r{(Summary)}
+@kindex M k @r{(Summary)}
 @findex gnus-summary-kill-same-subject-and-select
 Mark all articles that have the same subject as the current one as read,
 and then select the next unread article
@@ -5051,76 +5092,76 @@ and then select the next unread article
 
 @item M K
 @itemx C-k
-@kindex M K (Summary)
-@kindex C-k (Summary)
+@kindex M K @r{(Summary)}
+@kindex C-k @r{(Summary)}
 @findex gnus-summary-kill-same-subject
 Mark all articles that have the same subject as the current one as read
 (@code{gnus-summary-kill-same-subject}).
 
 @item M C
-@kindex M C (Summary)
+@kindex M C @r{(Summary)}
 @findex gnus-summary-catchup
 @c @icon{gnus-summary-catchup}
 Mark all unread articles as read (@code{gnus-summary-catchup}).
 
 @item M C-c
-@kindex M C-c (Summary)
+@kindex M C-c @r{(Summary)}
 @findex gnus-summary-catchup-all
 Mark all articles in the group as read---even the ticked and dormant
 articles (@code{gnus-summary-catchup-all}).
 
 @item M H
-@kindex M H (Summary)
+@kindex M H @r{(Summary)}
 @findex gnus-summary-catchup-to-here
 Catchup the current group to point
 (@code{gnus-summary-catchup-to-here}).
 
 @item C-w
-@kindex C-w (Summary)
+@kindex C-w @r{(Summary)}
 @findex gnus-summary-mark-region-as-read
 Mark all articles between point and mark as read
 (@code{gnus-summary-mark-region-as-read}).
 
 @item M V k
-@kindex M V k (Summary)
+@kindex M V k @r{(Summary)}
 @findex gnus-summary-kill-below
 Kill all articles with scores below the default score (or below the
 numeric prefix) (@code{gnus-summary-kill-below}).
 
 @item M e
 @itemx E
-@kindex M e (Summary)
-@kindex E (Summary)
+@kindex M e @r{(Summary)}
+@kindex E @r{(Summary)}
 @findex gnus-summary-mark-as-expirable
 Mark the current article as expirable
 (@code{gnus-summary-mark-as-expirable}).
 
 @item M b
-@kindex M b (Summary)
+@kindex M b @r{(Summary)}
 @findex gnus-summary-set-bookmark
 Set a bookmark in the current article
 (@code{gnus-summary-set-bookmark}).
 
 @item M B
-@kindex M B (Summary)
+@kindex M B @r{(Summary)}
 @findex gnus-summary-remove-bookmark
 Remove the bookmark from the current article
 (@code{gnus-summary-remove-bookmark}).
 
 @item M V c
-@kindex M V c (Summary)
+@kindex M V c @r{(Summary)}
 @findex gnus-summary-clear-above
 Clear all marks from articles with scores over the default score (or
 over the numeric prefix) (@code{gnus-summary-clear-above}).
 
 @item M V u
-@kindex M V u (Summary)
+@kindex M V u @r{(Summary)}
 @findex gnus-summary-tick-above
 Tick all articles with scores over the default score (or over the
 numeric prefix) (@code{gnus-summary-tick-above}).
 
 @item M V m
-@kindex M V m (Summary)
+@kindex M V m @r{(Summary)}
 @findex gnus-summary-mark-above
 Prompt for a mark, and mark all articles with scores over the default
 score (or over the numeric prefix) with this mark
@@ -5133,7 +5174,7 @@ be taken after setting a mark.  If non-@code{nil}, point will move to
 the next/previous unread article.  If @code{nil}, point will just move
 one line up or down.  As a special case, if this variable is
 @code{never}, all the marking commands as well as other commands (like
-@kbd{SPACE}) will move to the next article, whether it is unread or not.
+@key{SPC}) will move to the next article, whether it is unread or not.
 The default is @code{t}.
 
 
@@ -5147,7 +5188,7 @@ even though I haven't heard of anybody wanting it to go to the
 previous (unread) article, I'm sure there are people that want that as
 well.
 
-Multiply these five behaviours with five different marking commands, and
+Multiply these five behaviors by five different marking commands, and
 you get a potentially complex set of variable to control what each
 command should do.
 
@@ -5183,8 +5224,8 @@ or
 
 @item M P p
 @itemx #
-@kindex # (Summary)
-@kindex M P p (Summary)
+@kindex # @r{(Summary)}
+@kindex M P p @r{(Summary)}
 @findex gnus-summary-mark-as-processable
 Mark the current article with the process mark
 (@code{gnus-summary-mark-as-processable}).
@@ -5192,94 +5233,94 @@ Mark the current article with the process mark
 
 @item M P u
 @itemx M-#
-@kindex M P u (Summary)
-@kindex M-# (Summary)
+@kindex M P u @r{(Summary)}
+@kindex M-# @r{(Summary)}
 Remove the process mark, if any, from the current article
 (@code{gnus-summary-unmark-as-processable}).
 
 @item M P U
-@kindex M P U (Summary)
+@kindex M P U @r{(Summary)}
 @findex gnus-summary-unmark-all-processable
 Remove the process mark from all articles
 (@code{gnus-summary-unmark-all-processable}).
 
 @item M P i
-@kindex M P i (Summary)
+@kindex M P i @r{(Summary)}
 @findex gnus-uu-invert-processable
 Invert the list of process marked articles
 (@code{gnus-uu-invert-processable}).
 
 @item M P R
-@kindex M P R (Summary)
+@kindex M P R @r{(Summary)}
 @findex gnus-uu-mark-by-regexp
 Mark articles that have a @code{Subject} header that matches a regular
 expression (@code{gnus-uu-mark-by-regexp}).
 
 @item M P G
-@kindex M P G (Summary)
+@kindex M P G @r{(Summary)}
 @findex gnus-uu-unmark-by-regexp
 Unmark articles that have a @code{Subject} header that matches a regular
 expression (@code{gnus-uu-unmark-by-regexp}).
 
 @item M P r
-@kindex M P r (Summary)
+@kindex M P r @r{(Summary)}
 @findex gnus-uu-mark-region
 Mark articles in region (@code{gnus-uu-mark-region}).
 
 @item M P t
-@kindex M P t (Summary)
+@kindex M P t @r{(Summary)}
 @findex gnus-uu-mark-thread
 Mark all articles in the current (sub)thread
 (@code{gnus-uu-mark-thread}).
 
 @item M P T
-@kindex M P T (Summary)
+@kindex M P T @r{(Summary)}
 @findex gnus-uu-unmark-thread
 Unmark all articles in the current (sub)thread
 (@code{gnus-uu-unmark-thread}).
 
 @item M P v
-@kindex M P v (Summary)
+@kindex M P v @r{(Summary)}
 @findex gnus-uu-mark-over
 Mark all articles that have a score above the prefix argument
 (@code{gnus-uu-mark-over}).
 
 @item M P s
-@kindex M P s (Summary)
+@kindex M P s @r{(Summary)}
 @findex gnus-uu-mark-series
 Mark all articles in the current series (@code{gnus-uu-mark-series}).
 
 @item M P S
-@kindex M P S (Summary)
+@kindex M P S @r{(Summary)}
 @findex gnus-uu-mark-sparse
 Mark all series that have already had some articles marked
 (@code{gnus-uu-mark-sparse}).
 
 @item M P a
-@kindex M P a (Summary)
+@kindex M P a @r{(Summary)}
 @findex gnus-uu-mark-all
 Mark all articles in series order (@code{gnus-uu-mark-series}).
 
 @item M P b
-@kindex M P b (Summary)
+@kindex M P b @r{(Summary)}
 @findex gnus-uu-mark-buffer
 Mark all articles in the buffer in the order they appear
 (@code{gnus-uu-mark-buffer}).
 
 @item M P k
-@kindex M P k (Summary)
+@kindex M P k @r{(Summary)}
 @findex gnus-summary-kill-process-mark
 Push the current process mark set onto the stack and unmark all articles
 (@code{gnus-summary-kill-process-mark}).
 
 @item M P y
-@kindex M P y (Summary)
+@kindex M P y @r{(Summary)}
 @findex gnus-summary-yank-process-mark
 Pop the previous process mark set from the stack and restore it
 (@code{gnus-summary-yank-process-mark}).
 
 @item M P w
-@kindex M P w (Summary)
+@kindex M P w @r{(Summary)}
 @findex gnus-summary-save-process-mark
 Push the current process mark set onto the stack
 (@code{gnus-summary-save-process-mark}).
@@ -5307,19 +5348,19 @@ additional articles.
 
 @item / /
 @itemx / s
-@kindex / / (Summary)
+@kindex / / @r{(Summary)}
 @findex gnus-summary-limit-to-subject
 Limit the summary buffer to articles that match some subject
 (@code{gnus-summary-limit-to-subject}).
 
 @item / a
-@kindex / a (Summary)
+@kindex / a @r{(Summary)}
 @findex gnus-summary-limit-to-author
 Limit the summary buffer to articles that match some author
 (@code{gnus-summary-limit-to-author}).
 
 @item / x
-@kindex / x (Summary)
+@kindex / x @r{(Summary)}
 @findex gnus-summary-limit-to-extra
 Limit the summary buffer to articles that match one of the ``extra''
 headers (@pxref{To From Newsgroups})
@@ -5327,8 +5368,8 @@ headers (@pxref{To From Newsgroups})
 
 @item / u
 @itemx x
-@kindex / u (Summary)
-@kindex x (Summary)
+@kindex / u @r{(Summary)}
+@kindex x @r{(Summary)}
 @findex gnus-summary-limit-to-unread
 Limit the summary buffer to articles not marked as read
 (@code{gnus-summary-limit-to-unread}).  If given a prefix, limit the
@@ -5336,82 +5377,82 @@ buffer to articles strictly unread.  This means that ticked and
 dormant articles will also be excluded.
 
 @item / m
-@kindex / m (Summary)
+@kindex / m @r{(Summary)}
 @findex gnus-summary-limit-to-marks
 Ask for a mark and then limit to all articles that have been marked
 with that mark (@code{gnus-summary-limit-to-marks}).
 
 @item / t
-@kindex / t (Summary)
+@kindex / t @r{(Summary)}
 @findex gnus-summary-limit-to-age
 Ask for a number and then limit the summary buffer to articles older than (or equal to) that number of days
 (@code{gnus-summary-limit-to-age}).  If given a prefix, limit to
 articles younger than that number of days.
 
 @item / n
-@kindex / n (Summary)
+@kindex / n @r{(Summary)}
 @findex gnus-summary-limit-to-articles
 Limit the summary buffer to the current article
 (@code{gnus-summary-limit-to-articles}).  Uses the process/prefix
 convention (@pxref{Process/Prefix}).
 
 @item / w
-@kindex / w (Summary)
+@kindex / w @r{(Summary)}
 @findex gnus-summary-pop-limit
 Pop the previous limit off the stack and restore it
 (@code{gnus-summary-pop-limit}).  If given a prefix, pop all limits off
 the stack.
 
 @item / v
-@kindex / v (Summary)
+@kindex / v @r{(Summary)}
 @findex gnus-summary-limit-to-score
 Limit the summary buffer to articles that have a score at or above some
 score (@code{gnus-summary-limit-to-score}).
 
 @item / E
 @itemx M S
-@kindex M S (Summary)
-@kindex / E (Summary)
+@kindex M S @r{(Summary)}
+@kindex / E @r{(Summary)}
 @findex gnus-summary-limit-include-expunged
 Include all expunged articles in the limit
 (@code{gnus-summary-limit-include-expunged}).
 
 @item / D
-@kindex / D (Summary)
+@kindex / D @r{(Summary)}
 @findex gnus-summary-limit-include-dormant
 Include all dormant articles in the limit
 (@code{gnus-summary-limit-include-dormant}).
 
 @item / *
-@kindex / * (Summary)
+@kindex / * @r{(Summary)}
 @findex gnus-summary-limit-include-cached
 Include all cached articles in the limit
 (@code{gnus-summary-limit-include-cached}).
 
 @item / d
-@kindex / d (Summary)
+@kindex / d @r{(Summary)}
 @findex gnus-summary-limit-exclude-dormant
 Exclude all dormant articles from the limit
 (@code{gnus-summary-limit-exclude-dormant}).
 
 @item / M
-@kindex / M (Summary)
+@kindex / M @r{(Summary)}
 @findex gnus-summary-limit-exclude-marks
 Exclude all marked articles (@code{gnus-summary-limit-exclude-marks}).
 
 @item / T
-@kindex / T (Summary)
+@kindex / T @r{(Summary)}
 @findex gnus-summary-limit-include-thread
 Include all the articles in the current thread in the limit.
 
 @item / c
-@kindex / c (Summary)
+@kindex / c @r{(Summary)}
 @findex gnus-summary-limit-exclude-childless-dormant
 Exclude all dormant articles that have no children from the limit
 (@code{gnus-summary-limit-exclude-childless-dormant}).
 
 @item / C
-@kindex / C (Summary)
+@kindex / C @r{(Summary)}
 @findex gnus-summary-limit-mark-excluded-as-read
 Mark all excluded unread articles as read
 (@code{gnus-summary-limit-mark-excluded-as-read}).   If given a prefix,
@@ -5432,7 +5473,7 @@ hierarchical fashion.
 Threading is done by looking at the @code{References} headers of the
 articles.  In a perfect world, this would be enough to build pretty
 trees, but unfortunately, the @code{References} header is often broken
-or simply missing.  Weird news propagation excarcerbates the problem,
+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}.
@@ -5679,7 +5720,7 @@ 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 backend you are using carries
+fetching old headers only works if the back end you are using carries
 overview files---this would normally be @code{nntp}, @code{nnspool} and
 @code{nnml}.  Also remember that if the root of the thread has been
 expired by the server, there's not much Gnus can do about that.
@@ -5802,9 +5843,9 @@ meaningful.  Here's one example:
 @table @kbd
 
 @item T k
-@itemx M-C-k
-@kindex T k (Summary)
-@kindex M-C-k (Summary)
+@itemx C-M-k
+@kindex T k @r{(Summary)}
+@kindex C-M-k @r{(Summary)}
 @findex gnus-summary-kill-thread
 Mark all articles in the current (sub-)thread as read
 (@code{gnus-summary-kill-thread}).  If the prefix argument is positive,
@@ -5812,66 +5853,66 @@ remove all marks instead.  If the prefix argument is negative, tick
 articles instead.
 
 @item T l
-@itemx M-C-l
-@kindex T l (Summary)
-@kindex M-C-l (Summary)
+@itemx C-M-l
+@kindex T l @r{(Summary)}
+@kindex C-M-l @r{(Summary)}
 @findex gnus-summary-lower-thread
 Lower the score of the current (sub-)thread
 (@code{gnus-summary-lower-thread}).
 
 @item T i
-@kindex T i (Summary)
+@kindex T i @r{(Summary)}
 @findex gnus-summary-raise-thread
 Increase the score of the current (sub-)thread
 (@code{gnus-summary-raise-thread}).
 
 @item T #
-@kindex T # (Summary)
+@kindex T # @r{(Summary)}
 @findex gnus-uu-mark-thread
 Set the process mark on the current (sub-)thread
 (@code{gnus-uu-mark-thread}).
 
 @item T M-#
-@kindex T M-# (Summary)
+@kindex T M-# @r{(Summary)}
 @findex gnus-uu-unmark-thread
 Remove the process mark from the current (sub-)thread
 (@code{gnus-uu-unmark-thread}).
 
 @item T T
-@kindex T T (Summary)
+@kindex T T @r{(Summary)}
 @findex gnus-summary-toggle-threads
 Toggle threading (@code{gnus-summary-toggle-threads}).
 
 @item T s
-@kindex T s (Summary)
+@kindex T s @r{(Summary)}
 @findex gnus-summary-show-thread
 Expose the (sub-)thread hidden under the current article, if any
 (@code{gnus-summary-show-thread}).
 
 @item T h
-@kindex T h (Summary)
+@kindex T h @r{(Summary)}
 @findex gnus-summary-hide-thread
 Hide the current (sub-)thread (@code{gnus-summary-hide-thread}).
 
 @item T S
-@kindex T S (Summary)
+@kindex T S @r{(Summary)}
 @findex gnus-summary-show-all-threads
 Expose all hidden threads (@code{gnus-summary-show-all-threads}).
 
 @item T H
-@kindex T H (Summary)
+@kindex T H @r{(Summary)}
 @findex gnus-summary-hide-all-threads
 Hide all threads (@code{gnus-summary-hide-all-threads}).
 
 @item T t
-@kindex T t (Summary)
+@kindex T t @r{(Summary)}
 @findex gnus-summary-rethread-current
 Re-thread the current article's thread
 (@code{gnus-summary-rethread-current}).  This works even when the
 summary buffer is otherwise unthreaded.
 
 @item T ^
-@kindex T ^ (Summary)
+@kindex T ^ @r{(Summary)}
 @findex gnus-summary-reparent-thread
 Make the current article the child of the marked (or previous) article
 (@code{gnus-summary-reparent-thread}).
@@ -5884,35 +5925,35 @@ understand the numeric prefix.
 @table @kbd
 
 @item T n
-@kindex T n (Summary)
-@itemx M-C-n
-@kindex M-C-n (Summary)
+@kindex T n @r{(Summary)}
+@itemx C-M-n
+@kindex C-M-n @r{(Summary)}
 @itemx M-down
-@kindex M-down (Summary)
+@kindex M-down @r{(Summary)}
 @findex gnus-summary-next-thread
 Go to the next thread (@code{gnus-summary-next-thread}).
 
 @item T p
-@kindex T p (Summary)
-@itemx M-C-p
-@kindex M-C-p (Summary)
+@kindex T p @r{(Summary)}
+@itemx C-M-p
+@kindex C-M-p @r{(Summary)}
 @itemx M-up
-@kindex M-up (Summary)
+@kindex M-up @r{(Summary)}
 @findex gnus-summary-prev-thread
 Go to the previous thread (@code{gnus-summary-prev-thread}).
 
 @item T d
-@kindex T d (Summary)
+@kindex T d @r{(Summary)}
 @findex gnus-summary-down-thread
 Descend the thread (@code{gnus-summary-down-thread}).
 
 @item T u
-@kindex T u (Summary)
+@kindex T u @r{(Summary)}
 @findex gnus-summary-up-thread
 Ascend the thread (@code{gnus-summary-up-thread}).
 
 @item T o
-@kindex T o (Summary)
+@kindex T o @r{(Summary)}
 @findex gnus-summary-top-thread
 Go to the top of the thread (@code{gnus-summary-top-thread}).
 @end table
@@ -5920,7 +5961,7 @@ Go to the top of the thread (@code{gnus-summary-top-thread}).
 @vindex gnus-thread-operation-ignore-subject
 If you ignore subject while threading, you'll naturally end up with
 threads that have several different subjects in them.  If you then issue
-a command like `T k' (@code{gnus-summary-kill-thread}) you might not
+a command like @kbd{T k} (@code{gnus-summary-kill-thread}) you might not
 wish to kill the entire thread, but just those parts of the thread that
 have the same subject as the current article.  If you like this idea,
 you can fiddle with @code{gnus-thread-operation-ignore-subject}.  If it
@@ -6063,8 +6104,8 @@ happen automatically.
 @vindex gnus-use-article-prefetch
 You can control how many articles are to be pre-fetched by setting
 @code{gnus-use-article-prefetch}.  This is 30 by default, which means
-that when you read an article in the group, the backend will pre-fetch
-the next 30 articles.  If this variable is @code{t}, the backend will
+that when you read an article in the group, the back end will pre-fetch
+the next 30 articles.  If this variable is @code{t}, the back end will
 pre-fetch all the articles it can without bound.  If it is
 @code{nil}, no pre-fetching will be done.
 
@@ -6132,7 +6173,7 @@ Used carefully, though, it could be just an easier way to save articles.
 To turn caching on, set @code{gnus-use-cache} to @code{t}.  By default,
 all articles ticked or marked as dormant will then be copied
 over to your local cache (@code{gnus-cache-directory}).  Whether this
-cache is flat or hierarchal is controlled by the
+cache is flat or hierarchical is controlled by the
 @code{gnus-use-long-file-name} variable, as usual.
 
 When re-selecting a ticked or dormant article, it will be fetched from the
@@ -6212,12 +6253,12 @@ you use two explicit commands for managing persistent articles:
 @table @kbd
 
 @item *
-@kindex * (Summary)
+@kindex * @r{(Summary)}
 @findex gnus-cache-enter-article
 Make the current article persistent (@code{gnus-cache-enter-article}).
 
 @item M-*
-@kindex M-* (Summary)
+@kindex M-* @r{(Summary)}
 @findex gnus-cache-remove-article
 Remove the current article from the persistent articles
 (@code{gnus-cache-remove-article}).  This will normally delete the
@@ -6283,58 +6324,58 @@ deleted before saving.
 
 @item O o
 @itemx o
-@kindex O o (Summary)
-@kindex o (Summary)
+@kindex O o @r{(Summary)}
+@kindex o @r{(Summary)}
 @findex gnus-summary-save-article
 @c @icon{gnus-summary-save-article}
 Save the current article using the default article saver
 (@code{gnus-summary-save-article}).
 
 @item O m
-@kindex O m (Summary)
+@kindex O m @r{(Summary)}
 @findex gnus-summary-save-article-mail
 Save the current article in mail format
 (@code{gnus-summary-save-article-mail}).
 
 @item O r
-@kindex O r (Summary)
+@kindex O r @r{(Summary)}
 @findex gnus-summary-save-article-rmail
 Save the current article in rmail format
 (@code{gnus-summary-save-article-rmail}).
 
 @item O f
-@kindex O f (Summary)
+@kindex O f @r{(Summary)}
 @findex gnus-summary-save-article-file
 @c @icon{gnus-summary-save-article-file}
 Save the current article in plain file format
 (@code{gnus-summary-save-article-file}).
 
 @item O F
-@kindex O F (Summary)
+@kindex O F @r{(Summary)}
 @findex gnus-summary-write-article-file
 Write the current article in plain file format, overwriting any previous
 file contents (@code{gnus-summary-write-article-file}).
 
 @item O b
-@kindex O b (Summary)
+@kindex O b @r{(Summary)}
 @findex gnus-summary-save-article-body-file
 Save the current article body in plain file format
 (@code{gnus-summary-save-article-body-file}).
 
 @item O h
-@kindex O h (Summary)
+@kindex O h @r{(Summary)}
 @findex gnus-summary-save-article-folder
 Save the current article in mh folder format
 (@code{gnus-summary-save-article-folder}).
 
 @item O v
-@kindex O v (Summary)
+@kindex O v @r{(Summary)}
 @findex gnus-summary-save-article-vm
 Save the current article in a VM folder
 (@code{gnus-summary-save-article-vm}).
 
 @item O p
-@kindex O p (Summary)
+@kindex O p @r{(Summary)}
 @findex gnus-summary-pipe-output
 Save the current article in a pipe.  Uhm, like, what I mean is---Pipe
 the current article to a process (@code{gnus-summary-pipe-output}).
@@ -6513,7 +6554,8 @@ a spool, you could
 
 @lisp
 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy
-(setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding
+(setq gnus-default-article-saver 
+      'gnus-summary-save-in-file) ; no encoding
 @end lisp
 
 Then just save with @kbd{o}.  You'd then read this hierarchy with
@@ -6567,24 +6609,24 @@ commands, and you have to mark the articles manually with @kbd{#}.
 @table @kbd
 
 @item X u
-@kindex X u (Summary)
+@kindex X u @r{(Summary)}
 @findex gnus-uu-decode-uu
 @c @icon{gnus-uu-decode-uu}
 Uudecodes the current series (@code{gnus-uu-decode-uu}).
 
 @item X U
-@kindex X U (Summary)
+@kindex X U @r{(Summary)}
 @findex gnus-uu-decode-uu-and-save
 Uudecodes and saves the current series
 (@code{gnus-uu-decode-uu-and-save}).
 
 @item X v u
-@kindex X v u (Summary)
+@kindex X v u @r{(Summary)}
 @findex gnus-uu-decode-uu-view
 Uudecodes and views the current series (@code{gnus-uu-decode-uu-view}).
 
 @item X v U
-@kindex X v U (Summary)
+@kindex X v U @r{(Summary)}
 @findex gnus-uu-decode-uu-and-save-view
 Uudecodes, views and saves the current series
 (@code{gnus-uu-decode-uu-and-save-view}).
@@ -6625,22 +6667,22 @@ some commands to deal with these:
 @table @kbd
 
 @item X s
-@kindex X s (Summary)
+@kindex X s @r{(Summary)}
 @findex gnus-uu-decode-unshar
 Unshars the current series (@code{gnus-uu-decode-unshar}).
 
 @item X S
-@kindex X S (Summary)
+@kindex X S @r{(Summary)}
 @findex gnus-uu-decode-unshar-and-save
 Unshars and saves the current series (@code{gnus-uu-decode-unshar-and-save}).
 
 @item X v s
-@kindex X v s (Summary)
+@kindex X v s @r{(Summary)}
 @findex gnus-uu-decode-unshar-view
 Unshars and views the current series (@code{gnus-uu-decode-unshar-view}).
 
 @item X v S
-@kindex X v S (Summary)
+@kindex X v S @r{(Summary)}
 @findex gnus-uu-decode-unshar-and-save-view
 Unshars, views and saves the current series
 (@code{gnus-uu-decode-unshar-and-save-view}).
@@ -6654,24 +6696,24 @@ Unshars, views and saves the current series
 @table @kbd
 
 @item X p
-@kindex X p (Summary)
+@kindex X p @r{(Summary)}
 @findex gnus-uu-decode-postscript
 Unpack the current PostScript series (@code{gnus-uu-decode-postscript}).
 
 @item X P
-@kindex X P (Summary)
+@kindex X P @r{(Summary)}
 @findex gnus-uu-decode-postscript-and-save
 Unpack and save the current PostScript series
 (@code{gnus-uu-decode-postscript-and-save}).
 
 @item X v p
-@kindex X v p (Summary)
+@kindex X v p @r{(Summary)}
 @findex gnus-uu-decode-postscript-view
 View the current PostScript series
 (@code{gnus-uu-decode-postscript-view}).
 
 @item X v P
-@kindex X v P (Summary)
+@kindex X v P @r{(Summary)}
 @findex gnus-uu-decode-postscript-and-save-view
 View and save the current PostScript series
 (@code{gnus-uu-decode-postscript-and-save-view}).
@@ -6683,13 +6725,13 @@ View and save the current PostScript series
 
 @table @kbd
 @item X o
-@kindex X o (Summary)
+@kindex X o @r{(Summary)}
 @findex gnus-uu-decode-save
 Save the current series
 (@code{gnus-uu-decode-save}).
 
 @item X b
-@kindex X b (Summary)
+@kindex X b @r{(Summary)}
 @findex gnus-uu-decode-binhex
 Unbinhex the current series (@code{gnus-uu-decode-binhex}).  This
 doesn't really work yet.
@@ -6960,7 +7002,7 @@ you want it to look like technicolor fruit salad.
 @table @kbd
 
 @item W H a
-@kindex W H a (Summary)
+@kindex W H a @r{(Summary)}
 @findex gnus-article-highlight
 @findex gnus-article-maybe-highlight
 Do much highlighting of the current article
@@ -6968,7 +7010,7 @@ Do much highlighting of the current article
 text, the signature, and adds buttons to the body and the head.
 
 @item W H h
-@kindex W H h (Summary)
+@kindex W H h @r{(Summary)}
 @findex gnus-article-highlight-headers
 @vindex gnus-header-face-alist
 Highlight the headers (@code{gnus-article-highlight-headers}).  The
@@ -6982,7 +7024,7 @@ the header value.  The first match made will be used.  Note that
 @var{regexp} shouldn't have @samp{^} prepended---Gnus will add one.
 
 @item W H c
-@kindex W H c (Summary)
+@kindex W H c @r{(Summary)}
 @findex gnus-article-highlight-citation
 Highlight cited text (@code{gnus-article-highlight-citation}).
 
@@ -7040,7 +7082,7 @@ cited text belonging to the attribution.
 
 
 @item W H s
-@kindex W H s (Summary)
+@kindex W H s @r{(Summary)}
 @vindex gnus-signature-separator
 @vindex gnus-signature-face
 @findex gnus-article-highlight-signature
@@ -7061,7 +7103,7 @@ default.
 @cindex article emphasis
 
 @findex gnus-article-emphasize
-@kindex W e (Summary)
+@kindex W e @r{(Summary)}
 People commonly add emphasis to words in news articles by writing things
 like @samp{_this_} or @samp{*this*} or @samp{/this/}.  Gnus can make
 this look nicer by running the article through the @kbd{W e}
@@ -7132,32 +7174,32 @@ too much cruft in most articles.
 @table @kbd
 
 @item W W a
-@kindex W W a (Summary)
+@kindex W W a @r{(Summary)}
 @findex gnus-article-hide
 Do quite a lot of hiding on the article buffer
 (@kbd{gnus-article-hide}).  In particular, this function will hide
 headers, PGP, cited text and the signature.
 
 @item W W h
-@kindex W W h (Summary)
+@kindex W W h @r{(Summary)}
 @findex gnus-article-hide-headers
 Hide headers (@code{gnus-article-hide-headers}).  @xref{Hiding
 Headers}.
 
 @item W W b
-@kindex W W b (Summary)
+@kindex W W b @r{(Summary)}
 @findex gnus-article-hide-boring-headers
 Hide headers that aren't particularly interesting
 (@code{gnus-article-hide-boring-headers}).  @xref{Hiding Headers}.
 
 @item W W s
-@kindex W W s (Summary)
+@kindex W W s @r{(Summary)}
 @findex gnus-article-hide-signature
 Hide signature (@code{gnus-article-hide-signature}).  @xref{Article
 Signature}.
 
 @item W W l
-@kindex W W l (Summary)
+@kindex W W l @r{(Summary)}
 @findex gnus-article-hide-list-identifiers
 @vindex gnus-list-identifiers
 Strip list identifiers specified in @code{gnus-list-identifiers}.  These
@@ -7176,7 +7218,7 @@ subject.  This can also be a list of regular expressions.
 @end table
 
 @item W W p
-@kindex W W p (Summary)
+@kindex W W p @r{(Summary)}
 @findex gnus-article-hide-pgp
 @vindex gnus-article-hide-pgp-hook
 Hide @sc{pgp} signatures (@code{gnus-article-hide-pgp}).  The
@@ -7199,18 +7241,18 @@ articles that have signatures in them do:
 @end lisp
 
 @item W W P
-@kindex W W P (Summary)
+@kindex W W P @r{(Summary)}
 @findex gnus-article-hide-pem
 Hide @sc{pem} (privacy enhanced messages) cruft
 (@code{gnus-article-hide-pem}).
 
 @item W W B
-@kindex W W B (Summary)
+@kindex W W B @r{(Summary)}
 @findex gnus-article-strip-banner
 @cindex banner
 @cindex OneList
-@cindex stripping advertisments
-@cindex advertisments
+@cindex stripping advertisements
+@cindex advertisements
 Strip the banner specified by the @code{banner} group parameter
 (@code{gnus-article-strip-banner}).  This is mainly used to hide those
 annoying banners and/or signatures that some mailing lists and moderated
@@ -7224,7 +7266,7 @@ corresponding regular expression in @code{gnus-article-banner-alist} is
 used.
 
 @item W W c
-@kindex W W c (Summary)
+@kindex W W c @r{(Summary)}
 @findex gnus-article-hide-citation
 Hide citation (@code{gnus-article-hide-citation}).  Some variables for
 customizing the hiding:
@@ -7260,7 +7302,7 @@ and bottom of the text, respectively, to remain visible.
 @end table
 
 @item W W C-c
-@kindex W W C-c (Summary)
+@kindex W W C-c @r{(Summary)}
 @findex gnus-article-hide-citation-maybe
 
 Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the
@@ -7279,7 +7321,7 @@ is hidden.
 @end table
 
 @item W W C
-@kindex W W C (Summary)
+@kindex W W C @r{(Summary)}
 @findex gnus-article-hide-citation-in-followups
 Hide cited text in articles that aren't roots
 (@code{gnus-article-hide-citation-in-followups}).  This isn't very
@@ -7311,17 +7353,25 @@ We call this ``article washing'' for a really good reason.  Namely, the
 something else'', but normally results in something looking better.
 Cleaner, perhaps.
 
+@xref{Customizing Articles}, if you want to change how Gnus displays
+articles by default.
+
 @table @kbd
 
+@item C-u g
+This is not really washing, it's sort of the opposite of washing.  If
+you type this, you see the article exactly as it exists on disk or on
+the server.
+
 @item W l
-@kindex W l (Summary)
+@kindex W l @r{(Summary)}
 @findex gnus-summary-stop-page-breaking
 Remove page breaks from the current article
 (@code{gnus-summary-stop-page-breaking}).  @xref{Misc Article}, for page
 delimiters.
 
 @item W r
-@kindex W r (Summary)
+@kindex W r @r{(Summary)}
 @findex gnus-summary-caesar-message
 @c @icon{gnus-summary-caesar-message}
 Do a Caesar rotate (rot13) on the article buffer
@@ -7329,32 +7379,32 @@ Do a Caesar rotate (rot13) on the article buffer
 Unreadable articles that tell you to read them with Caesar rotate or rot13.
 (Typically offensive jokes and such.)
 
-It's commonly called ``rot13'' because each letter is rotated 13
+It's commonly called @dfn{rot13} because each letter is rotated 13
 positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter
 #15).  It is sometimes referred to as ``Caesar rotate'' because Caesar
 is rumored to have employed this form of, uh, somewhat weak encryption.
 
 @item W t
 @item t
-@kindex W t (Summary)
-@kindex t (Summary)
+@kindex W t @r{(Summary)}
+@kindex t @r{(Summary)}
 @findex gnus-summary-toggle-header
 Toggle whether to display all headers in the article buffer
 (@code{gnus-summary-toggle-header}).
 
 @item W v
-@kindex W v (Summary)
+@kindex W v @r{(Summary)}
 @findex gnus-summary-verbose-header
 Toggle whether to display all headers in the article buffer permanently
 (@code{gnus-summary-verbose-header}).
 
 @item W o
-@kindex W o (Summary)
+@kindex W o @r{(Summary)}
 @findex gnus-article-treat-overstrike
 Treat overstrike (@code{gnus-article-treat-overstrike}).
 
 @item W d
-@kindex W d (Summary)
+@kindex W d @r{(Summary)}
 @findex gnus-article-treat-dumbquotes
 @vindex gnus-article-dumbquotes-map
 @cindex Smartquotes
@@ -7366,8 +7416,14 @@ Treat M******** sm*rtq**t*s according to
 whether a character is a sm*rtq**t* or not, so it should only be used
 interactively.
 
+In reality, this function is translates a subset of the subset of the
+@code{cp1252} (or @code{Windows-1252}) character set that isn't in ISO
+Latin-1, including the quote characters @code{\222} and @code{\264}.
+Messages in this character set often have a MIME header saying that
+they are Latin-1.
+
 @item W w
-@kindex W w (Summary)
+@kindex W w @r{(Summary)}
 @findex gnus-article-fill-cited-article
 Do word wrap (@code{gnus-article-fill-cited-article}).
 
@@ -7375,18 +7431,18 @@ You can give the command a numerical prefix to specify the width to use
 when filling.
 
 @item W Q
-@kindex W Q (Summary)
+@kindex W Q @r{(Summary)}
 @findex gnus-article-fill-long-lines 
 Fill long lines (@code{gnus-article-fill-long-lines}).
 
 @item W C
-@kindex W C (Summary)
+@kindex W C @r{(Summary)}
 @findex gnus-article-capitalize-sentences
 Capitalize the first word in each sentence
 (@code{gnus-article-capitalize-sentences}).
 
 @item W c
-@kindex W c (Summary)
+@kindex W c @r{(Summary)}
 @findex gnus-article-remove-cr
 Translate CRLF pairs (i. e., @samp{^M}s on the end of the lines) into LF
 (this takes care of DOS line endings), and then translate any remaining
@@ -7394,7 +7450,7 @@ CRs into LF (this takes care of Mac line endings)
 (@code{gnus-article-remove-cr}).
 
 @item W q
-@kindex W q (Summary)
+@kindex W q @r{(Summary)}
 @findex gnus-article-de-quoted-unreadable
 Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
 Quoted-Printable is one common @sc{mime} encoding employed when sending
@@ -7405,7 +7461,7 @@ Gnus if the message in question has a @code{Content-Transfer-Encoding}
 header that says that this encoding has been done.
 
 @item W 6
-@kindex W 6 (Summary)
+@kindex W 6 @r{(Summary)}
 @findex gnus-article-de-base64-unreadable
 Treat base64 (@code{gnus-article-de-base64-unreadable}).
 Base64 is one common @sc{mime} encoding employed when sending non-ASCII
@@ -7415,14 +7471,14 @@ automatically by Gnus if the message in question has a
 been done.
 
 @item W Z
-@kindex W Z (Summary)
+@kindex W Z @r{(Summary)}
 @findex gnus-article-decode-HZ
 Treat HZ or HZP (@code{gnus-article-decode-HZ}).  HZ (or HZP) is one
 common encoding employed when sending Chinese articles.  It typically
 makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}.
 
 @item W h
-@kindex W h (Summary)
+@kindex W h @r{(Summary)}
 @findex gnus-article-wash-html
 Treat HTML (@code{gnus-article-wash-html}).  
 Note that the this is usually done automatically by Gnus if the message
@@ -7430,7 +7486,7 @@ in question has a @code{Content-Type} header that says that this type
 has been done.
 
 @item W f
-@kindex W f (Summary)
+@kindex W f @r{(Summary)}
 @cindex x-face
 @findex gnus-article-display-x-face
 @findex gnus-article-x-face-command
@@ -7465,62 +7521,62 @@ want to have this function in the display hook, it should probably come
 last.
 
 @item W b
-@kindex W b (Summary)
+@kindex W b @r{(Summary)}
 @findex gnus-article-add-buttons
 Add clickable buttons to the article (@code{gnus-article-add-buttons}).
 @xref{Article Buttons}.
 
 @item W B
-@kindex W B (Summary)
+@kindex W B @r{(Summary)}
 @findex gnus-article-add-buttons-to-head
 Add clickable buttons to the article headers
 (@code{gnus-article-add-buttons-to-head}).
 
 @item W W H
-@kindex W W H (Summary)
+@kindex W W H @r{(Summary)}
 @findex gnus-article-strip-headers-from-body
 Strip headers like the @code{X-No-Archive} header from the beginning of
 article bodies (@code{gnus-article-strip-headers-from-body}).
 
 @item W E l
-@kindex W E l (Summary)
+@kindex W E l @r{(Summary)}
 @findex gnus-article-strip-leading-blank-lines
 Remove all blank lines from the beginning of the article
 (@code{gnus-article-strip-leading-blank-lines}).
 
 @item W E m
-@kindex W E m (Summary)
+@kindex W E m @r{(Summary)}
 @findex gnus-article-strip-multiple-blank-lines
 Replace all blank lines with empty lines and then all multiple empty
 lines with a single empty line.
 (@code{gnus-article-strip-multiple-blank-lines}).
 
 @item W E t
-@kindex W E t (Summary)
+@kindex W E t @r{(Summary)}
 @findex gnus-article-remove-trailing-blank-lines
 Remove all blank lines at the end of the article
 (@code{gnus-article-remove-trailing-blank-lines}).
 
 @item W E a
-@kindex W E a (Summary)
+@kindex W E a @r{(Summary)}
 @findex gnus-article-strip-blank-lines
 Do all the three commands above
 (@code{gnus-article-strip-blank-lines}).
 
 @item W E A
-@kindex W E A (Summary)
+@kindex W E A @r{(Summary)}
 @findex gnus-article-strip-all-blank-lines
 Remove all blank lines
 (@code{gnus-article-strip-all-blank-lines}).
 
 @item W E s
-@kindex W E s (Summary)
+@kindex W E s @r{(Summary)}
 @findex gnus-article-strip-leading-space
 Remove all white space from the beginning of all lines of the article
 body (@code{gnus-article-strip-leading-space}).
 
 @item W E e
-@kindex W E e (Summary)
+@kindex W E e @r{(Summary)}
 @findex gnus-article-strip-trailing-space
 Remove all white space from the end of all lines of the article
 body (@code{gnus-article-strip-trailing-space}).
@@ -7536,7 +7592,7 @@ body (@code{gnus-article-strip-trailing-space}).
 
 People often include references to other stuff in articles, and it would
 be nice if Gnus could just fetch whatever it is that people talk about
-with the minimum of fuzz when you hit @kbd{RET} or use the middle mouse
+with the minimum of fuzz when you hit @key{RET} or use the middle mouse
 button on these references.
 
 Gnus adds @dfn{buttons} to certain standard references by default:
@@ -7626,25 +7682,25 @@ when the article was sent.
 @table @kbd
 
 @item W T u
-@kindex W T u (Summary)
+@kindex W T u @r{(Summary)}
 @findex gnus-article-date-ut
 Display the date in UT (aka. GMT, aka ZULU)
 (@code{gnus-article-date-ut}).
 
 @item W T i
-@kindex W T i (Summary)
+@kindex W T i @r{(Summary)}
 @findex gnus-article-date-iso8601
 @cindex ISO 8601
 Display the date in international format, aka. ISO 8601
 (@code{gnus-article-date-iso8601}).
 
 @item W T l
-@kindex W T l (Summary)
+@kindex W T l @r{(Summary)}
 @findex gnus-article-date-local
 Display the date in the local timezone (@code{gnus-article-date-local}).
 
 @item W T s
-@kindex W T s (Summary)
+@kindex W T s @r{(Summary)}
 @vindex gnus-article-time-format
 @findex gnus-article-date-user
 @findex format-time-string
@@ -7655,7 +7711,7 @@ to @code{format-time-string}.  See the documentation of that variable
 for a list of possible format specs.
 
 @item W T e
-@kindex W T e (Summary)
+@kindex W T e @r{(Summary)}
 @findex gnus-article-date-lapsed
 @findex gnus-start-date-timer
 @findex gnus-stop-date-timer
@@ -7663,7 +7719,7 @@ Say how much time has elapsed between the article was posted and now
 (@code{gnus-article-date-lapsed}).  It looks something like:
 
 @example
-X-Sent: 9 years, 6 weeks, 4 days, 9 hours, 3 minutes, 28 seconds ago
+X-Sent: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
 @end example
 
 The value of @code{gnus-article-date-lapsed-new-header} determines
@@ -7684,7 +7740,7 @@ you want to stop the timer, you can use the @code{gnus-stop-date-timer}
 command.
 
 @item W T o
-@kindex W T o (Summary)
+@kindex W T o @r{(Summary)}
 @findex gnus-article-date-original
 Display the original date (@code{gnus-article-date-original}).  This can
 be useful if you normally use some other conversion function and are
@@ -7765,7 +7821,7 @@ signature after all.
 
 @table @kbd
 @item A t
-@kindex A t (Summary)
+@kindex A t @r{(Summary)}
 @findex gnus-article-babel
 Translate the article from one language to another
 (@code{gnus-article-babel}). 
@@ -7785,28 +7841,28 @@ instance, @kbd{3 b} means ``view the third @sc{mime} part''.
 @table @kbd
 @item b
 @itemx K v
-@kindex b (Summary)
-@kindex K v (Summary)
+@kindex b @r{(Summary)}
+@kindex K v @r{(Summary)}
 View the @sc{mime} part.
 
 @item K o
-@kindex K o (Summary)
+@kindex K o @r{(Summary)}
 Save the @sc{mime} part.
 
 @item K c
-@kindex K c (Summary)
+@kindex K c @r{(Summary)}
 Copy the @sc{mime} part.
 
 @item K e
-@kindex K e (Summary)
+@kindex K e @r{(Summary)}
 View the @sc{mime} part externally.
 
 @item K i
-@kindex K i (Summary)
+@kindex K i @r{(Summary)}
 View the @sc{mime} part internally.
 
 @item K |
-@kindex K | (Summary)
+@kindex K | @r{(Summary)}
 Pipe the @sc{mime} part to an external command.
 @end table
 
@@ -7815,13 +7871,13 @@ the same manner:
 
 @table @kbd
 @item K b
-@kindex K b (Summary)
+@kindex K b @r{(Summary)}
 Make all the @sc{mime} parts have buttons in front of them.  This is
 mostly useful if you wish to save (or perform other actions) on inlined
 parts.
 
 @item K m
-@kindex K m (Summary)
+@kindex K m @r{(Summary)}
 @findex gnus-summary-repair-multipart
 Some multipart messages are transmitted with missing or faulty headers.
 This command will attempt to ``repair'' these messages so that they can
@@ -7829,25 +7885,25 @@ be viewed in a more pleasant manner
 (@code{gnus-summary-repair-multipart}).
 
 @item X m
-@kindex X m (Summary)
+@kindex X m @r{(Summary)}
 @findex gnus-summary-save-parts
 Save all parts matching a @sc{mime} type to a directory
 (@code{gnus-summary-save-parts}).  Understands the process/prefix
 convention (@pxref{Process/Prefix}).
 
 @item M-t
-@kindex M-t (Summary)
+@kindex M-t @r{(Summary)}
 @findex gnus-summary-display-buttonized
 Toggle the buttonized display of the article buffer
 (@code{gnus-summary-toggle-display-buttonized}).
 
 @item W M w
-@kindex W M w (Summary)
+@kindex W M w @r{(Summary)}
 Decode RFC 2047-encoded words in the article headers
 (@code{gnus-article-decode-mime-words}).
 
 @item W M c
-@kindex W M c (Summary)
+@kindex W M c @r{(Summary)}
 Decode encoded article bodies as well as charsets
 (@code{gnus-article-decode-charset}).
 
@@ -7859,7 +7915,7 @@ MIME headers), you can set the @code{charset} group/topic parameter to
 the required charset (@pxref{Group Parameters}).
 
 @item W M v
-@kindex W M v (Summary)
+@kindex W M v @r{(Summary)}
 View all the @sc{mime} parts in the current article
 (@code{gnus-mime-view-all-parts}).
 
@@ -7933,7 +7989,7 @@ variable, which is an alist of regexps (to match group names) and
 default charsets to be used when reading these groups.
 
 In addition, some people do use soi-disant @sc{mime}-aware agents that
-aren't.  These blitely mark messages as being in @code{iso-8859-1} even
+aren't.  These blithely mark messages as being in @code{iso-8859-1} even
 if they really are in @code{koi-8}.  To help here, the
 @code{gnus-newsgroup-ignored-charsets} variable can be used.  The
 charsets that are listed here will be ignored.  The variable can be set
@@ -8000,6 +8056,13 @@ something like
 (define-coding-system-alias 'windows-1251 'cp1251)
 @end lisp
 
+while if you use a non-Latin-1 language environment you could see the
+Latin-1 subset of @code{windows-1252} using:
+
+@lisp
+(define-coding-system-alias 'windows-1252 'latin-1)
+@end lisp
+
 
 @node Article Commands
 @section Article Commands
@@ -8009,7 +8072,7 @@ something like
 @item A P
 @cindex PostScript
 @cindex printing
-@kindex A P (Summary)
+@kindex A P @r{(Summary)}
 @vindex gnus-ps-print-hook
 @findex gnus-summary-print-article
 Generate and print a PostScript image of the article buffer
@@ -8029,37 +8092,37 @@ can't really see why you'd want that.
 @table @kbd
 
 @item C-c C-s C-n
-@kindex C-c C-s C-n (Summary)
+@kindex C-c C-s C-n @r{(Summary)}
 @findex gnus-summary-sort-by-number
 Sort by article number (@code{gnus-summary-sort-by-number}).
 
 @item C-c C-s C-a
-@kindex C-c C-s C-a (Summary)
+@kindex C-c C-s C-a @r{(Summary)}
 @findex gnus-summary-sort-by-author
 Sort by author (@code{gnus-summary-sort-by-author}).
 
 @item C-c C-s C-s
-@kindex C-c C-s C-s (Summary)
+@kindex C-c C-s C-s @r{(Summary)}
 @findex gnus-summary-sort-by-subject
 Sort by subject (@code{gnus-summary-sort-by-subject}).
 
 @item C-c C-s C-d
-@kindex C-c C-s C-d (Summary)
+@kindex C-c C-s C-d @r{(Summary)}
 @findex gnus-summary-sort-by-date
 Sort by date (@code{gnus-summary-sort-by-date}).
 
 @item C-c C-s C-l
-@kindex C-c C-s C-l (Summary)
+@kindex C-c C-s C-l @r{(Summary)}
 @findex gnus-summary-sort-by-lines
 Sort by lines (@code{gnus-summary-sort-by-lines}).
 
 @item C-c C-s C-c
-@kindex C-c C-s C-c (Summary)
+@kindex C-c C-s C-c @r{(Summary)}
 @findex gnus-summary-sort-by-chars
 Sort by article length (@code{gnus-summary-sort-by-chars}).
 
 @item C-c C-s C-i
-@kindex C-c C-s C-i (Summary)
+@kindex C-c C-s C-i @r{(Summary)}
 @findex gnus-summary-sort-by-score
 Sort by score (@code{gnus-summary-sort-by-score}).
 @end table
@@ -8079,7 +8142,7 @@ Commands}).
 
 @table @kbd
 @item ^
-@kindex ^ (Summary)
+@kindex ^ @r{(Summary)}
 @findex gnus-summary-refer-parent-article
 If you'd like to read the parent of the current article, and it is not
 displayed in the summary buffer, you might still be able to.  That is,
@@ -8097,15 +8160,15 @@ grandparent and the grandgrandparent of the current article.  If you say
 @kbd{-3 ^}, Gnus will only fetch the grandgrandparent of the current
 article.
 
-@item A R (Summary)
+@item A R @r{(Summary)}
 @findex gnus-summary-refer-references
-@kindex A R (Summary)
+@kindex A R @r{(Summary)}
 Fetch all articles mentioned in the @code{References} header of the
 article (@code{gnus-summary-refer-references}).
 
-@item A T (Summary)
+@item A T @r{(Summary)}
 @findex gnus-summary-refer-thread
-@kindex A T (Summary)
+@kindex A T @r{(Summary)}
 Display the full thread where the current article appears
 (@code{gnus-summary-refer-thread}).  This command has to fetch all the
 headers in the current group to work, so it usually takes a while.  If
@@ -8121,9 +8184,9 @@ fetch when doing this command.  The default is 200.  If @code{t}, all
 the available headers will be fetched.  This variable can be overridden
 by giving the @kbd{A T} command a numerical prefix.
 
-@item M-^ (Summary)
+@item M-^ @r{(Summary)}
 @findex gnus-summary-refer-article
-@kindex M-^ (Summary)
+@kindex M-^ @r{(Summary)}
 @cindex Message-ID
 @cindex fetching by Message-ID
 You can also ask the @sc{nntp} server for an arbitrary article, no
@@ -8139,7 +8202,7 @@ The current select method will be used when fetching by
 by giving this command a prefix.
 
 @vindex gnus-refer-article-method
-If the group you are reading is located on a backend that does not
+If the group you are reading is located on a back end that does not
 support fetching by @code{Message-ID} very well (like @code{nnspool}),
 you can set @code{gnus-refer-article-method} to an @sc{nntp} method.  It
 would, perhaps, be best if the @sc{nntp} server you consult is the one
@@ -8160,7 +8223,7 @@ then ask Deja if that fails:
         (nnweb "refer" (nnweb-type dejanews))))
 @end lisp
 
-Most of the mail backends support fetching by @code{Message-ID}, but do
+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} and
 @code{nnbabyl} are able to locate articles from any groups, while
 @code{nnml} and @code{nnfolder} are only able to locate articles that
@@ -8210,8 +8273,8 @@ it selects just the article.  If given a numerical prefix, go to that
 thread or article and pick it.  (The line number is normally displayed
 at the beginning of the summary pick lines.)
 
-@item SPACE
-@kindex SPACE (Pick)
+@item @key{SPC}
+@kindex @key{SPC} (Pick)
 @findex gnus-pick-next-page
 Scroll the summary buffer up one page (@code{gnus-pick-next-page}).  If
 at the end of the buffer, start reading the picked articles.
@@ -8226,8 +8289,8 @@ thread if used at the first article of the thread.  Otherwise it unpicks
 just the article.  You can give this key a numerical prefix to unpick
 the thread or article at that line.
 
-@item RET
-@kindex RET (Pick)
+@item @key{RET}
+@kindex @key{RET} (Pick)
 @findex gnus-pick-start-reading
 @vindex gnus-pick-display-summary
 Start reading the picked articles (@code{gnus-pick-start-reading}).  If
@@ -8271,7 +8334,7 @@ Variables}).  It accepts the same format specs that
 @findex gnus-binary-mode
 @kindex M-x gnus-binary-mode
 If you spend much time in binary groups, you may grow tired of hitting
-@kbd{X u}, @kbd{n}, @kbd{RET} all the time.  @kbd{M-x gnus-binary-mode}
+@kbd{X u}, @kbd{n}, @key{RET} all the time.  @kbd{M-x gnus-binary-mode}
 is a minor mode for summary buffers that makes all ordinary Gnus article
 selection functions uudecode series of articles and display the result
 instead of just displaying the articles the normal way.
@@ -8438,21 +8501,21 @@ process/prefix convention (@pxref{Process/Prefix}).
 @table @kbd
 
 @item B e
-@kindex B e (Summary)
+@kindex B e @r{(Summary)}
 @findex gnus-summary-expire-articles
 Expire all expirable articles in the group
 (@code{gnus-summary-expire-articles}).
 
-@item B M-C-e
-@kindex B M-C-e (Summary)
+@item B C-M-e
+@kindex B C-M-e @r{(Summary)}
 @findex gnus-summary-expire-articles-now
 Delete all the expirable articles in the group
 (@code{gnus-summary-expire-articles-now}).  This means that @strong{all}
 articles eligible for expiry in the current group will
 disappear forever into that big @file{/dev/null} in the sky.
 
-@item B DEL
-@kindex B DEL (Summary)
+@item B @key{DEL}
+@kindex B @key{DEL} @r{(Summary)}
 @findex gnus-summary-delete-article
 @c @icon{gnus-summary-mail-delete}
 Delete the mail article.  This is ``delete'' as in ``delete it from your
@@ -8460,7 +8523,7 @@ disk forever and ever, never to return again.'' Use with caution.
 (@code{gnus-summary-delete-article}).
 
 @item B m
-@kindex B m (Summary)
+@kindex B m @r{(Summary)}
 @cindex move mail
 @findex gnus-summary-move-article
 @vindex gnus-preserve-marks
@@ -8469,7 +8532,7 @@ Move the article from one mail group to another
 @var{gnus-preserve-marks} is non-@code{nil} (which is the default). 
 
 @item B c
-@kindex B c (Summary)
+@kindex B c @r{(Summary)}
 @cindex copy mail
 @findex gnus-summary-copy-article
 @c @icon{gnus-summary-mail-copy}
@@ -8478,7 +8541,7 @@ Copy the article from one group (mail group or not) to a mail group
 @var{gnus-preserve-marks} is non-@code{nil} (which is the default).
 
 @item B B
-@kindex B B (Summary)
+@kindex B B @r{(Summary)}
 @cindex crosspost mail
 @findex gnus-summary-crosspost-article
 Crosspost the current article to some other group
@@ -8487,14 +8550,14 @@ the article in the other group, and the Xref headers of the article will
 be properly updated.
 
 @item B i
-@kindex B i (Summary)
+@kindex B i @r{(Summary)}
 @findex gnus-summary-import-article
 Import an arbitrary file into the current mail newsgroup
 (@code{gnus-summary-import-article}).  You will be prompted for a file
 name, a @code{From} header and a @code{Subject} header.
 
 @item B r
-@kindex B r (Summary)
+@kindex B r @r{(Summary)}
 @findex gnus-summary-respool-article
 Respool the mail article (@code{gnus-summary-respool-article}).
 @code{gnus-summary-respool-default-method} will be used as the default
@@ -8505,30 +8568,30 @@ Marks will be preserved if @var{gnus-preserve-marks} is non-@code{nil}
 
 @item B w
 @itemx e
-@kindex B w (Summary)
-@kindex e (Summary)
+@kindex B w @r{(Summary)}
+@kindex e @r{(Summary)}
 @findex gnus-summary-edit-article
-@kindex C-c C-c (Article)
+@kindex C-c C-c @r{(Article)}
 Edit the current article (@code{gnus-summary-edit-article}).  To finish
 editing and make the changes permanent, type @kbd{C-c C-c}
 (@kbd{gnus-summary-edit-article-done}).  If you give a prefix to the
 @kbd{C-c C-c} command, Gnus won't re-highlight the article.
 
 @item B q
-@kindex B q (Summary)
+@kindex B q @r{(Summary)}
 @findex gnus-summary-respool-query
 If you want to re-spool an article, you might be curious as to what group
 the article will end up in before you do the re-spooling.  This command
 will tell you (@code{gnus-summary-respool-query}).
 
 @item B t
-@kindex B t (Summary)
+@kindex B t @r{(Summary)}
 @findex gnus-summary-respool-trace
 Similarly, this command will display all fancy splitting patterns used
 when repooling, if any (@code{gnus-summary-respool-trace}).
 
 @item B p
-@kindex B p (Summary)
+@kindex B p @r{(Summary)}
 @findex gnus-summary-article-posted-p
 Some people have a tendency to send you "courtesy" copies when they
 follow up to articles you have posted.  These usually have a
@@ -8549,7 +8612,9 @@ If you move (or copy) articles regularly, you might wish to have Gnus
 suggest where to put the articles.  @code{gnus-move-split-methods} is a
 variable that uses the same syntax as @code{gnus-split-methods}
 (@pxref{Saving Articles}).  You may customize that variable to create
-suggestions you find reasonable.
+suggestions you find reasonable.  (Note that
+@code{gnus-move-split-methods} uses group names where
+@code{gnus-split-methods} uses file names.)
 
 @lisp
 (setq gnus-move-split-methods
@@ -8629,7 +8694,7 @@ the list in one particular group:
 @table @kbd
 
 @item H f
-@kindex H f (Summary)
+@kindex H f @r{(Summary)}
 @findex gnus-summary-fetch-faq
 @vindex gnus-group-faq-directory
 Try to fetch the FAQ (list of frequently asked questions) for the
@@ -8641,20 +8706,20 @@ between the various sites.  @code{ange-ftp} or @code{efs} will probably
 be used for fetching the file.
 
 @item H d
-@kindex H d (Summary)
+@kindex H d @r{(Summary)}
 @findex gnus-summary-describe-group
 Give a brief description of the current group
 (@code{gnus-summary-describe-group}).  If given a prefix, force
 rereading the description from the server.
 
 @item H h
-@kindex H h (Summary)
+@kindex H h @r{(Summary)}
 @findex gnus-summary-describe-briefly
 Give an extremely brief description of the most important summary
 keystrokes (@code{gnus-summary-describe-briefly}).
 
 @item H i
-@kindex H i (Summary)
+@kindex H i @r{(Summary)}
 @findex gnus-info-find-node
 Go to the Gnus info node (@code{gnus-info-find-node}).
 @end table
@@ -8666,19 +8731,19 @@ Go to the Gnus info node (@code{gnus-info-find-node}).
 @table @kbd
 
 @item M-s
-@kindex M-s (Summary)
+@kindex M-s @r{(Summary)}
 @findex gnus-summary-search-article-forward
 Search through all subsequent articles for a regexp
 (@code{gnus-summary-search-article-forward}).
 
 @item M-r
-@kindex M-r (Summary)
+@kindex M-r @r{(Summary)}
 @findex gnus-summary-search-article-backward
 Search through all previous articles for a regexp
 (@code{gnus-summary-search-article-backward}).
 
 @item &
-@kindex & (Summary)
+@kindex & @r{(Summary)}
 @findex gnus-summary-execute-command
 This command will prompt you for a header, a regular expression to match
 on this field, and a command to be executed if the match is made
@@ -8686,11 +8751,11 @@ 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{& @key{RET} some.*string #} will put the process mark on
 all articles that have heads or bodies that match @samp{some.*string}.
 
 @item M-&
-@kindex M-& (Summary)
+@kindex M-& @r{(Summary)}
 @findex gnus-summary-universal-argument
 Perform any operation on all articles that have been marked with
 the process mark (@code{gnus-summary-universal-argument}).
@@ -8702,12 +8767,12 @@ the process mark (@code{gnus-summary-universal-argument}).
 @table @kbd
 
 @item Y g
-@kindex Y g (Summary)
+@kindex Y g @r{(Summary)}
 @findex gnus-summary-prepare
 Regenerate the current summary buffer (@code{gnus-summary-prepare}).
 
 @item Y c
-@kindex Y c (Summary)
+@kindex Y c @r{(Summary)}
 @findex gnus-summary-insert-cached-articles
 Pull all cached articles (for the current group) into the summary buffer
 (@code{gnus-summary-insert-cached-articles}).
@@ -8722,8 +8787,8 @@ Pull all cached articles (for the current group) into the summary buffer
 
 @item A D
 @itemx C-d
-@kindex C-d (Summary)
-@kindex A D (Summary)
+@kindex C-d @r{(Summary)}
+@kindex A D @r{(Summary)}
 @findex gnus-summary-enter-digest-group
 If the current article is a collection of other articles (for instance,
 a digest), you might use this command to enter a group based on the that
@@ -8734,8 +8799,8 @@ whenever you see a message that is a collection of other messages of
 some format, you @kbd{C-d} and read these messages in a more convenient
 fashion.
 
-@item M-C-d
-@kindex M-C-d (Summary)
+@item C-M-d
+@kindex C-M-d @r{(Summary)}
 @findex gnus-summary-read-document
 This command is very similar to the one above, but lets you gather
 several documents into one biiig group
@@ -8746,7 +8811,7 @@ command understands the process/prefix convention
 (@pxref{Process/Prefix}).
 
 @item C-t
-@kindex C-t (Summary)
+@kindex C-t @r{(Summary)}
 @findex gnus-summary-toggle-truncation
 Toggle truncation of summary lines
 (@code{gnus-summary-toggle-truncation}).  This will probably confuse the
@@ -8754,19 +8819,19 @@ line centering function in the summary buffer, so it's not a good idea
 to have truncation switched off while reading articles.
 
 @item =
-@kindex = (Summary)
+@kindex = @r{(Summary)}
 @findex gnus-summary-expand-window
 Expand the summary buffer window (@code{gnus-summary-expand-window}).
 If given a prefix, force an @code{article} window configuration.
 
-@item M-C-e
-@kindex M-C-e (Summary)
+@item C-M-e
+@kindex C-M-e @r{(Summary)}
 @findex gnus-summary-edit-parameters
 Edit the group parameters (@pxref{Group Parameters}) of the current
 group (@code{gnus-summary-edit-parameters}).
 
-@item M-C-a
-@kindex M-C-a (Summary)
+@item C-M-a
+@kindex C-M-a @r{(Summary)}
 @findex gnus-summary-customize-parameters
 Customize the group parameters (@pxref{Group Parameters}) of the current
 group (@code{gnus-summary-customize-parameters}).
@@ -8786,8 +8851,8 @@ group and return you to the group buffer.
 
 @item Z Z
 @itemx q
-@kindex Z Z (Summary)
-@kindex q (Summary)
+@kindex Z Z @r{(Summary)}
+@kindex q @r{(Summary)}
 @findex gnus-summary-exit
 @vindex gnus-summary-exit-hook
 @vindex gnus-summary-prepare-exit-hook
@@ -8802,35 +8867,35 @@ group mode having no more (unread) groups.
 
 @item Z E
 @itemx Q
-@kindex Z E (Summary)
-@kindex Q (Summary)
+@kindex Z E @r{(Summary)}
+@kindex Q @r{(Summary)}
 @findex gnus-summary-exit-no-update
 Exit the current group without updating any information on the group
 (@code{gnus-summary-exit-no-update}).
 
 @item Z c
 @itemx c
-@kindex Z c (Summary)
-@kindex c (Summary)
+@kindex Z c @r{(Summary)}
+@kindex c @r{(Summary)}
 @findex gnus-summary-catchup-and-exit
 @c @icon{gnus-summary-catchup-and-exit}
 Mark all unticked articles in the group as read and then exit
 (@code{gnus-summary-catchup-and-exit}).
 
 @item Z C
-@kindex Z C (Summary)
+@kindex Z C @r{(Summary)}
 @findex gnus-summary-catchup-all-and-exit
 Mark all articles, even the ticked ones, as read and then exit
 (@code{gnus-summary-catchup-all-and-exit}).
 
 @item Z n
-@kindex Z n (Summary)
+@kindex Z n @r{(Summary)}
 @findex gnus-summary-catchup-and-goto-next-group
 Mark all articles as read and go to the next group
 (@code{gnus-summary-catchup-and-goto-next-group}).
 
 @item Z R
-@kindex Z R (Summary)
+@kindex Z R @r{(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
@@ -8838,8 +8903,8 @@ all articles, both read and unread.
 
 @item Z G
 @itemx M-g
-@kindex Z G (Summary)
-@kindex M-g (Summary)
+@kindex Z G @r{(Summary)}
+@kindex M-g @r{(Summary)}
 @findex gnus-summary-rescan-group
 @c @icon{gnus-summary-mail-get}
 Exit the group, check for new articles in the group, and select the
@@ -8847,19 +8912,19 @@ group (@code{gnus-summary-rescan-group}).  If given a prefix, select all
 articles, both read and unread.
 
 @item Z N
-@kindex Z N (Summary)
+@kindex Z N @r{(Summary)}
 @findex gnus-summary-next-group
 Exit the group and go to the next group
 (@code{gnus-summary-next-group}).
 
 @item Z P
-@kindex Z P (Summary)
+@kindex Z P @r{(Summary)}
 @findex gnus-summary-prev-group
 Exit the group and go to the previous group
 (@code{gnus-summary-prev-group}).
 
 @item Z s
-@kindex Z s (Summary)
+@kindex Z s @r{(Summary)}
 @findex gnus-summary-save-newsrc
 Save the current number of read/marked articles in the dribble buffer
 and then save the dribble buffer (@code{gnus-summary-save-newsrc}).  If
@@ -9188,47 +9253,47 @@ The following commands are available when you have placed point over a
 
 @table @kbd
 @findex gnus-article-press-button
-@item RET (Article)
-@itemx BUTTON-2 (Article)
+@item @key{RET} @r{(Article)}
+@itemx Mouse-2 @r{(Article)}
 Toggle displaying of the @sc{mime} object
 (@code{gnus-article-press-button}).
 
 @findex gnus-mime-view-part
-@item M-RET (Article)
-@itemx v (Article)
+@item M-@key{RET} @r{(Article)}
+@itemx v @r{(Article)}
 Prompt for a method, and then view the @sc{mime} object using this
 method (@code{gnus-mime-view-part}).
 
 @findex gnus-mime-save-part
-@item o (Article)
+@item o @r{(Article)}
 Prompt for a file name, and then save the @sc{mime} object
 (@code{gnus-mime-save-part}).
 
 @findex gnus-mime-copy-part
-@item c (Article)
+@item c @r{(Article)}
 Copy the @sc{mime} object to a fresh buffer and display this buffer
 (@code{gnus-mime-copy-part}).
 
 @findex gnus-mime-view-part-as-type
-@item t (Article)
+@item t @r{(Article)}
 View the @sc{mime} object as if it were a different @sc{mime} media type
 (@code{gnus-mime-view-part-as-type}). 
 
 @findex gnus-mime-pipe-part
-@item | (Article)
+@item | @r{(Article)}
 Output the @sc{mime} object to a process (@code{gnus-mime-pipe-part}).
 
 @findex gnus-mime-inline-part
-@item i (Article)
+@item i @r{(Article)}
 Insert the contents of the @sc{mime} object into the buffer
 (@code{gnus-mime-inline-part}) as text/plain.  If given a prefix, insert
-the raw contens without decoding.  If given a numerical prefix, you can
+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
 Article}).
 
 @findex gnus-mime-action-on-part
-@item . (Article)
+@item . @r{(Article)}
 Interactively run an action on the @sc{mime} object
 (@code{gnus-mime-action-on-part}).
 
@@ -9378,49 +9443,49 @@ A few additional keystrokes are available:
 
 @table @kbd
 
-@item SPACE
-@kindex SPACE (Article)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Article)}
 @findex gnus-article-next-page
 Scroll forwards one page (@code{gnus-article-next-page}).
 
-@item DEL
-@kindex DEL (Article)
+@item @key{DEL}
+@kindex @key{DEL} @r{(Article)}
 @findex gnus-article-prev-page
 Scroll backwards one page (@code{gnus-article-prev-page}).
 
 @item C-c ^
-@kindex C-c ^ (Article)
+@kindex C-c ^ @r{(Article)}
 @findex gnus-article-refer-article
 If point is in the neighborhood of a @code{Message-ID} and you press
 @kbd{C-c ^}, Gnus will try to get that article from the server
 (@code{gnus-article-refer-article}).
 
 @item C-c C-m
-@kindex C-c C-m (Article)
+@kindex C-c C-m @r{(Article)}
 @findex gnus-article-mail
 Send a reply to the address near point (@code{gnus-article-mail}).  If
 given a prefix, include the mail.
 
 @item s
-@kindex s (Article)
+@kindex s @r{(Article)}
 @findex gnus-article-show-summary
 Reconfigure the buffers so that the summary buffer becomes visible
 (@code{gnus-article-show-summary}).
 
 @item ?
-@kindex ? (Article)
+@kindex ? @r{(Article)}
 @findex gnus-article-describe-briefly
 Give a very brief description of the available keystrokes
 (@code{gnus-article-describe-briefly}).
 
 @item TAB
-@kindex TAB (Article)
+@kindex TAB @r{(Article)}
 @findex gnus-article-next-button
 Go to the next button, if any (@code{gnus-article-next-button}).  This
 only makes sense if you have buttonizing turned on.
 
 @item M-TAB
-@kindex M-TAB (Article)
+@kindex M-TAB @r{(Article)}
 @findex gnus-article-prev-button
 Go to the previous button, if any (@code{gnus-article-prev-button}).
 
@@ -9510,7 +9575,6 @@ on your setup (@pxref{Posting Server}).
 
 @menu
 * Mail::                 Mailing and replying.
-* Post::                 Posting and following up.
 * Posting Server::       What server should you post via?
 * Mail and Post::        Mailing and posting at the same time.
 * Archived Messages::    Where Gnus stores the messages you've sent.
@@ -9539,37 +9603,6 @@ headers will be included in the sequence they are matched.
 If non-@code{nil}, add a @code{to-list} group parameter to mail groups
 that have none when you do a @kbd{a}.
 
-@item message-send-mail-partially-limit
-@vindex message-send-mail-partially-limit
-The limitation of messages sent as message/partial.
-The lower bound of message size in characters, beyond which the message 
-should be sent in several parts. If it is nil, the size is unlimited.
-
-@end table
-
-
-@node Post
-@section Post
-
-Variables for composing news articles:
-
-@table @code
-@item gnus-sent-message-ids-file
-@vindex gnus-sent-message-ids-file
-Gnus will keep a @code{Message-ID} history file of all the mails it has
-sent.  If it discovers that it has already sent a mail, it will ask the
-user whether to re-send the mail.  (This is primarily useful when
-dealing with @sc{soup} packets and the like where one is apt to send the
-same packet multiple times.)  This variable says what the name of this
-history file is.  It is @file{~/News/Sent-Message-IDs} by default.  Set
-this variable to @code{nil} if you don't want Gnus to keep a history
-file.
-
-@item gnus-sent-message-ids-length
-@vindex gnus-sent-message-ids-length
-This variable says how many @code{Message-ID}s to keep in the history
-file.  It is 1000 by default.
-
 @end table
 
 
@@ -9684,7 +9717,7 @@ use to store sent messages.  The default is:
 @end lisp
 
 You can, however, use any mail select method (@code{nnml},
-@code{nnmbox}, etc.).  @code{nnfolder} is a quite likeable select method
+@code{nnmbox}, etc.).  @code{nnfolder} is a quite likable select method
 for doing this sort of thing, though.  If you don't like the default
 directory chosen, you could say something like:
 
@@ -9888,16 +9921,24 @@ So here's a new example:
         ((message-news-p)
          (signature my-news-signature))
         (header "From\\|To" "larsi.*org"
-         (Organization "Somewhere, Inc."))
+                (Organization "Somewhere, Inc."))
         ((posting-from-work-p)
          (signature-file "~/.work-signature")
          (address "user@@bar.foo")
          (body "You are fired.\n\nSincerely, your boss.")
          (organization "Important Work, Inc"))
+        ("nnml:.*"
+         (From (save-excursion
+                 (set-buffer gnus-article-buffer)
+                 (message-fetch-field "to"))))
         ("^nn.+:"
          (signature-file "~/.mail-signature"))))
 @end lisp
 
+The @samp{nnml:.*} rule means that you use the @code{To} address as the
+@code{From} address in all your outgoing replies, which might be handy
+if you fill many roles.
+
 
 @node Drafts
 @section Drafts
@@ -10003,22 +10044,22 @@ personal mail group.
 
 A foreign group (or any group, really) is specified by a @dfn{name} and
 a @dfn{select method}.  To take the latter first, a select method is a
-list where the first element says what backend to use (e.g. @code{nntp},
+list where the first element says what back end to use (e.g. @code{nntp},
 @code{nnspool}, @code{nnml}) and the second element is the @dfn{server
 name}.  There may be additional elements in the select method, where the
-value may have special meaning for the backend in question.
+value may have special meaning for the back end in question.
 
 One could say that a select method defines a @dfn{virtual server}---so
 we do just that (@pxref{The Server Buffer}).
 
-The @dfn{name} of the group is the name the backend will recognize the
+The @dfn{name} of the group is the name the back end will recognize the
 group as.
 
 For instance, the group @samp{soc.motss} on the @sc{nntp} server
 @samp{some.where.edu} will have the name @samp{soc.motss} and select
 method @code{(nntp "some.where.edu")}.  Gnus will call this group
 @samp{nntp+some.where.edu:soc.motss}, even though the @code{nntp}
-backend just knows this group as @samp{soc.motss}.
+back end just knows this group as @samp{soc.motss}.
 
 The different methods all have their peculiarities, of course.
 
@@ -10039,20 +10080,20 @@ The different methods all have their peculiarities, of course.
 Traditionally, a @dfn{server} is a machine or a piece of software that
 one connects to, and then requests information from.  Gnus does not
 connect directly to any real servers, but does all transactions through
-one backend or other.  But that's just putting one layer more between
+one back end or other.  But that's just putting one layer more between
 the actual media and Gnus, so we might just as well say that each
-backend represents a virtual server.
+back end represents a virtual server.
 
-For instance, the @code{nntp} backend may be used to connect to several
+For instance, the @code{nntp} back end may be used to connect to several
 different actual @sc{nntp} servers, or, perhaps, to many different ports
-on the same actual @sc{nntp} server.  You tell Gnus which backend to
+on the same actual @sc{nntp} server.  You tell Gnus which back end to
 use, and what parameters to set by specifying a @dfn{select method}.
 
 These select method specifications can sometimes become quite
 complicated---say, for instance, that you want to read from the
 @sc{nntp} server @samp{news.funet.fi} on port number 13, which
 hangs if queried for @sc{nov} headers and has a buggy select.  Ahem.
-Anyways, if you had to specify that for each group that used this
+Anyway, if you had to specify that for each group that used this
 server, that would be too much work, so Gnus offers a way of naming
 select methods, which is what you do in the server buffer.
 
@@ -10085,7 +10126,7 @@ variable, with some simple extensions:
 @table @samp
 
 @item h
-How the news is fetched---the backend name.
+How the news is fetched---the back end name.
 
 @item n
 The name of this server.
@@ -10129,8 +10170,8 @@ Add a new server (@code{gnus-server-add-server}).
 @findex gnus-server-edit-server
 Edit a server (@code{gnus-server-edit-server}).
 
-@item SPACE
-@kindex SPACE (Server)
+@item @key{SPC}
+@kindex @key{SPC} (Server)
 @findex gnus-server-read-server
 Browse the current server (@code{gnus-server-read-server}).
 
@@ -10171,7 +10212,7 @@ servers.
 @findex gnus-server-regenerate-server
 Request that the server regenerate all its data structures
 (@code{gnus-server-regenerate-server}).  This can be useful if you have
-a mail backend that has gotten out of synch.
+a mail back end that has gotten out of sync.
 
 @end table
 
@@ -10192,7 +10233,7 @@ Reading directly from the spool is even simpler:
 @end lisp
 
 As you can see, the first element in a select method is the name of the
-backend, and the second is the @dfn{address}, or @dfn{name}, if you
+back end, and the second is the @dfn{address}, or @dfn{name}, if you
 will.
 
 After these two elements, there may be an arbitrary number of
@@ -10206,10 +10247,10 @@ look like then:
 (nntp "news.funet.fi" (nntp-port-number 15))
 @end lisp
 
-You should read the documentation to each backend to find out what
+You should read the documentation to each back end to find out what
 variables are relevant, but here's an @code{nnmh} example:
 
-@code{nnmh} is a mail backend that reads a spool-like structure.  Say
+@code{nnmh} is a mail back end that reads a spool-like structure.  Say
 you have two structures that you wish to access: One is your private
 mail spool, and the other is a public one.  Here's the possible spec for
 your private mail:
@@ -10277,7 +10318,7 @@ 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.
 
-Type @kbd{a nnspool RET cache RET}.
+Type @kbd{a nnspool @key{RET} cache @key{RET}}.
 
 You should now have a brand new @code{nnspool} virtual server called
 @samp{cache}.  You now need to edit it to have the right definitions.
@@ -10298,14 +10339,14 @@ Change that to:
 @end lisp
 
 Type @kbd{C-c C-c} to return to the server buffer.  If you now press
-@kbd{RET} over this virtual server, you should be entered into a browse
+@key{RET} over this virtual server, you should be entered into a browse
 buffer, and you should be able to enter any of the groups displayed.
 
 
 @node Server Variables
 @subsection Server Variables
 
-One sticky point when defining variables (both on backends and in Emacs
+One sticky point when defining variables (both on back ends and in Emacs
 in general) is that some variables are typically initialized from other
 variables when the definition of the variables is being loaded.  If you
 change the "base" variable after the variables have been loaded, you
@@ -10318,7 +10359,7 @@ directory variables are initialized from that variable, so
 new virtual @code{nnml} server, it will @emph{not} suffice to set just
 @code{nnml-directory}---you have to explicitly set all the file
 variables to be what you want them to be.  For a complete list of
-variables for each backend, see each backend's section later in this
+variables for each back end, see each back end's section later in this
 manual, but here's an example @code{nnml} definition:
 
 @lisp
@@ -10407,7 +10448,7 @@ Remove all marks to whether Gnus was denied connection from any servers
 @node Getting News
 @section Getting News
 @cindex reading news
-@cindex news backends
+@cindex news back ends
 
 A newsreader is normally used for reading news.  Gnus currently provides
 only two methods of getting news---it can read from an @sc{nntp} server,
@@ -10473,12 +10514,15 @@ manual page, but here are the salient facts:
 The file contains one or more line, each of which define one server.
 
 @item
-Each line may contain an arbitrary number of token/value pairs.  The
-valid tokens include @samp{machine}, @samp{login}, @samp{password},
-@samp{default}, @samp{port} and @samp{force}.  (The latter is not a
-valid @file{.netrc}/@code{ftp} token, which is almost the only way the
-@file{.authinfo} file format deviates from the @file{.netrc} file
-format.)
+Each line may contain an arbitrary number of token/value pairs.  
+
+The valid tokens include @samp{machine}, @samp{login}, @samp{password},
+@samp{default}.  In addition Gnus introduces two new tokens, not present
+in the original @file{.netrc}/@code{ftp} syntax, namely @samp{port} and
+@samp{force}.  (This is the only way the @file{.authinfo} file format
+deviates from the @file{.netrc} file format.)  @samp{port} is used to
+indicate what port on the server the credentials apply to and
+@samp{force} is explained below.
 
 @end enumerate
 
@@ -10529,7 +10573,8 @@ The default value is
 
 @lisp
 '(("nntpd 1\\.5\\.11t"
-   (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader)))
+   (remove-hook 'nntp-server-opened-hook 
+                'nntp-send-mode-reader)))
 @end lisp
 
 This ensures that Gnus doesn't send the @code{MODE READER} command to
@@ -10537,9 +10582,9 @@ nntpd 1.5.11t, since that command chokes that server, I've been told.
 
 @item nntp-maximum-request
 @vindex nntp-maximum-request
-If the @sc{nntp} server doesn't support @sc{nov} headers, this backend
+If the @sc{nntp} server doesn't support @sc{nov} headers, this back end
 will collect headers by sending a series of @code{head} commands.  To
-speed things up, the backend sends lots of these commands without
+speed things up, the back end sends lots of these commands without
 waiting for reply, and then reads all the replies.  This is controlled
 by the @code{nntp-maximum-request} variable, and is 400 by default.  If
 your network is buggy, you should set this to 1.
@@ -10551,7 +10596,7 @@ regularly, you're sure to have problems with @sc{nntp} servers not
 responding properly, or being too loaded to reply within reasonable
 time.  This is can lead to awkward problems, which can be helped
 somewhat by setting @code{nntp-connection-timeout}.  This is an integer
-that says how many seconds the @code{nntp} backend should wait for a
+that says how many seconds the @code{nntp} back end should wait for a
 connection before giving up.  If it is @code{nil}, which is the default,
 no timeouts are done.
 
@@ -10663,16 +10708,18 @@ This works for Solaris @code{telnet}, for instance.
 Opens a connection to a server over a @dfn{secure} channel.  To use this
 you must have SSLay installed
 (@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
-@file{ssl.el} (from the W3 distributeion, for instance).  You then
+@file{ssl.el} (from the W3 distribution, for instance).  You then
 define a server as follows:
 
 @lisp
 ;; Type `C-c C-c' after you've finished editing.
 ;;
-;; "snews" is port 563 and is predefined in our /etc/services
+;; "snews" is port 563 and is predefined 
+;; in our /etc/services
 ;;
 (nntp "snews.bar.com"
-      (nntp-open-connection-function nntp-open-ssl-stream)
+      (nntp-open-connection-function 
+        nntp-open-ssl-stream)
       (nntp-port-number "snews")
       (nntp-address "snews.bar.com"))
 @end lisp
@@ -10742,7 +10789,7 @@ server closes connection.
 @item nntp-record-commands
 @vindex nntp-record-commands
 If non-@code{nil}, @code{nntp} will log all commands it sends to the
-@sc{nntp} server (along with a timestep) in the @samp{*nntp-log*}
+@sc{nntp} server (along with a timestamp) in the @samp{*nntp-log*}
 buffer.  This is useful if you are debugging a Gnus/@sc{nntp} connection
 that doesn't seem to work.
 
@@ -10759,7 +10806,7 @@ and might be useful, for instance, to speed up reading groups that
 contain very big articles---@samp{alt.binaries.pictures.furniture}, for
 instance.
 
-Anyways, you just specify @code{nnspool} as the method and @code{""} (or
+Anyway, you just specify @code{nnspool} as the method and @code{""} (or
 anything else) as the address.
 
 If you have access to a local spool, you should probably use that as the
@@ -10835,15 +10882,15 @@ course.
 * Getting Started Reading Mail:: A simple cookbook example.
 * Splitting Mail::               How to create mail groups.
 * Mail Sources::                 How to tell Gnus where to get mail from.
-* Mail Backend Variables::       Variables for customizing mail handling.
+* Mail Back End Variables::      Variables for customizing mail handling.
 * Fancy Mail Splitting::         Gnus can do hairy splitting of incoming mail.
 * Group Mail Splitting::         Use group customize to drive mail splitting.
 * Incorporating Old Mail::       What about the old mail you have?
 * Expiring Mail::                Getting rid of unwanted mail.
 * Washing Mail::                 Removing gruft from the mail you get.
 * Duplicates::                   Dealing with duplicated mail.
-* Not Reading Mail::             Using mail backends for reading other files.
-* Choosing a Mail Backend::      Gnus can read a variety of mail formats.
+* Not Reading Mail::             Using mail back ends for reading other files.
+* Choosing a Mail Back End::     Gnus can read a variety of mail formats.
 @end menu
 
 
@@ -10916,18 +10963,18 @@ You Do.)
 @subsection Getting Started Reading Mail
 
 It's quite easy to use Gnus to read your new mail.  You just plonk the
-mail backend of your choice into @code{gnus-secondary-select-methods},
+mail back end of your choice into @code{gnus-secondary-select-methods},
 and things will happen automatically.
 
 For instance, if you want to use @code{nnml} (which is a "one file per
-mail" backend), you could put the following in your @file{.gnus} file:
+mail" back end), you could put the following in your @file{.gnus} file:
 
 @lisp
 (setq gnus-secondary-select-methods
       '((nnml "private")))
 @end lisp
 
-Now, the next time you start Gnus, this backend will be queried for new
+Now, the next time you start Gnus, this back end will be queried for new
 articles, and it will move all the messages in your spool file to its
 directory, which is @code{~/Mail/} by default.  The new group that will
 be created (@samp{mail.misc}) will be subscribed, and you can read it
@@ -10949,7 +10996,7 @@ last group.
 
 This should be sufficient for reading mail with Gnus.  You might want to
 give the other sections in this part of the manual a perusal, though.
-Especially @pxref{Choosing a Mail Backend} and @pxref{Expiring Mail}.
+Especially @pxref{Choosing a Mail Back End} and @pxref{Expiring Mail}.
 
 
 @node Splitting Mail
@@ -10998,13 +11045,13 @@ arguments in a buffer narrowed to the headers of an incoming mail
 message.  The function should return a list of group names that it
 thinks should carry this mail message.
 
-Note that the mail backends are free to maul the poor, innocent,
+Note that the mail back ends are free to maul the poor, innocent,
 incoming headers all they want to.  They all add @code{Lines} headers;
 some add @code{X-Gnus-Group} headers; most rename the Unix mbox
-@code{From<SPACE>} line to something else.
+@samp{From } line to something else.
 
 @vindex nnmail-crosspost
-The mail backends all support cross-posting.  If several regexps match,
+The mail back ends all support cross-posting.  If several regexps match,
 the mail will be ``cross-posted'' to all those groups.
 @code{nnmail-crosspost} says whether to use this mechanism or not.  Note
 that no articles are crossposted to the general (@samp{}) group.
@@ -11188,7 +11235,7 @@ The password to give to the POP server.  If not specified, the user is
 prompted.
 
 @item :program
-The program to use to fetch mail from the POP server.  This is should be
+The program to use to fetch mail from the POP server.  This should be
 a @code{format}-like string.  Here's an example:
 
 @example
@@ -11290,18 +11337,21 @@ from locking problems).
 Two example maildir mail sources:
 
 @lisp
-(maildir :path "/home/user-name/Maildir/" :subdirs ("cur" "new"))
+(maildir :path "/home/user-name/Maildir/" 
+         :subdirs ("cur" "new"))
 @end lisp
 
 @lisp
-(maildir :path "/user@@remotehost.org:~/Maildir/" :subdirs ("new"))
+(maildir :path "/user@@remotehost.org:~/Maildir/" 
+         :subdirs ("new"))
 @end lisp
 
 @item imap
-Get mail from a @sc{imap} server.  If you don't want to use @sc{imap} as
-intended, as a network mail reading protocol (ie with nnimap), for some
-reason or other, Gnus let you treat it similar to a POP server and
-fetches articles from a given @sc{imap} mailbox.
+Get mail from a @sc{imap} server.  If you don't want to use @sc{imap}
+as intended, as a network mail reading protocol (ie with nnimap), for
+some reason or other, Gnus let you treat it similar to a POP server
+and fetches articles from a given @sc{imap} mailbox.  @xref{IMAP}, for
+more information.
 
 Keywords:
 
@@ -11333,6 +11383,31 @@ of the symbols in @code{imap-authenticator-alist}.  Right now, this
 means @samp{kerberos4}, @samp{cram-md5}, @samp{anonymous} or the default
 @samp{login}.
 
+@item :program
+When using the `shell' :stream, the contents of this variable is
+mapped into the `imap-shell-program' variable.  This should be a
+@code{format}-like string (or list of strings).  Here's an example:
+
+@example
+ssh %s imapd
+@end example
+
+The valid format specifier characters are:
+
+@table @samp
+@item s
+The name of the server.
+
+@item l
+User name from `imap-default-user'.
+
+@item p
+The port number of the server.
+@end table
+
+The values used for these specs are taken from the values you give the
+corresponding keywords.
+
 @item :mailbox
 The name of the mailbox to get mail from.  The default is @samp{INBOX}
 which normally is the mailbox which receive incoming mail.
@@ -11360,7 +11435,9 @@ after finishing the fetch.
 An example @sc{imap} mail source:
 
 @lisp
-(imap :server "mail.mycorp.com" :stream kerberos4 :fetchflag "\\Seen")
+(imap :server "mail.mycorp.com" 
+      :stream kerberos4 
+      :fetchflag "\\Seen")
 @end lisp
 
 @item webmail
@@ -11399,7 +11476,9 @@ folder after finishing the fetch.
 An example webmail source:
 
 @lisp
-(webmail :subtype 'hotmail :user "user-name" :password "secret")
+(webmail :subtype 'hotmail 
+         :user "user-name" 
+         :password "secret")
 @end lisp
 @end table
 
@@ -11427,7 +11506,7 @@ useful when you use local mail and news.
 @end table
 @end table
 
-@subsubheading Function Interface
+@subsubsection Function Interface
 
 Some of the above keywords specify a Lisp function to be executed.
 For each keyword @code{:foo}, the Lisp variable @code{foo} is bound to
@@ -11496,7 +11575,7 @@ The way to actually tell Gnus where to get new mail from is to set
 (@pxref{Mail Source Specifiers}).
 
 If this variable (and the obsolescent @code{nnmail-spool-file}) is
-@code{nil}, the mail backends will never attempt to fetch mail by
+@code{nil}, the mail back ends will never attempt to fetch mail by
 themselves.
 
 If you want to fetch mail both from your local spool as well as a POP
@@ -11521,25 +11600,25 @@ Or, if you don't want to use any of the keyword defaults:
 @end lisp
 
 
-When you use a mail backend, Gnus will slurp all your mail from your
+When you use a mail back end, Gnus will slurp all your mail from your
 inbox and plonk it down in your home directory.  Gnus doesn't move any
-mail if you're not using a mail backend---you have to do a lot of magic
+mail if you're not using a mail back end---you have to do a lot of magic
 invocations first.  At the time when you have finished drawing the
 pentagram, lightened the candles, and sacrificed the goat, you really
 shouldn't be too surprised when Gnus moves your mail.
 
 
 
-@node Mail Backend Variables
-@subsection Mail Backend Variables
+@node Mail Back End Variables
+@subsection Mail Back End Variables
 
 These variables are (for the most part) pertinent to all the various
-mail backends.
+mail back ends.
 
 @table @code
 @vindex nnmail-read-incoming-hook
 @item nnmail-read-incoming-hook
-The mail backends all call this hook after reading new mail.  You can
+The mail back ends all call this hook after reading new mail.  You can
 use this hook to notify any mail watch programs, if you want to.
 
 @vindex nnmail-split-hook
@@ -11576,10 +11655,10 @@ default file modes the new mail files get:
 
 @item nnmail-use-long-file-names
 @vindex nnmail-use-long-file-names
-If non-@code{nil}, the mail backends will use long file and directory
+If non-@code{nil}, the mail back ends will use long file and directory
 names.  Groups like @samp{mail.misc} will end up in directories
-(assuming use of @code{nnml} backend) or files (assuming use of
-@code{nnfolder} backend) like @file{mail.misc}.  If it is @code{nil},
+(assuming use of @code{nnml} back end) or files (assuming use of
+@code{nnfolder} back end) like @file{mail.misc}.  If it is @code{nil},
 the same group will end up in @file{mail/misc}.
 
 @item nnmail-delete-file-function
@@ -11590,7 +11669,7 @@ Function called to delete files.  It is @code{delete-file} by default.
 @item nnmail-cache-accepted-message-ids
 @vindex nnmail-cache-accepted-message-ids
 If non-@code{nil}, put the @code{Message-ID}s of articles imported into
-the backend (via @code{Gcc}, for instance) into the mail duplication
+the back end (via @code{Gcc}, for instance) into the mail duplication
 discovery cache.  The default is @code{nil}.
 
 @end table
@@ -11764,8 +11843,12 @@ specified by @code{nnmail-message-id-cache-file} for the message ids.
 When it has found a parent, it returns the corresponding group name.  It
 is recommended that you set @code{nnmail-message-id-cache-length} to a
 somewhat higher number than the default so that the message ids are
-still in the cache.  (A value of 5000 appears to create a file some
-300 kBytes in size.)
+still in the cache.  (A value of 5000 appears to create a file some 300
+kBytes in size.)
+@vindex nnmail-cache-accepted-message-ids
+When @code{nnmail-cache-accepted-message-ids} is non-@code{nil}, Gnus
+also records the message ids of moved articles, so that the followup
+messages goes into the new group.
 
 
 @node Group Mail Splitting
@@ -11810,9 +11893,13 @@ 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
-that group is used as the catch-all group.  Note that, in this case,
-there's no cross-posting, as a @code{|} fancy split encloses the
-@code{&} split and the catch-all group.
+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
+may be useful to split mail that doesn't go to any mailing list to
+personal mail folders.  Note that this fancy split is added as the last
+element of a @code{|} split list that also contains a @code{&} split
+with the rules extracted from group parameters.
 
 It's time for an example.  Assume the following group parameters have
 been defined:
@@ -11853,9 +11940,9 @@ splits like this:
 @var{groups} may be a regular expression or a list of group names whose
 parameters will be scanned to generate the output split.
 @var{no-crosspost} can be used to disable cross-posting; in this case, a
-single @code{|} split will be output.  @var{catch-all} may be the name
-of a group to be used as the default catch-all group.  If
-@var{catch-all} is @code{nil}, or if @var{split-regexp} matches the
+single @code{|} split will be output.  @var{catch-all} is the fallback
+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
 empty string in any selected group, no catch-all split will be issued.
 Otherwise, if some group has @var{split-spec} set to @code{catch-all},
 this group will override the value of the @var{catch-all} argument.
@@ -11864,7 +11951,7 @@ this group will override the value of the @var{catch-all} argument.
 Unfortunately, scanning all groups and their parameters can be quite
 slow, especially considering that it has to be done for every message.
 But don't despair!  The function @code{gnus-group-split-setup} can be
-used to select @code{gnus-group-split} in a much more efficient way.  It
+used to enable @code{gnus-group-split} in a much more efficient way.  It
 sets @code{nnmail-split-methods} to @code{nnmail-split-fancy} and sets
 @code{nnmail-split-fancy} to the split produced by
 @code{gnus-group-split-fancy}.  Thus, the group parameters are only
@@ -11884,7 +11971,7 @@ you.  For example, add to your @file{.gnus}:
 If @var{auto-update} is non-@code{nil}, @code{gnus-group-split-update}
 will be added to @code{nnmail-pre-get-new-mail-hook}, so you won't ever
 have to worry about updating @code{nnmail-split-fancy} again.  If you
-don't omit @var{catch-all} (it's optional),
+don't omit @var{catch-all} (it's optional, equivalent to @code{nil}),
 @code{gnus-group-split-default-catch-all-group} will be set to its
 value.
 
@@ -11898,7 +11985,7 @@ by @code{gnus-group-split-update}, this function will run
 
 Most people have lots of old mail stored in various file formats.  If
 you have set up Gnus to read mail using one of the spiffy Gnus mail
-backends, you'll probably wish to have that old mail incorporated into
+back ends, you'll probably wish to have that old mail incorporated into
 your mail groups.
 
 Doing so can be quite easy.
@@ -11916,18 +12003,18 @@ Here's how:
 Go to the group buffer.
 
 @item
-Type `G f' and give the path to the mbox file when prompted to create an
+Type @kbd{G f} and give the path to the mbox file when prompted to create an
 @code{nndoc} group from the mbox file (@pxref{Foreign Groups}).
 
 @item
-Type `SPACE' to enter the newly created group.
+Type @key{SPC} to enter the newly created group.
 
 @item
-Type `M P b' to process-mark all articles in this group's buffer
+Type @kbd{M P b} to process-mark all articles in this group's buffer
 (@pxref{Setting Process Marks}).
 
 @item
-Type `B r' to respool all the process-marked articles, and answer
+Type @kbd{B r} to respool all the process-marked articles, and answer
 @samp{nnml} when prompted (@pxref{Mail Group Commands}).
 @end enumerate
 
@@ -11938,8 +12025,8 @@ deleting the mbox file, but I wouldn't do that unless I was absolutely
 sure that all the mail has ended up where it should be.
 
 Respooling is also a handy thing to do if you're switching from one mail
-backend to another.  Just respool all the mail in the old mail groups
-using the new mail backend.
+back end to another.  Just respool all the mail in the old mail groups
+using the new mail back end.
 
 
 @node Expiring Mail
@@ -12164,7 +12251,7 @@ This can also be done non-destructively with
 
 @item nnmail-remove-tabs
 @findex nnmail-remove-tabs
-Translate all @samp{TAB} characters into @samp{SPACE} characters.
+Translate all tab characters into space characters.
 
 @item nnmail-fix-eudora-headers
 @findex nnmail-fix-eudora-headers
@@ -12250,12 +12337,12 @@ received.  Think of all the fun!  She'll never see any of it!  Whee!
 @node Not Reading Mail
 @subsection Not Reading Mail
 
-If you start using any of the mail backends, they have the annoying
+If you start using any of the mail back ends, they have the annoying
 habit of assuming that you want to read mail with them.  This might not
 be unreasonable, but it might not be what you want.
 
 If you set @code{mail-sources} and @code{nnmail-spool-file} to
-@code{nil}, none of the backends will ever attempt to read incoming
+@code{nil}, none of the back ends will ever attempt to read incoming
 mail, which should help.
 
 @vindex nnbabyl-get-new-mail
@@ -12265,25 +12352,25 @@ mail, which should help.
 @vindex nnfolder-get-new-mail
 This might be too much, if, for instance, you are reading mail quite
 happily with @code{nnml} and just want to peek at some old @sc{rmail}
-file you have stashed away with @code{nnbabyl}.  All backends have
-variables called backend-@code{get-new-mail}.  If you want to disable
+file you have stashed away with @code{nnbabyl}.  All back ends have
+variables called back-end-@code{get-new-mail}.  If you want to disable
 the @code{nnbabyl} mail reading, you edit the virtual server for the
 group to have a setting where @code{nnbabyl-get-new-mail} to @code{nil}.
 
-All the mail backends will call @code{nn}*@code{-prepare-save-mail-hook}
+All the mail back ends will call @code{nn}*@code{-prepare-save-mail-hook}
 narrowed to the article to be saved before saving it when reading
 incoming mail.
 
 
-@node Choosing a Mail Backend
-@subsection Choosing a Mail Backend
+@node Choosing a Mail Back End
+@subsection Choosing a Mail Back End
 
 Gnus will read the mail spool when you activate a mail group.  The mail
 file is first copied to your home directory.  What happens after that
 depends on what format you want to store your mail in.
 
-There are five different mail backends in the standard Gnus, and more
-backends are available separately.  The mail backend most people use
+There are five different mail back ends in the standard Gnus, and more
+back ends are available separately.  The mail back end most people use
 (because it is the fastest and most flexible) is @code{nnml}
 (@pxref{Mail Spool}).
 
@@ -12291,9 +12378,9 @@ backends are available separately.  The mail backend most people use
 * Unix Mail Box::               Using the (quite) standard Un*x mbox.
 * Rmail Babyl::                 Emacs programs use the rmail babyl format.
 * Mail Spool::                  Store your mail in a private spool?
-* MH Spool::                    An mhspool-like backend.
+* MH Spool::                    An mhspool-like back end.
 * Mail Folders::                Having one file for each group.
-* Comparing Mail Backends::     An in-depth looks at pros and cons.
+* Comparing Mail Back Ends::    An in-depth looks at pros and cons.
 @end menu
 
 
@@ -12304,7 +12391,7 @@ backends are available separately.  The mail backend most people use
 
 @vindex nnmbox-active-file
 @vindex nnmbox-mbox-file
-The @dfn{nnmbox} backend will use the standard Un*x mbox file to store
+The @dfn{nnmbox} back end will use the standard Un*x mbox file to store
 mail.  @code{nnmbox} will add extra headers to each mail article to say
 which group it belongs in.
 
@@ -12333,7 +12420,7 @@ into groups.
 
 @vindex nnbabyl-active-file
 @vindex nnbabyl-mbox-file
-The @dfn{nnbabyl} backend will use a babyl mail box (aka. @dfn{rmail
+The @dfn{nnbabyl} back end will use a babyl mail box (aka. @dfn{rmail
 mbox}) to store mail.  @code{nnbabyl} will add extra headers to each
 mail article to say which group it belongs in.
 
@@ -12363,7 +12450,7 @@ The @dfn{nnml} spool mail format isn't compatible with any other known
 format.  It should be used with some caution.
 
 @vindex nnml-directory
-If you use this backend, Gnus will split all incoming mail into files,
+If you use this back end, Gnus will split all incoming mail into files,
 one file for each mail, and put the articles into the corresponding
 directories under the directory specified by the @code{nnml-directory}
 variable.  The default value is @file{~/Mail/}.
@@ -12372,7 +12459,7 @@ You do not have to create any directories beforehand; Gnus will take
 care of all that.
 
 If you have a strict limit as to how many files you are allowed to store
-in your account, you should not use this backend.  As each mail gets its
+in your account, you should not use this back end.  As each mail gets its
 own file, you might very well occupy thousands of inodes within a few
 weeks.  If this is no problem for you, and it isn't a problem for you
 having your friendly systems administrator walking around, madly,
@@ -12380,10 +12467,10 @@ shouting ``Who is eating all my inodes?! Who? Who!?!'', then you should
 know that this is probably the fastest format to use.  You do not have
 to trudge through a big mbox file just to read your new mail.
 
-@code{nnml} is probably the slowest backend when it comes to article
+@code{nnml} is probably the slowest back end when it comes to article
 splitting.  It has to create lots of files, and it also generates
 @sc{nov} databases for the incoming mails.  This makes it the fastest
-backend when it comes to reading mail.
+back end when it comes to reading mail.
 
 Virtual server settings:
 
@@ -12407,7 +12494,7 @@ If non-@code{nil}, @code{nnml} will read incoming mail.
 
 @item nnml-nov-is-evil
 @vindex nnml-nov-is-evil
-If non-@code{nil}, this backend will ignore any @sc{nov} files.
+If non-@code{nil}, this back end will ignore any @sc{nov} files.
 
 @item nnml-nov-file-name
 @vindex nnml-nov-file-name
@@ -12436,7 +12523,7 @@ Commands}).
 
 @code{nnmh} is just like @code{nnml}, except that is doesn't generate
 @sc{nov} databases and it doesn't keep an active file.  This makes
-@code{nnmh} a @emph{much} slower backend than @code{nnml}, but it also
+@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:
@@ -12467,7 +12554,7 @@ to set this variable to @code{t}.
 @cindex mbox folders
 @cindex mail folders
 
-@code{nnfolder} is a backend for storing each mail group in a separate
+@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.
@@ -12523,13 +12610,13 @@ command to make @code{nnfolder} aware of all likely files in
 @code{nnfolder-directory}.  This only works if you use long file names,
 though.
 
-@node Comparing Mail Backends
-@subsubsection Comparing Mail Backends
+@node Comparing Mail Back Ends
+@subsubsection Comparing Mail Back Ends
 
-First, just for terminology, the @dfn{backend} is the common word for a
+First, just for terminology, the @dfn{back end} is the common word for a
 low-level access method---a transport, if you will, by which something
 is acquired.  The sense is that one's mail has to come from somewhere,
-and so selection of a suitable backend is required in order to get that
+and so selection of a suitable back end is required in order to get that
 mail within spitting distance of Gnus.
 
 The same concept exists for Usenet itself: Though access to articles is
@@ -12538,11 +12625,11 @@ in the world got at Usenet by running a reader on the machine where the
 articles lay (the machine which today we call an @sc{nntp} server), and
 access was by the reader stepping into the articles' directory spool
 area directly.  One can still select between either the @code{nntp} or
-@code{nnspool} backends, to select between these methods, if one happens
+@code{nnspool} back ends, to select between these methods, if one happens
 actually to live on the server (or can see its spool directly, anyway,
 via NFS).
 
-The goal in selecting a mail backend is to pick one which
+The goal in selecting a mail back end is to pick one which
 simultaneously represents a suitable way of dealing with the original
 format plus leaving mail in a form that is convenient to use in the
 future.  Here are some high and low points on each:
@@ -12558,7 +12645,7 @@ to make it clear in this instance that this is not the RFC-specified
 @samp{From:} header.)  Because Emacs and therefore Gnus emanate
 historically from the Unix environment, it is simplest if one does not
 mess a great deal with the original mailbox format, so if one chooses
-this backend, Gnus' primary activity in getting mail from the real spool
+this back end, Gnus' primary activity in getting mail from the real spool
 area to Gnus' preferred directory is simply to copy it, with no
 (appreciable) format change in the process.  It is the ``dumbest'' way
 to move mail into availability in the Gnus environment.  This makes it
@@ -12588,7 +12675,7 @@ look at your mail.
 
 @item nnml
 
-@code{nnml} is the backend which smells the most as though you were
+@code{nnml} is the back end which smells the most as though you were
 actually operating with an @code{nnspool}-accessed Usenet system.  (In
 fact, I believe @code{nnml} actually derived from @code{nnspool} code,
 lo these years ago.)  One's mail is taken from the original spool file,
@@ -12610,7 +12697,7 @@ tight, shared filesystems.  But if you live on a personal machine where
 the filesystem is your own and space is not at a premium, @code{nnml}
 wins big.
 
-It is also problematic using this backend if you are living in a
+It is also problematic using this back end if you are living in a
 FAT16-based Windows world, since much space will be wasted on all these
 tiny files.
 
@@ -12639,7 +12726,7 @@ out how many messages there are in each separate group.
 If you have groups that are expected to have a massive amount of
 messages, @code{nnfolder} is not the best choice, but if you receive
 only a moderate amount of mail, @code{nnfolder} is probably the most
-friendly mail backend all over.
+friendly mail back end all over.
 
 @end table
 
@@ -12668,7 +12755,7 @@ you mad in the end.
 So---if web browsers suck at reading discussion forums, why not use Gnus 
 to do it instead?
 
-Gnus has been getting a bit of a collection of backends for providing
+Gnus has been getting a bit of a collection of back ends for providing
 interfaces to these sources.
 
 @menu
@@ -12683,8 +12770,8 @@ All the web sources require Emacs/w3 and the url library to work.
 
 The main caveat with all these web sources is that they probably won't
 work for a very long time.  Gleaning information from the @sc{html} data 
-is guesswork at best, and when the layout is altered, the Gnus backend
-will fail.  If you have reasonably new versions of these backends,
+is guesswork at best, and when the layout is altered, the Gnus back end
+will fail.  If you have reasonably new versions of these back ends,
 though, you should be ok.
 
 One thing all these Web methods have in common is that the Web sources
@@ -12709,7 +12796,7 @@ those, like, Web browsers, and you, like, have to, rilly, like, look at
 the commercials, so, like, with Gnus you can do @emph{rad}, rilly,
 searches without having to use a browser.
 
-The @code{nnweb} backend allows an easy interface to the mighty search
+The @code{nnweb} back end allows an easy interface to the mighty search
 engine.  You create an @code{nnweb} group, enter a search pattern, and
 then enter the group and read the articles like you would any normal
 group.  The @kbd{G w} command in the group buffer (@pxref{Foreign
@@ -12800,14 +12887,14 @@ following in your @file{.gnus.el} file:
       '((nnslashdot "")))
 @end lisp
 
-This will make Gnus query the @code{nnslashdot} backend for new comments
+This will make Gnus query the @code{nnslashdot} back end for new comments
 and groups.  The @kbd{F} command will subscribe each new news article as
 a new Gnus group, and you can read the comments by entering these
 groups.  (Note that the default subscription method is to subscribe new
 groups as zombies.  Other methods are available (@pxref{Subscription
 Methods}).
 
-If you want to remove an old @code{nnslashdot} group, the @kbd{G DEL}
+If you want to remove an old @code{nnslashdot} group, the @kbd{G @key{DEL}}
 command is the most handy tool (@pxref{Foreign Groups}).
 
 When following up to @code{nnslashdot} comments (or posting new
@@ -12839,13 +12926,13 @@ The password to use when posting.
 
 @item nnslashdot-directory
 @vindex nnslashdot-directory
-Where @code{nnslashdot} will store its files.  The default value is
+Where @code{nnslashdot} will store its files.  The default is
 @samp{~/News/slashdot/}.
 
 @item nnslashdot-active-url
 @vindex nnslashdot-active-url
-The @sc{url} format string that will be used to fetch the information on 
-news articles and comments.  The default is
+The @sc{url} format string that will be used to fetch the information on
+news articles and comments.  Default:
 @samp{http://slashdot.org/search.pl?section=&min=%d}.
 
 @item nnslashdot-comments-url
@@ -12884,8 +12971,8 @@ quite regular and nice interface, and it's possible to get the
 information Gnus needs to keep groups updated.
 
 The easiest way to get started with @code{nnultimate} is to say
-something like the following in the group buffer:  @kbd{B nnultimate RET 
-http://www.tcj.com/messboard/ubbcgi/ RET}.  (Substitute the @sc{url}
+something like the following in the group buffer:  @kbd{B nnultimate @key{RET} 
+http://www.tcj.com/messboard/ubbcgi/ @key{RET}}.  (Substitute the @sc{url}
 (not including @samp{Ultimate.cgi} or the like at the end) for a forum
 you're interested in; there's quite a list of them on the Ultimate web
 site.)  Then subscribe to the groups you're interested in from the
@@ -12914,11 +13001,11 @@ groups updated.
 
 The easiest way to get started with @code{nnwarchive} is to say
 something like the following in the group buffer: @kbd{M-x
-gnus-group-make-warchive-group RET an_egroup RET egroups RET
-www.egroups.com RET your@@email.address RET}.  (Substitute the
+gnus-group-make-warchive-group @key{RET} an_egroup @key{RET} egroups @key{RET}
+www.egroups.com @key{RET} your@@email.address @key{RET}}.  (Substitute the
 @sc{an_egroup} with the mailing list you subscribed, the
 @sc{your@@email.address} with your email address.), or to browse the
-backend by @kbd{B nnwarchive RET mail-archive RET}.
+back end by @kbd{B nnwarchive @key{RET} mail-archive @key{RET}}.
 
 The following @code{nnwarchive} variables can be altered:
 
@@ -12998,7 +13085,7 @@ names, of course.
 This might be an opportune moment to mention @code{ange-ftp} (and its
 successor @code{efs}), that most wonderful of all wonderful Emacs
 packages.  When I wrote @code{nndir}, I didn't think much about it---a
-backend to read directories.  Big deal.
+back end to read directories.  Big deal.
 
 @code{ange-ftp} changes that picture dramatically.  For instance, if you
 enter the @code{ange-ftp} file name
@@ -13008,7 +13095,7 @@ directory over at @samp{sina} as a newsgroup.  Distributed news ahoy!
 
 @code{nndir} will use @sc{nov} files if they are present.
 
-@code{nndir} is a ``read-only'' backend---you can't delete or expire
+@code{nndir} is a ``read-only'' back end---you can't delete or expire
 articles with this method.  You can use @code{nnmh} or @code{nnml} for
 whatever you use @code{nndir} for, so you could switch to any of those
 methods if you feel the need to have a non-read-only @code{nndir}.
@@ -13018,7 +13105,7 @@ methods if you feel the need to have a non-read-only @code{nndir}.
 @subsection Anything Groups
 @cindex nneething
 
-From the @code{nndir} backend (which reads a single spool-like
+From the @code{nndir} back end (which reads a single spool-like
 directory), it's just a hop and a skip to @code{nneething}, which
 pretends that any arbitrary directory is a newsgroup.  Strange, but
 true.
@@ -13137,7 +13224,7 @@ it---it will simply, like, let you use the file as the basis for a
 group.  And that's it.
 
 If you have some old archived articles that you want to insert into your
-new & spiffy Gnus mail backend, @code{nndoc} can probably help you with
+new & spiffy Gnus mail back end, @code{nndoc} can probably help you with
 that.  Say you have an old @file{RMAIL} file with mail that you now want
 to split into your new @code{nnml} groups.  You look at that file using
 @code{nndoc} (using the @kbd{G f} command in the group buffer
@@ -13360,7 +13447,7 @@ You transfer the packet home.  Rail, boat, car or modem will do fine.
 You put the packet in your home directory.
 
 @item
-You fire up Gnus on your home machine using the @code{nnsoup} backend as
+You fire up Gnus on your home machine using the @code{nnsoup} back end as
 the native or secondary server.
 
 @item
@@ -13387,7 +13474,7 @@ reading and Gnus for packing/sending these @sc{soup} packets.
 
 @menu
 * SOUP Commands::     Commands for creating and sending @sc{soup} packets
-* SOUP Groups::       A backend for reading @sc{soup} packets.
+* SOUP Groups::       A back end for reading @sc{soup} packets.
 * SOUP Replies::      How to enable @code{nnsoup} to take over mail and news.
 @end menu
 
@@ -13399,35 +13486,35 @@ These are commands for creating and manipulating @sc{soup} packets.
 
 @table @kbd
 @item G s b
-@kindex G s b (Group)
+@kindex G s b @r{(Group)}
 @findex gnus-group-brew-soup
 Pack all unread articles in the current group
 (@code{gnus-group-brew-soup}).  This command understands the
 process/prefix convention.
 
 @item G s w
-@kindex G s w (Group)
+@kindex G s w @r{(Group)}
 @findex gnus-soup-save-areas
 Save all @sc{soup} data files (@code{gnus-soup-save-areas}).
 
 @item G s s
-@kindex G s s (Group)
+@kindex G s s @r{(Group)}
 @findex gnus-soup-send-replies
 Send all replies from the replies packet
 (@code{gnus-soup-send-replies}).
 
 @item G s p
-@kindex G s p (Group)
+@kindex G s p @r{(Group)}
 @findex gnus-soup-pack-packet
 Pack all files into a @sc{soup} packet (@code{gnus-soup-pack-packet}).
 
 @item G s r
-@kindex G s r (Group)
+@kindex G s r @r{(Group)}
 @findex nnsoup-pack-replies
 Pack all replies into a replies packet (@code{nnsoup-pack-replies}).
 
 @item O s
-@kindex O s (Summary)
+@kindex O s @r{(Summary)}
 @findex gnus-soup-add-article
 This summary-mode command adds the current article to a @sc{soup} packet
 (@code{gnus-soup-add-article}).  It understands the process/prefix
@@ -13482,7 +13569,7 @@ Regular expression matching @sc{soup} reply packets in
 @subsubsection @sc{soup} Groups
 @cindex nnsoup
 
-@code{nnsoup} is the backend for reading @sc{soup} packets.  It will
+@code{nnsoup} is the back end for reading @sc{soup} packets.  It will
 read incoming packets, unpack them, and put them in a directory where
 you can read them at leisure.
 
@@ -13581,9 +13668,9 @@ system you just use the first line.  If you only want mail to be
 
 If your local @code{nntp} server doesn't allow posting, for some reason
 or other, you can post using one of the numerous mail-to-news gateways.
-The @code{nngateway} backend provides the interface.
+The @code{nngateway} back end provides the interface.
 
-Note that you can't read anything from this backend---it can only be
+Note that you can't read anything from this back end---it can only be
 used to post with.
 
 Server variables:
@@ -13635,9 +13722,10 @@ Here's an example:
 
 @lisp
 (setq gnus-post-method
-      '(nngateway "mail2news@@replay.com"
-                  (nngateway-header-transformation
-                   nngateway-mail2news-header-transformation)))
+      '(nngateway 
+        "mail2news@@replay.com"
+        (nngateway-header-transformation
+         nngateway-mail2news-header-transformation)))
 @end lisp
 
 @end table
@@ -13658,10 +13746,26 @@ So, to use this, simply say something like:
 @cindex nnimap
 @cindex @sc{imap}
 
-@sc{imap} is a network protocol for reading mail (or news, or ...),
-think of it as a modernized @sc{nntp}.  Connecting to a @sc{imap} server
-is much similar to connecting to a news server, you just specify the
-network address of the server.
+@sc{imap} is a network protocol for reading mail (or news, or@dots{}),
+think of it as a modernized @sc{nntp}.  Connecting to a @sc{imap}
+server is much similar to connecting to a news server, you just
+specify the network address of the server.
+
+@sc{imap} has two properties.  First, @sc{imap} can do everything that
+POP can, it can hence be viewed as POP++.  Secondly, @sc{imap} is a
+mail storage protocol, similar to @sc{nntp} being a news storage
+protocol.  (@sc{imap} offers more features than @sc{nntp} because news
+is more or less read-only whereas mail is read-write.)
+
+If you want to use @sc{imap} as POP++, use an imap entry in
+mail-sources.  With this, Gnus will fetch mails from the @sc{imap}
+server and store them on the local disk.  This is not the usage
+described in this section.  @xref{Mail Sources}.
+
+If you want to use @sc{imap} as a mail storage protocol, use an nnimap
+entry in gnus-secondary-select-methods.  With this, Gnus will
+manipulate mails stored on the @sc{imap} server.  This is the kind of
+usage explained in this section.
 
 A server configuration in @code{~/.gnus} with a few @sc{imap} servers
 might look something like this:
@@ -13751,48 +13855,49 @@ Please note that the value of @code{nnimap-stream} is a symbol!
 
 @itemize @bullet
 @item
-@dfn{gssapi:} Connect with GSSAPI (usually kerberos 5). Require the
-@samp{imtest} program.
+@dfn{gssapi:} Connect with GSSAPI (usually Kerberos 5).  Requires the
+@command{imtest} program.
 @item
-@dfn{kerberos4:} Connect with kerberos 4. Require the @samp{imtest} program.
+@dfn{kerberos4:} Connect with Kerberos 4.  Requires the
+@command{imtest} program.
 @item
 @dfn{starttls:} Connect via the STARTTLS extension (similar to
-SSL). Require the external library @samp{starttls.el} and program
-@samp{starttls}.
+SSL)@.  Requires the library @file{starttls.el} and program
+@command{starttls}.
 @item
-@dfn{ssl:} Connect through SSL. Require OpenSSL (the
-program @samp{openssl}) or SSLeay (@samp{s_client}).
+@dfn{ssl:} Connect through SSL@.  Requires OpenSSL (the
+program @command{openssl}) or SSLeay (@command{s_client}).
 @item
-@dfn{shell:} Use a shell command to start IMAP connection.
+@dfn{shell:} Use a shell command to start an @sc{imap} connection.
 @item
 @dfn{network:} Plain, TCP/IP network connection.
 @end itemize
 
 @vindex imap-kerberos4-program
-The @samp{imtest} program is shipped with Cyrus IMAPD, nnimap support
-both @samp{imtest} version 1.5.x and version 1.6.x.  The variable
-@code{imap-kerberos4-program} contain parameters to pass to the imtest
-program.
+The @command{imtest} program is shipped with Cyrus IMAPD@.  Nnimap supports
+both @command{imtest} version 1.5.x and version 1.6.x.  The variable
+@code{imap-kerberos4-program} contains parameters to pass to the
+@command{imtest} program.
 
 @vindex imap-ssl-program
 For SSL connections, the OpenSSL program is available from
 @uref{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay,
-and nnimap support it too - altough the most recent versions of
+and nnimap supports it too.  However, the most recent versions of
 SSLeay, 0.9.x, are known to have serious bugs making it
-useless. Earlier versions, especially 0.8.x, of SSLeay are known to
-work. The variable @code{imap-ssl-program} contain parameters to pass
+useless.  Earlier versions, especially 0.8.x, of SSLeay are known to
+work. The variable @code{imap-ssl-program} contains parameters to pass
 to OpenSSL/SSLeay.
 
 @vindex imap-shell-program
 @vindex imap-shell-host
-For IMAP connections using the @code{shell} stream, the variable
-@code{imap-shell-program} specify what program to call.
+For @sc{imap} connections using the @code{shell} stream, the variable
+@code{imap-shell-program} specifies what program to call.
 
 @item nnimap-authenticator
 @vindex nnimap-authenticator
 
 The authenticator used to connect to the server.  By default, nnimap
-will use the most secure authenticator your server is capable of.
+will use the most secure authenticator your server supports.
 
 Example server specification:
 
@@ -13805,31 +13910,32 @@ Please note that the value of @code{nnimap-authenticator} is a symbol!
 
 @itemize @bullet
 @item
-@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require
-external program @code{imtest}.
+@dfn{gssapi:} GSSAPI (usually Kerberos 5) authentication.  Requires the
+external program @command{imtest}.
 @item
-@dfn{kerberos4:} Kerberos authentication. Require external program
-@code{imtest}.
+@dfn{kerberos4:} Kerberos authentication.  Requires the external program
+@command{imtest}.
 @item
-@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Require
-external library @code{digest-md5.el}.
+@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5@.  Requires
+external library @command{digest-md5.el}.
 @item
 @dfn{cram-md5:} Encrypted username/password via CRAM-MD5.
 @item
 @dfn{login:} Plain-text username/password via LOGIN.
 @item
-@dfn{anonymous:} Login as `anonymous', supplying your emailadress as password.
+@dfn{anonymous:} Login as `anonymous', supplying your email address as
+password.
 @end itemize
 
 @item nnimap-expunge-on-close
 @cindex Expunging
 @vindex nnimap-expunge-on-close
-Unlike Parmenides the @sc{imap} designers has decided that things that
-doesn't exist actually does exist.  More specifically, @sc{imap} has
-this concept of marking articles @code{Deleted} which doesn't actually
+Unlike Parmenides, the @sc{imap} designers decided that things that
+don't exist actually do exist.  More specifically, @sc{imap} has
+the concept of marking articles @code{Deleted} which doesn't actually
 delete them, and this (marking them @code{Deleted}, that is) is what
-nnimap does when you delete a article in Gnus (with @kbd{G DEL} or
-similair).
+nnimap does when you delete a article in Gnus (with @kbd{G @key{DEL}} or
+similar).
 
 Since the articles aren't really removed when we mark them with the
 @code{Deleted} flag we'll need a way to actually delete them.  Feel like
@@ -13844,7 +13950,7 @@ The possible options are:
 @table @code
 
 @item always
-The default behaviour, delete all articles marked as "Deleted" when
+The default behavior, delete all articles marked as "Deleted" when
 closing a mailbox.
 @item never
 Never actually delete articles.  Currently there is no way of showing
@@ -13883,11 +13989,11 @@ variable @code{nntp-authinfo-file} for exact syntax; also see
 @subsubsection Splitting in @sc{imap}
 @cindex splitting imap mail
 
-Splitting is something Gnus users has loved and used for years, and now
-the rest of the world is catching up.  Yeah, dream on, not many
-@sc{imap} server has server side splitting and those that have splitting
+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
+@sc{imap} servers have server side splitting and those that have splitting
 seem to use some non-standard protocol.  This means that @sc{imap}
-support for Gnus has to do it's own splitting.
+support for Gnus has to do its own splitting.
 
 And it does.
 
@@ -13911,8 +14017,8 @@ Nnmail equivalent: @code{nnmail-crosspost}.
 @vindex nnimap-split-inbox
 
 A string or a list of strings that gives the name(s) of @sc{imap}
-mailboxes to split from.  Defaults to nil, which means that splitting is
-disabled!
+mailboxes to split from.  Defaults to @code{nil}, which means that
+splitting is disabled!
 
 @lisp
 (setq nnimap-split-inbox
@@ -13935,7 +14041,8 @@ Neither did I, we need examples.
 
 @lisp
 (setq nnimap-split-rule
-      '(("INBOX.nnimap"  "^Sender: owner-nnimap@@vic20.globalcom.se")
+      '(("INBOX.nnimap"  
+         "^Sender: owner-nnimap@@vic20.globalcom.se")
         ("INBOX.junk"    "^Subject:.*MAKE MONEY")
         ("INBOX.private" "")))
 @end lisp
@@ -13944,7 +14051,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.spam and everything else in INBOX.private.
 
-The first string may contain `\\1' forms, like the ones used by
+The first string may contain @samp{\\@var{digit}} forms, like the ones used by
 replace-match to insert sub-expressions from the matched text.  For
 instance:
 
@@ -13960,23 +14067,23 @@ if it thinks that the mail belongs in that group.
 Nnmail users might recollect that the last regexp had to be empty to
 match all articles (like in the example above).  This is not required in
 nnimap.  Articles not matching any of the regexps will not be moved out
-of your inbox.  (This might might affect performance if you keep lots of
+of your inbox.  (This might affect performance if you keep lots of
 unread articles in your inbox, since the splitting code would go over
 them every time you fetch new mail.)
 
 These rules are processed from the beginning of the alist toward the
-end.  The first rule to make a match will "win", unless you have
-crossposting enabled.  In that case, all matching rules will "win".
+end.  The first rule to make a match will `win', unless you have
+crossposting enabled.  In that case, all matching rules will `win'.
 
 This variable can also have a function as its value, the function will
-be called with the headers narrowed and should return a group where it
-thinks the article should be splitted to.  See @code{nnimap-split-fancy}.
+be called with the headers narrowed and should return a group to where
+it thinks the article should be split.  See @code{nnimap-split-fancy}.
 
-The splitting code tries to create mailboxes if it need too.
+The splitting code tries to create mailboxes if it needs too.
 
 To allow for different split rules on different virtual servers, and
 even different split rules in different inboxes on the same server,
-the syntax of this variable have been extended along the lines of:
+the syntax of this variable has been extended along the lines of:
 
 @lisp
 (setq nnimap-split-rule
@@ -14001,7 +14108,7 @@ Nnmail equivalent: @code{nnmail-split-methods}.
 @vindex nnimap-split-predicate
 
 Mail matching this predicate in @code{nnimap-split-inbox} will be
-splitted, it is a string and the default is @samp{UNSEEN UNDELETED}.
+split; it is a string and the default is @samp{UNSEEN UNDELETED}.
 
 This might be useful if you use another @sc{imap} client to read mail in
 your inbox but would like Gnus to split all articles in the inbox
@@ -14018,7 +14125,7 @@ It's possible to set @code{nnimap-split-rule} to
 splitting. @xref{Fancy Mail Splitting}.
 
 However, to be able to have different fancy split rules for nnmail and
-nnimap backends you can set @code{nnimap-split-rule} to
+nnimap back ends you can set @code{nnimap-split-rule} to
 @code{nnimap-split-fancy} and define the nnimap specific fancy split
 rule in @code{nnimap-split-fancy}.
 
@@ -14163,11 +14270,11 @@ you enter it---it'll have much the same effect.
 
 @code{nnvirtual} can have both mail and news groups as component groups.
 When responding to articles in @code{nnvirtual} groups, @code{nnvirtual}
-has to ask the backend of the component group the article comes from
-whether it is a news or mail backend.  However, when you do a @kbd{^},
-there is typically no sure way for the component backend to know this,
+has to ask the back end of the component group the article comes from
+whether it is a news or mail back end.  However, when you do a @kbd{^},
+there is typically no sure way for the component back end to know this,
 and in that case @code{nnvirtual} tells Gnus that the article came from a
-not-news backend.  (Just to be on the safe side.)
+not-news back end.  (Just to be on the safe side.)
 
 @kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups}
 line from the article you respond to in these cases.
@@ -14180,11 +14287,11 @@ line from the article you respond to in these cases.
 @cindex kibozing
 
 @dfn{Kibozing} is defined by @sc{oed} as ``grepping through (parts of)
-the news feed''.  @code{nnkiboze} is a backend that will do this for
+the news feed''.  @code{nnkiboze} is a back end that will do this for
 you.  Oh joy!  Now you can grind any @sc{nntp} server down to a halt
 with useless requests!  Oh happiness!
 
-@kindex G k (Group)
+@kindex G k @r{(Group)}
 To create a kibozed group, use the @kbd{G k} command in the group
 buffer.
 
@@ -14340,7 +14447,7 @@ the Agent.
 
 @item
 Decide which servers should be covered by the Agent.  If you have a mail
-backend, it would probably be nonsensical to have it covered by the
+back end, it would probably be nonsensical to have it covered by the
 Agent.  Go to the server buffer (@kbd{^} in the group buffer) and press
 @kbd{J a} the server (or servers) that you wish to have covered by the
 Agent (@pxref{Server Agent Commands}).  This will typically be only the
@@ -14497,7 +14604,7 @@ wherever.  (Note: this would have to be at a point *after*
 @code{gnus-agent} has been loaded via @code{(gnus-agentize)})
 
 @lisp
-(defvar  gnus-category-predicate-alist
+(setq  gnus-category-predicate-alist
   (append gnus-category-predicate-alist
         '((old . my-article-old-p))))
 @end lisp
@@ -14511,7 +14618,7 @@ and simply specify your predicate as:
 If/when using something like the above, be aware that there are many
 misconfigured systems/mailers out there and so an article's date is not
 always a reliable indication of when it was posted.  Hell, some people
-just don't give a damm.
+just don't give a damn.
 
 The above predicates apply to *all* the groups which belong to the
 category.  However, if you wish to have a specific predicate for an
@@ -14622,14 +14729,14 @@ about parenthesis?
 @item
 Use @code{normal} score files
 
-If you dont want to maintain two sets of scoring rules for a group, and
+If you don't want to maintain two sets of scoring rules for a group, and
 your desired @code{downloading} criteria for a group are the same as your
 @code{reading} criteria then you can tell the agent to refer to your
 @code{normal} score files when deciding what to download.
 
 These directives in either the category definition or a group's
 parameters will cause the agent to read in all the applicable score
-files for a group, *filtering out* those those sections that do not
+files for a group, *filtering out* those sections that do not
 relate to one of the permitted subset of scoring keywords.
 
 @itemize @bullet
@@ -14898,20 +15005,20 @@ unread, ticked and dormant articles will be kept indefinitely.
 @node Agent and IMAP
 @subsection Agent and IMAP
 
-The Agent work with any Gnus backend, including nnimap.  However, since
-there are some conceptual differences between NNTP and IMAP, this
-section (should) provide you with some information to make Gnus Agent
-work smoother as a IMAP Disconnected Mode client.
+The Agent work with any Gnus back end, including nnimap.  However,
+since there are some conceptual differences between @sc{nntp} and
+@sc{imap}, this section (should) provide you with some information to
+make Gnus Agent work smoother as a @sc{imap} Disconnected Mode client.
 
 The first thing to keep in mind is that all flags (read, ticked, etc)
-are kept on the IMAP server, rather than in @code{.newsrc} as is the
+are kept on the @sc{imap} server, rather than in @file{.newsrc} as is the
 case for nntp.  Thus Gnus need to remember flag changes when
 disconnected, and synchronize these flags when you plug back in.
 
 Gnus keep track of flag changes when reading nnimap groups under the
 Agent by default.  When you plug back in, by default Gnus will check if
-you have any changed any flags and ask if you wish to synchronize theese
-with the server.  This behaviour is customizable with
+you have any changed any flags and ask if you wish to synchronize these
+with the server.  This behavior is customizable with
 @code{gnus-agent-synchronize-flags}.
 
 @vindex gnus-agent-synchronize-flags
@@ -14927,7 +15034,7 @@ re-connect, this can be done manually with the
 in the group buffer by default.
 
 Some things are currently not implemented in the Agent that you'd might
-expect from a disconnected IMAP client, including:
+expect from a disconnected @sc{imap} client, including:
 
 @itemize @bullet
 
@@ -15139,24 +15246,24 @@ General score commands that don't actually change the score file:
 @table @kbd
 
 @item V s
-@kindex V s (Summary)
+@kindex V s @r{(Summary)}
 @findex gnus-summary-set-score
 Set the score of the current article (@code{gnus-summary-set-score}).
 
 @item V S
-@kindex V S (Summary)
+@kindex V S @r{(Summary)}
 @findex gnus-summary-current-score
 Display the score of the current article
 (@code{gnus-summary-current-score}).
 
 @item V t
-@kindex V t (Summary)
+@kindex V t @r{(Summary)}
 @findex gnus-score-find-trace
 Display all score rules that have been used on the current article
 (@code{gnus-score-find-trace}).
 
 @item V R
-@kindex V R (Summary)
+@kindex V R @r{(Summary)}
 @findex gnus-summary-rescore
 Run the current summary through the scoring process
 (@code{gnus-summary-rescore}).  This might be useful if you're playing
@@ -15164,32 +15271,32 @@ around with your score files behind Gnus' back and want to see the
 effect you're having.
 
 @item V c
-@kindex V c (Summary)
+@kindex V c @r{(Summary)}
 @findex gnus-score-change-score-file
 Make a different score file the current
 (@code{gnus-score-change-score-file}).
 
 @item V e
-@kindex V e (Summary)
+@kindex V e @r{(Summary)}
 @findex gnus-score-edit-current-scores
 Edit the current score file (@code{gnus-score-edit-current-scores}).
 You will be popped into a @code{gnus-score-mode} buffer (@pxref{Score
 File Editing}).
 
 @item V f
-@kindex V f (Summary)
+@kindex V f @r{(Summary)}
 @findex gnus-score-edit-file
 Edit a score file and make this score file the current one
 (@code{gnus-score-edit-file}).
 
 @item V F
-@kindex V F (Summary)
+@kindex V F @r{(Summary)}
 @findex gnus-score-flush-cache
 Flush the score cache (@code{gnus-score-flush-cache}).  This is useful
 after editing score files.
 
 @item V C
-@kindex V C (Summary)
+@kindex V C @r{(Summary)}
 @findex gnus-score-customize
 Customize a score file in a visually pleasing manner
 (@code{gnus-score-customize}).
@@ -15201,13 +15308,13 @@ The rest of these commands modify the local score file.
 @table @kbd
 
 @item V m
-@kindex V m (Summary)
+@kindex V m @r{(Summary)}
 @findex gnus-score-set-mark-below
 Prompt for a score, and mark all articles with a score below this as
 read (@code{gnus-score-set-mark-below}).
 
 @item V x
-@kindex V x (Summary)
+@kindex V x @r{(Summary)}
 @findex gnus-score-set-expunge-below
 Prompt for a score, and add a score rule to the current score file to
 expunge all articles below this score
@@ -15365,7 +15472,7 @@ There aren't many of these as yet, I'm afraid.
 @table @kbd
 
 @item W f
-@kindex W f (Group)
+@kindex W f @r{(Group)}
 @findex gnus-score-flush-cache
 Gnus maintains a cache of score alists to avoid having to reload them
 all the time.  This command will flush the cache
@@ -15511,7 +15618,8 @@ returned is the local score file.  Phu.
 For example, to do hierarchical scoring but use a non-server-specific
 overall score file, you could use the value
 @example
-(list (lambda (group) ("all.SCORE")) 'gnus-score-find-hierarchical)
+(list (lambda (group) ("all.SCORE")) 
+      'gnus-score-find-hierarchical)
 @end example
 
 @item gnus-score-expiry-days
@@ -15670,7 +15778,7 @@ the match, we get the score added if the article has less than 4 lines.
 (It's easy to get confused and think it's the other way around.  But
 it's not.  I think.)
 
-When matching on @code{Lines}, be careful because some backends (like
+When matching on @code{Lines}, be careful because some back ends (like
 @code{nndir}) do not generate @code{Lines} header, so every article ends
 up being marked as having 0 lines.  This can lead to strange results if
 you happen to lower score of the articles with few lines.
@@ -15886,7 +15994,7 @@ the @code{gnus-default-adaptive-score-alist} variable.  For instance, it
 might look something like this:
 
 @lisp
-(defvar gnus-default-adaptive-score-alist
+(setq gnus-default-adaptive-score-alist
   '((gnus-unread-mark)
     (gnus-ticked-mark (from 4))
     (gnus-dormant-mark (from 5))
@@ -16049,7 +16157,7 @@ A list.  The elements in this list can be:
 @enumerate
 @item
 @code{(@var{regexp} @var{file-name})}.  If the @var{regexp} matches the
-group name, the @var{file-name} will will be used as the home score file.
+group name, the @var{file-name} will be used as the home score file.
 
 @item
 A function.  If the function returns non-nil, the result will be used as
@@ -16141,7 +16249,11 @@ your own article.
 
 @vindex message-sent-hook
 These two functions are both primarily meant to be used in hooks like
-@code{message-sent-hook}.
+@code{message-sent-hook}, like this:
+@lisp
+(add-hook 'message-sent-hook 'gnus-score-followup-thread)
+@end lisp
+
 
 If you look closely at your own @code{Message-ID}, you'll notice that
 the first two or three characters are always the same.  Here's two of
@@ -16158,7 +16270,7 @@ myself:
 
 @lisp
 ("references"
- ("<x6[0-9a-z]+\\.fsf\\(_-_\\)?@@.*eyesore.no>"
+ ("<x6[0-9a-z]+\\.fsf\\(_-_\\)?@@.*eyesore\\.no>"
   1000 nil r))
 @end lisp
 
@@ -16185,7 +16297,9 @@ the @code{Xref} header.
 If you want to lower the score of articles that have been crossposted to
 more than, say, 3 groups:
 @lisp
-("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r))
+("xref" 
+  ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+"
+   -1000 nil r))
 @end lisp
 
 @item Matching on the body
@@ -16251,9 +16365,10 @@ All you have to do to use other people's score files is to set the
 or each score file directory.  Gnus will decide by itself what score
 files are applicable to which group.
 
-Say you want to use the score file
+To use the score file
 @file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
-all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
+all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory,
+say this:
 
 @lisp
 (setq gnus-global-score-files
@@ -16262,6 +16377,7 @@ all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
 @end lisp
 
 @findex gnus-score-search-global-directories
+@noindent
 Simple, eh?  Directory names must end with a @samp{/}.  These
 directories are typically scanned only once during each Gnus session.
 If you feel the need to manually re-scan the remote directories, you can
@@ -16344,12 +16460,12 @@ Two summary functions for editing a GNUS kill file:
 @table @kbd
 
 @item M-k
-@kindex M-k (Summary)
+@kindex M-k @r{(Summary)}
 @findex gnus-summary-edit-local-kill
 Edit this group's kill file (@code{gnus-summary-edit-local-kill}).
 
 @item M-K
-@kindex M-K (Summary)
+@kindex M-K @r{(Summary)}
 @findex gnus-summary-edit-global-kill
 Edit the general kill file (@code{gnus-summary-edit-global-kill}).
 @end table
@@ -16359,12 +16475,12 @@ Two group mode functions for editing the kill files:
 @table @kbd
 
 @item M-k
-@kindex M-k (Group)
+@kindex M-k @r{(Group)}
 @findex gnus-group-edit-local-kill
 Edit this group's kill file (@code{gnus-group-edit-local-kill}).
 
 @item M-K
-@kindex M-K (Group)
+@kindex M-K @r{(Group)}
 @findex gnus-group-edit-global-kill
 Edit the general kill file (@code{gnus-group-edit-global-kill}).
 @end table
@@ -16921,7 +17037,7 @@ Many commands do not use the process/prefix convention.  All commands
 that do explicitly say so in this manual.  To apply the process/prefix
 convention to commands that do not use it, you can use the @kbd{M-&}
 command.  For instance, to mark all the articles in the group as
-expirable, you could say `M P b M-& E'.
+expirable, you could say @kbd{M P b M-& E}.
 
 
 @node Interactive
@@ -16973,14 +17089,14 @@ for instance.  But what if you want to save without making a backup
 file, and you want Emacs to flash lights and play a nice tune at the
 same time?  You can't, and you're probably perfectly happy that way.
 
-@kindex M-i (Summary)
+@kindex M-i @r{(Summary)}
 @findex gnus-symbolic-argument
 I'm not, so I've added a second prefix---the @dfn{symbolic prefix}.  The
 prefix key is @kbd{M-i} (@code{gnus-symbolic-argument}), and the next
 character typed in is the value.  You can stack as many @kbd{M-i}
-prefixes as you want.  @kbd{M-i a M-C-u} means ``feed the @kbd{M-C-u}
-command the symbolic prefix @code{a}''.  @kbd{M-i a M-i b M-C-u} means
-``feed the @kbd{M-C-u} command the symbolic prefixes @code{a} and
+prefixes as you want.  @kbd{M-i a C-M-u} means ``feed the @kbd{C-M-u}
+command the symbolic prefix @code{a}''.  @kbd{M-i a M-i b C-M-u} means
+``feed the @kbd{C-M-u} command the symbolic prefixes @code{a} and
 @code{b}''.  You get the drift.
 
 Typing in symbolic prefixes to commands that don't accept them doesn't
@@ -17315,13 +17431,13 @@ To be slightly more formal, here's a definition of what a valid split
 may look like:
 
 @example
-split       = frame | horizontal | vertical | buffer | form
-frame       = "(frame " size *split ")"
-horizontal  = "(horizontal " size *split ")"
-vertical    = "(vertical " size *split ")"
-buffer      = "(" buffer-name " " size *[ "point" ] *[ "frame-focus"] ")"
-size        = number | frame-params
-buffer-name = group | article | summary ...
+split      = frame | horizontal | vertical | buffer | form
+frame      = "(frame " size *split ")"
+horizontal = "(horizontal " size *split ")"
+vertical   = "(vertical " size *split ")"
+buffer     = "(" buf-name " " size *[ "point" ] *[ "frame-focus"] ")"
+size       = number | frame-params
+buf-name   = group | article | summary ...
 @end example
 
 The limitations are that the @code{frame} split can only appear as the
@@ -17417,13 +17533,14 @@ for composing mail and news while leaving the original frame intact.  To
 accomplish that, something like the following can be done:
 
 @lisp
-(message (frame 1.0
-                (if (not (buffer-live-p gnus-summary-buffer))
-                    (car (cdr (assoc 'group gnus-buffer-configuration)))
-                  (car (cdr (assoc 'summary gnus-buffer-configuration))))
-                (vertical ((user-position . t) (top . 1) (left . 1)
-                           (name . "Message"))
-                          (message 1.0 point))))
+(message 
+  (frame 1.0
+         (if (not (buffer-live-p gnus-summary-buffer))
+             (car (cdr (assoc 'group gnus-buffer-configuration)))
+           (car (cdr (assoc 'summary gnus-buffer-configuration))))
+         (vertical ((user-position . t) (top . 1) (left . 1)
+                    (name . "Message"))
+                   (message 1.0 point))))
 @end lisp
 
 @findex gnus-add-configuration
@@ -17674,7 +17791,7 @@ Hook called after creating the score mode menu.
 @cindex mouse
 @cindex click
 
-Those new-fangled @dfn{mouse} contraptions is very popular with the
+Those new-fangled @dfn{mouse} contraptions are very popular with the
 young, hep kids who don't want to learn the proper way to do things
 these days.  Why, I remember way back in the summer of '89, when I was
 using Emacs on a Tops 20 system.  Three hundred users on one single
@@ -17683,7 +17800,7 @@ machine, and every user was running Simula compilers.  Bah!
 Right.
 
 @vindex gnus-carpal
-Well, you can make Gnus display bufferfuls of buttons you can click to
+Well, you can make Gnus display buffers full of buttons you can click to
 do anything by setting @code{gnus-carpal} to @code{t}.  Pretty simple,
 really.  Tell the chiropractor I sent you.
 
@@ -17973,7 +18090,7 @@ never be totally undoable.
 @findex gnus-undo
 The undoability is provided by the @code{gnus-undo-mode} minor mode.  It
 is used if @code{gnus-use-undo} is non-@code{nil}, which is the
-default.  The @kbd{M-C-_} key performs the @code{gnus-undo} command
+default.  The @kbd{C-M-_} key performs the @code{gnus-undo} 
 command, which should feel kinda like the normal Emacs @code{undo}
 command.
 
@@ -18313,7 +18430,7 @@ Whether to move point to first empty line when displaying picons.  This
 has only an effect if `gnus-picons-display-where' has value `article'.
 
 If @code{nil}, display the picons in the @code{From} and
-@code{Newsgroups} lines.  This is the defailt.
+@code{Newsgroups} lines.  This is the default.
 
 @item gnus-picons-clear-cache-on-shutdown
 @vindex gnus-picons-clear-cache-on-shutdown
@@ -18525,7 +18642,7 @@ First, pick one (1) valid mail address that you can be reached at, and
 put it in your @code{From} header of all your news articles.  (I've
 chosen @samp{larsi@@trym.ifi.uio.no}, but for many addresses on the form
 @samp{larsi+usenet@@ifi.uio.no} will be a better choice.  Ask your
-sysadm whether your sendmail installation accepts keywords in the local
+sysadmin whether your sendmail installation accepts keywords in the local
 part of the mail address.)
 
 @lisp
@@ -18572,11 +18689,12 @@ check for legitimate mail, though.  If you feel like being a good net
 citizen, you can even send off complaints to the proper authorities on
 each unsolicited commercial email---at your leisure.
 
-If you are also a lazy net citizen, you will probably prefer complaining
-automatically with the @file{gnus-junk.el} package, available FOR FREE
-at @* @uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html}.
-Since most e-mail spam is sent automatically, this may reconcile the
-cosmic balance somewhat.
+If you are also a lazy net citizen, you will probably prefer
+complaining automatically with the @file{gnus-junk.el} package,
+available as free software at @*
+@uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html}.  Since most
+e-mail spam is sent automatically, this may reconcile the cosmic
+balance somewhat.
 
 This works for me.  It allows people an easy way to contact me (they can
 just press @kbd{r} in the usual way), and I'm not bothered at all with
@@ -18626,16 +18744,16 @@ shut up, but will flash so many messages it will make your head swim.
 @item gnus-verbose-backends
 @vindex gnus-verbose-backends
 This variable works the same way as @code{gnus-verbose}, but it applies
-to the Gnus backends instead of Gnus proper.
+to the Gnus back ends instead of Gnus proper.
 
 @item nnheader-max-head-length
 @vindex nnheader-max-head-length
-When the backends read straight heads of articles, they all try to read
+When the back ends read straight heads of articles, they all try to read
 as little as possible.  This variable (default 4096) specifies
-the absolute max length the backends will try to read before giving up
+the absolute max length the back ends will try to read before giving up
 on finding a separator line between the head and the body.  If this
 variable is @code{nil}, there is no upper read bound.  If it is
-@code{t}, the backends won't try to read the articles piece by piece,
+@code{t}, the back ends won't try to read the articles piece by piece,
 but read the entire articles.  This makes sense with some versions of
 @code{ange-ftp} or @code{efs}.
 
@@ -18686,7 +18804,7 @@ names who could possibly mess up Gnus internally (like allowing
 @samp{:} in a group name, which is normally used to delimit method and
 group).
 
-IMAP users might want to allow @samp{/} in group names though.
+@sc{imap} users might want to allow @samp{/} in group names though.
 
 
 @end table
@@ -18772,7 +18890,6 @@ renamed it back again to ``Gnus''.  But in mixed case.  ``Gnus'' vs.
 * Gnus Development::    How Gnus is developed.
 * Contributors::        Oodles of people.
 * New Features::        Pointers to some of the new stuff in Gnus.
-* Newest Features::     Features so new that they haven't been written yet.
 @end menu
 
 
@@ -18842,8 +18959,8 @@ keep track of millions of people who post?
 Gnus offers no real solutions to these questions, but I would very much
 like to see Gnus being used as a testing ground for new methods of
 reading and fetching news.  Expanding on @sc{Umeda}-san's wise decision
-to separate the newsreader from the backends, Gnus now offers a simple
-interface for anybody who wants to write new backends for fetching mail
+to separate the newsreader from the back ends, Gnus now offers a simple
+interface for anybody who wants to write new back ends for fetching mail
 and news from different sources.  I have added hooks for customizations
 everywhere I could imagine it being useful.  By doing so, I'm inviting
 every one of you to explore and invent.
@@ -19004,7 +19121,7 @@ Emacsen.
 
 Gnus is developed in a two-phased cycle.  The first phase involves much
 discussion on the @samp{ding@@gnus.org} mailing list, where people
-propose changes and new features, post patches and new backends.  This
+propose changes and new features, post patches and new back ends.  This
 phase is called the @dfn{alpha} phase, since the Gnusae released in this
 phase are @dfn{alpha releases}, or (perhaps more commonly in other
 circles) @dfn{snapshots}.  During this phase, Gnus is assumed to be
@@ -19032,7 +19149,7 @@ importantly, talking about new experimental features that have been
 introduced may confuse casual users.  New features are frequently
 introduced, fiddled with, and judged to be found wanting, and then
 either discarded or totally rewritten.  People reading the mailing list
-usually keep up with these rapid changes, whille people on the newsgroup
+usually keep up with these rapid changes, while people on the newsgroup
 can't be assumed to do so.
 
 
@@ -19365,16 +19482,16 @@ actually are people who are using Gnus.  Who'd'a thunk it!
 
 @menu
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
-* September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
+* September Gnus::     The Thing Formally Known As Gnus 5.2/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::       Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus::   Pentad also starts with P, AKA Gnus 5.8/5.9.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
 @emph{most} important new features.  No, really.  There are tons more.
 Yes, we have feeping creaturism in full effect.
 
-
 @node ding Gnus
 @subsubsection (ding) Gnus
 
@@ -19395,7 +19512,7 @@ You can combine groups into virtual groups (@pxref{Virtual Groups}).
 
 @item
 You can read a number of different mail formats (@pxref{Getting Mail}).
-All the mail backends implement a convenient mail expiry scheme
+All the mail back ends implement a convenient mail expiry scheme
 (@pxref{Expiring Mail}).
 
 @item
@@ -19584,7 +19701,7 @@ news batches, ClariNet briefs collections, and just about everything
 else (@pxref{Document Groups}).
 
 @item
-Gnus has a new backend (@code{nnsoup}) to create/read SOUP packets
+Gnus has a new back end (@code{nnsoup}) to create/read SOUP packets
 (@pxref{SOUP}).
 
 @item
@@ -19622,7 +19739,7 @@ All functions for hiding article elements are now toggles.
 Article headers can be buttonized (@pxref{Article Washing}).
 
 @item
-All mail backends support fetching articles by @code{Message-ID}.
+All mail back ends support fetching articles by @code{Message-ID}.
 
 @item
 Duplicate mail can now be treated properly (@pxref{Duplicates}).
@@ -19801,7 +19918,7 @@ There's a way now to specify that ``uninteresting'' fields be suppressed
 when generating lines in buffers (@pxref{Advanced Formatting}).
 
 @item
-Several commands in the group buffer can be undone with @kbd{M-C-_}
+Several commands in the group buffer can be undone with @kbd{C-M-_}
 (@pxref{Undo}).
 
 @item
@@ -19833,7 +19950,7 @@ the native server (@pxref{Changing Servers}).
 
 @item
 A new command for reading collections of documents
-(@code{nndoc} with @code{nnvirtual} on top) has been added---@kbd{M-C-d}
+(@code{nndoc} with @code{nnvirtual} on top) has been added---@kbd{C-M-d}
 (@pxref{Really Various Summary Commands}).
 
 @item
@@ -19841,11 +19958,11 @@ Process mark sets can be pushed and popped (@pxref{Setting Process
 Marks}).
 
 @item
-A new mail-to-news backend makes it possible to post even when the @sc{nntp}
+A new mail-to-news back end makes it possible to post even when the @sc{nntp}
 server doesn't allow posting (@pxref{Mail-To-News Gateways}).
 
 @item
-A new backend for reading searches from Web search engines
+A new back end for reading searches from Web search engines
 (@dfn{DejaNews}, @dfn{Alta Vista}, @dfn{InReference}) has been added
 (@pxref{Web Searches}).
 
@@ -19898,7 +20015,7 @@ added.  A plethora of new commands and modes have been added.  See
 @pxref{Gnus Unplugged} for the full story.
 
 @item
- The @code{nndraft} backend 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.
 
@@ -19947,7 +20064,7 @@ control over simplification.
 limit.
 
 @item
- @kbd{M-RET} is a new Message command for breaking cited text.
+ @kbd{M-@key{RET}} is a new Message command for breaking cited text.
 
 @item
  @samp{\\1}-expressions are now valid in @code{nnmail-split-methods}.
@@ -20007,1320 +20124,67 @@ been added.
 updated by the @code{gnus-start-date-timer} command.
 
 @item
- Web listserv archives can be read with the @code{nnlistserv} backend.
+ Web listserv archives can be read with the @code{nnlistserv} back end.
 
 @item
  Old dejanews archives can now be read by @code{nnweb}.
 
 @end itemize
 
+@node Pterodactyl Gnus
+@subsubsection Pterodactyl Gnus
 
-@node Newest Features
-@subsection Newest Features
-@cindex todo
-
-Also known as the @dfn{todo list}.  Sure to be implemented before the
-next millennium.
-
-Be afraid.  Be very afraid.
-
-(That a feature appears in this list doesn't necessarily mean that I've
-decided to actually implement it.  It just means that I think it sounds
-interesting.)
-
-(Yes, this is the actual, up-to-the-second todo list.)
+New features in Gnus 5.8:
 
 @itemize @bullet
 
-@item
- I would like the zombie-page to contain an URL to the source of the
-latest version of gnus or some explanation on where to find it.
+@item The mail-fetching functions have changed.  See the manual for the
+many details.  In particular, all procmail fetching variables are gone.
 
-@item
- A way to continue editing the latest Message composition.
+If you used procmail like in
 
-@item
-@uref{http://www.sonicnet.com/feature/ari3/}
+@lisp
+(setq nnmail-use-procmail t)
+(setq nnmail-spool-file 'procmail)
+(setq nnmail-procmail-directory "~/mail/incoming/")
+(setq nnmail-procmail-suffix "\\.in")
+@end lisp
 
-@item
- facep is not declared.
+this now has changed to 
 
-@item
- Include a section in the manual on why the number of articles
-isn't the same in the group buffer and on the SPC prompt.
+@lisp
+(setq mail-sources
+      '((directory :path "~/mail/incoming/"
+                  :suffix ".in")))
+@end lisp
 
-@item
- Interacting with rmail fcc isn't easy.
+More information is available in the info doc at Select Methods ->
+Getting Mail -> Mail Sources
 
-@item
-@example
- Hypermail:
-<URL:http://www.falch.no/people/pepper/DSSSL-Lite/archives/>
-<URL:http://www.eit.com/software/hypermail/hypermail.html>
-<URL:http://homer.ncm.com/>
-<URL:http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/HTML_Converters/>
-http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
-<URL:http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html>
-http://www.miranova.com/gnus-list/
+@item Gnus is now a MIME-capable reader.  This affects many parts of
+Gnus, and adds a slew of new commands.  See the manual for details.
 
-@end example
+@item Gnus has also been multilingualized.  This also affects too
+many parts of Gnus to summarize here, and adds many new variables.
 
-@item
-@samp{^-- } is made into - in LaTeX.
+@item @code{gnus-auto-select-first} can now be a function to be
+called to position point.
 
-@item
- gnus-kill is much slower than it was in GNUS 4.1.3.
+@item The user can now decide which extra headers should be included in
+summary buffers and NOV files.
 
-@item
- when expunging articles on low score, the sparse nodes keep hanging on?
-@item
- starting the first time seems to hang Gnus on some systems.  Does
-NEWGROUPS answer too fast?
-@item
- nndir doesn't read gzipped files.
-@item
- FAQ doesn't have an up node?
-@item
- when moving mail from a procmail spool to the crash-box,
-the crash-box is only appropriate to one specific group.
-@item
- `t' `t' makes X-Faces disappear.
-@item
- nnmh-be-safe means that crossposted articles will
-be marked as unread.
-@item
- Orphan score entries don't show on "V t" score trace
-@item
- when clearing out data, the cache data should also be reset.
-@item
- rewrite gnus-summary-limit-children to be non-recursive
-to avoid exceeding lisp nesting on huge groups.
-@item
- expunged articles are counted when computing scores.
-@item
- implement gnus-batch-brew-soup
-@item
- ticked articles aren't easy to read in pick mode -- `n' and
-stuff just skips past them.  Read articles are the same.
-@item
- topics that contain just groups with ticked
-articles aren't displayed.
-@item
- nndoc should always allocate unique Message-IDs.
-@item
- If there are mail groups the first time you use Gnus, Gnus'll
-make the mail groups killed.
-@item
- no "no news is good news" when using topics.
-@item
- when doing crosspost marking, the cache has to be consulted
-and articles have to be removed.
-@item
- nnweb should fetch complete articles when they are split into several
-parts.
-@item
- scoring on head immediate doesn't work.
-@item
- finding short score file names takes forever.
-@item
- canceling articles in foreign groups.
-@item
- nntp-open-rlogin no longer works.
-@item
- C-u C-x C-s (Summary) switches to the group buffer.
-@item
- move nnmail-split-history out to the backends.
-@item
- nnweb doesn't work properly.
-@item
- using a virtual server name as `gnus-select-method' doesn't work?
-@item
- when killing/yanking a group from one topic to another in a slave, the
-master will yank it first to one topic and then add it to another.
-Perhaps.
+@item @code{gnus-article-display-hook} has been removed.  Instead, a number
+of variables starting with @code{gnus-treat-} have been added.
 
-@item
- warn user about `=' redirection of a group in the active file?
-@item
- take over the XEmacs menubar and offer a toggle between the XEmacs
-bar and the Gnus bar.
-@item
-@example
- push active file and NOV file parsing down into C code.
-`(canonize-message-id id)'
-`(mail-parent-message-id references n)'
-`(parse-news-nov-line &optional dependency-hashtb)'
-`(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
-`(parse-news-active-region beg end hashtb)'
+@item The Gnus posting styles have been redone again and now works in a
+subtly different manner.
 
-@end example
+@item New web-based back ends have been added: @code{nnslashdot}, 
+@code{nnwarchive} and @code{nnultimate}.  nnweb has been revamped,
+again, to keep up with ever-changing layouts.
 
-@item
- nnml .overview directory with splits.
-@item
- asynchronous cache
-@item
- postponed commands.
-@item
- the selected article show have its Subject displayed in its summary line.
-@item
- when entering groups, get the real number of unread articles from
-the server?
-@item
- sort after gathering threads -- make false roots have the
-headers of the oldest orphan with a 0 article number?
-@item
- nndoc groups should inherit the score files of their parents?  Also
-inherit copy prompts and save files.
-@item
- command to start up Gnus (if not running) and enter a mail mode buffer.
-@item
- allow editing the group description from the group buffer
-for backends that support that.
-@item
-gnus-hide,show-all-topics
-@item
- groups and sub-topics should be allowed to mingle inside each topic,
-and not just list all subtopics at the end.
-@item
- a command to remove all read articles that are not needed to connect
-threads -- `gnus-summary-limit-to-sparse-unread'?
-@item
- a variable to turn off limiting/cutting of threads in the tree buffer.
-@item
- a variable to limit how many files are uudecoded.
-@item
- add zombie groups to a special "New Groups" topic.
-@item
- server mode command: close/open all connections
-@item
- put a file date in gnus-score-alist and check whether the file
-has been changed before using it.
-@item
- on exit from a digest group, go to the next article in the parent group.
-@item
- hide (sub)threads with low score.
-@item
- when expiring, remove all marks from expired articles.
-@item
- gnus-summary-limit-to-body
-@item
- a regexp alist that says what level groups are to be subscribed
-on.  Eg. -- `(("nnml:" . 1))'.
-@item
- easier interface to nnkiboze to create ephemeral groups that
-contain groups that match a regexp.
-@item
- allow newlines in <URL:> urls, but remove them before using
-the URL.
-@item
- If there is no From line, the mail backends should fudge one from the
-"From " line.
-@item
- fuzzy simplifying should strip all non-alpha-numerical info
-from subject lines.
-@item
- gnus-soup-brew-soup-with-high-scores.
-@item
- nntp-ping-before-connect
-@item
- command to check whether NOV is evil.  "list overview.fmt".
-@item
- when entering a group, Gnus should look through the score
-files very early for `local' atoms and set those local variables.
-@item
- message annotations.
-@item
- topics are always yanked before groups, and that's not good.
-@item
- (set-extent-property extent 'help-echo "String to display in minibuf")
-to display help in the minibuffer on buttons under XEmacs.
-@item
- allow group line format spec to say how many articles there
-are in the cache.
-@item
- AUTHINFO GENERIC
-@item
- `run-with-idle-timer' in gnus-demon.
-@item
- stop using invisible text properties and start using overlays instead
-@item
- C-c C-f C-e to add an Expires header.
-@item
- go from one group to the next; everything is expunged; go to the
-next group instead of going to the group buffer.
-@item
- gnus-renumber-cache -- to renumber the cache using "low" numbers.
-@item
- record topic changes in the dribble buffer.
-@item
- `nnfolder-generate-active-file' should look at the folders it
-finds and generate proper active ranges.
-@item
- nneething-look-in-files-for-article-heads variable to control
-whether nneething should sniff all files in the directories.
-@item
- gnus-fetch-article -- start Gnus, enter group, display article
-@item
- gnus-dont-move-articles-to-same-group variable when respooling.
-@item
- when messages are crossposted between several auto-expirable groups,
-articles aren't properly marked as expirable.
-@item
- nneething should allow deletion/moving.
-@item
- TAB on the last button should go to the first button.
-@item
- if the car of an element in `mail-split-methods' is a function,
-and the function returns non-nil, use that as the name of the group(s) to
-save mail in.
-@item
- command for listing all score files that have been applied.
-@item
- a command in the article buffer to return to `summary' config.
-@item
- `gnus-always-post-using-current-server' -- variable to override
-`C-c C-c' when posting.
-@item
- nnmail-group-spool-alist -- says where each group should use
-as a spool file.
-@item
- when an article is crossposted to an auto-expirable group, the article
-should be marker as expirable.
-@item
- article mode command/menu for "send region as URL to browser".
-@item
- on errors, jump to info nodes that explain the error.  For instance,
-on invalid From headers, or on error messages from the nntp server.
-@item
- when gathering threads, make the article that has no "Re: " the parent.
-Also consult Date headers.
-@item
- a token in splits to call shrink-window-if-larger-than-buffer
-@item
- `1 0 A M' to do matches on the active hashtb.
-@item
- duplicates -- command to remove Gnus-Warning header, use the read
-Message-ID, delete the "original".
-@item
- when replying to several messages at once, put the "other" message-ids
-into a See-Also header.
-@item
- support setext: @url{http://www.bsdi.com/setext/}
-@item
- support ProleText: @url{http://proletext.clari.net/prole/proletext.html}
-@item
- when browsing a foreign server, the groups that are already subscribed
-should be listed as such and not as "K".
-@item
- generate font names dynamically.
-@item
- score file mode auto-alist.
-@item
- allow nndoc to change/add/delete things from documents.  Implement
-methods for each format for adding an article to the document.
-@item
- `gnus-fetch-old-headers' `all' value to incorporate
-absolutely all headers there is.
-@item
- function like `|', but concatenate all marked articles
-and pipe them to the process.
-@item
- cache the list of killed (or active) groups in a separate file.  Update
-the file whenever we read the active file or the list
-of killed groups in the .eld file reaches a certain length.
-@item
- function for starting to edit a file to put into
-the current mail group.
-@item
- score-find-trace should display the total score of the article.
-@item
- "ghettozie" -- score on Xref header and nix it out after using it
-to avoid marking as read in other groups it has been crossposted to.
-@item
- look at procmail splitting.  The backends should create
-the groups automatically if a spool file exists for that group.
-@item
- function for backends to register themselves with Gnus.
-@item
- when replying to several process-marked articles,
-have all the From end up in Cc headers?  Variable to toggle.
-@item
- command to delete a crossposted mail article from all
-groups it has been mailed to.
-@item
- `B c' and `B m' should be crosspost aware.
-@item
- hide-pgp should also hide PGP public key blocks.
-@item
- Command in the group buffer to respool process-marked groups.
-@item
- `gnus-summary-find-matching' should accept
-pseudo-"headers" like "body", "head" and "all"
-@item
- When buttifying <URL: > things, all white space (including
-newlines) should be ignored.
-@item
- Process-marking all groups in a topic should process-mark
-groups in subtopics as well.
-@item
- Add non-native groups to the list of killed groups when killing them.
-@item
- nntp-suggest-kewl-config to probe the nntp server and suggest
-variable settings.
-@item
- add edit and forward secondary marks.
-@item
- nnml shouldn't visit its .overview files.
-@item
- allow customizing sorting within gathered threads.
-@item
- `B q' shouldn't select the current article.
-@item
- nnmbox should support a newsgroups file for descriptions.
-@item
- allow fetching mail from several pop servers.
-@item
- Be able to specify whether the saving commands save the original
-or the formatted article.
-@item
- a command to reparent with the child process-marked (cf. `T ^'.).
-@item
- I think the possibility to send a password with nntp-open-rlogin
-should be a feature in Red Gnus.
-@item
- The `Z n' command should be possible to execute from a mouse click.
-@item
- more limiting functions -- date, etc.
-@item
- be able to limit on a random header; on body; using reverse matches.
-@item
- a group parameter (`absofucking-total-expiry') that will make Gnus expire
-even unread articles.
-@item
- a command to print the article buffer as postscript.
-@item
- variable to disable password fetching when opening by nntp-open-telnet.
-@item
- manual: more example servers -- nntp with rlogin, telnet
-@item
- checking for bogus groups should clean topic alists as well.
-@item
- canceling articles in foreign groups.
-@item
- article number in folded topics isn't properly updated by
-Xref handling.
-@item
- Movement in the group buffer to the next unread group should go to the
-next closed topic with unread messages if no group can be found.
-@item
- Extensive info pages generated on the fly with help everywhere --
-in the "*Gnus edit*" buffers, for instance.
-@item
- Topic movement commands -- like thread movement.  Up, down, forward, next.
-@item
- a way to tick/mark as read Gcc'd articles.
-@item
- a way to say that all groups within a specific topic comes
-from a particular server?  Hm.
-@item
- `gnus-article-fill-if-long-lines' -- a function to fill
-the article buffer if there are any looong lines there.
-@item
- `T h' should jump to the parent topic and fold it.
-@item
- a command to create an ephemeral nndoc group out of a file,
-and then splitting it/moving it to some other group/backend.
-@item
- a group parameter for nnkiboze groups that says that
-all kibozed articles should be entered into the cache.
-@item
- It should also probably be possible to delimit what
-`gnus-jog-cache' does -- for instance, work on just some groups, or on
-some levels, and entering just articles that have a score higher than
-a certain number.
-@item
- nnfolder should append to the folder instead of re-writing
-the entire folder to disk when accepting new messages.
-@item
- allow all backends to do the proper thing with .gz files.
-@item
- a backend for reading collections of babyl files nnbabylfolder?
-@item
- a command for making the native groups into foreign groups.
-@item
- server mode command for clearing read marks from all groups
-from a server.
-@item
- when following up multiple articles, include all To, Cc, etc headers
-from all articles.
-@item
- a command for deciding what the total score of the current
-thread is.  Also a way to highlight based on this.
-@item
- command to show and edit group scores
-@item
- a gnus-tree-minimize-horizontal to minimize tree buffers
-horizontally.
-@item
- command to generate nnml overview file for one group.
-@item
- `C-u C-u a' -- prompt for many crossposted groups.
-@item
- keep track of which mail groups have received new articles (in this session).
-Be able to generate a report and perhaps do some marking in the group
-buffer.
-@item
- gnus-build-sparse-threads to a number -- build only sparse threads
-that are of that length.
-@item
- have nnmh respect mh's unseen sequence in .mh_profile.
-@item
- cache the newsgroups descriptions locally.
-@item
- asynchronous posting under nntp.
-@item
- be able to control word adaptive scoring from the score files.
-@item
- a variable to make `C-c C-c' post using the "current" select method.
-@item
- `limit-exclude-low-scored-articles'.
-@item
- if `gnus-summary-show-thread' is a number, hide threads that have
-a score lower than this number.
-@item
- split newsgroup subscription variable up into "order" and "method".
-@item
- buttonize ange-ftp file names.
-@item
- a command to make a duplicate copy of the current article
-so that each copy can be edited separately.
-@item
- nnweb should allow fetching from the local nntp server.
-@item
- record the sorting done in the summary buffer so that
-it can be repeated when limiting/regenerating the buffer.
-@item
- nnml-generate-nov-databses should generate for
-all nnml servers.
-@item
- when the user does commands in the group buffer, check
-the modification time of the .newsrc.eld file and use
-ask-user-about-supersession-threat.  Also warn when trying
-to save .newsrc.eld and it has changed.
-@item
- M-g on a topic will display all groups with 0 articles in
-the topic.
-@item
- command to remove all topic stuff.
-@item
- allow exploding incoming digests when reading incoming mail
-and splitting the resulting digests.
-@item
- nnsoup shouldn't set the `message-' variables.
-@item
- command to nix out all nnoo state information.
-@item
- nnmail-process-alist that calls functions if group names
-matches an alist -- before saving.
-@item
- use buffer-invisibility-spec everywhere for hiding text.
-@item
- variable to activate each group before entering them
-to get the (new) number of articles.  `gnus-activate-before-entering'.
-@item
- command to fetch a Message-ID from any buffer, even
-starting Gnus first if necessary.
-@item
- when posting and checking whether a group exists or not, just
-ask the nntp server instead of relying on the active hashtb.
-@item
- buttonize the output of `C-c C-a' in an apropos-like way.
-@item
- `G p' should understand process/prefix, and allow editing
-of several groups at once.
-@item
- command to create an ephemeral nnvirtual group that
-matches some regexp(s).
-@item
- nndoc should understand "Content-Type: message/rfc822" forwarded messages.
-@item
- it should be possible to score "thread" on the From header.
-@item
- hitting RET on a "gnus-uu-archive" pseudo article should unpack it.
-@item
- `B i' should display the article at once in the summary buffer.
-@item
- remove the "*" mark at once when unticking an article.
-@item
- `M-s' should highlight the matching text.
-@item
- when checking for duplicated mails, use Resent-Message-ID if present.
-@item
- killing and yanking groups in topics should be better.  If killing one copy
-of a group that exists in multiple topics, only that copy should
-be removed.  Yanking should insert the copy, and yanking topics
-should be possible to be interspersed with the other yankings.
-@item
- command for enter a group just to read the cached articles.  A way to say
-"ignore the nntp connection; just read from the cache."
-@item
- `X u' should decode base64 articles.
-@item
- a way to hide all "inner" cited text, leaving just the most
-recently cited text.
-@item
- nnvirtual should be asynchronous.
-@item
- after editing an article, gnus-original-article-buffer should
-be invalidated.
-@item
- there should probably be a way to make Gnus not connect to the
-server and just read the articles in the server
-@item
- allow a `set-default' (or something) to change the default
-value of nnoo variables.
-@item
- a command to import group infos from a .newsrc.eld file.
-@item
- groups from secondary servers have the entire select method
-listed in each group info.
-@item
- a command for just switching from the summary buffer to the group
-buffer.
-@item
- a way to specify that some incoming mail washing functions
-should only be applied to some groups.
-@item
- Message `C-f C-t' should ask the user whether to heed
-mail-copies-to: never.
-@item
- new group parameter -- `post-to-server' that says to post
-using the current server.  Also a variable to do the same.
-@item
- the slave dribble files should auto-save to the slave file names.
-@item
- a group parameter that says what articles to display on group entry, based
-on article marks.
-@item
- a way to visually distinguish slave Gnusae from masters.  (Whip instead
-of normal logo?)
-@item
- Use DJ Bernstein "From " quoting/dequoting, where applicable.
-@item
- Why is hide-citation-maybe and hide-citation different?  Also
-clear up info.
-@item
- group user-defined meta-parameters.
-
-
-
-From: John Griffith <griffith@@sfs.nphil.uni-tuebingen.de>
-@item
- I like the option for trying to retrieve the FAQ for a group and I was
-thinking it would be great if for those newsgroups that had archives
-you could also try to read the archive for that group.  Part of the
-problem is that archives are spread all over the net, unlike FAQs.
-What would be best I suppose is to find the one closest to your site.
-
-In any case, there is a list of general news group archives at @*
-@uref{ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html}
-
-
-
-
-@item
-@example
-From: Jason L Tibbitts III <tibbs@@hpc.uh.edu>
-(add-hook 'gnus-select-group-hook
-  (lambda ()
-    (gnus-group-add-parameter group
-       (cons 'gnus-group-date-last-entered (list (current-time-string))))))
-
-(defun gnus-user-format-function-d (headers)
-  "Return the date the group was last read."
-  (cond ((car (gnus-group-get-parameter gnus-tmp-group 'gnus-group-date-last-entered)))
-      (t "")))
-@end example
-
-@item
- tanken var at nÃ¥r du bruker `gnus-startup-file' som prefix (FOO) til Ã¥ lete
-opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den være en
-liste hvor du bruker hvert element i listen som FOO, istedet.  da kunne man
-hatt forskjellige serveres startup-filer forskjellige steder.
-
-
-@item
-LMI> Well, nnbabyl could alter the group info to heed labels like
-LMI> answered and read, I guess.
-
-It could also keep them updated (the same for the Status: header of
-unix mbox files).
-
-They could be used like this:
-
-
-@example
-`M l <name> RET' add label <name> to current message.
-`M u <name> RET' remove label <name> from current message.
-`/ l <expr> RET' limit summary buffer according to <expr>.
-
-<expr> would be a boolean expression on the labels, e.g.
-
-`/ l bug & !fixed RET'
-@end example
-
-would show all the messages which are labeled `bug' but not labeled
-`fixed'.
-
-One could also imagine the labels being used for highlighting, or
-affect the summary line format.
-
-
-@item
-Sender: abraham@@dina.kvl.dk
-
-I'd like a gnus-find-file which work like find file, except that it
-would recognize things that looks like messages or folders:
-
-- If it is a directory containing numbered files, create an nndir
-summary buffer.
-
-- For other directories, create a nneething summary buffer.
-
-- For files matching "\\`From ", create a nndoc/mbox summary.
-
-- For files matching "\\`BABYL OPTIONS:", create a nndoc/baby summary.
-
-- For files matching "\\`[^ \t\n]+:", create an *Article* buffer.
-
-- For other files, just find them normally.
-
-I'd like `nneething' to use this function, so it would work on a
-directory potentially containing mboxes or babyl files.
-
-@item
-Please send a mail to bwarsaw@@cnri.reston.va.us (Barry A. Warsaw) and
-tell him what you are doing.
-
-@item
-Currently, I get prompted:
-
-decend into sci?
-- type y
-decend into sci.something ?
-- type n
-decend into ucd?
-
-The problem above is that since there is really only one subsection of
-science, shouldn't it prompt you for only descending sci.something?  If
-there was a sci.somethingelse group or section, then it should prompt
-for sci? first the sci.something? then sci.somethingelse?...
-
-@item
-Ja, det burde være en mÃ¥te Ã¥ si slikt.  Kanskje en ny variabel?
-`gnus-use-few-score-files'?  SÃ¥ kunne score-regler legges til den
-"mest" lokale score-fila.  F. eks. ville no-gruppene betjenes av
-"no.all.SCORE", osv.
-
-@item
-What i want is for Gnus to treat any sequence or combination of the following
-as a single spoiler warning and hide it all, replacing it with a "Next Page"
-button:
-
-
-^L's
-
-more than n blank lines
-
-more than m identical lines
-(which should be replaced with button to show them)
-
-any whitespace surrounding any of the above
-
-
-@item
-Well, we could allow a new value to `gnus-thread-ignore-subject' --
-`spaces', or something.  (We could even default to that.)  And then
-subjects that differ in white space only could be considered the
-"same" subject for threading purposes.
-
-@item
-Modes to preprocess the contents (e.g. jka-compr) use the second form
-"(REGEXP FUNCTION NON-NIL)" while ordinary modes (e.g. tex) use the first
-form "(REGEXP . FUNCTION)", so you could use it to distinguish between
-those two types of modes. (auto-modes-alist, insert-file-contents-literally.)
-
-@item
- Under XEmacs -- do funny article marks:
-tick - thumb tack
-killed - skull
-soup - bowl of soup
-score below - dim light bulb
-score over - bright light bulb
-
-@item
-Yes. I think the algorithm is as follows:
-
-@example
-Group-mode
-
-   show-list-of-articles-in-group
-        if (key-pressed == SPACE)
-                if (no-more-articles-in-group-to-select)
-                        if (articles-selected)
-                                start-reading-selected-articles;
-                        junk-unread-articles;
-                        next-group;
-                 else
-                        show-next-page;
-
-         else if (key-pressed = '.')
-                if (consolidated-menus)         # same as hide-thread in Gnus
-                        select-thread-under-cursor;
-                else
-                        select-article-under-cursor;
-
-
-Article-mode
-        if (key-pressed == SPACE)
-                if (more-pages-in-article)
-                        next-page;
-                else if (more-selected-articles-to-read)
-                        next-article;
-                else
-                        next-group;
-@end example
-
-@item
-My precise need here would have been to limit files to Incoming*.
-One could think of some `nneething-only-files' variable, but I guess
-it would have been unacceptable if one was using many unrelated such
-nneething groups.
-
-A more useful approach would be to, in response to the `G D' prompt, be
-allowed to say something like: `~/.mail/Incoming*', somewhat limiting
-the top-level directory only (in case directories would be matched by
-the wildcard expression).
-
-@item
-It would be nice if it also handled
-
-        <URL:news://sunsite.auc.dk/>
-
-which should correspond to `B nntp RET sunsite.auc.dk' in *Group*.
-
-
-@item
-
-  Take a look at w3-menu.el in the Emacs-W3 distribution - this works out
-really well.  Each menu is 'named' by a symbol that would be on a
-gnus-*-menus (where * would be whatever, but at least group, summary, and
-article versions) variable.
-
-  So for gnus-summary-menus, I would set to '(sort mark dispose ...)
-
-  A value of '1' would just put _all_ the menus in a single 'GNUS' menu in
-the main menubar.  This approach works really well for Emacs-W3 and VM.
-
-
-@item
- nndoc should take care to create unique Message-IDs for all its
-articles.
-@item
- gnus-score-followup-article only works when you have a summary buffer
-active.  Make it work when posting from the group buffer as well.
-(message-sent-hook).
-@item
- rewrite gnus-demon to use run-with-idle-timers.
-
-@item
- * Enhancements to Gnus:
-
-  Add two commands:
-
-  * gnus-servers (gnus-start-server-buffer?)--enters Gnus and goes
-    straight to the server buffer, without opening any connections to
-    servers first.
-
-  * gnus-server-read-server-newsrc--produces a buffer very similar to
-    the group buffer, but with only groups from that server listed;
-    quitting this buffer returns to the server buffer.
-
-@item
- add a command to check the integrity of an nnfolder folder --
-go through the article numbers and see that there are no duplicates,
-and stuff.
-
-@item
- `unsmileyfy-buffer' to undo smileification.
-
-@item
- a command to give all relevant info on an article, including all
-secondary marks.
-
-@item
- when doing `-request-accept-article', the backends should do
-the nnmail duplicate checking.
-
-@item
- allow `message-signature-file' to be a function to return the
-value of the signature file.
-
-@item
- In addition, I would love it if I could configure message-tab so that it
-could call `bbdb-complete-name' in other headers.  So, some sort of
-interface like
-
-(setq message-tab-alist
-      '((message-header-regexp message-expand-group)
-        ("^\\(To\\|[cC]c\\|[bB]cc\\)"  bbdb-complete-name)))
-
-then you could run the relevant function to complete the information in
-the header
-
-@item
- cache the newsgroups file locally to avoid reloading it all the time.
-
-@item
- a command to import a buffer into a group.
-
-@item
- nnweb should allow fetching by Message-ID from servers.
-
-@item
- point in the article buffer doesn't always go to the
-beginning of the buffer when selecting new articles.
-
-@item
- a command to process mark all unread articles.
-
-@item
- `gnus-gather-threads-by-references-and-subject' -- first
-do gathering by references, and then go through the dummy roots and
-do more gathering by subject.
-
-@item
- gnus-uu-mark-in-numerical-order -- process mark articles in
-article numerical order.
-
-@item
- (gnus-thread-total-score
- (gnus-id-to-thread (mail-header-id (gnus-summary-article-header))))
-bind to a key.
-
-@item
- sorting by score is wrong when using sparse threads.
-
-@item
- a command to fetch an arbitrary article -- without having to be
-in the summary buffer.
-
-@item
- a new nncvs backend.  Each group would show an article, using
-version branches as threading, checkin date as the date, etc.
-
-@item
-@url{http://www.dejanews.com/forms/dnsetfilter_exp.html}?
-This filter allows one to construct advance queries on the Dejanews
-database such as specifying start and end dates, subject, author,
-and/or newsgroup name.
-
-@item
- new Date header scoring type -- older, newer
-
-@item
- use the summary toolbar in the article buffer.
-
-@item
- a command to fetch all articles that are less than X days old.
-
-@item
- in pick mode, `q' should save the list of selected articles in the
-group info.  The next time the group is selected, these articles
-will automatically get the process mark.
-
-@item
- Isn't it possible to (also?) allow M-^ to automatically try the
-default server if it fails on the current server?  (controlled by a
-user variable, (nil, t, 'ask)).
-
-@item
- make it possible to cancel articles using the select method for the
-current group.
-
-@item
- `gnus-summary-select-article-on-entry' or something.  It'll default
-to t and will select whatever article decided by `gnus-auto-select-first'.
-
-@item
- a new variable to control which selection commands should be unselecting.
-`first', `best', `next', `prev', `next-unread', `prev-unread' are
-candidates.
-
-@item
- be able to select groups that have no articles in them
-to be able to post in them (using the current select method).
-
-@item
- be able to post via DejaNews.
-
-@item
- `x' should retain any sortings that have been performed.
-
-@item
- allow the user to specify the precedence of the secondary marks.  Also
-allow them to be displayed separately.
-
-@item
- gnus-summary-save-in-pipe should concatenate the results from
-the processes when doing a process marked pipe.
-
-@item
- a new match type, like Followup, but which adds Thread matches on all
-articles that match a certain From header.
-
-@item
- a function that can be read from kill-emacs-query-functions to offer
-saving living summary buffers.
-
-@item
- a function for selecting a particular group which will contain
-the articles listed in a list of article numbers/id's.
-
-@item
- a battery of character translation functions to translate common
-Mac, MS (etc) characters into ISO 8859-1.
-
-@example
-(defun article-fix-m$word ()
-  "Fix M$Word smartquotes in an article."
-  (interactive)
-  (save-excursion
-    (let ((buffer-read-only nil))
-      (goto-char (point-min))
-      (while (search-forward "\221" nil t)
-        (replace-match "`" t t))
-      (goto-char (point-min))
-      (while (search-forward "\222" nil t)
-        (replace-match "'" t t))
-      (goto-char (point-min))
-      (while (search-forward "\223" nil t)
-        (replace-match "\"" t t))
-      (goto-char (point-min))
-      (while (search-forward "\224" nil t)
-        (replace-match "\"" t t)))))
-@end example
-
-@item
-@example
- (add-hook 'gnus-exit-query-functions
- (lambda ()
-   (if (and (file-exists-p nnmail-spool-file)
-            (> (nnheader-file-size nnmail-spool-file) 0))
-       (yes-or-no-p "New mail has arrived.  Quit Gnus anyways? ")
-       (y-or-n-p "Are you sure you want to quit Gnus? "))))
-@end example
-
-@item
- allow message-default-headers to be a function.
-
-@item
- new Date score match types -- < > = (etc) that take floating point
-numbers and match on the age of the article.
-
-@item
-@example
->  > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
->  > > under xemacs-19.14, it's creating a new frame, but is erasing the
->  > > buffer in the frame that it was called from =:-O
->
->  > Hm.  How do you start up Gnus?  From the toolbar or with
->  > `M-x gnus-other-frame'?
->
->    I normally start it up from the toolbar; at
-> least that's the way I've caught it doing the
-> deed before.
-@end example
-
-@item
- all commands that react to the process mark should push
-the current process mark set onto the stack.
-
-@item
- gnus-article-hide-pgp
-Selv ville jeg nok ha valgt Ã¥ slette den dersom teksten matcher
-@example
-"\\(This\s+\\)?[^ ]+ has been automatically signed by"
-@end example
-og det er maks hundre tegn mellom match-end og ----linja.  Men -det-
-er min type heuristikk og langt fra alles.
-
-@item
- `gnus-subscribe-sorted' -- insert new groups where they would have been
-sorted to if `gnus-group-sort-function' were run.
-
-@item
- gnus-(group,summary)-highlight should respect any `face' text props set
-on the lines.
-
-@item
- use run-with-idle-timer for gnus-demon instead of the
-home-brewed stuff for better reliability.
-
-@item
- add a way to select which NoCeM type to apply -- spam, troll, etc.
-
-@item
- nndraft-request-group should tally auto-save files.
-
-@item
- implement nntp-retry-on-break and nntp-command-timeout.
-
-@item
- gnus-article-highlight-limit that says when not to highlight (long)
-articles.
-
-@item
- (nnoo-set SERVER VARIABLE VALUE)
-
-@item
- nn*-spool-methods
-
-@item
- interrupitng agent fetching of articles should save articles.
-
-@item
- command to open a digest group, and copy all the articles there to the
-current group.
-
-@item
- a variable to disable article body highlights if there's more than
-X characters in the body.
-
-@item
- handle 480/381 authinfo requests separately.
-
-@item
- include the texi/dir file in the distribution.
-
-@item
- format spec to "tab" to a position.
-
-@item
- Move all prompting to the new `M-n' default style.
-
-@item
- command to display all dormant articles.
-
-@item
- gnus-auto-select-next makeover -- list of things it should do.
-
-@item
- a score match type that adds scores matching on From if From has replied
-to something someone else has said.
-
-@item
- Read Netscape discussion groups:
-snews://secnews.netscape.com/netscape.communicator.unix
-
-@item
-One command to edit the original version if an article, and one to edit
-the displayed version.
-
-@item
-@kbd{T v} -- make all process-marked articles the children of the
-current article.
-
-@item
-Switch from initial text to the new default text mechanism.
-
-@item
-How about making it possible to expire local articles?  Will it be
-possible to make various constraints on when an article can be
-expired, e.g. (read), (age > 14 days), or the more interesting (read
-& age > 14 days)?
-
-@item
-New limit command---limit to articles that have a certain string
-in the head or body.
-
-@item
-Allow breaking lengthy @sc{nntp} commands.
-
-@item
-gnus-article-highlight-limit, to disable highlighting in big articles.
-
-@item
-Editing an article should put the article to be edited
-in a special, unique buffer.
-
-@item
-A command to send a mail to the admin-address group param.
-
-@item
-A Date scoring type that will match if the article
-is less than a certain number of days old.
-
-@item
-New spec: %~(tab 56) to put point on column 56
-
-@item
-Allow Gnus Agent scoring to use normal score files.
-
-@item
-Rething the Agent active file thing.  `M-g' doesn't update the active
-file, for instance.
-
-@item
-With dummy roots, `^' and then selecing the first article
-in any other dummy thread will make Gnus highlight the
-dummy root instead of the first article.
-
-@item
-Propagate all group properties (marks, article numbers, etc) up to the
-topics for displaying.
-
-@item
-`n' in the group buffer with topics should go to the next group
-with unread articles, even if that group is hidden in a topic.
-
-@item
-gnus-posting-styles doesn't work in drafts.
-
-@item
-gnus-summary-limit-include-cached is slow when there are
-many articles in the cache, since it regenerates big parts of the
-summary buffer for each article.
-
-@item
-Implement gnus-batch-brew-soup.
-
-@item
-Group parameters and summary commands for un/subscribing to mailing
-lists.
-
-@item
-Introduce nnmail-home-directory.
-
-@item
-gnus-fetch-group and friends should exit Gnus when the user
-exits the group.
-
-@item
-The jingle is only played on the second invocation of Gnus.
-
-@item
-Bouncing articles should do MIME.
-
-@item
-Crossposted articles should "inherit" the % or @ mark from the other
-groups it has been crossposted to, or something.  (Agent.)
-
-@item
-If point is on a group that appears multiple times in topics, and
-you press `l', point will move to the first instance of the group.
-
-@item
-A spec for the group line format to display the number of
-agent-downloaded articles in the group.
-
-@item
-Some nntp servers never respond when posting, so there should be a
-timeout for all commands.
-
-@item
-When stading on a topic line and `t'-ing, point goes to the last line.
-It should go somewhere else.
-
-@item
-I'm having trouble accessing a newsgroup with a "+" in its name with
-Gnus.  There is a new newsgroup on msnews.microsoft.com named
-"microsoft.public.multimedia.directx.html+time" that I'm trying to
-access as
-"nntp+msnews.microsoft.com:microsoft.public.multimedia.directx.html+time"
-but it gives an error that it cant access the group.
-
-Is the "+" character illegal in newsgroup names?  Is there any way in
-Gnus to work around this?  (gnus 5.6.45 - XEmacs 20.4)
-
-@item
-
-When `#F', do:
-
-@example
-Subject: Answer to your mails 01.01.1999-01.05.1999
- --text follows this line--
-Sorry I killfiled you...
-
-Under the subject "foo", you wrote on 01.01.1999:
-> bar
-Under the subject "foo1", you wrote on 01.01.1999:
-> bar 1
-@end example
-
-@item
-Allow "orphan" scores in the Agent scoring.
-
-@item
-@example
-    - Edit article's summary line. 
-    - End edit
-    - Sort lines in buffer by subject
-
-    --> the old subject line appears in Summary buffer, not the one that was
-    just changed to.
-@end example
-
-
-@item
-Remove list identifiers from the subject in the summary when doing `^'
-and the like.
-
-@item
-Have the Agent write out articles, one by one, as it retrieves them,
-to avoid having to re-fetch them all if Emacs should crash while
-fetching. 
-
-@item
-Be able to forward groups of messages as MIME digests.
-
-@item
-nnweb should include the "get whole article" article when getting articles. 
-
-@item
-When I type W W c (gnus-article-hide-citation) in the summary
-buffer, the citations are revealed, but the [+] buttons don't turn
-into [-] buttons.  (If I click on one of the [+] buttons, it does
-turn into a [-] button.)
-
-@item
-Perhaps there should be a command to "attach" a buffer of comments to
-a message?  That is, `B WHATEVER', you're popped into a buffer, write
-something, end with `C-c C-c', and then the thing you've written gets
-to be the child of the message you're commenting.
-
-@item
-Handle external-body parts.
-
-@item
-When renaming a group name, nnmail-split-history does not get the group
-name renamed.
-
-@item
-Allow mail splitting on bodies when using advanced mail splitting.
-
-@lisp
-  (body "whatever.text")
-@end lisp
-
-@item
-Be able to run `J u' from summary buffers.
-
-@item
-Solve the halting problem.
+@item Gnus can now read IMAP mail via @code{nnimap}.
 
-@c TODO
 @end itemize
 
 @iftex
@@ -21438,26 +20302,26 @@ Send a mail to the person who has written what you are reading.
 Post an article to the current newsgroup responding to the article you
 are reading.
 
-@item backend
-@cindex backend
-Gnus gets fed articles from a number of backends, both news and mail
-backends.  Gnus does not handle the underlying media, so to speak---this
-is all done by the backends.
+@item back end
+@cindex back end
+Gnus gets fed articles from a number of back ends, both news and mail
+back ends.  Gnus does not handle the underlying media, so to speak---this
+is all done by the back ends.
 
 @item native
 @cindex native
-Gnus will always use one method (and backend) as the @dfn{native}, or
+Gnus will always use one method (and back end) as the @dfn{native}, or
 default, way of getting news.
 
 @item foreign
 @cindex foreign
 You can also have any number of foreign groups active at the same time.
-These are groups that use non-native non-secondary backends for getting
+These are groups that use non-native non-secondary back ends for getting
 news.
 
 @item secondary
 @cindex secondary
-Secondary backends are somewhere half-way between being native and being
+Secondary back ends are somewhere half-way between being native and being
 foreign, but they mostly act like they are native.
 
 @item article
@@ -21493,7 +20357,7 @@ collection of @sc{nov} lines.
 
 @item @sc{nov}
 @cindex nov
-When Gnus enters a group, it asks the backend for the headers of all
+When Gnus enters a group, it asks the back end for the headers of all
 unread articles in the group.  Most servers support the News OverView
 format, which is more compact and much faster to read and parse than the
 normal @sc{head} format.
@@ -21540,7 +20404,7 @@ A machine one can connect to and get news (or mail) from.
 
 @item select method
 @cindex select method
-A structure that specifies the backend, the server and the virtual
+A structure that specifies the back end, the server and the virtual
 server settings.
 
 @item virtual server
@@ -21626,7 +20490,7 @@ Gnus has to get from the @sc{nntp} server.
 
 @item gnus-read-active-file
 Set this to @code{nil}, which will inhibit Gnus from requesting the
-entire active file from the server.  This file is often v large.  You
+entire active file from the server.  This file is often very large.  You
 also have to set @code{gnus-check-new-newsgroups} and
 @code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
 doesn't suddenly decide to fetch the active file anyway.
@@ -21773,7 +20637,7 @@ If all else fails, report the problem as a bug.
 @kindex M-x gnus-bug
 @findex gnus-bug
 If you find a bug in Gnus, you can report it with the @kbd{M-x gnus-bug}
-command.  @kbd{M-x set-variable RET debug-on-error RET t RET}, and send
+command.  @kbd{M-x set-variable @key{RET} debug-on-error @key{RET} t @key{RET}}, and send
 me the backtrace.  I will fix bugs, but I can only fix them if you send
 me a precise description as to how to reproduce the bug.
 
@@ -21816,13 +20680,13 @@ it.
 
 You can never expect the internals of a program not to change, but I
 will be defining (in some details) the interface between Gnus and its
-backends (this is written in stone), the format of the score files
+back ends (this is written in stone), the format of the score files
 (ditto), data structures (some are less likely to change than others)
 and general methods of operation.
 
 @menu
 * Gnus Utility Functions::   Common functions and variable to use.
-* Backend Interface::        How Gnus communicates with the servers.
+* Back End Interface::       How Gnus communicates with the servers.
 * Score File Syntax::        A BNF definition of the score file standard.
 * Headers::                  How Gnus stores headers internally.
 * Ranges::                   A handy format for storing mucho numbers.
@@ -21898,7 +20762,7 @@ Says whether @var{group} is read-only or not.
 
 @item gnus-news-group-p
 @findex gnus-news-group-p
-Says whether @var{group} came from a news backend.
+Says whether @var{group} came from a news back end.
 
 @item gnus-ephemeral-group-p
 @findex gnus-ephemeral-group-p
@@ -21939,7 +20803,7 @@ Narrows the current buffer to the body of the article.
 
 @item gnus-check-backend-function
 @findex gnus-check-backend-function
-Takes two parameters, @var{function} and @var{group}.  If the backend
+Takes two parameters, @var{function} and @var{group}.  If the back end
 @var{group} comes from supports @var{function}, return non-@code{nil}.
 
 @lisp
@@ -21954,19 +20818,19 @@ Prompts the user for a select method.
 @end table
 
 
-@node Backend Interface
-@subsection Backend Interface
+@node Back End Interface
+@subsection Back End Interface
 
 Gnus doesn't know anything about @sc{nntp}, spools, mail or virtual
 groups.  It only knows how to talk to @dfn{virtual servers}.  A virtual
-server is a @dfn{backend} and some @dfn{backend variables}.  As examples
+server is a @dfn{back end} and some @dfn{back end variables}.  As examples
 of the first, we have @code{nntp}, @code{nnspool} and @code{nnmbox}.  As
 examples of the latter we have @code{nntp-port-number} and
 @code{nnmbox-directory}.
 
-When Gnus asks for information from a backend---say @code{nntp}---on
+When Gnus asks for information from a back end---say @code{nntp}---on
 something, it will normally include a virtual server name in the
-function parameters.  (If not, the backend should use the ``current''
+function parameters.  (If not, the back end should use the ``current''
 virtual server.)  For instance, @code{nntp-request-list} takes a virtual
 server as its only (optional) parameter.  If this virtual server hasn't
 been opened, the function should fail.
@@ -21983,8 +20847,8 @@ name.  Take this example:
 Here the virtual server name is @samp{odd-one} while the name of
 the physical server is @samp{ifi.uio.no}.
 
-The backends should be able to switch between several virtual servers.
-The standard backends implement this by keeping an alist of virtual
+The back ends should be able to switch between several virtual servers.
+The standard back ends implement this by keeping an alist of virtual
 server environments that they pull down/push up when needed.
 
 There are two groups of interface functions: @dfn{required functions},
@@ -21999,37 +20863,37 @@ talk about @dfn{return value}, I talk about the function value returned by
 the function call.  Functions that fail should return @code{nil} as the
 return value.
 
-Some backends could be said to be @dfn{server-forming} backends, and
-some might be said not to be.  The latter are backends that generally
+Some back ends could be said to be @dfn{server-forming} back ends, and
+some might be said not to be.  The latter are back ends that generally
 only operate on one group at a time, and have no concept of ``server''
 -- they have a group, and they deliver info on that group and nothing
 more.
 
-In the examples and definitions I will refer to the imaginary backend
+In the examples and definitions I will refer to the imaginary back end
 @code{nnchoke}.
 
 @cindex @code{nnchoke}
 
 @menu
-* Required Backend Functions::        Functions that must be implemented.
-* Optional Backend Functions::        Functions that need not be implemented.
+* Required Back End Functions::       Functions that must be implemented.
+* Optional Back End Functions::       Functions that need not be implemented.
 * Error Messaging::                   How to get messages and report errors.
-* Writing New Backends::              Extending old backends.
-* Hooking New Backends Into Gnus::    What has to be done on the Gnus end.
-* Mail-like Backends::                Some tips on mail backends.
+* Writing New Back Ends::             Extending old back ends.
+* Hooking New Back Ends Into Gnus::   What has to be done on the Gnus end.
+* Mail-like Back Ends::               Some tips on mail back ends.
 @end menu
 
 
-@node Required Backend Functions
-@subsubsection Required Backend Functions
+@node Required Back End Functions
+@subsubsection Required Back End Functions
 
 @table @code
 
 @item (nnchoke-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD)
 
 @var{articles} is either a range of article numbers or a list of
-@code{Message-ID}s.  Current backends do not fully support either---only
-sequences (lists) of article numbers, and most backends do not support
+@code{Message-ID}s.  Current back ends do not fully support either---only
+sequences (lists) of article numbers, and most back ends do not support
 retrieval of @code{Message-ID}s.  But they should try for both.
 
 The result data should either be HEADs or NOV lines, and the result
@@ -22041,7 +20905,7 @@ If @var{fetch-old} is non-@code{nil} it says to try fetching "extra
 headers", in some meaning of the word.  This is generally done by
 fetching (at most) @var{fetch-old} extra headers less than the smallest
 article number in @code{articles}, and filling the gaps as well.  The
-presence of this parameter can be ignored if the backend finds it
+presence of this parameter can be ignored if the back end finds it
 cumbersome to follow the request.  If this is non-@code{nil} and not a
 number, do maximum fetches.
 
@@ -22095,7 +20959,7 @@ For a closer look at what should be in those fields,
 @var{server} is here the virtual server name.  @var{definitions} is a
 list of @code{(VARIABLE VALUE)} pairs that define this virtual server.
 
-If the server can't be opened, no error should be signaled.  The backend
+If the server can't be opened, no error should be signaled.  The back end
 may then choose to refuse further attempts at connecting to this
 server.  In fact, it should do so.
 
@@ -22114,8 +20978,8 @@ There should be no data returned.
 
 @item (nnchoke-request-close)
 
-Close connection to all servers and free all resources that the backend
-have reserved.  All buffers that have been created by that backend
+Close connection to all servers and free all resources that the back end
+have reserved.  All buffers that have been created by that back end
 should be killed.  (Not the @code{nntp-server-buffer}, though.)  This
 function is generally only called when Gnus is shutting down.
 
@@ -22193,7 +21057,7 @@ info         = "211 " 3* [ <number> " " ] <string>
 @item (nnchoke-close-group GROUP &optional SERVER)
 
 Close @var{group} and free any resources connected to it.  This will be
-a no-op on most backends.
+a no-op on most back ends.
 
 There should be no data returned.
 
@@ -22239,8 +21103,8 @@ There should be no result data from this function.
 @end table
 
 
-@node Optional Backend Functions
-@subsubsection Optional Backend Functions
+@node Optional Back End Functions
+@subsubsection Optional Back End Functions
 
 @table @code
 
@@ -22263,8 +21127,8 @@ group-buffer = *active-line / *group-status
 
 @item (nnchoke-request-update-info GROUP INFO &optional SERVER)
 
-A Gnus group info (@pxref{Group Info}) is handed to the backend for
-alterations.  This comes in handy if the backend really carries all the
+A Gnus group info (@pxref{Group Info}) is handed to the back end for
+alterations.  This comes in handy if the back end really carries all the
 information (as is the case with virtual and imap groups).  This
 function should destructively alter the info to suit its needs, and
 should return the (altered) group info.
@@ -22290,7 +21154,7 @@ There should be no result data from this function.
 
 Set/remove/add marks on articles.  Normally Gnus handles the article
 marks (such as read, ticked, expired etc) internally, and store them in
-@code{~/.newsrc.eld}.  Some backends (such as @sc{imap}) however carry
+@code{~/.newsrc.eld}.  Some back ends (such as @sc{imap}) however carry
 all information about the articles on the server, so Gnus need to
 propagate the mark information to the server.
 
@@ -22307,7 +21171,7 @@ marks not mentioned) mark and removing (preserving the marks not
 mentioned) marks.  Mark is a list of marks; where each mark is a symbol.
 Currently used marks are @code{read}, @code{tick}, @code{reply},
 @code{expire}, @code{killed}, @code{dormant}, @code{save},
-@code{download} and @code{unsend}, but your backend should, if possible,
+@code{download} and @code{unsend}, but your back end should, if possible,
 not limit itself to these.
 
 Given contradictory actions, the last action in the list should be the
@@ -22330,10 +21194,10 @@ There should be no result data from this function.
 
 @item (nnchoke-request-update-mark GROUP ARTICLE MARK)
 
-If the user tries to set a mark that the backend doesn't like, this
+If the user tries to set a mark that the back end doesn't like, this
 function may change the mark.  Gnus will use whatever this function
 returns as the mark for @var{article} instead of the original
-@var{mark}.  If the backend doesn't care, it must return the original
+@var{mark}.  If the back end doesn't care, it must return the original
 @var{mark}, and not @code{nil} or any other type of garbage.
 
 The only use for this I can see is what @code{nnvirtual} does with
@@ -22347,10 +21211,10 @@ There should be no result data from this function.
 @item (nnchoke-request-scan &optional GROUP SERVER)
 
 This function may be called at any time (by Gnus or anything else) to
-request that the backend check for incoming articles, in one way or
-another.  A mail backend will typically read the spool file or query the
+request that the back end check for incoming articles, in one way or
+another.  A mail back end will typically read the spool file or query the
 POP server when this function is invoked.  The @var{group} doesn't have
-to be heeded---if the backend decides that it is too much work just
+to be heeded---if the back end decides that it is too much work just
 scanning for a single group, it may do a total scan of all groups.  It
 would be nice, however, to keep things local if that's practical.
 
@@ -22396,7 +21260,7 @@ There should be no return data.
 
 This function should run the expiry process on all articles in the
 @var{articles} range (which is currently a simple list of article
-numbers.)  It is left up to the backend to decide how old articles
+numbers.)  It is left up to the back end to decide how old articles
 should be before they are removed by this function.  If @var{force} is
 non-@code{nil}, all @var{articles} should be deleted, no matter how new
 they are.
@@ -22474,9 +21338,9 @@ There should be no data returned.
 
 @findex nnheader-report
 @findex nnheader-get-report
-The backends should use the function @code{nnheader-report} to report
+The back ends should use the function @code{nnheader-report} to report
 error conditions---they should not raise errors when they aren't able to
-perform a request.  The first argument to this function is the backend
+perform a request.  The first argument to this function is the back end
 symbol, and the rest are interpreted as arguments to @code{format} if
 there are multiple of them, or just a string if there is one of them.
 This function must always returns @code{nil}.
@@ -22489,18 +21353,18 @@ This function must always returns @code{nil}.
 
 Gnus, in turn, will call @code{nnheader-get-report} when it gets a
 @code{nil} back from a server, and this function returns the most
-recently reported message for the backend in question.  This function
+recently reported message for the back end in question.  This function
 takes one argument---the server symbol.
 
-Internally, these functions access @var{backend}@code{-status-string},
-so the @code{nnchoke} backend will have its error message stored in
+Internally, these functions access @var{back-end}@code{-status-string},
+so the @code{nnchoke} back end will have its error message stored in
 @code{nnchoke-status-string}.
 
 
-@node Writing New Backends
-@subsubsection Writing New Backends
+@node Writing New Back Ends
+@subsubsection Writing New Back Ends
 
-Many backends are quite similar.  @code{nnml} is just like
+Many back ends are quite similar.  @code{nnml} is just like
 @code{nnspool}, but it allows you to edit the articles on the server.
 @code{nnmh} is just like @code{nnml}, but it doesn't use an active file,
 and it doesn't maintain overview databases.  @code{nndir} is just like
@@ -22508,14 +21372,14 @@ and it doesn't maintain overview databases.  @code{nndir} is just like
 editing articles.
 
 It would make sense if it were possible to ``inherit'' functions from
-backends when writing new backends.  And, indeed, you can do that if you
+back ends when writing new back ends.  And, indeed, you can do that if you
 want to.  (You don't have to if you don't want to, of course.)
 
-All the backends declare their public variables and functions by using a
+All the back ends declare their public variables and functions by using a
 package called @code{nnoo}.
 
-To inherit functions from other backends (and allow other backends to
-inherit functions from the current backend), you should use the
+To inherit functions from other back ends (and allow other back ends to
+inherit functions from the current back end), you should use the
 following macros:
 
 @table @code
@@ -22538,8 +21402,8 @@ a public server variable.  Most state-oriented variables should be
 declared with @code{defvoo} instead of @code{defvar}.
 
 In addition to the normal @code{defvar} parameters, it takes a list of
-variables in the parent backends to map the variable to when executing
-a function in those backends.
+variables in the parent back ends to map the variable to when executing
+a function in those back ends.
 
 @lisp
 (defvoo nndir-directory nil
@@ -22552,7 +21416,7 @@ This means that @code{nnml-current-directory} will be set to
 of @code{nndir}.  (The same with @code{nnmh}.)
 
 @item nnoo-define-basics
-This macro defines some common functions that almost all backends should
+This macro defines some common functions that almost all back ends should
 have.
 
 @example
@@ -22562,11 +21426,11 @@ have.
 @item deffoo
 This macro is just like @code{defun} and takes the same parameters.  In
 addition to doing the normal @code{defun} things, it registers the
-function as being public so that other backends can inherit it.
+function as being public so that other back ends can inherit it.
 
 @item nnoo-map-functions
-This macro allows mapping of functions from the current backend to
-functions from the parent backends.
+This macro allows mapping of functions from the current back end to
+functions from the parent back ends.
 
 @example
 (nnoo-map-functions nndir
@@ -22580,7 +21444,7 @@ third, and fourth parameters will be passed on to
 value of @code{nndir-current-group}.
 
 @item nnoo-import
-This macro allows importing functions from backends.  It should be the
+This macro allows importing functions from back ends.  It should be the
 last thing in the source file, since it will only define functions that
 haven't already been defined.
 
@@ -22599,7 +21463,7 @@ defined now.
 
 @end table
 
-Below is a slightly shortened version of the @code{nndir} backend.
+Below is a slightly shortened version of the @code{nndir} back end.
 
 @lisp
 ;;; nndir.el --- single directory newsgroup access for Gnus
@@ -22624,7 +21488,9 @@ Below is a slightly shortened version of the @code{nndir} backend.
   "*Non-nil means that nndir will never retrieve NOV headers."
   nnml-nov-is-evil)
 
-(defvoo nndir-current-group "" nil nnml-current-group nnmh-current-group)
+(defvoo nndir-current-group "" 
+  nil 
+  nnml-current-group nnmh-current-group)
 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory)
 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail)
 
@@ -22642,7 +21508,8 @@ Below is a slightly shortened version of the @code{nndir} backend.
   (unless (assq 'nndir-directory defs)
     (push `(nndir-directory ,server) defs))
   (push `(nndir-current-group
-          ,(file-name-nondirectory (directory-file-name nndir-directory)))
+          ,(file-name-nondirectory 
+            (directory-file-name nndir-directory)))
         defs)
   (push `(nndir-top-directory
           ,(file-name-directory (directory-file-name nndir-directory)))
@@ -22665,15 +21532,15 @@ Below is a slightly shortened version of the @code{nndir} backend.
 @end lisp
 
 
-@node Hooking New Backends Into Gnus
-@subsubsection Hooking New Backends Into Gnus
+@node Hooking New Back Ends Into Gnus
+@subsubsection Hooking New Back Ends Into Gnus
 
 @vindex gnus-valid-select-methods
-Having Gnus start using your new backend is rather easy---you just
+Having Gnus start using your new back end is rather easy---you just
 declare it with the @code{gnus-declare-backend} functions.  This will
-enter the backend into the @code{gnus-valid-select-methods} variable.
+enter the back end into the @code{gnus-valid-select-methods} variable.
 
-@code{gnus-declare-backend} takes two parameters---the backend name and
+@code{gnus-declare-backend} takes two parameters---the back end name and
 an arbitrary number of @dfn{abilities}.
 
 Here's an example:
@@ -22686,32 +21553,32 @@ The abilities can be:
 
 @table @code
 @item mail
-This is a mailish backend---followups should (probably) go via mail.
+This is a mailish back end---followups should (probably) go via mail.
 @item post
-This is a newsish backend---followups should (probably) go via news.
+This is a newsish back end---followups should (probably) go via news.
 @item post-mail
-This backend supports both mail and news.
+This back end supports both mail and news.
 @item none
-This is neither a post nor mail backend---it's something completely
+This is neither a post nor mail back end---it's something completely
 different.
 @item respool
 It supports respooling---or rather, it is able to modify its source
 articles and groups.
 @item address
 The name of the server should be in the virtual server name.  This is
-true for almost all backends.
+true for almost all back ends.
 @item prompt-address
 The user should be prompted for an address when doing commands like
-@kbd{B} in the group buffer.  This is true for backends like
+@kbd{B} in the group buffer.  This is true for back ends like
 @code{nntp}, but not @code{nnmbox}, for instance.
 @end table
 
 
-@node Mail-like Backends
-@subsubsection Mail-like Backends
+@node Mail-like Back Ends
+@subsubsection Mail-like Back Ends
 
-One of the things that separate the mail backends from the rest of the
-backends is the heavy dependence by the mail backends on common
+One of the things that separate the mail back ends from the rest of the
+back ends is the heavy dependence by the mail back ends on common
 functions in @file{nnmail.el}.  For instance, here's the definition of
 @code{nnml-request-scan}:
 
@@ -22729,7 +21596,7 @@ This function takes four parameters.
 
 @table @var
 @item method
-This should be a symbol to designate which backend is responsible for
+This should be a symbol to designate which back end is responsible for
 the call.
 
 @item exit-function
@@ -22743,15 +21610,15 @@ This optional argument should be a group name if the splitting is to be
 performed for one group only.
 @end table
 
-@code{nnmail-get-new-mail} will call @var{backend}@code{-save-mail} to
-save each article.  @var{backend}@code{-active-number} will be called to
+@code{nnmail-get-new-mail} will call @var{back-end}@code{-save-mail} to
+save each article.  @var{back-end}@code{-active-number} will be called to
 find the article number assigned to this article.
 
 The function also uses the following variables:
-@var{backend}@code{-get-new-mail} (to see whether to get new mail for
-this backend); and @var{backend}@code{-group-alist} and
-@var{backend}@code{-active-file} to generate the new active file.
-@var{backend}@code{-group-alist} should be a group-active alist, like
+@var{back-end}@code{-get-new-mail} (to see whether to get new mail for
+this back end); and @var{back-end}@code{-group-alist} and
+@var{back-end}@code{-active-file} to generate the new active file.
+@var{back-end}@code{-group-alist} should be a group-active alist, like
 this:
 
 @example
@@ -22781,47 +21648,47 @@ Here's a typical score file:
 BNF definition of a score file:
 
 @example
-score-file       = "" / "(" *element ")"
-element          = rule / atom
-rule             = string-rule / number-rule / date-rule
-string-rule      = "(" quote string-header quote space *string-match ")"
-number-rule      = "(" quote number-header quote space *number-match ")"
-date-rule        = "(" quote date-header quote space *date-match ")"
-quote            = <ascii 34>
-string-header    = "subject" / "from" / "references" / "message-id" /
-                   "xref" / "body" / "head" / "all" / "followup"
-number-header    = "lines" / "chars"
-date-header      = "date"
-string-match     = "(" quote <string> quote [ "" / [ space score [ "" /
-                   space date [ "" / [ space string-match-t ] ] ] ] ] ")"
-score            = "nil" / <integer>
-date             = "nil" / <natural number>
-string-match-t   = "nil" / "s" / "substring" / "S" / "Substring" /
-                   "r" / "regex" / "R" / "Regex" /
-                   "e" / "exact" / "E" / "Exact" /
-                   "f" / "fuzzy" / "F" / "Fuzzy"
-number-match     = "(" <integer> [ "" / [ space score [ "" /
-                   space date [ "" / [ space number-match-t ] ] ] ] ] ")"
-number-match-t   = "nil" / "=" / "<" / ">" / ">=" / "<="
-date-match       = "(" quote <string> quote [ "" / [ space score [ "" /
-                   space date [ "" / [ space date-match-t ] ] ] ] ")"
-date-match-t     = "nil" / "at" / "before" / "after"
-atom             = "(" [ required-atom / optional-atom ] ")"
-required-atom    = mark / expunge / mark-and-expunge / files /
-                   exclude-files / read-only / touched
-optional-atom    = adapt / local / eval
-mark             = "mark" space nil-or-number
-nil-or-number    = "nil" / <integer>
-expunge          = "expunge" space nil-or-number
+score-file      = "" / "(" *element ")"
+element         = rule / atom
+rule            = string-rule / number-rule / date-rule
+string-rule     = "(" quote string-header quote space *string-match ")"
+number-rule     = "(" quote number-header quote space *number-match ")"
+date-rule       = "(" quote date-header quote space *date-match ")"
+quote           = <ascii 34>
+string-header   = "subject" / "from" / "references" / "message-id" /
+                  "xref" / "body" / "head" / "all" / "followup"
+number-header   = "lines" / "chars"
+date-header     = "date"
+string-match    = "(" quote <string> quote [ "" / [ space score [ "" /
+                  space date [ "" / [ space string-match-t ] ] ] ] ] ")"
+score           = "nil" / <integer>
+date            = "nil" / <natural number>
+string-match-t  = "nil" / "s" / "substring" / "S" / "Substring" /
+                  "r" / "regex" / "R" / "Regex" /
+                  "e" / "exact" / "E" / "Exact" /
+                  "f" / "fuzzy" / "F" / "Fuzzy"
+number-match    = "(" <integer> [ "" / [ space score [ "" /
+                  space date [ "" / [ space number-match-t ] ] ] ] ] ")"
+number-match-t  = "nil" / "=" / "<" / ">" / ">=" / "<="
+date-match      = "(" quote <string> quote [ "" / [ space score [ "" /
+                  space date [ "" / [ space date-match-t ] ] ] ] ")"
+date-match-t    = "nil" / "at" / "before" / "after"
+atom            = "(" [ required-atom / optional-atom ] ")"
+required-atom   = mark / expunge / mark-and-expunge / files /
+                  exclude-files / read-only / touched
+optional-atom   = adapt / local / eval
+mark            = "mark" space nil-or-number
+nil-or-number   = "nil" / <integer>
+expunge         = "expunge" space nil-or-number
 mark-and-expunge = "mark-and-expunge" space nil-or-number
-files            = "files" *[ space <string> ]
-exclude-files    = "exclude-files" *[ space <string> ]
-read-only        = "read-only" [ space "nil" / space "t" ]
-adapt            = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
-adapt-rule       = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
-local            = "local" *[ space "(" <string> space <form> ")" ]
-eval             = "eval" space <form>
-space            = *[ " " / <TAB> / <NEWLINE> ]
+files           = "files" *[ space <string> ]
+exclude-files   = "exclude-files" *[ space <string> ]
+read-only       = "read-only" [ space "nil" / space "t" ]
+adapt        = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
+adapt-rule      = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
+local           = "local" *[ space "(" <string> space <form> ")" ]
+eval            = "eval" space <form>
+space           = *[ " " / <TAB> / <NEWLINE> ]
 @end example
 
 Any unrecognized elements in a score file should be ignored, but not
@@ -23188,9 +22055,9 @@ Here's a pseudo-BNF definition of this file:
 
 @example
 active      = *group-line
-group-line  = group space high-number space low-number space flag <NEWLINE>
+group-line  = group spc high-number spc low-number spc flag <NEWLINE>
 group       = <non-white-space string>
-space       = " "
+spc         = " "
 high-number = <non-negative integer>
 low-number  = <positive integer>
 flag        = "y" / "n" / "m" / "j" / "x" / "=" group
@@ -23226,7 +22093,7 @@ description   = <string>
 
 Believe it or not, but some people who use Gnus haven't really used
 Emacs much before they embarked on their journey on the Gnus Love Boat.
-If you are one of those unfortunates whom ``@kbd{M-C-a}'', ``kill the
+If you are one of those unfortunates whom ``@kbd{C-M-a}'', ``kill the
 region'', and ``set @code{gnus-flargblossen} to an alist where the key
 is a regexp that is used for matching on the group name'' are magical
 phrases with little or no meaning, then this appendix is for you.  If
@@ -23266,11 +22133,11 @@ which is the meta key on this keyboard.  It's usually located somewhere
 to the left hand side of the keyboard, usually on the bottom row.
 
 Now, us Emacs people don't say ``press the meta-control-m key'',
-because that's just too inconvenient.  We say ``press the @kbd{M-C-m}
+because that's just too inconvenient.  We say ``press the @kbd{C-M-m}
 key''.  @kbd{M-} is the prefix that means ``meta'' and ``C-'' is the
 prefix that means ``control''.  So ``press @kbd{C-k}'' means ``press
 down the control key, and hold it down while you press @kbd{k}''.
-``Press @kbd{M-C-k}'' means ``press down and hold down the meta key and
+``Press @kbd{C-M-k}'' means ``press down and hold down the meta key and
 the control key and then press @kbd{k}''.  Simple, ay?
 
 This is somewhat complicated by the fact that not all keyboards have a