*** empty log message ***
[gnus] / texi / gnus.texi
index 74c0623..cd692bb 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Red Gnus 0.47 Manual
+@settitle Gnus 5.4.29 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -287,13 +287,13 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Red Gnus 0.47 Manual
+@title Gnus 5.4.29 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995,96 Free Software Foundation, Inc. 
+Copyright @copyright{} 1995,96,97 Free Software Foundation, Inc. 
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -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.29
+
 @end ifinfo
 
 @iftex
@@ -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.
@@ -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
@@ -847,10 +854,15 @@ startup files.  If you want to turn backup creation off, say something like:
 
 @vindex gnus-init-file
 When Gnus starts, it will read the @code{gnus-site-init-file}
-(@file{.../site-lisp/gnus.el} by default) and @code{gnus-init-file}
-(@file{~/.gnus.el} by default) files.  These are normal Emacs Lisp files
-and can be used to avoid cluttering your @file{.emacs} and
-@file{site-init} files with Gnus stuff.
+(@file{.../site-lisp/gnus} by default) and @code{gnus-init-file}
+(@file{~/.gnus} by default) files.  These are normal Emacs Lisp files
+and can be used to avoid cluttering your @file{~/.emacs} and
+@file{site-init} files with Gnus stuff.  Gnus will also check for files
+with the same names as these, but with @file{.elc} and @file{.el}
+suffixes.  In other words, if you have set @code{gnus-init-file} to
+@file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el},
+and finally @file{~/.gnus} (in this order).
+
 
 
 @node Auto Save
@@ -933,6 +945,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
@@ -949,6 +964,11 @@ times you start Gnus.
 @vindex gnus-startup-hook
 A hook that is run after starting up Gnus successfully.
 
+@item gnus-started-hook
+@vindex gnus-started-hook
+A hook that is run as the very last thing after starting up Gnus
+successfully.
+
 @item gnus-check-bogus-newsgroups
 @vindex gnus-check-bogus-newsgroups
 If non-@code{nil}, Gnus will check for and delete all bogus groups at
@@ -961,12 +981,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
 
 
@@ -1134,7 +1165,7 @@ 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 a single dummy
-paratere as argument.  The function should return a string, which will
+parameter as argument.  The function should return a string, which will
 be inserted into the buffer just like information from any other
 specifier.
 @end table
@@ -1178,17 +1209,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
@@ -1351,6 +1381,15 @@ 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 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
@@ -1776,9 +1815,10 @@ Make a group based on some file or other
 (@code{gnus-group-make-doc-group}).  If you give a prefix to this
 command, you will be prompted for a file name and a file type.
 Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
-@code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs}, and
-@code{forward}.  If you run this command without a prefix, Gnus will
-guess at the file type.  @xref{Document Groups}.
+@code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs},
+@code{rfc934}, @code{rfc822-forward}, and @code{forward}.  If you run
+this command without a prefix, Gnus will guess at the file type.
+@xref{Document Groups}.
 
 @item G w
 @kindex G w (Group)
@@ -1859,6 +1899,10 @@ doing a @kbd{a} in any group.  It is totally ignored when doing a
 followup---except that if it is present in a news group, you'll get mail
 group semantics when doing @kbd{f}.
 
+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.
+
 @item broken-reply-to
 @cindex broken-reply-to
 Elements like @code{(broken-reply-to . t)} signals that @code{Reply-To}
@@ -1872,6 +1916,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
@@ -1883,15 +1933,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
@@ -1934,7 +1985,10 @@ ticked articles.
 @end table
 
 @item comment
-This parameter allows you to enter an 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
@@ -1956,6 +2010,13 @@ Use the @kbd{G p} command to edit group parameters of a group.
 
 Also @pxref{Topic Parameters}.
 
+Here's an example group parameter list:
+
+@example
+((to-address . "ding@@ifi.uio.no")
+ (auto-expiry . t))
+@end example
+
 
 @node Listing Groups
 @section Listing Groups
@@ -2792,7 +2853,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
 
@@ -2814,7 +2877,6 @@ news.
 
 @item H f
 @kindex H f (Group)
-@itemx M-f
 @findex gnus-group-fetch-faq
 @vindex gnus-group-faq-directory
 @cindex FAQ
@@ -2966,6 +3028,7 @@ You can have as many summary buffers open as you wish.
 * 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.
@@ -3078,7 +3141,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
@@ -3517,11 +3580,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
@@ -3562,6 +3639,9 @@ ship a mail to a different account of yours.  (If you're both
 to the @code{root} account, you may want to resend it to
 @code{postmaster}.  Ordnung muß sein!
 
+This command understands the process/prefix convention
+(@pxref{Process/Prefix}). 
+
 @item S O m
 @kindex S O m (Summary)
 @findex gnus-uu-digest-mail-forward
@@ -3619,11 +3699,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)
@@ -3678,7 +3773,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
@@ -4173,6 +4268,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
@@ -4232,9 +4335,9 @@ also mark excluded ticked and dormant articles as read.
 @cindex threading
 @cindex article threading
 
-Gnus threads articles by default.  @dfn{To thread} is to put replies to
-articles directly after the articles they reply to---in a hierarchical
-fashion.
+Gnus threads articles by default.  @dfn{To thread} is to put responses
+to articles directly after the articles they respond to---in a
+hierarchical fashion.
 
 @menu
 * Customizing Threading::     Variables you can change to affect the threading.
@@ -4299,7 +4402,8 @@ everything in sight into one thread, which isn't very helpful.
 
 @cindex fuzzy article gathering
 If you set this variable to the special value @code{fuzzy}, Gnus will
-use a fuzzy string comparison algorithm on the subjects.
+use a fuzzy string comparison algorithm on the subjects (@pxref{Fuzzy
+Matching}). 
 
 @item gnus-simplify-subject-fuzzy-regexp
 @vindex gnus-simplify-subject-fuzzy-regexp
@@ -4425,6 +4529,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
@@ -4441,6 +4552,14 @@ in a new thread.
 @vindex gnus-thread-indent-level
 This is a number that says how much each sub-thread should be indented.
 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
 
 
@@ -4569,7 +4688,8 @@ is non-@code{nil} (which it is by default), subjects will be ignored
 when doing thread commands.  If this variable is @code{nil}, articles in
 the same thread with different subjects will not be included in the
 operation in question.  If this variable is @code{fuzzy}, only articles
-that have subjects that are fuzzily equal will be included.
+that have subjects that are fuzzily equal will be included (@pxref{Fuzzy
+Matching}).
 
 
 @node Sorting
@@ -4722,7 +4842,7 @@ shorter than 100 lines, you could say something like:
   "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
@@ -4938,6 +5058,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
@@ -5348,6 +5474,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.
@@ -5508,6 +5641,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.
@@ -5615,6 +5749,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
@@ -5772,6 +5958,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
@@ -5841,6 +6030,12 @@ Remove all blank lines at the end of the article
 Do all the three commands above
 (@code{gnus-article-strip-blank-lines}).
 
+@item W E s
+@kindex W E s (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}).
+
 @end table
 
 
@@ -5947,6 +6142,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
@@ -6017,6 +6223,24 @@ 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)
+@vindex gnus-ps-print-hook
+@findex gnus-summary-print-article 
+Generate and print a PostScript image of the article buffer
+(@code{gnus-summary-print-article}).  @code{gnus-ps-print-hook} will be
+run just before printing the buffer.
+
+@end table
+
+
 @node Summary Sorting
 @section Summary Sorting
 @cindex summary sorting
@@ -6046,6 +6270,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
@@ -6091,6 +6320,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
@@ -6448,6 +6679,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
@@ -6490,6 +6724,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
@@ -6677,7 +6918,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
@@ -6734,6 +6976,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
@@ -7084,7 +7334,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.
@@ -7183,6 +7434,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
@@ -7351,10 +7607,11 @@ spell-checking via the @code{ispell} package:
 @cindex archived messages
 @cindex sent messages
 
-Gnus provides a few different methods for storing the mail you send.
-The default method is to use the @dfn{archive virtual server} to store
-the mail.  If you want to disable this completely, you should set
-@code{gnus-message-archive-group} to @code{nil}.
+Gnus provides a few different methods for storing the mail and news you
+send.  The default method is to use the @dfn{archive virtual server} to
+store the messages.  If you want to disable this completely, the
+@code{gnus-message-archive-group} variable should be @code{nil}, which
+is the default.
 
 @vindex gnus-message-archive-method
 @code{gnus-message-archive-method} says what virtual server Gnus is to
@@ -7447,10 +7704,10 @@ if (using @kbd{G r} in the group buffer) to something
 nice---@samp{misc-mail-september-1995}, or whatever.  New messages will
 continue to be stored in the old (now empty) group.
 
-That's the default method of archiving sent mail.  Gnus also a different
-way for the people who don't like the default method.  In that case you
-should set @code{gnus-message-archive-group} to @code{nil}; this will
-disable archiving.
+That's the default method of archiving sent messages.  Gnus also a
+different way for the people who don't like the default method.  In that
+case you should set @code{gnus-message-archive-group} to @code{nil};
+this will disable archiving.
 
 XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to
 use a different value for @code{gnus-message-archive-group} there.
@@ -7467,6 +7724,9 @@ If you want to have greater control over what group to put each
 message in, you can set this variable to a function that checks the
 current newsgroup name and then returns a suitable group name (or list
 of names).
+
+This variable can be used instead of @code{gnus-message-archive-group},
+but the latter is the preferred method.
 @end table
 
 
@@ -7704,6 +7964,7 @@ To enter the server buffer, user the @kbd{^}
 * Server Commands::           Commands to manipulate servers.
 * Example Methods::           Examples server specifications.
 * Creating a Virtual Server:: An example session.
+* Server Variables::          Which variables to set.
 * Servers and Methods::       You can use server names as select methods.
 * Unavailable Servers::       Some servers you try to contact may be down.
 @end menu
@@ -7805,6 +8066,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
 
 
@@ -7861,6 +8129,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
@@ -7897,6 +8181,33 @@ Type @kbd{C-c C-c} to return to the server buffer.  If you now press
 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
+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
+won't change the "derived" variables.
+
+This typically affects directory and file variables.  For instance,
+@code{nnml-directory} is @file{~/Mail/} by default, and all @code{nnml}
+directory variables are initialized from that variable, so
+@code{nnml-active-file} will be @file{~/Mail/active}.  If you define a
+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
+manual, but here's an example @code{nnml} definition:
+
+@lisp
+(nnml "public" 
+      (nnml-directory "~/my-mail/")
+      (nnml-active-file "~/my-mail/active")
+      (nnml-newsgroups-file "~/my-mail/newsgroups"))
+@end lisp
+
+
 @node Servers and Methods
 @subsection Servers and Methods
 
@@ -8113,8 +8424,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
@@ -8124,7 +8435,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
@@ -8358,8 +8669,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
@@ -8436,6 +8750,8 @@ 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.
 
+@code{nnmail-spool-file} can also be a list of mailboxes.
+
 Your Emacs has to have been configured with @samp{--with-pop} before
 compilation.  This is the default, but some installations have it
 switched off.
@@ -8476,7 +8792,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
@@ -8519,14 +8835,18 @@ to.
 @cindex incoming mail files
 @cindex deleting incoming files
 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.
+file after splitting mail into the proper groups.  This is @code{t} by
+default.
 
-Since Red Gnus is an alpha release, it is to be expected to lose mail.
+@c This is @code{nil} by
+@c default for reasons of security.
+
+@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.
 
@@ -8576,7 +8896,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)
@@ -8608,23 +8928,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
@@ -8684,8 +9020,8 @@ Gnus to split the mail the normal way, you could set
 If you use @code{procmail} to split things directory into an @code{nnmh}
 directory (which you shouldn't do), you should set
 @code{nnmail-keep-last-article} to non-@code{nil} to prevent Gnus from
-ever expiring the final article in a mail newsgroup.  This is quite,
-quite important.
+ever expiring the final article (i. e., the article with the highest
+article number) in a mail newsgroup.  This is quite, quite important.
 
 Here's an example setup:  The incoming spools are located in
 @file{~/incoming/} and have @samp{""} as suffixes (i. e., the incoming
@@ -8800,9 +9136,15 @@ 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.  
+expirable article has to live.  Gnus starts counting days from when the
+message @emph{arrived}, not from when it was sent.  The default is seven
+days.
 
 Gnus also supplies a function that lets you fine-tune how long articles
 are to live, based on what group they are in.  Let's say you want to
@@ -8960,9 +9302,8 @@ variable, which is 1000 by default. (So 1000 @code{Message-ID}s will be
 stored.) If all this sounds scary to you, you can set
 @code{nnmail-treat-duplicates} to @code{warn} (which is what it is by
 default), and @code{nnmail} won't delete duplicate mails.  Instead it
-will generate a brand new @code{Message-ID} for the mail and insert a
-warning into the head of the mail saying that it thinks that this is a
-duplicate of a different message.  
+will insert a warning into the head of the mail saying that it thinks
+that this is a duplicate of a different message.
 
 This variable can also be a function.  If that's the case, the function
 will be called from a buffer narrowed to the message in question with
@@ -9171,7 +9512,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
@@ -9425,8 +9768,9 @@ Virtual server variables:
 @item nndoc-article-type
 @vindex nndoc-article-type
 This should be one of @code{mbox}, @code{babyl}, @code{digest},
-@code{mmdf}, @code{forward}, @code{news}, @code{rnews},
-@code{mime-digest}, @code{clari-briefs}, or @code{guess}.
+@code{mmdf}, @code{forward}, @code{rfc934}, @code{rfc822-forward},
+@code{news}, @code{rnews}, @code{mime-digest}, @code{clari-briefs}, or
+@code{guess}.
 
 @item nndoc-post-type
 @vindex nndoc-post-type
@@ -9585,12 +9929,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.
@@ -9599,11 +9976,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}
@@ -9633,6 +10011,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)
@@ -9644,7 +10024,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)
@@ -9667,7 +10047,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
 
@@ -10106,13 +10486,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.
@@ -10292,7 +10673,7 @@ Exact matching.
 Substring matching.
 
 @item f
-Fuzzy matching.
+Fuzzy matching (@pxref{Fuzzy Matching}).
 
 @item r
 Regexp matching
@@ -10438,6 +10819,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
@@ -10595,7 +10982,7 @@ If the third element is present, it should be a number---the @dfn{date
 element}.  This date says when the last time this score entry matched,
 which provides a mechanism for expiring the score entries.  It this
 element is not present, the score entry is permanent.  The date is
-represented by the number of days since December 31, 1 ce.
+represented by the number of days since December 31, 1 BCE.
 
 @item 
 If the fourth element is present, it should be a symbol---the @dfn{type
@@ -10617,7 +11004,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:
@@ -10860,6 +11251,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
@@ -10934,6 +11330,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
@@ -11065,8 +11466,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''
@@ -11310,6 +11711,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
@@ -11747,6 +12168,7 @@ four days, Gnus will decay the scores four times, for instance.
 * Undo::                       Some actions can be undone.
 * Moderation::                 What to do if you're a moderator.
 * XEmacs Enhancements::        There are more pictures and stuff under XEmacs.
+* Fuzzy Matching::             What's the big fuzz?
 * Various Various::            Things that are really various.
 @end menu
 
@@ -12198,8 +12620,8 @@ Here's a list of all possible keys for
 @code{browse}, @code{message}, @code{pick}, @code{info},
 @code{summary-faq}, @code{edit-group}, @code{edit-server},
 @code{edit-score}, @code{post}, @code{reply}, @code{forward},
-@code{reply-yank}, @code{mail-bounce}, @code{draft},
-@code{pipe}, @code{bug}, @code{compose-bounce}.  
+@code{reply-yank}, @code{mail-bounce}, @code{draft}, @code{pipe},
+@code{bug}, @code{compose-bounce}.
 
 Note that the @code{message} key is used for both
 @code{gnus-group-mail} and @code{gnus-summary-mail-other-window}.  If
@@ -12301,6 +12723,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
@@ -12367,21 +12793,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:
@@ -12593,7 +13004,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
@@ -12628,6 +13040,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
@@ -12955,6 +13375,24 @@ default.
 @end table
 
 
+@node Fuzzy Matching
+@section Fuzzy Matching
+@cindex fuzzy matching
+
+Gnus provides @dfn{fuzzy matching} of @code{Subject} lines when doing
+things like scoring, thread gathering and thread comparison.  
+
+As opposed to regular expression matching, fuzzy matching is very fuzzy.
+It's so fuzzy that there's not even a definition of what @dfn{fuzziness}
+means, and the implementation has changed over time.
+
+Basically, it tries to remove all noise from lines before comparing.
+@samp{Re: }, parenthetical remarks, white space, and so on, are filtered
+out of the strings before comparing the results.  This often leads to
+adequate results---even when faced with strings generated by text
+manglers masquerading as newsreaders.
+
+
 @node Various Various
 @section Various Various
 @cindex mode lines
@@ -12962,11 +13400,15 @@ default.
 
 @table @code
 
+@item gnus-home-directory
+All Gnus path variables will be initialized from this variable, which
+defaults to @file{~/}.
+
 @item gnus-directory
 @vindex gnus-directory
-All Gnus directories will be initialized from this variable, which
-defaults to the @samp{SAVEDIR} environment variable, or @file{~/News/}
-if that variable isn't set.
+Most Gnus storage path variables will be initialized from this variable,
+which defaults to the @samp{SAVEDIR} environment variable, or
+@file{~/News/} if that variable isn't set.
 
 @item gnus-default-directory
 @vindex gnus-default-directory
@@ -13113,12 +13555,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?
@@ -13262,14 +13713,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
@@ -13291,43 +13734,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
@@ -13360,6 +13783,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}).
@@ -13400,6 +13826,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.
 
@@ -13426,20 +13855,28 @@ Jack Vinson.
 
 Also thanks to the following for patches and stuff:
 
+Adrian Aichner,
 Peter Arius, 
+Matt Armstrong,
 Marc Auslander,
+Chris Bone,
 Mark Borges,
 Lance A. Brown,
+Kees de Bruin,
 Martin Buchholz,
+Kevin Buhr,
 Alastair Burt,
 Joao Cachopo,
+Zlatko Calusic,
 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,
@@ -13449,34 +13886,61 @@ David S. Goldberg,
 D. Hall, 
 Magnus Hammerin,
 Raja R. Harinath,
+Hisashige Kenji, @c Hisashige
 Marc Horowitz,
-Ishikawa Ichiro,
-Francois Felix Ingrand,
+François Felix Ingrand,
+Ishikawa Ichiro, @c Ishikawa
 Lee Iverson, 
+Rajappa Iyer,
+Randell Jesup,
 Fred Johansen, 
+Greg Klanderman,
+Karl Kleinpaste,
+Peter Skov Knudsen,
+Shuhei Kobayashi, @c Kobayashi
 Thor Kristoffersen,
 Jens Lautenbacher,
+Carsten Leonhardt,
+James LewisMoss,
 Christian Limpach,
+Markus Linnala,
+Dave Love,
+Tonny Madsen,
+Shlomo Mahlab,
 Nat Makarevitch,
+David Martin,
+Gordon Matzigkeit,
 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,
+Philippe Schnoebelen,
+Randal L. Schwartz,
 Danny Siu, 
 Paul D. Smith,
 Jeff Sparkes,
 Michael Sperber,
 Richard Stallman,
 Greg Stark, 
+Paul Stodghill,
 Kurt Swanson,
 Samuel Tardieu, 
 Teddy,
@@ -13487,7 +13951,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.  
@@ -13503,7 +13971,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
@@ -13850,7 +14318,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
@@ -14001,6 +14469,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
 
@@ -14024,7 +14499,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.
 
@@ -14242,6 +14717,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
 
 
@@ -14273,7 +14753,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.
 
@@ -14535,6 +15015,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
 
 
@@ -14678,13 +15159,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
@@ -14790,10 +15264,9 @@ 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. 
+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.
 
 There should be no result data from this function.
 
@@ -15192,6 +15665,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