*** empty log message ***
[gnus] / texi / gnus.texi
index cdb5b55..c8b762e 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Red Gnus 0.40 Manual
+@settitle Gnus 5.4 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -64,7 +64,7 @@
 \marginpar[\hspace{2.5cm}\gnushead]{\gnushead}
 }
 
-\newcommand{\gnuscleardoublepage}{\ifodd\count0\clearpage\thispagestyle{empty}\mbox{}\clearpage\else\clearpage\fi}
+\newcommand{\gnuscleardoublepage}{\ifodd\count0\mbox{}\clearpage\thispagestyle{empty}\mbox{}\clearpage\else\clearpage\fi}
 
 \newcommand{\gnuspagechapter}[1]{
 {\mbox{}}
@@ -287,7 +287,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Red Gnus 0.40 Manual
+@title Gnus 5.4 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -314,7 +314,7 @@ into another language, under the above conditions for modified versions.
 
 
 @node Top
-@top The Red Gnus Newsreader
+@top The Gnus Newsreader
 
 @ifinfo
 
@@ -323,6 +323,8 @@ 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.4.
+
 @end ifinfo
 
 @iftex
@@ -527,8 +529,8 @@ your mail without bothering with the server at all, you can use the
 @code{gnus-no-server} command to start Gnus.  That might come in handy
 if you're in a hurry as well.  This command will not attempt to contact
 your primary server---instead, it will just activate all groups on level
-@code{1} and @code{2}.  (You should preferably keep no native groups on
-those two levels.)
+1 and 2.  (You should preferably keep no native groups on those two
+levels.)
 
 
 @node Slave Gnusae
@@ -545,7 +547,7 @@ The problem appears when you want to run two Gnusae that use the same
 
 To work around that problem some, we here at the Think-Tank at the Gnus
 Towers have come up with a new concept: @dfn{Masters} and
-@dfn{servants}.  (We have applied for a patent on this concept, and have
+@dfn{slaves}.  (We have applied for a patent on this concept, and have
 taken out a copyright on those words.  If you wish to use those words in
 conjunction with each other, you have to send $1 per usage instance to
 me.  Usage of the patent (@dfn{Master/Slave Relationships In Computer
@@ -587,7 +589,9 @@ you can set @code{gnus-check-new-newsgroups} to @code{nil}.  This will
 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{t} by default.
+is @code{t} by default.  If you set this variable to @code{always}, then
+Gnus will query the backends for new groups even when you do the @kbd{g}
+command (@pxref{Scanning New Messages}).
 
 @menu
 * Checking New Groups::      Determining what groups are new.
@@ -644,9 +648,9 @@ are:
 
 @item gnus-subscribe-zombies
 @vindex gnus-subscribe-zombies
-Make all new groups zombies.  You can browse the zombies later (with
-@kbd{A z}) and either kill them all off properly, or subscribe to them.
-This is the default.
+Make all new groups zombies.  This is the default.  You can browse the
+zombies later (with @kbd{A z}) and either kill them all off properly
+(with @kbd{S z}), or subscribe to them (with @kbd{u}).
 
 @item gnus-subscribe-randomly
 @vindex gnus-subscribe-randomly
@@ -731,6 +735,9 @@ that come from mail backends (@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}.
 
+New groups that match this regexp are subscribed using
+@code{gnus-subscribe-options-newsgroup-method}.
+
 
 @node Changing Servers
 @section Changing Servers
@@ -738,7 +745,7 @@ don't like that, just set this variable to @code{nil}.
 
 Sometimes it is necessary to move from one @sc{nntp} server to another.
 This happens very rarely, but perhaps you change jobs, or one server is
-very flakey and you want to use another.  
+very flaky and you want to use another.  
 
 Changing the server is pretty easy, right?  You just change
 @code{gnus-select-method} to point to the new server?  
@@ -812,7 +819,7 @@ Gnus.  But hey, who would want to, right?
 If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
 will not save the list of killed groups to the startup file.  This will
 save both time (when starting and quitting) and space (on disk).  It
-will also means that Gnus has no record of what groups are new or old,
+will also mean that Gnus has no record of what groups are new or old,
 so the automatic new groups subscription methods become meaningless.
 You should always set @code{gnus-check-new-newsgroups} to @code{nil} or
 @code{ask-server} if you set this variable to @code{nil} (@pxref{New
@@ -914,7 +921,7 @@ you actually subscribe to.
 Note that if you subscribe to lots and lots of groups, setting this
 variable to @code{nil} will probably make Gnus slower, not faster.  At
 present, having this variable @code{nil} will slow Gnus down
-considerably, unless you read news over a @code{2400} baud modem.  
+considerably, unless you read news over a 2400 baud modem.  
 
 This variable can also have the value @code{some}.  Gnus will then
 attempt to read active info only on the subscribed groups.  On some
@@ -933,6 +940,9 @@ performance, but if the server does not support the aforementioned
 In any case, if you use @code{some} or @code{nil}, you should definitely
 kill all groups that you aren't interested in to speed things up.
 
+Note that this variable also affects active file retrieval from
+secondary select methods.
+
 
 @node Startup Variables
 @section Startup Variables
@@ -961,12 +971,23 @@ in a while from the group buffer instead (@pxref{Group Maintenance}).
 @item gnus-inhibit-startup-message
 @vindex gnus-inhibit-startup-message
 If non-@code{nil}, the startup message won't be displayed.  That way,
-your boss might not notice as easily that you are reading news instead of doing
-your job.
+your boss might not notice as easily that you are reading news instead
+of doing your job.  Note that this variable is used before
+@file{.gnus.el} is loaded, so it should be set in @code{.emacs} instead.
 
 @item gnus-no-groups-message
 @vindex gnus-no-groups-message
 Message displayed by Gnus when no groups are available.
+
+@item gnus-play-startup-jingle
+@vindex gnus-play-startup-jingle
+If non-@code{nil}, play the Gnus jingle at startup.
+
+@item gnus-startup-jingle
+@vindex gnus-startup-jingle
+Jingle to be played if the above variable is non-@code{nil}.  The
+default is @samp{Tuxedomoon.Jingle4.au}.
+
 @end table
 
 
@@ -982,6 +1003,7 @@ long as Gnus is active.
 * Group Buffer Format::    Information listed and how you can change it.
 * Group Maneuvering::      Commands for moving in the group buffer.
 * Selecting a Group::      Actually reading news.
+* Group Data::             Changing the info for a group.
 * Subscription Commands::  Unsubscribing, killing, subscribing.
 * Group Levels::           Levels? What are those, then?
 * Group Score::            A mechanism for finding out what groups you like.
@@ -1024,7 +1046,7 @@ Here's a couple of example group lines:
 
 Quite simple, huh?
 
-You can see that there are @code{25} unread articles in
+You can see that there are 25 unread articles in
 @samp{news.announce.newusers}.  There are no unread articles, but some
 ticked articles, in @samp{alt.fan.andrea-dworkin} (see that little
 asterisk at the beginning of the line?)
@@ -1075,7 +1097,7 @@ Number of read articles.
 
 @item t
 Estimated total number of articles.  (This is really @var{max-number}
-minus @var{min-number} plus @code{1}.)
+minus @var{min-number} plus 1.)
 
 @item y
 Number of unread, unticked, non-dormant articles.
@@ -1115,21 +1137,33 @@ Indentation based on the level of the topic (@pxref{Group Topics}).
 @vindex gnus-group-uncollapsed-levels
 Short (collapsed) group name.  The @code{gnus-group-uncollapsed-levels}
 variable says how many levels to leave at the end of the group name.
-The default is @code{1}.
+The default is 1---this will mean that group names like
+@samp{gnu.emacs.gnus} will be shortened to @samp{g.emacs.gnus}.
+
+@item m
+@vindex gnus-new-mail-mark
+@cindex %
+@samp{%} (@code{gnus-new-mail-mark}) if there has arrived new mail to
+the group lately.
+
+@item d
+A string that says when you last read the group (@pxref{Group
+Timestamp}). 
 
 @item u
 User defined specifier.  The next character in the format string should
 be a letter.  @sc{gnus} will call the function
 @code{gnus-user-format-function-}@samp{X}, where @samp{X} is the letter
-following @samp{%u}.  The function will be passed the current headers as
-argument.  The function should return a string, which will be inserted
-into the buffer just like information from any other specifier.
+following @samp{%u}.  The function will be passed a single dummy
+paratere as argument.  The function should return a string, which will
+be inserted into the buffer just like information from any other
+specifier.
 @end table
 
 @cindex *
 All the ``number-of'' specs will be filled with an asterisk (@samp{*})
 if no info is available---for instance, if it is a non-activated foreign
-group, or a bogus (or semi-bogus) native group.
+group, or a bogus native group.
 
 
 @node Group Modeline Specification
@@ -1165,17 +1199,16 @@ background is dark:
 
 @lisp
 (setq gnus-group-highlight
-    `(((> unread 200) . 
-       ,(custom-face-lookup "Red" nil nil t nil nil))
-      ((and (< level 3) (zerop unread)) . 
-       ,(custom-face-lookup "SeaGreen" nil nil t nil nil))
-      ((< level 3) . 
-       ,(custom-face-lookup "SpringGreen" nil nil t nil nil))
-      ((zerop unread) . 
-       ,(custom-face-lookup "SteelBlue" nil nil t nil nil))
-      (t . 
-       ,(custom-face-lookup "SkyBlue" nil nil t nil nil))
-      ))
+      `(((> unread 200) . 
+         ,(custom-face-lookup "Red" nil nil t nil nil))
+        ((and (< level 3) (zerop unread)) . 
+         ,(custom-face-lookup "SeaGreen" nil nil t nil nil))
+        ((< level 3) . 
+         ,(custom-face-lookup "SpringGreen" nil nil t nil nil))
+        ((zerop unread) . 
+         ,(custom-face-lookup "SteelBlue" nil nil t nil nil))
+        (t . 
+         ,(custom-face-lookup "SkyBlue" nil nil t nil nil))))
 @end lisp
 
 Variables that are dynamically bound when the forms are evaluated
@@ -1305,10 +1338,10 @@ Select the current group, switch to the summary buffer and display the
 first unread article (@code{gnus-group-read-group}).  If there are no
 unread articles in the group, or if you give a non-numerical prefix to
 this command, Gnus will offer to fetch all the old articles in this
-group from the server.  If you give a numerical prefix @var{N}, Gnus
-will fetch @var{N} number of articles.  If @var{N} is positive, fetch
-the @var{N} newest articles, if @var{N} is negative, fetch the
-@var{abs(N)} oldest articles.
+group from the server.  If you give a numerical prefix @var{N}, @var{N}
+determines the number of articles Gnus will fetch.  If @var{N} is
+positive, Gnus fetches the @var{N} newest articles, if @var{N} is
+negative, Gnus fetches the @var{abs(N)} oldest articles.
 
 @item RET
 @kindex RET (Group)
@@ -1326,7 +1359,7 @@ 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 @code{0} prefix to this command
+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.
 This might be useful if you want to toggle threading before entering the
 group.
@@ -1334,54 +1367,35 @@ group.
 @item M-SPACE
 @kindex M-SPACE (Group)
 @findex gnus-group-visible-select-group
-This is yet one more command that does the same as the one above, but
-this one does it without expunging and hiding dormants
-(@code{gnus-group-visible-select-group}).  
-
-@item c
-@kindex c (Group)
-@findex gnus-group-catchup-current
-@vindex gnus-group-catchup-group-hook
-Mark all unticked articles in this group as read
-(@code{gnus-group-catchup-current}).
-@code{gnus-group-catchup-group-hook} is called when catching up a group from
-the group buffer.
+This is yet one more command that does the same as the @kbd{RET}
+command, but this one does it without expunging and hiding dormants
+(@code{gnus-group-visible-select-group}).
 
-@item C
-@kindex C (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)
-@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}).
-
-@item M-x gnus-group-clear-data-on-native-groups
-@kindex M-x gnus-group-clear-data-on-native-groups
-@findex gnus-group-clear-data-on-native-groups
-If you have switched from one @sc{nntp} server to another, all your marks
-and read ranges have become worthless.  You can use this command to
-clear out all data that you have on your native groups.  Use with
-caution. 
+@item M-C-RET
+@kindex M-C-RET (Group)
+@findex gnus-group-select-group-ephemerally
+Finally, this command selects the current group ephemerally without
+doing any processing of its contents
+(@code{gnus-group-select-group-ephemerally}).  Even threading has been
+turned off.  Everything you do in the group after selecting it in this
+manner will have no permanent effects.
 
 @end table
 
 @vindex gnus-large-newsgroup
 The @code{gnus-large-newsgroup} variable says what Gnus should consider
-to be a big group.  This is @code{200} by default.  If the group has more
-unread articles than this, Gnus will query the user before entering the
-group.  The user can then specify how many articles should be fetched
-from the server.  If the user specifies a negative number (@code{-n}),
-the @code{n} oldest articles will be fetched.  If it is positive, the
-@code{n} articles that have arrived most recently will be fetched.
+to be a big group.  This is 200 by default.  If the group has more
+(unread and/or ticked) articles than this, Gnus will query the user
+before entering the group.  The user can then specify how many articles
+should be fetched from the server.  If the user specifies a negative
+number (@code{-n}), the @code{n} oldest articles will be fetched.  If it
+is positive, the @code{n} articles that have arrived most recently will
+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.  
+automatically when entering a group with the @kbd{SPACE} command.
 
 @table @code
 
@@ -1464,9 +1478,9 @@ Kill all zombie groups (@code{gnus-group-kill-all-zombies}).
 @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
-be used with some caution.  The only thing where this command comes in
+be used with some caution.  The only time where this command comes in
 really handy is when you have a @file{.newsrc} with lots of unsubscribed
-groups that you want to get rid off.  @kbd{S C-k} on level @code{7} will
+groups that you want to get rid off.  @kbd{S C-k} on level 7 will
 kill off all unsubscribed groups that do not have message numbers in the
 @file{.newsrc} file.  
 
@@ -1475,13 +1489,50 @@ kill off all unsubscribed groups that do not have message numbers in the
 Also @pxref{Group Levels}.
 
 
+@node Group Data
+@section Group Data
+
+@table @kbd
+
+@item c
+@kindex c (Group)
+@findex gnus-group-catchup-current
+@vindex gnus-group-catchup-group-hook
+Mark all unticked articles in this group as read
+(@code{gnus-group-catchup-current}).
+@code{gnus-group-catchup-group-hook} is called when catching up a group from
+the group buffer.
+
+@item C
+@kindex C (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)
+@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}).
+
+@item M-x gnus-group-clear-data-on-native-groups
+@kindex M-x gnus-group-clear-data-on-native-groups
+@findex gnus-group-clear-data-on-native-groups
+If you have switched from one @sc{nntp} server to another, all your marks
+and read ranges have become worthless.  You can use this command to
+clear out all data that you have on your native groups.  Use with
+caution. 
+
+@end table
+
+
 @node Group Levels
 @section Group Levels
 @cindex group level
 @cindex level
 
 All groups have a level of @dfn{subscribedness}.  For instance, if a
-group is on level @code{2}, it is more subscribed than a group on level @code{5}.  You
+group is on level 2, it is more subscribed than a group on level 5.  You
 can ask Gnus to just list groups on a given level or lower
 (@pxref{Listing Groups}), or to just check for new articles in groups on
 a given level or lower (@pxref{Scanning New Messages}).
@@ -1502,12 +1553,12 @@ prompted for a level.
 @vindex gnus-level-zombie
 @vindex gnus-level-unsubscribed
 @vindex gnus-level-subscribed
-Gnus considers groups on between levels @code{1} and
-@code{gnus-level-subscribed} (inclusive) (default @code{5}) to be subscribed,
+Gnus considers groups on between levels 1 and
+@code{gnus-level-subscribed} (inclusive) (default 5) to be subscribed,
 @code{gnus-level-subscribed} (exclusive) and
-@code{gnus-level-unsubscribed} (inclusive) (default @code{7}) to be
+@code{gnus-level-unsubscribed} (inclusive) (default 7) to be
 unsubscribed, @code{gnus-level-zombie} to be zombies (walking dead)
-(default @code{8}) and @code{gnus-level-killed} to be killed (default @code{9}),
+(default 8) and @code{gnus-level-killed} to be killed (default 9),
 completely dead.  Gnus treats subscribed and unsubscribed groups exactly
 the same, but zombie and killed groups have no information on what
 articles you have read, etc, stored.  This distinction between dead and
@@ -1515,7 +1566,7 @@ living groups isn't done because it is nice or clever, it is done purely
 for reasons of efficiency.
 
 It is recommended that you keep all your mail groups (if any) on quite
-low levels (e.g. @code{1} or @code{2}).
+low levels (e.g. 1 or 2).
 
 If you want to play with the level variables, you should show some care.
 Set them once, and don't touch them ever again.  Better yet, don't touch
@@ -1524,7 +1575,7 @@ them at all unless you know exactly what you're doing.
 @vindex gnus-level-default-unsubscribed
 @vindex gnus-level-default-subscribed
 Two closely related variables are @code{gnus-level-default-subscribed}
-(default @code{3}) and @code{gnus-level-default-unsubscribed} (default @code{6}),
+(default 3) and @code{gnus-level-default-unsubscribed} (default 6),
 which are the levels that new groups will be put on if they are
 (un)subscribed.  These two variables should, of course, be inside the
 relevant legal ranges.
@@ -1557,7 +1608,7 @@ use this level as the ``work'' level.
 Gnus will normally just activate groups that are on level
 @code{gnus-activate-level} or less.  If you don't want to activate
 unsubscribed groups, for instance, you might set this variable to
-@code{5}.  The default is @code{6}.
+5.  The default is 6.
 
 
 @node Group Score
@@ -1573,9 +1624,9 @@ This is what @dfn{group score} is for.  You can assign a score to each
 group.  You can then sort the group buffer based on this score.
 Alternatively, you can sort on score and then level.  (Taken together,
 the level and the score is called the @dfn{rank} of the group.  A group
-that is on level @code{4} and has a score of @code{1} has a higher rank than a group
-on level @code{5} that has a score of @code{300}.  (The level is the most significant
-part and the score is the least significant part.)
+that is on level 4 and has a score of 1 has a higher rank than a group
+on level 5 that has a score of 300.  (The level is the most significant
+part and the score is the least significant part.))
 
 @findex gnus-summary-bubble-group
 If you want groups you read often to get higher scores than groups you
@@ -1678,6 +1729,12 @@ Rename the current group to something else
 groups---mail groups mostly.  This command might very well be quite slow
 on some backends.
 
+@item G c
+@kindex G c (Group)
+@cindex customizing
+@findex gnus-group-customize
+Customize the group parameters (@code{gnus-group-customize}).
+
 @item G e
 @kindex G e (Group)
 @findex gnus-group-edit-group-method
@@ -1792,7 +1849,7 @@ Add the current group to an @code{nnvirtual} group
 methods. 
 
 @vindex gnus-activate-foreign-newsgroups
-If the @code{gnus-activate-foreign-newsgroups} is a positive number,
+If @code{gnus-activate-foreign-newsgroups} is a positive number,
 Gnus will check all foreign groups with this level or lower at startup.
 This might take quite a while, especially if you subscribe to lots of
 groups from different @sc{nntp} servers.
@@ -1844,6 +1901,12 @@ broken behavior.  So there!
 Elements like @code{(to-group . "some.group.name")} means that all
 posts in that group will be sent to @code{some.group.name}.  
 
+@item newsgroup
+@cindex newsgroup
+If this symbol is present in the group parameter list, Gnus will treat
+all responses as if they were responses to news articles.  This can be
+useful if you have a mail group that's really a mirror of a news group. 
+
 @item gcc-self
 @cindex gcc-self
 If this symbol is present in the group parameter list and set to
@@ -1855,15 +1918,16 @@ any default @code{Gcc} rules as described later).
 
 @item auto-expire
 @cindex auto-expire
-If this symbol is present in the group parameter list, all articles that
-are read will be marked as expirable.  For an alternative approach,
-@pxref{Expiring Mail}.
+If the group parameter has an element that looks like @code{(auto-expire
+. t)}, , all articles that are read will be marked as expirable.  For an
+alternative approach, @pxref{Expiring Mail}.
 
 @item total-expire
 @cindex total-expire
-If this symbol is present, all read articles will be put through the
+If the group parameter has an element that looks like
+@code{(total-expire . t)}, all read articles will be put through the
 expiry process, even if they are not marked as expirable.  Use with
-caution. 
+caution.
 
 @item expiry-wait
 @cindex expiry-wait
@@ -1906,7 +1970,10 @@ ticked articles.
 @end table
 
 @item comment
-This parameter allows you to enter a arbitrary comment on the group.
+Elements that look like @code{(comment . "This is a comment")}
+are arbitrary comments on the group.  They are currently ignored by
+Gnus, but provide a place for you to store information on particular
+groups. 
 
 @item @var{(variable form)}
 You can use the group parameters to set variables local to the group you
@@ -1945,7 +2012,9 @@ These commands all list various slices of the groups that are available.
 List all groups that have unread articles
 (@code{gnus-group-list-groups}).  If the numeric prefix is used, this
 command will list only groups of level ARG and lower.  By default, it
-only lists groups of level five or lower (i.e., just subscribed groups).
+only lists groups of level five (i. e.,
+@code{gnus-group-default-list-level}) or lower (i.e., just subscribed
+groups).
 
 @item L
 @itemx A u
@@ -1995,7 +2064,7 @@ List groups that match a regexp (@code{gnus-group-list-all-matching}).
 List absolutely all groups that are in the active file(s) of the
 server(s) you are connected to (@code{gnus-group-list-active}).  This
 might very well take quite a while.  It might actually be a better idea
-to do a @kbd{A m} to list all matching, and just give @samp{.} as the
+to do a @kbd{A M} to list all matching, and just give @samp{.} as the
 thing to match on.  Also note that this command may list group that
 don't exist (yet)---these will be listed as if they are killed groups.
 Take the output with some grains of salt.
@@ -2069,7 +2138,7 @@ Sort by number of unread articles.
 
 @item gnus-group-sort-by-method
 @findex gnus-group-sort-by-method
-Sort by alphabetically on the select method.
+Sort alphabetically on the select method.
 
 
 @end table
@@ -2110,7 +2179,7 @@ Sort the group buffer by group score
 @item G S r
 @kindex G S r (Group)
 @findex gnus-group-sort-groups-by-rank
-Sort the group buffer by group level
+Sort the group buffer by group rank
 (@code{gnus-group-sort-groups-by-rank}). 
 
 @item G S m
@@ -2153,7 +2222,7 @@ Sort the process/prefixed groups in the group buffer by group score
 @item G P r
 @kindex G P r (Group)
 @findex gnus-group-sort-selected-groups-by-rank
-Sort the process/prefixed groups in the group buffer by group level
+Sort the process/prefixed groups in the group buffer by group rank
 (@code{gnus-group-sort-selected-groups-by-rank}).
 
 @item G P m
@@ -2305,7 +2374,7 @@ trying to customize meta-variables.
 Note:
 
 @quotation
-Miss Lisa Cannifax, while sitting in English class, feels her feet go
+Miss Lisa Cannifax, while sitting in English class, felt her feet go
 numbly heavy and herself fall into a hazy trance as the boy sitting
 behind her drew repeated lines with his pencil across the back of her
 plastic chair.
@@ -2398,7 +2467,7 @@ Number of unread articles in the topic and all its subtopics.
 @vindex gnus-topic-indent-level
 Each sub-topic (and the groups in the sub-topics) will be indented with
 @code{gnus-topic-indent-level} times the topic level number of spaces.
-The default is @code{2}.
+The default is 2.
 
 @vindex gnus-topic-mode-hook
 @code{gnus-topic-mode-hook} is called in topic minor mode buffers. 
@@ -2490,13 +2559,15 @@ previous topic (@code{gnus-topic-indent}).  If given a prefix,
 @item C-k
 @kindex C-k (Topic)
 @findex gnus-topic-kill-group
-Kill a group or topic (@code{gnus-topic-kill-group}).  
+Kill a group or topic (@code{gnus-topic-kill-group}).  All groups in the
+topic will be removed along with the topic.
 
 @item C-y
 @kindex C-y (Topic)
 @findex gnus-topic-yank-group
-Yank the previously killed group or topic (@code{gnus-topic-yank-group}).
-Note that all topics will be yanked before all groups.
+Yank the previously killed group or topic
+(@code{gnus-topic-yank-group}).  Note that all topics will be yanked
+before all groups. 
 
 @item T r
 @kindex T r (Topic)
@@ -2562,7 +2633,7 @@ Sort the current topic by group score
 @item T S r
 @kindex T S r (Topic)
 @findex gnus-topic-sort-groups-by-rank
-Sort the current topic by group level
+Sort the current topic by group rank
 (@code{gnus-topic-sort-groups-by-rank}). 
 
 @item T S m
@@ -2596,9 +2667,10 @@ Gnus
     13: comp.sources.unix
 @end example
 
-So, here we have one top-level topic, two topics under that, and one
-sub-topic under one of the sub-topics.  (There is always just one (@code{1})
-top-level topic).  This topology can be expressed as follows:
+So, here we have one top-level topic (@samp{Gnus}), two topics under
+that, and one sub-topic under one of the sub-topics.  (There is always
+just one (1) top-level topic).  This topology can be expressed as
+follows:
 
 @lisp
 (("Gnus" visible)
@@ -2676,6 +2748,7 @@ happens.  You just have to be careful if you do stuff like that.
 @menu
 * Scanning New Messages:: Asking Gnus to see whether new messages have arrived.
 * Group Information::     Information and help on groups and Gnus.
+* Group Timestamp::       Making Gnus keep track of when you last read a group.
 * File Commands::         Reading and writing the Gnus files.
 @end menu
 
@@ -2758,7 +2831,9 @@ Activate absolutely all groups (@code{gnus-activate-all-groups}).
 @kindex R (Group)
 @cindex restarting
 @findex gnus-group-restart
-Restart Gnus (@code{gnus-group-restart}).
+Restart Gnus (@code{gnus-group-restart}).  This saves the @file{.newsrc}
+file(s), closes the connection to all servers, clears up all run-time
+Gnus variables, and then starts Gnus all over again.
 
 @end table
 
@@ -2796,8 +2871,10 @@ for fetching the file.
 If fetching from the first site is unsuccessful, Gnus will attempt to go
 through @code{gnus-group-faq-directory} and try to open them one by one.
 
-@item D
-@kindex D (Group)
+@item H d
+@itemx C-c C-d
+@kindex H d (Group)
+@kindex C-c C-d (Group)
 @cindex describing groups
 @cindex group description
 @findex gnus-group-describe-group
@@ -2830,6 +2907,46 @@ Go to the Gnus info node (@code{gnus-info-find-node}).
 @end table
 
 
+@node Group Timestamp
+@subsection Group Timestamp
+@cindex timestamps
+@cindex group timestamps
+
+It can be convenient to let Gnus keep track of when you last read a
+group.  To set the ball rolling, you should add
+@code{gnus-group-set-timestamp} to @code{gnus-select-group-hook}:
+
+@lisp
+(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
+@end lisp
+
+After doing this, each time you enter a group, it'll be recorded.
+
+This information can be displayed in various ways---the easiest is to
+use the @samp{%d} spec in the group line format:
+
+@lisp
+(setq gnus-group-line-format 
+      "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")
+@end lisp
+
+This will result in lines looking like:
+
+@example
+*        0: mail.ding                                19961002T012943
+         0: custom                                   19961002T012713
+@end example
+
+As you can see, the date is displayed in compact ISO 8601 format.  This
+may be a bit too much, so to just display the date, you could say
+something like:
+
+@lisp
+(setq gnus-group-line-format 
+      "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
+@end lisp
+
+
 @node File Commands
 @subsection File Commands
 @cindex file commands
@@ -2867,6 +2984,11 @@ file(s) whether Gnus thinks it is necessary or not.
 A line for each article is displayed in the summary buffer.  You can
 move around, read articles, post articles and reply to articles.
 
+The most common way to a summary buffer is to select a group from the
+group buffer (@pxref{Selecting a Group}).  
+
+You can have as many summary buffers open as you wish.
+
 @menu
 * Summary Buffer Format::       Deciding how the summary buffer is to look.
 * Summary Maneuvering::         Moving around the summary buffer.
@@ -2885,6 +3007,7 @@ move around, read articles, post articles and reply to articles.
 * Saving Articles::             Ways of customizing article saving.
 * Decoding Articles::           Gnus can treat series of (uu)encoded articles.
 * Article Treatment::           The article buffer can be mangled at will.
+* Article Commands::            Doing various things with the article buffer.
 * Summary Sorting::             Sorting the summary buffer in various ways.
 * Finding the Parent::          No child support? Get the parent.
 * Alternative Approaches::      Reading using non-default summaries.
@@ -2953,8 +3076,9 @@ Full @code{From} header.
 The name (from the @code{From} header).
 @item a
 The name (from the @code{From} header).  This differs from the @code{n}
-spec in that it uses @code{gnus-extract-address-components}, which is
-slower, but may be more thorough.
+spec in that it uses the function designated by the
+@code{gnus-extract-address-components} variable, which is slower, but
+may be more thorough.
 @item A
 The address (from the @code{From} header).  This works the same way as
 the @code{a} spec.
@@ -2967,11 +3091,11 @@ Indentation based on thread level (@pxref{Customizing Threading}).
 @item T
 Nothing if the article is a root and lots of spaces if it isn't (it
 pushes everything after it off the screen).
-@item \[
-Opening bracket, which is normally @samp{\[}, but can also be @samp{<}
+@item [
+Opening bracket, which is normally @samp{[}, but can also be @samp{<}
 for adopted articles (@pxref{Customizing Threading}).
-@item \]
-Closing bracket, which is normally @samp{\]}, but can also be @samp{>}
+@item ]
+Closing bracket, which is normally @samp{]}, but can also be @samp{>}
 for adopted articles.
 @item >
 One space for each thread level.
@@ -2996,7 +3120,7 @@ Total thread score.
 @item D
 @code{Date}.
 @item d
-The @code{Date} in @code{YY-MMM} format.
+The @code{Date} in @code{DD-MMM} format.
 @item o
 The @code{Date} in @code{YYYYMMDDTHHMMSS} format.
 @item M
@@ -3007,7 +3131,8 @@ The @code{Date} in @code{YYYYMMDDTHHMMSS} format.
 Number of articles in the current sub-thread.  Using this spec will slow
 down summary buffer generation somewhat.
 @item e
-A single character will be displayed if the article has any children. 
+An @samp{=} (@code{gnus-not-empty-thread-mark}) will be displayed if the
+article has any children.
 @item P
 The line number.
 @item u
@@ -3057,7 +3182,7 @@ Number of unread articles in this group.
 Number of unselected articles in this group.
 @item Z
 A string with the number of unread and unselected articles represented
-either as @samp{<%U(+%u) more>} if there are both unread and unselected
+either as @samp{<%U(+%e) more>} if there are both unread and unselected
 articles, and just as @samp{<%U more>} if there are just unread articles
 and no unselected ones.
 @item g
@@ -3066,7 +3191,7 @@ shortened to @samp{r.a.anime}.
 @item S
 Subject of the current article.
 @item u
-Used-defined spec.
+User-defined spec.
 @item s
 Name of the current score file.
 @item d
@@ -3147,14 +3272,14 @@ Go to the previous summary line of an unread article
 @kindex j (Summary)
 @kindex G j (Summary)
 @findex gnus-summary-goto-article
-Ask for an article number and then go that article
+Ask for an article number and then go to that article
 (@code{gnus-summary-goto-article}). 
 
 @item G g
 @kindex G g (Summary)
 @findex gnus-summary-goto-subject
 Ask for an article number and then go the summary line of that article
-(@code{gnus-summary-goto-subject}).
+without displaying the article (@code{gnus-summary-goto-subject}).
 @end table
 
 If Gnus asks you to press a key to confirm going to the next group, you
@@ -3168,18 +3293,18 @@ Variables related to summary movement:
 
 @vindex gnus-auto-select-next
 @item gnus-auto-select-next
-If you are at the end of the group and issue one of the movement
-commands, Gnus will offer to go to the next group.  If this variable is
-@code{t} and the next group is empty, Gnus will exit summary mode and
-return to the group buffer.  If this variable is neither @code{t} nor
-@code{nil}, Gnus will select the next group, no matter whether it has
-any unread articles or not.  As a special case, if this variable is
-@code{quietly}, Gnus will select the next group without asking for
-confirmation.  If this variable is @code{almost-quietly}, the same will
-happen only if you are located on the last article in the group.
-Finally, if this variable is @code{slightly-quietly}, the @kbd{Z n}
-command will go to the next group without confirmation.  Also
-@pxref{Group Levels}.
+If you issue one of the movement commands (like @kbd{n}) and there are
+no more unread articles after the current one, Gnus will offer to go to
+the next group.  If this variable is @code{t} and the next group is
+empty, Gnus will exit summary mode and return to the group buffer.  If
+this variable is neither @code{t} nor @code{nil}, Gnus will select the
+next group, no matter whether it has any unread articles or not.  As a
+special case, if this variable is @code{quietly}, Gnus will select the
+next group without asking for confirmation.  If this variable is
+@code{almost-quietly}, the same will happen only if you are located on
+the last article in the group.  Finally, if this variable is
+@code{slightly-quietly}, the @kbd{Z n} command will go to the next group
+without confirmation.  Also @pxref{Group Levels}.
 
 @item gnus-auto-select-same
 @vindex gnus-auto-select-same
@@ -3434,11 +3559,25 @@ Mail a reply to the author of the current article and include the
 original message (@code{gnus-summary-reply-with-original}).  This
 command uses the process/prefix convention.
 
+@item S w
+@kindex S w (Summary)
+@findex gnus-summary-wide-reply
+Mail a wide reply to the author of the current article
+(@code{gnus-summary-wide-reply}). 
+
+@item S W
+@kindex S W (Summary)
+@findex gnus-summary-wide-reply-with-original
+Mail a wide reply to the current article and include the original
+message (@code{gnus-summary-reply-with-original}).  This command uses
+the process/prefix convention.
+
 @item S o m
 @kindex S o m (Summary)
 @findex gnus-summary-mail-forward
 Forward the current article to some other person
-(@code{gnus-summary-mail-forward}). 
+(@code{gnus-summary-mail-forward}).  If given a prefix, include the full
+headers of the forwarded article.
 
 @item S m
 @itemx m
@@ -3477,7 +3616,10 @@ This command is mainly used if you have several accounts and want to
 ship a mail to a different account of yours.  (If you're both
 @code{root} and @code{postmaster} and get a mail for @code{postmaster}
 to the @code{root} account, you may want to resend it to
-@code{postmaster}.  Ordnung muss sein!
+@code{postmaster}.  Ordnung muß sein!
+
+This command understands the process/prefix convention
+(@pxref{Process/Prefix}). 
 
 @item S O m
 @kindex S O m (Summary)
@@ -3509,7 +3651,7 @@ command understands the process/prefix convention
 @cindex post
 @cindex composing news
 
-Commands for posting an article:
+Commands for posting a news article:
 
 @table @kbd
 @item S p
@@ -3536,11 +3678,26 @@ Post a followup to the current article and include the original message
 (@code{gnus-summary-followup-with-original}).   This command uses the
 process/prefix convention.
 
+@item S n
+@kindex S n (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)
+@findex gnus-summary-followup-to-mail
+Post a followup to the current article via news, even if you got the
+message through mail and include the original message
+(@code{gnus-summary-followup-to-mail-with-original}).  This command uses
+the process/prefix convention.
+
 @item S o p
 @kindex S o p (Summary)
 @findex gnus-summary-post-forward
 Forward the current article to a newsgroup
-(@code{gnus-summary-post-forward}).
+(@code{gnus-summary-post-forward}).  If given a prefix, include the full
+headers of the forwarded article.
 
 @item S O p
 @kindex S O p (Summary)
@@ -3595,7 +3752,7 @@ have posted almost the same article twice.
 If you have just posted the article, and change your mind right away,
 there is a trick you can use to cancel/supersede the article without
 waiting for the article to appear on your site first.  You simply return
-to the post buffer (which is called @code{*post-buf*}).  There you will
+to the post buffer (which is called @code{*sent ...*}).  There you will
 find the article you just posted, with all the headers intact.  Change
 the @code{Message-ID} header to a @code{Cancel} or @code{Supersedes}
 header by substituting one of those words for the word
@@ -3760,7 +3917,7 @@ You can set a bookmark in the current article.  Say you are reading a
 long thesis on cats' urinary tracts, and have to go home for dinner
 before you've finished reading the thesis.  You can then set a bookmark
 in the article, and Gnus will jump to this bookmark the next time it
-encounters the article.
+encounters the article.  @xref{Setting Marks}
 
 @item
 @vindex gnus-replied-mark
@@ -4090,6 +4247,14 @@ dormant articles will also be excluded.
 Ask for a mark and then limit to all articles that have not been marked
 with that mark (@code{gnus-summary-limit-to-marks}).
 
+@item / t
+@kindex / t (Summary)
+@findex gnus-summary-limit-to-age
+Ask for a number and then limit the summary buffer to articles that are
+older than (or equal to) that number of days
+(@code{gnus-summary-limit-to-marks}).  If given a prefix, limit to
+articles that are younger than that number of days.
+
 @item / n
 @kindex / n (Summary)
 @findex gnus-summary-limit-to-articles
@@ -4209,8 +4374,8 @@ variable is @code{nil}, Gnus requires an exact match between the
 subjects of the loose threads before gathering them into one big
 super-thread.  This might be too strict a requirement, what with the
 presence of stupid newsreaders that chop off long subjects lines.  If
-you think so, set this variable to, say, @code{20} to require that only the
-first @code{20} characters of the subjects have to match.  If you set this
+you think so, set this variable to, say, 20 to require that only the
+first 20 characters of the subjects have to match.  If you set this
 variable to a really low number, you'll find that Gnus will gather
 everything in sight into one thread, which isn't very helpful.
 
@@ -4227,7 +4392,7 @@ simplification is used.
 @item gnus-simplify-ignored-prefixes
 @vindex gnus-simplify-ignored-prefixes
 If you set @code{gnus-summary-gather-subject-limit} to something as low
-as @code{10}, you might consider setting this variable to something sensible:
+as 10, you might consider setting this variable to something sensible:
 
 @c Written by Michael Ernst <mernst@cs.rice.edu>
 @lisp
@@ -4342,6 +4507,13 @@ Don't gather loose threads.
 If non-@code{nil}, all threads will be hidden when the summary buffer is
 generated.
 
+@item gnus-thread-expunge-below
+@vindex gnus-thread-expunge-below
+All threads that have a total score (as defined by
+@code{gnus-thread-score-function}) less than this number will be
+expunged.  This variable is @code{nil} by default, which means that no
+threads are expunged.
+
 @item gnus-thread-hide-killed
 @vindex gnus-thread-hide-killed
 if you kill a thread and this variable is non-@code{nil}, the subtree
@@ -4357,7 +4529,15 @@ in a new thread.
 @item gnus-thread-indent-level
 @vindex gnus-thread-indent-level
 This is a number that says how much each sub-thread should be indented.
-The default is @code{4}.
+The default is 4.
+
+@item gnus-parse-headers-hook
+@vindex gnus-parse-headers-hook
+Hook run before parsing any headers.  The default value is
+@code{(gnus-decode-rfc1522)}, which means that QPized headers will be
+slightly decoded in a hackish way.  This is likely to change in the
+future when Gnus becomes @sc{MIME}ified.
+
 @end table
 
 
@@ -4372,7 +4552,7 @@ The default is @code{4}.
 @kindex T k (Summary)
 @kindex M-C-k (Summary)
 @findex gnus-summary-kill-thread
-Mark all articles in the current sub-thread as read
+Mark all articles in the current (sub-)thread as read
 (@code{gnus-summary-kill-thread}).  If the prefix argument is positive,
 remove all marks instead.  If the prefix argument is negative, tick
 articles instead.
@@ -4382,25 +4562,25 @@ articles instead.
 @kindex T l (Summary)
 @kindex M-C-l (Summary)
 @findex gnus-summary-lower-thread
-Lower the score of the current thread
+Lower the score of the current (sub-)thread
 (@code{gnus-summary-lower-thread}). 
 
 @item T i
 @kindex T i (Summary)
 @findex gnus-summary-raise-thread
-Increase the score of the current thread
+Increase the score of the current (sub-)thread
 (@code{gnus-summary-raise-thread}).
 
 @item T #
 @kindex T # (Summary)
 @findex gnus-uu-mark-thread
-Set the process mark on the current thread
+Set the process mark on the current (sub-)thread
 (@code{gnus-uu-mark-thread}).
 
 @item T M-#
 @kindex T M-# (Summary)
 @findex gnus-uu-unmark-thread
-Remove the process mark from the current thread
+Remove the process mark from the current (sub-)thread
 (@code{gnus-uu-unmark-thread}).
 
 @item T T
@@ -4411,13 +4591,13 @@ Toggle threading (@code{gnus-summary-toggle-threads}).
 @item T s
 @kindex T s (Summary)
 @findex gnus-summary-show-thread
-Expose the thread hidden under the current article, if any
+Expose the (sub-)thread hidden under the current article, if any
 (@code{gnus-summary-show-thread}).
 
 @item T h
 @kindex T h (Summary)
 @findex gnus-summary-hide-thread
-Hide the current (sub)thread (@code{gnus-summary-hide-thread}).
+Hide the current (sub-)thread (@code{gnus-summary-hide-thread}).
 
 @item T S
 @kindex T S (Summary)
@@ -4589,10 +4769,10 @@ while you are reading the previous one?  Why not, indeed.
 First, some caveats.  There are some pitfalls to using asynchronous
 article fetching, especially the way Gnus does it.  
 
-Let's say you are reading article @code{1}, which is short, and article @code{2} is
+Let's say you are reading article 1, which is short, and article 2 is
 quite long, and you are not interested in reading that.  Gnus does not
-know this, so it goes ahead and fetches article @code{2}.  You decide to read
-article @code{3}, but since Gnus is in the process of fetching article @code{2}, the
+know this, so it goes ahead and fetches article 2.  You decide to read
+article 3, but since Gnus is in the process of fetching article 2, the
 connection is blocked.
 
 To avoid these situations, Gnus will open two (count 'em two)
@@ -4615,9 +4795,9 @@ happen automatically.
 
 @vindex gnus-use-article-prefetch
 You can control how many articles that are to be pre-fetched by setting
-@code{gnus-use-article-prefetch}.  This is @code{30} by default, which means
+@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 @code{30} articles.  If this variable is @code{t}, the backend will
+the next 30 articles.  If this variable is @code{t}, the backend will
 pre-fetch all the articles that it can without bound.  If it is
 @code{nil}, no pre-fetching will be made.
 
@@ -4632,14 +4812,14 @@ pre-fetched.  The default is @code{gnus-async-read-p}, which returns
 data structure as the only parameter.
 
 If, for instance, you wish to pre-fetch only unread articles that are
-shorter than @code{100} lines, you could say something like:
+shorter than 100 lines, you could say something like:
 
 @lisp
 (defun my-async-short-unread-p (data)
   "Return non-nil for short, unread articles."
   (and (gnus-data-unread-p data)
        (< (mail-header-lines (gnus-data-header data))
-         100)))
+          100)))
 
 (setq gnus-async-prefetch-article-p 'my-async-short-unread-p)
 @end lisp
@@ -4713,9 +4893,9 @@ symbols in these two lists are @code{ticked}, @code{dormant},
 So where does the massive article-fetching and storing come into the
 picture?  The @code{gnus-jog-cache} command will go through all
 subscribed newsgroups, request all unread articles, and store them in
-the cache.  You should only ever, ever ever ever, use this command if @code{1})
+the cache.  You should only ever, ever ever ever, use this command if 1)
 your connection to the @sc{nntp} server is really, really, really slow
-and @code{2}) you have a really, really, really huge disk.  Seriously.
+and 2) you have a really, really, really huge disk.  Seriously.
 
 @vindex gnus-uncacheable-groups
 It is likely that you do not want caching on some groups.  For instance,
@@ -4855,6 +5035,12 @@ Save the current article in rmail format
 Save the current article in plain file format
 (@code{gnus-summary-save-article-file}). 
 
+@item O F
+@kindex O F (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)
 @findex gnus-summary-save-article-body-file
@@ -5265,6 +5451,13 @@ View the file.
 Move the file (if you're using a saving function.)
 @end table
 
+@item gnus-uu-be-dangerous
+@vindex gnus-uu-be-dangerous
+Specifies what to do if unusual situations arise during decoding.  If
+@code{nil}, be as conservative as possible.  If @code{t}, ignore things
+that didn't work, and overwrite existing files.  Otherwise, ask each
+time.
+
 @item gnus-uu-ignore-files-by-name
 @vindex gnus-uu-ignore-files-by-name
 Files with name matching this regular expression won't be viewed.
@@ -5425,6 +5618,7 @@ these articles easier.
 
 @menu
 * Article Highlighting::    You want to make the article look like fruit salad.
+* Article Fontisizing::     Making emphasized text look niced.
 * Article Hiding::          You also want to make certain info go away.
 * Article Washing::         Lots of way-neat functions to make life better.
 * Article Buttons::         Click on URLs, Message-IDs, addresses and the like.
@@ -5532,6 +5726,58 @@ default.
 @end table
 
 
+@node Article Fontisizing
+@subsection Article Fontisizing
+@cindex emphasis
+@cindex article emphasis
+
+@findex gnus-article-emphasize
+@kindex W e (Summary)
+People commonly add emphasis to words in news articles by writing things
+like @samp{_this_} or @samp{*this*}.  Gnus can make this look nicer by
+running the article through the @kbd{W e}
+(@code{gnus-article-emphasize}) command.
+
+@vindex gnus-article-emphasis
+How the emphasis is computed is controlled by the
+@code{gnus-article-emphasis} variable.  This is an alist where the first
+element is a regular expression to be matched.  The second is a number
+that says what regular expression grouping used to find the entire
+emphasized word.  The third is a number that says what regexp grouping
+should be displayed and highlighted.  (The text between these two
+groupings will be hidden.)  The fourth is the face used for
+highlighting.
+
+@lisp
+(setq gnus-article-emphasis
+      '(("_\\(\\w+\\)_" 0 1 gnus-emphasis-underline)
+        ("\\*\\(\\w+\\)\\*" 0 1 gnus-emphasis-bold)))
+@end lisp
+
+@vindex gnus-emphasis-underline
+@vindex gnus-emphasis-bold
+@vindex gnus-emphasis-italic
+@vindex gnus-emphasis-underline-bold
+@vindex gnus-emphasis-underline-italic
+@vindex gnus-emphasis-bold-italic
+@vindex gnus-emphasis-underline-bold-italic
+By default, there are seven rules, and they use the following faces:
+@code{gnus-emphasis-bold}, @code{gnus-emphasis-italic},
+@code{gnus-emphasis-underline}, @code{gnus-emphasis-bold-italic},
+@code{gnus-emphasis-underline-italic},
+@code{gnus-emphasis-undeline-bold}, and
+@code{gnus-emphasis-underline-bold-italic}.  
+
+If you want to change these faces, you can either use @kbd{M-x
+customize}, or you can use @code{copy-face}.  For instance, if you want
+to make @code{gnus-emphasis-italic} use a red face instead, you could
+say something like:
+
+@lisp
+(copy-face 'red 'gnus-emphasis-italic)
+@end lisp
+
+
 @node Article Hiding
 @subsection Article Hiding
 @cindex article hiding
@@ -5689,6 +5935,9 @@ Do word wrap (@code{gnus-article-fill-cited-article}).  If you use this
 function in @code{gnus-article-display-hook}, it should be run fairly
 late and certainly after any highlighting.
 
+You can give the command a numerical prefix to specify the width to use
+when filling.
+
 @item W c
 @kindex W c (Summary)
 @findex gnus-article-remove-cr
@@ -5794,7 +6043,7 @@ external reference.  Here's a typical regexp that match embedded URLs:
 @item button-par
 Gnus has to know which parts of the match is to be highlighted.  This is
 a number that says what sub-expression of the regexp that is to be
-highlighted.  If you want it all highlighted, you use @code{0} here.
+highlighted.  If you want it all highlighted, you use 0 here.
 
 @item use-p
 This form will be @code{eval}ed, and if the result is non-@code{nil},
@@ -5864,6 +6113,17 @@ Display the date in UT (aka. GMT, aka ZULU)
 @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)
+@vindex gnus-article-time-format
+@findex gnus-article-date-user
+@findex format-time-string
+Display the date using a user-defined format
+(@code{gnus-article-date-user}).  The format is specified by the
+@code{gnus-article-time-format} variable, and is a string that's passed
+to @code{format-time-string}.  See the documentation of that variable
+for a list possible format specs.
+
 @item W T e
 @kindex W T e (Summary)
 @findex gnus-article-date-lapsed
@@ -5934,6 +6194,22 @@ This variable can also be a list where the elements may be of the types
 listed above.  
 
 
+@node Article Commands
+@section Article Commands
+
+@table @kbd
+
+@item A P
+@cindex PostScript
+@cindex printing
+@kindex A P (Summary)
+@findex gnus-summary-print-article 
+Generate and print a PostScript image of the article buffer
+(@code{gnus-summary-print-article}).
+
+@end table
+
+
 @node Summary Sorting
 @section Summary Sorting
 @cindex summary sorting
@@ -5963,6 +6239,11 @@ Sort by subject (@code{gnus-summary-sort-by-subject}).
 @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)
+@findex gnus-summary-sort-by-lines
+Sort by lines (@code{gnus-summary-sort-by-lines}).
+
 @item C-c C-s C-i
 @kindex C-c C-s C-i (Summary)
 @findex gnus-summary-sort-by-score
@@ -6008,6 +6289,8 @@ header of the article by pushing @kbd{A R}
 
 @findex gnus-summary-refer-article
 @kindex M-^ (Summary)
+@cindex Message-ID
+@cindex fetching by Message-ID
 You can also ask the @sc{nntp} server for an arbitrary article, no
 matter what group it belongs to.  @kbd{M-^}
 (@code{gnus-summary-refer-article}) will ask you for a
@@ -6319,7 +6602,7 @@ Expire all expirable articles in the group
 @item B M-C-e
 @kindex B M-C-e (Summary)
 @findex gnus-summary-expire-articles-now
-Expunge all the expirable articles in the group
+Delete all the expirable articles in the group
 (@code{gnus-summary-expire-articles-now}).  This means that @strong{all}
 articles that are eligible for expiry in the current group will
 disappear forever into that big @file{/dev/null} in the sky.
@@ -6365,6 +6648,9 @@ name, a @code{From} header and a @code{Subject} header.
 @kindex B r (Summary)
 @findex gnus-summary-respool-article
 Respool the mail article (@code{gnus-summary-move-article}).
+@code{gnus-summary-respool-default-method} will be used as the default
+select method when respooling.  This variable is @code{nil} by default,
+which means that the current group select method will be used instead.
 
 @item B w
 @itemx e
@@ -6407,6 +6693,13 @@ 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.
 
+@lisp
+(setq gnus-move-split-methods
+      '(("^From:.*Lars Magne" "nnml:junk")
+        ("^Subject:.*gnus" "nnfolder:important")
+        (".*" "nnml:misc")))
+@end lisp
+
 
 @node Various Summary Stuff
 @section Various Summary Stuff
@@ -6594,7 +6887,8 @@ Exit the current group and update all information on the group
 called before doing much of the exiting, and calls
 @code{gnus-summary-expire-articles} by default.
 @code{gnus-summary-exit-hook} is called after finishing the exiting
-process. 
+process.  @code{gnus-group-no-more-groups-hook} is run when returning to
+group mode having no more (unread) groups.
 
 @item Z E
 @itemx Q
@@ -6651,6 +6945,14 @@ Exit the group and go to the next group
 @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)
+@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
+given a prefix, also save the @file{.newsrc} file(s).  Using this
+command will make exit without updating (the @kbd{Q} command) worthless.
 @end table
 
 @vindex gnus-exit-group-hook
@@ -7001,7 +7303,8 @@ By default this hook just contains @code{gnus-article-hide-headers},
 millions, of functions you can put in this hook.  For an overview of
 functions @pxref{Article Highlighting}, @pxref{Article Hiding},
 @pxref{Article Washing}, @pxref{Article Buttons} and @pxref{Article
-Date}.
+Date}.  Note that the order of functions in this hook might affect
+things, so you may have to fiddle a bit to get the desired results. 
 
 You can, of course, write your own functions.  The functions are called
 from the article buffer, and you can do anything you like, pretty much.
@@ -7100,6 +7403,11 @@ hiding headers, and the like.
 @vindex gnus-article-mode-hook
 Hook called in article mode buffers.
 
+@item gnus-article-mode-syntax-table
+@vindex gnus-article-mode-syntax-table
+Syntax table used in article buffers.  It is initialized from
+@code{text-mode-syntax-table}. 
+
 @vindex gnus-article-mode-line-format
 @item gnus-article-mode-line-format
 This variable is a format string along the same lines as
@@ -7607,7 +7915,7 @@ use, and what parameters to set by specifying a @dfn{select method}.
 
 These select methods 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 @code{13}, which
+@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
 server, that would be too much work, so Gnus offers a way of naming
@@ -7722,6 +8030,13 @@ Request that the server scan its sources for new articles
 (@code{gnus-server-scan-server}).  This is mainly sensible with mail
 servers. 
 
+@item g
+@kindex g (Server)
+@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.
+
 @end table
 
 
@@ -7748,7 +8063,7 @@ After these two elements, there may be a arbitrary number of
 @var{(variable form)} pairs.
 
 To go back to the first example---imagine that you want to read from
-port @code{15} from that machine.  This is what the select method should
+port 15 from that machine.  This is what the select method should
 look like then:
 
 @lisp
@@ -7778,6 +8093,22 @@ Here's the method for a public spool:
       (nnmh-get-new-mail nil))
 @end lisp
 
+If you are behind a firewall and only have access to the @sc{nntp}
+server from the firewall machine, you can instruct Gnus to @code{rlogin}
+on the firewall machine and telnet from there to the @sc{nntp} server.
+Doing this can be rather fiddly, but your virtual server definition
+should probably look something like this:
+
+@lisp
+(nntp "firewall"
+      (nntp-address "the.firewall.machine")
+      (nntp-open-connection-function nntp-open-rlogin)
+      (nntp-end-of-line "\n")
+      (nntp-rlogin-parameters
+       ("telnet" "the.real.nntp.host" "nntp")))
+@end lisp
+
+
 
 @node Creating a Virtual Server
 @subsection Creating a Virtual Server
@@ -8030,8 +8361,8 @@ server.
 
 @findex nntp-open-rlogin
 @findex nntp-open-network-stream
-@item nntp-open-server-function
-@vindex nntp-open-server-function
+@item nntp-open-connection-function
+@vindex nntp-open-connection-function
 This function is used to connect to the remote system.  Two pre-made
 functions are @code{nntp-open-network-stream}, which is the default, and
 simply connects to some port or other on the remote system.  The other
@@ -8041,7 +8372,7 @@ and then does a telnet to the @sc{nntp} server available there.
 @item nntp-rlogin-parameters
 @vindex nntp-rlogin-parameters
 If you use @code{nntp-open-rlogin} as the
-@code{nntp-open-server-function}, this list will be used as the
+@code{nntp-open-connection-function}, this list will be used as the
 parameter list given to @code{rsh}.
 
 @item nntp-end-of-line
@@ -8275,8 +8606,11 @@ argument.  It should return a non-@code{nil} value if it thinks that the
 mail belongs in that group.
 
 The last of these groups should always be a general one, and the regular
-expression should @emph{always} be @samp{} so that it matches any
-mails that haven't been matched by any of the other regexps.
+expression should @emph{always} be @samp{} so that it matches any mails
+that haven't been matched by any of the other regexps.  (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".)
 
 If you like to tinker with this yourself, you can set this variable to a
 function of your choice.  This function will be called without any
@@ -8353,6 +8687,10 @@ password, you can either set @code{nnmail-pop-password-required} to
 @code{t} and be prompted for the password, or set
 @code{nnmail-pop-password} to the password itself.
 
+Your Emacs has to have been configured with @samp{--with-pop} before
+compilation.  This is the default, but some installations have it
+switched off.
+
 When you use a mail backend, 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
@@ -8389,7 +8727,7 @@ Hook run in the buffer where the mail headers of each message is kept
 just before the splitting based on these headers is done.  The hook is
 free to modify the buffer contents in any way it sees fit---the buffer
 is discarded after the splitting has been done, and no changes performed
-in the buffer will show up in any files.  @code{article-decode-rfc1522}
+in the buffer will show up in any files.  @code{gnus-article-decode-rfc1522}
 is one likely function to add to this hook.
 
 @vindex nnmail-pre-get-new-mail-hook
@@ -8435,11 +8773,12 @@ If non-@code{nil}, the mail backends will delete the temporary incoming
 file after splitting mail into the proper groups.  This is @code{nil} by
 default for reasons of security.
 
-Since Red Gnus is an alpha release, it is to be expected to lose mail.
+@c Since Red Gnus is an alpha release, it is to be expected to lose mail.
 (No Gnus release since (ding) Gnus 0.10 (or something like that) have
-lost mail, I think, but that's not the point.)  By not deleting the
-Incoming* files, one can be sure to not lose mail -- if Gnus totally
-whacks out, one can always recover what was lost.
+lost mail, I think, but that's not the point.  (Except certain versions
+of Red Gnus.))  By not deleting the Incoming* files, one can be sure to
+not lose mail -- if Gnus totally whacks out, one can always recover what
+was lost.
 
 Delete the @file{Incoming*} files at will.
 
@@ -8489,7 +8828,7 @@ Let's look at an example value of this variable first:
       ;; People...
       (any "larsi@@ifi\\.uio\\.no" "people.Lars Magne Ingebrigtsen"))
    ;; Unmatched mail goes to the catch all group.
-   "misc.misc"))")
+   "misc.misc")
 @end lisp
 
 This variable has the format of a @dfn{split}.  A split is a (possibly)
@@ -8521,23 +8860,39 @@ be stored in one or more groups.
 @code{junk}: If the split is the symbol @code{junk}, then don't save
 this message anywhere.
 
+@item
+@var{(: function arg1 arg2 ...)}:  If the split is a list, and the first
+element is @code{:}, then the second element will be called as a
+function with @var{args} given as arguments.  The function should return
+a SPLIT.
+
 @end enumerate
 
-In these splits, FIELD must match a complete field name.  VALUE must
-match a complete word according to the fundamental mode syntax table.
-You can use @code{.*} in the regexps to match partial field names or
-words.
+In these splits, @var{FIELD} must match a complete field name.
+@var{VALUE} must match a complete word according to the fundamental mode
+syntax table.  You can use @code{.*} in the regexps to match partial
+field names or words.  In other words, all @var{VALUE}'s are wrapped in
+@samp{\<} and @samp{\>} pairs.
 
 @vindex nnmail-split-abbrev-alist
-FIELD and VALUE can also be lisp symbols, in that case they are expanded
-as specified by the variable @code{nnmail-split-abbrev-alist}.  This is
-an alist of cons cells, where the car of the cells contains the key, and
-the cdr contains a string.
+@var{FIELD} and @var{VALUE} can also be lisp symbols, in that case they
+are expanded as specified by the variable
+@code{nnmail-split-abbrev-alist}.  This is an alist of cons cells, where
+the car of the cells contains the key, and the cdr contains a string.
 
 @vindex nnmail-split-fancy-syntax-table
 @code{nnmail-split-fancy-syntax-table} is the syntax table in effect
 when all this splitting is performed.
 
+If you want to have Gnus create groups dynamically based on some
+information in the headers, you can say things like:
+
+@example
+(any "debian-\(\\w*\\)@@lists.debian.org" "mail.debian.\\1")
+@end example
+
+That is, do @code{replace-match}-like substitions in the group names. 
+
 
 @node Mail and Procmail
 @subsection Mail and Procmail
@@ -8696,6 +9051,12 @@ have all articles that you read marked as expirable automatically.  All
 articles that are marked as expirable have an @samp{E} in the first
 column in the summary buffer.
 
+Note that making a group auto-expirable don't mean that all read
+articles are expired---only the articles that are marked as expirable
+will be expired.  Also note the using the @kbd{d} command won't make
+groups expirable---only semi-automatic marking of articles as read will
+mark the articles as expirable in auto-expirable groups.
+
 Let's say you subscribe to a couple of mailing lists, and you want the
 articles you have read to disappear after a while:
 
@@ -8707,6 +9068,10 @@ articles you have read to disappear after a while:
 Another way to have auto-expiry happen is to have the element
 @code{auto-expire} in the group parameters of the group. 
 
+If you use adaptive scoring (@pxref{Adaptive Scoring}) and
+auto-expiring, you'll have problems.  Auto-expiring and adaptive scoring
+doesn't really mix very well.  
+
 @vindex nnmail-expiry-wait
 The @code{nnmail-expiry-wait} variable supplies the default time an
 expirable article has to live.  The default is seven days.  
@@ -8762,6 +9127,8 @@ wrong group and all your important mail has disappeared.  Be a
 @emph{man}!  Or a @emph{woman}!  Whatever you feel more comfortable
 with!  So there!
 
+Most people make most of their mail groups total-expirable, though. 
+
 
 @node Washing Mail
 @subsection Washing Mail
@@ -9076,7 +9443,9 @@ If your @code{nnml} groups and @sc{nov} files get totally out of whack,
 you can do a complete update by typing @kbd{M-x
 nnml-generate-nov-databases}.  This command will trawl through the
 entire @code{nnml} hierarchy, looking at each and every article, so it
-might take a while to complete.
+might take a while to complete.  A better interface to this
+functionality can be found in the server buffer (@pxref{Server
+Commands}). 
 
 
 @node MH Spool
@@ -9490,12 +9859,45 @@ A file format called @sc{soup} has been developed for transporting news
 and mail from servers to home machines and back again.  It can be a bit
 fiddly.
 
+First some terminology:
+
+@table @dfn
+
+@item server
+This is the machine that is connected to the outside world and where you
+get news and/or mail from.
+
+@item home machine
+This is the machine that you want to do the actual reading and responding
+on.  It is typically not connected to the rest of the world in any way.
+
+@item packet
+Something that contains messages and/or commands.  There are two kinds
+of packets:
+
+@table @dfn
+@item message packets
+These are packets made at the server, and typically contains lots of
+messages for you to read.  These are called @file{SoupoutX.tgz} by
+default, where @var{X} is a number.
+
+@item response packets
+These are packets made at the home machine, and typically contains
+replies that you've written.  These are called @file{SoupinX.tgz} by
+default, where @var{X} is a number.
+
+@end table
+
+@end table
+
+
 @enumerate
 
 @item
 You log in on the server and create a @sc{soup} packet.  You can either
-use a dedicated @sc{soup} thingie, or you can use Gnus to create the
-packet with the @kbd{O s} command.
+use a dedicated @sc{soup} thingie (like the @code{awk} program), or you
+can use Gnus to create the packet with its @sc{soup} commands (@kbd{O
+s} and/or @kbd{G s b}; and then @kbd{G s p}) (@pxref{SOUP Commands}).
 
 @item 
 You transfer the packet home.  Rail, boat, car or modem will do fine.
@@ -9504,11 +9906,12 @@ 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 using the @code{nnsoup} backend as the native server.
+You fire up Gnus on your home machine using the @code{nnsoup} backend as
+the native or secondary server.
 
 @item
 You read articles and mail and answer and followup to the things you
-want.
+want (@pxref{SOUP Replies}).
 
 @item 
 You do the @kbd{G s r} command to pack these replies into a @sc{soup}
@@ -9538,6 +9941,8 @@ reading and Gnus for packing/sending these @sc{soup} packets.
 @node SOUP Commands
 @subsubsection SOUP Commands
 
+These are commands for creating and manipulating @sc{soup} packets.
+
 @table @kbd
 @item G s b
 @kindex G s b (Group)
@@ -9549,7 +9954,7 @@ process/prefix convention.
 @item G s w
 @kindex G s w (Group)
 @findex gnus-soup-save-areas
-Save all data files (@code{gnus-soup-save-areas}).
+Save all @sc{soup} data files (@code{gnus-soup-save-areas}).
 
 @item G s s
 @kindex G s s (Group)
@@ -9572,7 +9977,7 @@ Pack all replies into a replies packet (@code{nnsoup-pack-replies}).
 @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
-convention. 
+convention (@pxref{Process/Prefix})
 
 @end table
 
@@ -10011,13 +10416,14 @@ silently to help keep the sizes of the score files down.
 * Score Variables::          Customize your scoring.  (My, what terminology).
 * Score File Format::        What a score file may contain.
 * Score File Editing::       You can edit score files by hand as well.
-* Adaptive Scoring::         Big Sister Gnus @emph{knows} what you read.
+* Adaptive Scoring::         Big Sister Gnus knows what you read.
 * Home Score File::          How to say where new score entries are to go.
 * Followups To Yourself::    Having Gnus notice when people answer you.
 * Scoring Tips::             How to score effectively.
 * Reverse Scoring::          That problem child of old is not problem.
 * Global Score Files::       Earth-spanning, ear-splitting score files.
 * Kill Files::               They are still here, but they can be ignored.
+* Converting Kill Files::    Translating kill files to score files.
 * GroupLens::                Getting predictions on what you like to read.
 * Advanced Scoring::         Using logical expressions to build score rules.
 * Score Decays::             It can be useful to let scores wither away.
@@ -10343,6 +10749,12 @@ manually entered data.
 @vindex gnus-summary-default-score
 Default score of an article, which is 0 by default.
 
+@item gnus-summary-expunge-below
+@vindex gnus-summary-expunge-below
+Don't display the summary lines of articles that have scores lower than
+this variable.  This is @code{nil} by default, which means that no
+articles will be hidden.
+
 @item gnus-score-over-mark
 @vindex gnus-score-over-mark
 Mark (in the third column) used for articles with a score over the
@@ -10522,7 +10934,11 @@ instead, if you feel like.
 
 @item Lines, Chars
 These two headers use different match types: @code{<}, @code{>},
-@code{=}, @code{>=} and @code{<=}.
+@code{=}, @code{>=} and @code{<=}.  When matching on @code{Lines}, be
+careful because some backends (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.
 
 @item Date
 For the Date header we have three kinda silly match types:
@@ -10550,13 +10966,25 @@ These three match keys use the same match types as the @code{From} (etc)
 header uses.
 
 @item Followup
-This match key will add a score entry on all articles that followup to
-some author.  Uses the same match types as the @code{From} header uses.
+This match key is somewhat special, in that it will match the
+@code{From} header, and affect the score of not only the matching
+articles, but also all followups to the matching articles.  This allows
+you e.g. increase the score of followups to your own articles, or
+decrease the score of followups to the articles of some known
+trouble-maker.  Uses the same match types as the @code{From} header
+uses.
 
 @item Thread
-This match key will add a score entry on all articles that are part of
-a thread.  Uses the same match types as the @code{References} header
-uses.
+This match key works along the same lines as the @code{Followup} match
+key.  If you say that you want to score on a (sub-)thread that is
+started by an article with a @code{Message-ID} @var{X}, then you add a
+@samp{thread} match.  This will add a new @samp{thread} match for each
+article that has @var{X} in its @code{References} header.  (These new
+@samp{thread} matches will use the @code{Message-ID}s of these matching
+articles.)  This will ensure that you can raise/lower the score of an
+entire thread, even though some articles in the thread may not have
+complete @code{References} headers.  Note that using this may lead to
+undeterministic scores of the articles in the thread.
 @end table
 @end enumerate
 
@@ -10585,7 +11013,7 @@ are assumed to be score files as well, and will be loaded the same way
 this one was.
 
 @item exclude-files
-The clue of this entry should be any number of files.  This files will
+The clue of this entry should be any number of files.  These files will
 not be loaded, even though they would normally be so, for some reason or
 other. 
 
@@ -10753,6 +11181,11 @@ If you have marked 10 articles with the same subject with
 That means that that subject will get a score of ten times -1, which
 should be, unless I'm much mistaken, -10.
 
+If you have auto-expirable (mail) groups (@pxref{Expiring Mail}), all
+the read articles will be marked with the @samp{E} mark.  This'll
+probably make adaptive scoring slightly impossible, so auto-expiring and
+adaptive scoring doesn't really mix very well.
+
 The headers you can score on are @code{from}, @code{subject},
 @code{message-id}, @code{references}, @code{xref}, @code{lines},
 @code{chars} and @code{date}.  In addition, you can score on
@@ -10827,6 +11260,11 @@ After using this scheme for a while, it might be nice to write a
 @code{gnus-psychoanalyze-user} command to go through the rules and see
 what words you like and what words you don't like.  Or perhaps not.
 
+Note that the adaptive word scoring thing is highly experimental and is
+likely to change in the future.  Initial impressions seem to indicate
+that it's totally useless as it stands.  Some more work (involving more
+rigorous statistical methods) will have to be done to make this useful. 
+
 
 @node Home Score File
 @section Home Score File
@@ -10958,8 +11396,8 @@ exploited---the following rule will raise the score on all followups to
 myself: 
 
 @lisp
-("references" 
"<x6[0-9a-z]+\\.fsf@@.*eyesore.no>" 1000 nil r)
+("references"
("<x6[0-9a-z]+\\.fsf@.*eyesore.no>" 1000 nil r))
 @end lisp
 
 Whether it's the first two or first three characters that are ``yours''
@@ -11203,6 +11641,26 @@ A hook called in kill-file mode buffers.
 @end table
 
 
+@node Converting Kill Files
+@section Converting Kill Files
+@cindex kill files
+@cindex converting kill files
+
+If you have loads of old kill files, you may want to convert them into
+score files.  If they are ``regular'', you can use
+the @file{gnus-kill-to-score.el} package; if not, you'll have to do it
+by hand.
+
+The kill to score conversion package isn't included in Gnus by default.
+You can fetch it from
+@file{http://www.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}.  
+
+If your old kill files are very complex---if they contain more
+non-@code{gnus-kill} forms than not, you'll have to convert them by
+hand.  Or just let them be as they are.  Gnus will still use them as
+before. 
+
+
 @node GroupLens
 @section GroupLens
 @cindex GroupLens
@@ -12194,6 +12652,10 @@ this variable:
 
 If this variable is @code{nil} (which is the default), the mode line
 strings won't be chopped off, and they won't be padded either.
+Note that the default is unlikely to be desirable, as even the
+percentage complete in the buffer may be crowded off the mode line;
+the user should configure this variable appropriately for their
+configuration.
 
 
 @node Highlighting and Menus
@@ -12260,21 +12722,6 @@ Other general variables that influence the look of all buffers include:
 This is the face (i.e., font) used for mouse highlighting in Gnus.  No
 mouse highlights will be done if @code{gnus-visual} is @code{nil}.
 
-@item gnus-display-type
-@vindex gnus-display-type
-This variable is symbol indicating the display type Emacs is running
-under.  The symbol should be one of @code{color}, @code{grayscale} or
-@code{mono}.  If Gnus guesses this display attribute wrongly, either set
-this variable in your @file{~/.emacs} or set the resource
-@code{Emacs.displayType} in your @file{~/.Xdefaults}.
-
-@item gnus-background-mode 
-@vindex gnus-background-mode 
-This is a symbol indicating the Emacs background brightness.  The symbol
-should be one of @code{light} or @code{dark}.  If Gnus guesses this
-frame attribute wrongly, either set this variable in your @file{~/.emacs} or
-set the resource @code{Emacs.backgroundMode} in your @file{~/.Xdefaults}. 
-`gnus-display-type'.
 @end table
 
 There are hooks associated with the creation of all the different menus:
@@ -12416,7 +12863,7 @@ time.  Modified by the @var{idle} parameter, of course.
 
 @vindex gnus-demon-timestep
 (When I say ``minute'' here, I really mean @code{gnus-demon-timestep}
-seconds.  This is @code{60} by default.  If you change that variable,
+seconds.  This is 60 by default.  If you change that variable,
 all the timings in the handlers will be affected.)
 
 @vindex gnus-use-demon
@@ -12486,7 +12933,8 @@ by default.
 @item gnus-nocem-groups
 @vindex gnus-nocem-groups
 Gnus will look for NoCeM messages in the groups in this list.  The
-default is @code{("alt.nocem.misc" "news.admin.net-abuse.announce")}. 
+default is @code{("news.lists.filters" "news.admin.net-abuse.bulletins"
+"alt.nocem.misc" "news.admin.net-abuse.announce")}. 
 
 @item gnus-nocem-issuers
 @vindex gnus-nocem-issuers
@@ -12510,7 +12958,8 @@ Norwegian, and was the person(s) who invented NoCeM.
 
 @item jem@@xpat.com;
 @cindex Jem
-Jem---Korean despammer who is getting very busy these days.
+John Milburn---despammer located in Korea who is getting very busy these
+days.
 
 @item red@@redpoll.mrfs.oh.us (Richard E. Depew)
 Richard E. Depew---lone American despammer.  He mostly cancels binary
@@ -12520,6 +12969,14 @@ postings to non-binary groups and removes spews (regurgitated articles).
 You do not have to heed NoCeM messages from all these people---just the
 ones you want to listen to.
 
+@item gnus-nocem-verifyer
+@vindex gnus-nocem-verifyer
+@findex mc-verify
+This should be a function for verifying that the NoCeM issuer is who she
+says she is.  The default is @code{mc-verify}, which is a Mailcrypt
+function.  If this is too slow and you don't care for verification
+(which may be dangerous), you can set this variable to @code{nil}.
+
 @item gnus-nocem-directory
 @vindex gnus-nocem-directory
 This is where Gnus will store its NoCeM cache files.  The default is
@@ -12885,7 +13342,7 @@ to the Gnus backends 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
-as little as possible.  This variable (default @code{4096}) specifies
+as little as possible.  This variable (default 4096) specifies
 the absolute max length the backends 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
@@ -13005,12 +13462,21 @@ renamed it back again to ``Gnus''.  But in mixed case.  ``Gnus'' vs.
 ``@sc{gnus}''.  New vs. old.
 
 The first ``proper'' release of Gnus 5 was done in November 1995 when it
-was included in the Emacs 19.30 distribution.
+was included in the Emacs 19.30 distribution (132 (ding) Gnus releases
+plus 15 Gnus 5.0 releases).
+
+In May 1996 the next Gnus generation (aka. ``September Gnus'' (after 99
+releases)) was released under the name ``Gnus 5.2'' (40 releases).
 
-In May 1996 the next Gnus generation (aka.  ``September Gnus'') was
-released under the name ``Gnus 5.2''.  
+On July 28th 1996 work on Red Gnus was begun, and it was released on
+January 25th 1997 (after 84 releases) as ``Gnus 5.4''.
 
-On July 28th 1996 work on Red Gnus was begun.
+If you happen upon a version of Gnus that has a name that is prefixed --
+``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' --
+don't panic.  Don't let it know that you're frightened.  Back away.
+Slowly.  Whatever you do, don't run.  Walk away, calmly, until you're
+out of its reach.  Find a proper released version of Gnus and snuggle up
+to that instead.
 
 @menu
 * Why?::                What's the point of Gnus?
@@ -13154,14 +13620,6 @@ consumer information.  After seeing so many badly formatted articles
 coming from @code{tin} and @code{Netscape} I know not to use either of
 those for posting articles.  I would not have known that if it wasn't
 for the @code{X-Newsreader} header.
-
-@item References
-Gnus does line breaking on this header.  I infer from RFC1036 that being
-conservative in what you output is not creating 5000-character lines, so
-it seems like a good idea to me.  However, this standard-to-be says that
-whitespace in the @code{References} header is to be preserved, so...  It
-doesn't matter one way or the other to Gnus, so if somebody tells me
-what The Way is, I'll change it.  Or not.
 @end table
 
 @end table
@@ -13183,43 +13641,23 @@ Gnus should work on :
 @itemize @bullet 
 
 @item
-Emacs 19.30 and up.
+Emacs 19.32 and up.
 
 @item
-XEmacs 19.13 and up.
+XEmacs 19.14 and up.
 
 @item 
-Mule versions based on Emacs 19.30 and up.
+Mule versions based on Emacs 19.32 and up.
 
 @end itemize
 
 Gnus will absolutely not work on any Emacsen older than that.  Not
 reliably, at least. 
 
-There are some vague differences between Gnus on the various platforms: 
-
-@itemize @bullet
-
-@item
-The mouse-face on Gnus lines under Emacs and Mule is delimited to
-certain parts of the lines while they cover the entire line under
-XEmacs. 
-
-@item 
-The same with current-article marking---XEmacs puts an underline under
-the entire summary line while Emacs and Mule are nicer and kinder.
-
-@item
-XEmacs features more graphics---a logo and a toolbar.
-
-@item
-Citation highlighting us better under Emacs and Mule than under XEmacs.
-
-@item
-Emacs 19.26-19.28 have tangible hidden headers, which can be a bit
-confusing. 
-
-@end itemize
+There are some vague differences between Gnus on the various
+platforms---XEmacs features more graphics (a logo and a toolbar)---but
+other than that, things should look pretty much the same under all
+Emacsen. 
 
 
 @node Contributors
@@ -13252,6 +13690,9 @@ well as numerous other things).
 @item 
 Luis Fernandes---design and graphics.
 
+@item
+Erik Naggum---help, ideas, support, code and stuff.
+
 @item 
 Wes Hardaker---@file{gnus-picon.el} and the manual section on
 @dfn{picons} (@pxref{Picons}).
@@ -13292,6 +13733,9 @@ Hallvard B Furuseth---various bits and pieces, especially dealing with
 @item 
 Brian Edmonds---@file{gnus-bbdb.el}.
 
+@item
+David Moore---rewrite of @file{nnvirtual.el} and many other things. 
+
 @item 
 Ricardo Nassif, Mark Borges, and Jost Krieger---proof-reading.
 
@@ -13320,18 +13764,23 @@ Also thanks to the following for patches and stuff:
 
 Peter Arius, 
 Marc Auslander,
+Chris Bone,
 Mark Borges,
 Lance A. Brown,
+Kees de Bruin,
 Martin Buchholz,
+Kevin Buhr,
 Alastair Burt,
 Joao Cachopo,
 Massimo Campostrini,
-Michael Cook,
+Michael R. Cook,
 Glenn Coombs, 
 Frank D. Cringle, 
 Geoffrey T. Dairiki,
+Andre Deparade,
 Ulrik Dickow,
 Dave Disser,
+Joev Dubach,
 Paul Eggert,
 Michael Ernst,
 Luc Van Eycken,
@@ -13342,33 +13791,54 @@ D. Hall,
 Magnus Hammerin,
 Raja R. Harinath,
 Marc Horowitz,
-Ishikawa Ichiro,
+Ishikawa Ichiro, @c Ishikawa
 Francois Felix Ingrand,
 Lee Iverson, 
+Rajappa Iyer,
+Randell Jesup,
 Fred Johansen, 
+Greg Klanderman,
+Peter Skov Knudsen,
+Shuhei Kobayashi, @c Kobayashi
 Thor Kristoffersen,
 Jens Lautenbacher,
+Carsten Leonhardt,
 Christian Limpach,
+Markus Linnala,
+Dave Love,
+Tonny Madsen,
+Shlomo Mahlab,
 Nat Makarevitch,
 Timo Metzemakers,
 Richard Mlynarik,
 Lantz Moore,
-MORIOKA Tomohiko,
+Morioka Tomohiko, @c Morioka
+Erik Toubro Nielsen,
 Hrvoje Niksic,
 Andy Norman,
+C. R. Oldham,
+Alexandre Oliva,
 Ken Olstad,
-Masaharu Onishi,
-Hideki Ono,
+Masaharu Onishi, @c Onishi
+Hideki Ono, @c Ono
+William Perry,
+Stephen Peters,
 Ulrich Pfeifer,
+John McClary Prevost,
 Colin Rafferty,
 Bart Robinson,
+Jason Rumney,
+Loren Schall,
+Dan Schmidt,
 Ralph Schleicher,
+Randal L. Schwartz,
 Danny Siu, 
 Paul D. Smith,
 Jeff Sparkes,
 Michael Sperber,
 Richard Stallman,
 Greg Stark, 
+Paul Stodghill,
 Kurt Swanson,
 Samuel Tardieu, 
 Teddy,
@@ -13379,7 +13849,11 @@ Barry A. Warsaw,
 Christoph Wedler,
 Joe Wells,
 and
-Katsumi Yamaoka.
+Katsumi Yamaoka. @c Yamaoka
+
+For a full overview of what each person has done, the ChangeLogs
+included in the Gnus alpha distributions should give ample reading
+(550kB and counting).
 
 Apologies to everybody that I've forgotten, of which there are many, I'm
 sure.  
@@ -13395,7 +13869,7 @@ 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.
-* Red Gnus::           The future.
+* Red Gnus::           Third time best---Gnus 5.4/5.5.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
@@ -13742,7 +14216,7 @@ Boring headers can be hidden (@pxref{Article Hiding}).
 
 @lisp
 (add-hook 'gnus-article-display-hook 
-          'gnus-article-hide-boring-headers)
+          'gnus-article-hide-boring-headers t)
 @end lisp
 
 @item
@@ -13893,6 +14367,13 @@ Mail}).
 @item
 More hooks and functions have been added to remove junk from incoming
 mail before saving the mail (@pxref{Washing Mail}).
+
+@item
+Emphasized text can be properly fontisized:
+
+@lisp
+(add-hook 'gnus-article-display-hook 'gnus-article-emphasize)
+@end lisp
  
 @end itemize
 
@@ -13916,7 +14397,7 @@ Really do unbinhexing.
 And much, much, much more.  There is more to come than has already been
 implemented.  (But that's always true, isn't it?)
 
-@file{<URL:http://www.ifi.uio.no/~larsi/sgnus/todo>} is where the actual
+@file{<URL:http://www.ifi.uio.no/~larsi/rgnus/todo>} is where the actual
 up-to-the-second todo list is located, so if you're really curious, you
 could point your Web browser over that-a-way.
 
@@ -14134,6 +14615,11 @@ group, it'll disappear into the aether.
 This is the opposite of ephemeral groups.  All groups listed in the
 group buffer are solid groups.
 
+@item sparse articles
+@cindex sparse articles
+These are article placeholders shown in the summary buffer when
+@code{gnus-build-sparse-threads} has been switched on.
+
 @end table
 
 
@@ -14165,7 +14651,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
-also have to set @code{gnus-check-new-news} and
+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.
 
@@ -14427,6 +14913,7 @@ In the examples and definitions I will refer to the imaginary backend
 * 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.
 @end menu
 
 
@@ -14570,13 +15057,6 @@ group and article numbers are when fetching articles by
 on successful article retrievement.
 
 
-@item (nnchoke-open-group GROUP &optional SERVER)
-
-Make @var{group} the current group.  
-
-There should be no data returned by this function.
-
-
 @item (nnchoke-request-group GROUP &optional SERVER FAST)
 
 Get data on @var{group}.  This function also has the side effect of
@@ -14591,7 +15071,7 @@ Here's an example of some result data and a definition of the same:
 211 56 1000 1059 ifi.discussion
 @end example
 
-The first number is the status, which should be @code{211}.  Next is the
+The first number is the status, which should be 211.  Next is the
 total number of articles in the group, the lowest article number, the
 highest article number, and finally the group name.  Note that the total
 number of articles may be less than one might think while just
@@ -14683,9 +15163,8 @@ group-buffer = *active-line / *group-status
 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
 information (as is the case with virtual an imap groups).  This function
-may alter the info in any manner it sees fit, and should return the
-(altered) group info.  This function may alter the group info
-destructively, so no copying is needed before boogeying. 
+should destructively alter the info to suit its needs, and should return
+the (altered) group info.  
 
 There should be no result data from this function.
 
@@ -15084,6 +15563,58 @@ The user should be prompted for an address when doing commands like
 @end table
 
 
+@node Mail-like Backends
+@subsubsection Mail-like Backends
+
+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
+functions in @file{nnmail.el}.  For instance, here's the definition of
+@code{nnml-request-scan}: 
+
+@lisp
+(deffoo nnml-request-scan (&optional group server)
+  (setq nnml-article-file-alist nil)
+  (nnmail-get-new-mail 'nnml 'nnml-save-nov nnml-directory group))
+@end lisp
+
+It simply just calls @code{nnmail-get-new-mail} will a few parameters,
+and @code{nnmail} takes care of all the moving and splitting of the
+mail.  
+
+This function takes four parameters.
+
+@table @var
+@item method
+This should be a symbol to designate which backend is responsible for
+the call.
+
+@item exit-function
+This function should be called after the splitting has been performed.
+
+@item temp-directory
+Where the temporary files should be stored.
+
+@item group
+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
+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
+this:
+
+@example
+(("a-group" (1 . 10))
+ ("some-group" (34 . 39)))
+@end example
+
 
 @node Score File Syntax
 @subsection Score File Syntax