Update copyright year to 2016
[gnus] / texi / gnus.texi
index ddf732f..b664c80 100644 (file)
@@ -2,22 +2,21 @@
 
 @include gnus-overrides.texi
 
-@setfilename gnus
+@setfilename gnus.info
 @settitle Gnus Manual
+@include docstyle.texi
 @syncodeindex fn cp
 @syncodeindex vr cp
 @syncodeindex pg cp
 
-@documentencoding UTF-8
-
 @copying
-Copyright @copyright{} 1995--2014 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--2016 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
 any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
+Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
 and with the Back-Cover Texts as in (a) below.  A copy of the license
 is included in the section entitled ``GNU Free Documentation License''.
 
@@ -46,7 +45,7 @@ modify this GNU manual.''
 \begin{document}
 
 % Adjust ../Makefile.in if you change the following line:
-\newcommand{\gnusversionname}{Ma Gnus v0.9}
+\newcommand{\gnusversionname}{Ma Gnus v0.14}
 \newcommand{\gnuschaptername}{}
 \newcommand{\gnussectionname}{}
 
@@ -357,7 +356,7 @@ spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
 @c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to Ma Gnus v0.9
+This manual corresponds to Ma Gnus v0.14
 
 @ifnottex
 @insertcopying
@@ -391,7 +390,7 @@ people should be empowered to do what they want by using (or abusing)
 the program.
 
 @c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to Ma Gnus v0.9
+This manual corresponds to Ma Gnus v0.14
 
 @heading Other related manuals
 @itemize
@@ -461,7 +460,7 @@ Group Buffer
 * Selecting a Group::           Actually reading news.
 * Subscription Commands::       Unsubscribing, killing, subscribing.
 * Group Data::                  Changing the info for a group.
-* Group Levels::                Levels? What are those, then?
+* Group Levels::                Levels?  What are those, then?
 * Group Score::                 A mechanism for finding out what groups you like.
 * Marking Groups::              You can mark groups for later processing.
 * Foreign Groups::              Creating and editing groups.
@@ -521,7 +520,7 @@ Summary Buffer
 * Charsets::                    Character set issues.
 * 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.
+* Finding the Parent::          No child support?  Get the parent.
 * Alternative Approaches::      Reading using non-default summaries.
 * Tree Display::                A more visual display of threads.
 * Mail Group Commands::         Some commands can only be used in mail groups.
@@ -618,6 +617,7 @@ Article Buffer
 
 * Hiding Headers::              Deciding what headers should be displayed.
 * Using MIME::                  Pushing articles through @acronym{MIME} before reading them.
+* HTML::                        Reading @acronym{HTML} messages.
 * Customizing Articles::        Tailoring the look of the articles.
 * Article Keymap::              Keystrokes available in the article buffer.
 * Misc Article::                Other stuff.
@@ -704,7 +704,6 @@ Browsing the Web
 * Archiving Mail::
 * Web Searches::                Creating groups from articles that match a string.
 * RSS::                         Reading RDF site summary.
-* Customizing W3::              Doing stuff to Emacs/W3 from Gnus.
 
 Other Sources
 
@@ -998,7 +997,7 @@ terminology section (@pxref{Terminology}).
 @cindex finding news
 
 First of all, you should know that there is a special buffer called
-@code{*Server*} that lists all the servers Gnus knows about.  You can
+@file{*Server*} that lists all the servers Gnus knows about.  You can
 press @kbd{^} from the Group buffer to see it.  In the Server buffer,
 you can press @kbd{RET} on a defined server to see all the groups it
 serves (subscribed or not!).  You can also add or delete servers, edit
@@ -1095,7 +1094,7 @@ your mail without bothering with the server at all, you can use the
 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
 1 and 2.  (You should preferably keep no native groups on those two
-levels.) Also @pxref{Group Levels}.
+levels.)  Also @pxref{Group Levels}.
 
 
 @node Slave Gnusae
@@ -1678,7 +1677,7 @@ long as Gnus is active.
 * Selecting a Group::           Actually reading news.
 * Subscription Commands::       Unsubscribing, killing, subscribing.
 * Group Data::                  Changing the info for a group.
-* Group Levels::                Levels? What are those, then?
+* Group Levels::                Levels?  What are those, then?
 * Group Score::                 A mechanism for finding out what groups you like.
 * Marking Groups::              You can mark groups for later processing.
 * Foreign Groups::              Creating and editing groups.
@@ -2854,7 +2853,7 @@ If the group parameter list has the element @code{(visible . t)},
 that group will always be visible in the Group buffer, regardless
 of whether it has any unread articles.
 
-This parameter cannot be set via @code{gnus-parameters}. See
+This parameter cannot be set via @code{gnus-parameters}.  See
 @code{gnus-permanently-visible-groups} as an alternative.
 
 @item broken-reply-to
@@ -2881,12 +2880,17 @@ news group.
 @item gcc-self
 @cindex gcc-self
 If @code{(gcc-self . t)} is present in the group parameter list, newly
-composed messages will be @code{Gcc}'d to the current group.  If
+composed messages will be @code{gcc}d to the current group.  If
 @code{(gcc-self . none)} is present, no @code{Gcc:} header will be
-generated, if @code{(gcc-self . "string")} is present, this string will
-be inserted literally as a @code{gcc} header.  This parameter takes
-precedence over any default @code{Gcc} rules as described later
-(@pxref{Archived Messages}), with the exception for messages to resend.
+generated, if @code{(gcc-self . "group")} is present, this string will
+be inserted literally as a @code{Gcc:} header.  It should be a group
+name.  The @code{gcc-self} value may also be a list of strings and
+@code{t}, e.g., @code{(gcc-self "group1" "group2" t)} means to
+@code{gcc} the newly composed message into the groups @code{"group1"}
+and @code{"group2"}, and into the current group.  The @code{gcc-self}
+parameter takes precedence over any default @code{Gcc} rules as
+described later (@pxref{Archived Messages}), with the exception for
+messages to resend.
 
 @strong{Caveat}: Adding @code{(gcc-self . t)} to the parameter list of
 @code{nntp} groups (or the like) isn't valid.  An @code{nntp} server
@@ -3036,8 +3040,8 @@ like this in the group parameters:
 
 If you're using topics to organize your group buffer
 (@pxref{Group Topics}), note that posting styles can also be set in
-the topics parameters. Posting styles in topic parameters apply to all
-groups in this topic. More precisely, the posting-style settings for a
+the topics parameters.  Posting styles in topic parameters apply to all
+groups in this topic.  More precisely, the posting-style settings for a
 group result from the hierarchical merging of all posting-style
 entries in the parameters of this group and all the topics it belongs
 to.
@@ -4750,7 +4754,7 @@ command or better use it as a prefix key.  For example:
 * Charsets::                    Character set issues.
 * 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.
+* Finding the Parent::          No child support?  Get the parent.
 * Alternative Approaches::      Reading using non-default summaries.
 * Tree Display::                A more visual display of threads.
 * Mail Group Commands::         Some commands can only be used in mail groups.
@@ -5888,7 +5892,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{*sent ...*}).  There you will
+to the post buffer (which is called @file{*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
@@ -8508,7 +8512,7 @@ pseudo-articles when decoding.  It is @code{t} by default.
 
 So; there you are, reading your @emph{pseudo-articles} in your
 @emph{virtual newsgroup} from the @emph{virtual server}; and you think:
-Why isn't anything real anymore? How did we get here?
+Why isn't anything real anymore?  How did we get here?
 
 
 @node Article Treatment
@@ -9078,7 +9082,7 @@ CRs into LF (this takes care of Mac line endings)
 Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
 Quoted-Printable is one common @acronym{MIME} encoding employed when
 sending non-@acronym{ASCII} (i.e., 8-bit) articles.  It typically
-makes strings like @samp{d@'ej@`a vu} look like @samp{d=E9j=E0 vu},
+makes strings like @samp{déjà vu} look like @samp{d=E9j=E0 vu},
 which doesn't look very readable to me.  Note that this is usually
 done automatically by Gnus if the message in question has a
 @code{Content-Transfer-Encoding} header that says that this encoding
@@ -9140,9 +9144,6 @@ Use Gnus simple html renderer.
 @item gnus-w3m
 Use Gnus rendered based on w3m.
 
-@item w3
-Use Emacs/W3.
-
 @item w3m
 Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}.
 
@@ -9546,7 +9547,7 @@ Display the original date (@code{gnus-article-date-original}).  This can
 be useful if you normally use some other conversion function and are
 worried that it might be doing something totally wrong.  Say, claiming
 that the article was posted in 1854.  Although something like that is
-@emph{totally} impossible.  Don't you trust me? *titter*
+@emph{totally} impossible.  Don't you trust me?  *titter*
 
 @end table
 
@@ -9805,6 +9806,19 @@ Make all the @acronym{MIME} parts have buttons in front of them.  This is
 mostly useful if you wish to save (or perform other actions) on inlined
 parts.
 
+@item W M h
+@kindex W M h (Summary)
+@findex gnus-mime-buttonize-attachments-in-header
+@vindex gnus-mime-display-attachment-buttons-in-header
+Display @acronym{MIME} part buttons in the end of the header of an
+article (@code{gnus-mime-buttonize-attachments-in-header}).  This
+command toggles the display.  Note that buttons to be added to the
+header are only the ones that aren't inlined in the body.  If you want
+those buttons always to be displayed, set
+@code{gnus-mime-display-attachment-buttons-in-header} to non-@code{nil}.
+The default is @code{t}.  To change the appearance of buttons, customize
+@code{gnus-header-face-alist}.
+
 @item K m
 @kindex K m (Summary)
 @findex gnus-summary-repair-multipart
@@ -11139,7 +11153,7 @@ If you're in the habit of exiting groups, and then changing your mind
 about it, you might set @code{gnus-kill-summary-on-exit} to @code{nil}.
 If you do that, Gnus won't kill the summary buffer when you exit it.
 (Quelle surprise!)  Instead it will change the name of the buffer to
-something like @samp{*Dead Summary ... *} and install a minor mode
+something like @file{*Dead Summary ... *} and install a minor mode
 called @code{gnus-dead-summary-mode}.  Now, if you switch back to this
 buffer, you'll find that all keys are mapped to a function called
 @code{gnus-summary-wake-up-the-dead}.  So tapping any keys in a dead
@@ -11467,7 +11481,7 @@ who wrote the article, the date it was written and the subject of the
 article.  That's well and nice, but there's also lots of information
 most people do not want to see---what systems the article has passed
 through before reaching you, the @code{Message-ID}, the
-@code{References}, etc. ad nauseam---and you'll probably want to get rid
+@code{References}, etc.@: ad nauseam---and you'll probably want to get rid
 of some of those lines.  If you want to keep all those lines in the
 article buffer, you can set @code{gnus-show-all-headers} to @code{t}.
 
@@ -11747,20 +11761,30 @@ Also @pxref{MIME Commands}.
 @section @acronym{HTML}
 @cindex @acronym{HTML}
 
-If you have @code{w3m} installed on your system, Gnus can display
-@acronym{HTML} articles in the article buffer.  There are many Gnus
-add-ons for doing this, using various approaches, but there's one
-(sort of) built-in method that's used by default.
+Gnus can display @acronym{HTML} articles nicely formatted in the
+article buffer.  There are many methods for doing that, but two of
+them are kind of default methods.
 
-For a complete overview, consult @xref{Display Customization,
-,Display Customization, emacs-mime, The Emacs MIME Manual}.  This
-section only describes the default method.
+If your Emacs copy has been built with libxml2 support, then Gnus uses
+Emacs' built-in, plain elisp Simple HTML Renderer @code{shr}
+@footnote{@code{shr} displays colors as declared in the @acronym{HTML}
+article but tries to adjust them in order to be readable.  If you
+prefer more contrast, @xref{FAQ 4-16}.} which is also used by Emacs'
+browser EWW (@pxref{EWW, ,EWW, emacs, The Emacs Manual}).
+
+If your Emacs copy lacks libxml2 support but you have @code{w3m}
+installed on your system, Gnus uses that to render @acronym{HTML} mail
+and display the results in the article buffer (@code{gnus-w3m}).
+
+For a complete overview, consult @xref{Display Customization, ,Display
+Customization, emacs-mime, The Emacs MIME Manual}.  This section only
+describes the default method.
 
 @table @code
 @item mm-text-html-renderer
 @vindex mm-text-html-renderer
-If set to @code{gnus-article-html}, Gnus will use the built-in method,
-that's based on @code{w3m}.
+If set to @code{shr}, Gnus uses its own simple @acronym{HTML}
+renderer.  If set to @code{gnus-w3m}, it uses @code{w3m}.
 
 @item gnus-blocked-images
 @vindex gnus-blocked-images
@@ -11888,8 +11912,8 @@ controlling variable is a predicate list, as described above.
 
 @ifinfo
 @c Avoid sort of redundant entries in the same section for the printed
-@c manual, but add them in info to allow `i gnus-treat-foo-bar RET' or
-@c `i foo-bar'.
+@c manual, but add them in info to allow 'i gnus-treat-foo-bar RET' or
+@c 'i foo-bar'.
 @vindex gnus-treat-buttonize
 @vindex gnus-treat-buttonize-head
 @vindex gnus-treat-capitalize-sentences
@@ -12528,7 +12552,7 @@ you're in, you could say something like the following:
 Modify to suit your needs.
 
 @vindex gnus-message-highlight-citation
-If @code{gnus-message-highlight-citation} is t, different levels of
+If @code{gnus-message-highlight-citation} is @code{t}, different levels of
 citations are highlighted like in Gnus article buffers also in message
 mode buffers.
 
@@ -12541,7 +12565,7 @@ 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}.  The
-default is "sent.%Y-%m", which gives you one archive group per month.
+default is @code{"sent.%Y-%m"}, which gives you one archive group per month.
 
 For archiving interesting messages in a group you read, see the
 @kbd{B c} (@code{gnus-summary-copy-article}) command (@pxref{Mail
@@ -12804,10 +12828,12 @@ variable, which is a vector of the following headers: number subject
 from date id references chars lines xref extra.
 
 In the case of a string value, if the @code{match} is a regular
-expression, a @samp{gnus-match-substitute-replacement} is proceed on
-the value to replace the positional parameters @samp{\@var{n}} by the
-corresponding parenthetical matches (see @xref{Replacing Match,,
-Replacing the Text that Matched, elisp, The Emacs Lisp Reference Manual}.)
+expression, or if it takes the form @code{(header @var{match}
+@var{regexp})}, a @samp{gnus-match-substitute-replacement} is proceed
+on the value to replace the positional parameters @samp{\@var{n}} by
+the corresponding parenthetical matches (see @xref{Replacing Match,,
+Replacing the Text that Matched, elisp, The Emacs Lisp Reference
+Manual}.)
 
 @vindex message-reply-headers
 
@@ -12839,6 +12865,10 @@ So here's a new example:
         ;; @r{If I'm replying to Larsi, set the Organization header.}
         ((header "from" "larsi.*org")
          (Organization "Somewhere, Inc."))
+        ;; @r{Reply to a message from the same subaddress the message}
+        ;; @r{was sent to.}
+        ((header "x-original-to" "me\\(\\+.+\\)@@example.org")
+         (address "me\\1@@example.org"))
         ((posting-from-work-p) ;; @r{A user defined function}
          (signature-file "~/.work-signature")
          (address "user@@bar.foo")
@@ -13732,7 +13762,7 @@ A hook run before attempting to connect to an @acronym{NNTP} server.
 @item nntp-record-commands
 @vindex nntp-record-commands
 If non-@code{nil}, @code{nntp} will log all commands it sends to the
-@acronym{NNTP} server (along with a timestamp) in the @samp{*nntp-log*}
+@acronym{NNTP} server (along with a timestamp) in the @file{*nntp-log*}
 buffer.  This is useful if you are debugging a Gnus/@acronym{NNTP} connection
 that doesn't seem to work.
 
@@ -14151,6 +14181,7 @@ from different locations, or with different user agents.
 * Connecting to an IMAP Server::     Getting started with @acronym{IMAP}.
 * Customizing the IMAP Connection::  Variables for @acronym{IMAP} connection.
 * Client-Side IMAP Splitting::       Put mail in the correct mail box.
+* Support for IMAP Extensions::      Getting extensions and labels from servers.
 @end menu
 
 
@@ -14221,6 +14252,10 @@ If you need to tunnel via other systems to connect to the server, you
 can use this option, and customize @code{nnimap-shell-program} to be
 what you need.
 
+@item plain
+Non-encrypted and unsafe straight socket connection.
+@acronym{STARTTLS} will not be used even if it is available.
+
 @end table
 
 @item nnimap-authenticator
@@ -14297,12 +14332,35 @@ Here's a complete example @code{nnimap} backend with a client-side
 @end example
 
 
+@node Support for IMAP Extensions
+@subsection Support for IMAP Extensions
+
+@cindex Gmail
+@cindex X-GM-LABELS
+@cindex IMAP labels
+
+If you're using Google's Gmail, you may want to see your Gmail labels
+when reading your mail.  Gnus can give you this information if you ask
+for @samp{X-GM-LABELS} in the variable @code{gnus-extra-headers}. For
+example:
+
+@example
+(setq gnus-extra-headers
+      '(To Newsgroups X-GM-LABELS))
+@end example
+
+This will result in Gnus storing your labels in message header
+structures for later use.  The content is always a parenthesized
+(possible empty) list.
+
+
+
 @node Getting Mail
 @section Getting Mail
 @cindex reading mail
 @cindex mail
 
-Reading mail with a newsreader---isn't that just plain WeIrD@? But of
+Reading mail with a newsreader---isn't that just plain WeIrD@?  But of
 course.
 
 @menu
@@ -14932,7 +14990,7 @@ this means @samp{gssapi}, @samp{kerberos4}, @samp{digest-md5},
 @samp{cram-md5}, @samp{anonymous} or the default @samp{login}.
 
 @item :program
-When using the `shell' :stream, the contents of this variable is
+When using the @samp{shell} :stream, the contents of this variable is
 mapped into the @code{imap-shell-program} variable.  This should be a
 @code{format}-like string (or list of strings).  Here's an example:
 
@@ -14960,7 +15018,8 @@ corresponding keywords.
 
 @item :mailbox
 The name of the mailbox to get mail from.  The default is @samp{INBOX}
-which normally is the mailbox which receives incoming mail.
+which normally is the mailbox which receives incoming mail. Instead of
+a single mailbox, this can be a list of mailboxes to fetch mail from.
 
 @item :predicate
 The predicate used to find articles to fetch.  The default, @samp{UNSEEN
@@ -16001,7 +16060,7 @@ this, it keeps a cache of old @code{Message-ID}s:
 default.  The approximate maximum number of @code{Message-ID}s stored
 there is controlled by the @code{nnmail-message-id-cache-length}
 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
+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 insert a warning into the head of the mail saying that it thinks
@@ -16767,11 +16826,11 @@ incompatible group parameters, slightly different from those of other
 mail back ends.
 
 @code{nnmaildir} is largely similar to @code{nnml}, with some notable
-differences. Each message is stored in a separate file, but the
+differences.  Each message is stored in a separate file, but the
 filename is unrelated to the article number in Gnus. @code{nnmaildir}
 also stores the equivalent of @code{nnml}'s overview files in one file
 per article, so it uses about twice as many inodes as @code{nnml}.
-(Use @code{df -i} to see how plentiful your inode supply is.) If this
+(Use @code{df -i} to see how plentiful your inode supply is.)  If this
 slows you down or takes up very much space, a non-block-structured
 file system.
 
@@ -16841,12 +16900,8 @@ interfaces to these sources.
 * Archiving Mail::
 * Web Searches::                Creating groups from articles that match a string.
 * RSS::                         Reading RDF site summary.
-* Customizing W3::              Doing stuff to Emacs/W3 from Gnus.
 @end menu
 
-All the web sources require Emacs/W3 and the url library or those
-alternatives to work.
-
 The main caveat with all these web sources is that they probably won't
 work for a very long time.  Gleaning information from the @acronym{HTML} data
 is guesswork at best, and when the layout is altered, the Gnus back end
@@ -16917,15 +16972,11 @@ group as read.
 
 If the search engine changes its output substantially, @code{nnweb}
 won't be able to parse it and will fail.  One could hardly fault the Web
-providers if they were to do this---their @emph{raison d'@^etre} is to
+providers if they were to do this---their @emph{raison d'être} is to
 make money off of advertisements, not to provide services to the
 community.  Since @code{nnweb} washes the ads off all the articles, one
 might think that the providers might be somewhat miffed.  We'll see.
 
-You must have the @code{url} and @code{W3} package or those alternatives
-(try @code{customize-group} on the @samp{mm-url} variable group)
-installed to be able to use @code{nnweb}.
-
 Virtual server variables:
 
 @table @code
@@ -17123,38 +17174,6 @@ Parameters}) in order to display @samp{text/html} parts only in
 @end lisp
 
 
-@node Customizing W3
-@subsection Customizing W3
-@cindex W3
-@cindex html
-@cindex url
-@cindex Netscape
-
-Gnus uses the url library to fetch web pages and Emacs/W3 (or those
-alternatives) to display web pages.  Emacs/W3 is documented in its own
-manual, but there are some things that may be more relevant for Gnus
-users.
-
-For instance, a common question is how to make Emacs/W3 follow links
-using the @code{browse-url} functions (which will call some external web
-browser like Netscape).  Here's one way:
-
-@lisp
-(eval-after-load "w3"
-  '(progn
-    (fset 'w3-fetch-orig (symbol-function 'w3-fetch))
-    (defun w3-fetch (&optional url target)
-      (interactive (list (w3-read-url-with-default)))
-      (if (eq major-mode 'gnus-article-mode)
-          (browse-url url)
-        (w3-fetch-orig url target)))))
-@end lisp
-
-Put that in your @file{.emacs} file, and hitting links in W3-rendered
-@acronym{HTML} in the Gnus article buffers will use @code{browse-url} to
-follow the link.
-
-
 @node Other Sources
 @section Other Sources
 
@@ -17753,7 +17772,7 @@ So you send a ``reminder'' message (actually, a diary one) to yourself.
 @item
 You forget all about it and keep on getting and reading new mail, as usual.
 @item
-From time to time, as you type `g' in the group buffer and as the date
+From time to time, as you type @kbd{g} in the group buffer and as the date
 is getting closer, the message will pop up again to remind you of your
 appointment, just as if it were new and unread.
 @item
@@ -18100,7 +18119,7 @@ sending the diary message to them as well.
 @item
 However, since @code{nndiary} also has a @code{request-post} method, you
 can also use @kbd{C-u a} instead of @kbd{C-u m} on a diary group and the
-message won't actually be sent; just stored locally in the group. This
+message won't actually be sent; just stored locally in the group.  This
 comes in very handy for private appointments.
 @end itemize
 
@@ -19438,7 +19457,7 @@ Display the score of the current article
 @kindex V t (Summary)
 @findex gnus-score-find-trace
 Display all score rules that have been used on the current article
-(@code{gnus-score-find-trace}).  In the @code{*Score Trace*} buffer, you
+(@code{gnus-score-find-trace}).  In the @file{*Score Trace*} buffer, you
 may type @kbd{e} to edit score file corresponding to the score rule on
 current line and @kbd{f} to format (@code{gnus-score-pretty-print}) the
 score file and edit it.
@@ -19633,7 +19652,7 @@ Immediately scoring.
 @end table
 
 @item
-If you are scoring on `e' (extra) headers, you will then be prompted for
+If you are scoring on @samp{e} (extra) headers, you will then be prompted for
 the header name on which you wish to score.  This must be a header named
 in gnus-extra-headers, and @samp{TAB} completion is available.
 
@@ -20518,7 +20537,7 @@ matches.  This takes a long time in big groups.
 You can inhibit this slow scoring on headers or body by setting the
 variable @code{gnus-inhibit-slow-scoring}.  If
 @code{gnus-inhibit-slow-scoring} is regexp, slow scoring is inhibited if
-the group matches the regexp.  If it is t, slow scoring on it is
+the group matches the regexp.  If it is @code{t}, slow scoring on it is
 inhibited for all groups.
 
 Now, there's not much you can do about the slowness for news groups, but for
@@ -20934,7 +20953,7 @@ very interesting:
 @end example
 
 Suppose you're reading a high volume group and you're only interested
-in replies. The plan is to score down all articles that don't have
+in replies.  The plan is to score down all articles that don't have
 subject that begin with "Re:", "Fw:" or "Fwd:" and then score up all
 parents of articles that have subjects that begin with reply marks.
 
@@ -21065,7 +21084,7 @@ comparison of nnir, nnmairix, contrib/gnus-namazu would be nice
 as well.
 
 This chapter describes tools for searching groups and servers for
-articles matching a query and then retrieving those articles. Gnus
+articles matching a query and then retrieving those articles.  Gnus
 provides a simpler mechanism for searching through articles in a summary buffer
 to find those matching a pattern. @xref{Searching for Articles}.
 
@@ -21091,13 +21110,13 @@ within gnus.
 @subsection What is nnir?
 
 @code{nnir} is a Gnus interface to a number of tools for searching
-through mail and news repositories. Different backends (like
+through mail and news repositories.  Different backends (like
 @code{nnimap} and @code{nntp}) work with different tools (called
 @dfn{engines} in @code{nnir} lingo), but all use the same basic search
 interface.
 
 The @code{nnimap} and @code{gmane} search engines should work with no
-configuration. Other engines require a local index that needs to be
+configuration.  Other engines require a local index that needs to be
 created and maintained outside of Gnus.
 
 
@@ -21108,35 +21127,35 @@ In the group buffer typing @kbd{G G} will search the group on the
 current line by calling @code{gnus-group-make-nnir-group}.  This prompts
 for a query string, creates an ephemeral @code{nnir} group containing
 the articles that match this query, and takes you to a summary buffer
-showing these articles. Articles may then be read, moved and deleted
+showing these articles.  Articles may then be read, moved and deleted
 using the usual commands.
 
 The @code{nnir} group made in this way is an @code{ephemeral} group,
 and some changes are not permanent: aside from reading, moving, and
-deleting, you can't act on the original article. But there is an
+deleting, you can't act on the original article.  But there is an
 alternative: you can @emph{warp} (i.e., jump) to the original group
 for the article on the current line with @kbd{A W}, aka
-@code{gnus-warp-to-article}. Even better, the function
+@code{gnus-warp-to-article}.  Even better, the function
 @code{gnus-summary-refer-thread}, bound by default in summary buffers
 to @kbd{A T}, will first warp to the original group before it works
-its magic and includes all the articles in the thread. From here you
+its magic and includes all the articles in the thread.  From here you
 can read, move and delete articles, but also copy them, alter article
-marks, whatever. Go nuts.
+marks, whatever.  Go nuts.
 
 You say you want to search more than just the group on the current line?
-No problem: just process-mark the groups you want to search. You want
-even more? Calling for an nnir search with the cursor on a topic heading
+No problem: just process-mark the groups you want to search.  You want
+even more?  Calling for an nnir search with the cursor on a topic heading
 will search all the groups under that heading.
 
-Still not enough? OK, in the server buffer
+Still not enough?  OK, in the server buffer
 @code{gnus-group-make-nnir-group} (now bound to @kbd{G}) will search all
-groups from the server on the current line. Too much? Want to ignore
-certain groups when searching, like spam groups? Just customize
+groups from the server on the current line.  Too much?  Want to ignore
+certain groups when searching, like spam groups?  Just customize
 @code{nnir-ignored-newsgroups}.
 
 One more thing: individual search engines may have special search
-features. You can access these special features by giving a prefix-arg
-to @code{gnus-group-make-nnir-group}. If you are searching multiple
+features.  You can access these special features by giving a prefix-arg
+to @code{gnus-group-make-nnir-group}.  If you are searching multiple
 groups with different search engines you will be prompted for the
 special search features for each engine separately.
 
@@ -21144,16 +21163,16 @@ special search features for each engine separately.
 @node Setting up nnir
 @subsection Setting up nnir
 
-To set up nnir you may need to do some prep work. Firstly, you may need
-to configure the search engines you plan to use. Some of them, like
-@code{imap} and @code{gmane}, need no special configuration. Others,
+To set up nnir you may need to do some prep work.  Firstly, you may need
+to configure the search engines you plan to use.  Some of them, like
+@code{imap} and @code{gmane}, need no special configuration.  Others,
 like @code{namazu} and @code{swish}, require configuration as described
-below. Secondly, you need to associate a search engine with a server or
+below.  Secondly, you need to associate a search engine with a server or
 a backend.
 
 If you just want to use the @code{imap} engine to search @code{nnimap}
 servers, and the @code{gmane} engine to search @code{gmane} then you
-don't have to do anything. But you might want to read the details of the
+don't have to do anything.  But you might want to read the details of the
 query language anyway.
 
 @menu
@@ -21173,9 +21192,9 @@ query language anyway.
 
 
 When searching a group, @code{nnir} needs to know which search engine to
-use. You can configure a given server to use a particular engine by
+use.  You can configure a given server to use a particular engine by
 setting the server variable @code{nnir-search-engine} to the engine
-name. For example to use the @code{namazu} engine to search the server
+name.  For example to use the @code{namazu} engine to search the server
 named @code{home} you can use
 
 @lisp
@@ -21186,14 +21205,14 @@ named @code{home} you can use
 @end lisp
 
 Alternatively you might want to use a particular engine for all servers
-with a given backend. For example, you might want to use the @code{imap}
-engine for all servers using the @code{nnimap} backend. In this case you
-can customize the variable @code{nnir-method-default-engines}. This is
-an alist of pairs of the form @code{(backend . engine)}. By default this
+with a given backend.  For example, you might want to use the @code{imap}
+engine for all servers using the @code{nnimap} backend.  In this case you
+can customize the variable @code{nnir-method-default-engines}.  This is
+an alist of pairs of the form @code{(backend . engine)}.  By default this
 variable is set to use the @code{imap} engine for all servers using the
 @code{nnimap} backend, and the @code{gmane} backend for @code{nntp}
-servers. (Don't worry, the @code{gmane} search engine won't actually try
-to search non-gmane @code{nntp} servers.) But if you wanted to use
+servers.  (Don't worry, the @code{gmane} search engine won't actually try
+to search non-gmane @code{nntp} servers.)  But if you wanted to use
 @code{namazu} for all your servers with an @code{nnimap} backend you
 could change this to
 
@@ -21215,10 +21234,10 @@ features (inspired by the Google search input language):
 
 @item Boolean query operators
 AND, OR, and NOT are supported, and parentheses can be used to control
-operator precedence, e.g., (emacs OR xemacs) AND linux. Note that
+operator precedence, e.g., (emacs OR xemacs) AND linux.  Note that
 operators must be written with all capital letters to be
-recognized. Also preceding a term with a @minus{} sign is equivalent to NOT
-term.
+recognized.  Also preceding a term with a @minus{} sign is equivalent
+to NOT term.
 
 @item Automatic AND queries
 If you specify multiple words then they will be treated as an AND
@@ -21230,20 +21249,20 @@ literal string.
 
 @end table
 
-By default the whole message will be searched. The query can be limited
-to a specific part of a message by using a prefix-arg. After inputting
+By default the whole message will be searched.  The query can be limited
+to a specific part of a message by using a prefix-arg.  After inputting
 the query this will prompt (with completion) for a message part.
 Choices include ``Whole message'', ``Subject'', ``From'', and
-``To''. Any unrecognized input is interpreted as a header name. For
+``To''.  Any unrecognized input is interpreted as a header name.  For
 example, typing @kbd{Message-ID} in response to this prompt will limit
 the query to the Message-ID header.
 
 Finally selecting ``Imap'' will interpret the query as a raw
-@acronym{IMAP} search query. The format of such queries can be found in
+@acronym{IMAP} search query.  The format of such queries can be found in
 RFC3501.
 
 If you don't like the default of searching whole messages you can
-customize @code{nnir-imap-default-search-key}. For example to use
+customize @code{nnir-imap-default-search-key}.  For example to use
 @acronym{IMAP} queries by default
 
 @lisp
@@ -21273,14 +21292,14 @@ The search engine converts all text to utf-8, so searching should work
 in any language.
 
 @item Stopwords
-Common English words (like 'the' and 'a') are ignored by default. You
+Common English words (like 'the' and 'a') are ignored by default.  You
 can override this by prefixing such words with a + (e.g., +the) or
 enclosing the word in quotes (e.g., "the").
 
 @end table
 
 The query can be limited to articles by a specific author using a
-prefix-arg. After inputting the query this will prompt for an author
+prefix-arg.  After inputting the query this will prompt for an author
 name (or part of a name) to match.
 
 @node The swish++ Engine
@@ -21294,15 +21313,15 @@ Documentation for swish++ may be found at the swish++ sourceforge page:
 @table @code
 
 @item nnir-swish++-program
-The name of the swish++ executable. Defaults to @code{search}
+The name of the swish++ executable.  Defaults to @code{search}
 
 @item nnir-swish++-additional-switches
 A list of strings to be given as additional arguments to
-swish++. @code{nil} by default.
+swish++.  @code{nil} by default.
 
 @item nnir-swish++-remove-prefix
 The prefix to remove from each file name returned by swish++ in order
-to get a group name. By default this is @code{$HOME/Mail}.
+to get a group name.  By default this is @code{$HOME/Mail}.
 
 @end table
 
@@ -21317,15 +21336,15 @@ Documentation for swish-e may be found at the swish-e homepage
 @table @code
 
 @item nnir-swish-e-program
-The name of the swish-e search program. Defaults to @code{swish-e}.
+The name of the swish-e search program.  Defaults to @code{swish-e}.
 
 @item nnir-swish-e-additional-switches
 A list of strings to be given as additional arguments to
-swish-e. @code{nil} by default.
+swish-e.  @code{nil} by default.
 
 @item nnir-swish-e-remove-prefix
 The prefix to remove from each file name returned by swish-e in order
-to get a group name. By default this is @code{$HOME/Mail}.
+to get a group name.  By default this is @code{$HOME/Mail}.
 
 @end table
 
@@ -21338,9 +21357,9 @@ where to find them by setting the @code{nnir-namazu-index-directory}
 variable.
 
 To work correctly the @code{nnir-namazu-remove-prefix} variable must
-also be correct. This is the prefix to remove from each file name
-returned by Namazu in order to get a proper group name (albeit with `/'
-instead of `.').
+also be correct.  This is the prefix to remove from each file name
+returned by Namazu in order to get a proper group name (albeit with @samp{/}
+instead of @samp{.}).
 
 For example, suppose that Namazu returns file names such as
 @samp{/home/john/Mail/mail/misc/42}.  For this example, use the
@@ -21353,18 +21372,20 @@ correct group name @samp{mail.misc}.
 Extra switches may be passed to the namazu search command by setting the
 variable @code{nnir-namazu-additional-switches}.  It is particularly
 important not to pass any any switches to namazu that will change the
-output format.  Good switches to use include `--sort', `--ascending',
-`--early' and `--late'.  Refer to the Namazu documentation for further
+output format.  Good switches to use include @option{--sort},
+@option{--ascending}, @option{--early} and @option{--late}.
+Refer to the Namazu documentation for further
 information on valid switches.
 
-Mail must first be indexed  with the `mknmz' program.  Read the documentation
-for namazu to create a configuration file. Here is an example:
+Mail must first be indexed with the @command{mknmz} program.  Read the
+documentation for namazu to create a configuration file.  Here is an
+example:
 
 @cartouche
 @example
  package conf;  # Don't remove this line!
 
- # Paths which will not be indexed. Don't use `^' or `$' anchors.
+ # Paths which will not be indexed. Don't use '^' or '$' anchors.
  $EXCLUDE_PATH = "spam|sent";
 
  # Header fields which should be searchable. case-insensitive
@@ -21423,8 +21444,8 @@ This engine is obsolete.
 @table @code
 
 @item nnir-method-default-engines
-Alist of pairs of server backends and search engines. The default associations
-are
+Alist of pairs of server backends and search engines.  The default
+associations are
 @example
 (nnimap . imap)
 (nntp . gmane)
@@ -21436,7 +21457,7 @@ when searching all groups on a server.
 
 @item nnir-summary-line-format
 The format specification to be used for lines in an nnir summary buffer.
-All the items from `gnus-summary-line-format' are available, along with
+All the items from @code{gnus-summary-line-format} are available, along with
 three items unique to nnir summary buffers:
 
 @example
@@ -21445,18 +21466,19 @@ three items unique to nnir summary buffers:
 %g    Article original short group name (string)
 @end example
 
-If nil (the default) this will use @code{gnus-summary-line-format}.
+If @code{nil} (the default) this will use @code{gnus-summary-line-format}.
 
 @item nnir-retrieve-headers-override-function
-If non-nil, a function that retrieves article headers rather than using
+If non-@code{nil}, a function that retrieves article headers rather than using
 the gnus built-in function.  This function takes an article list and
-group as arguments and populates the `nntp-server-buffer' with the
-retrieved headers. It should then return either 'nov or 'headers
-indicating the retrieved header format. Failure to retrieve headers
-should return @code{nil}
+group as arguments and populates the @code{nntp-server-buffer} with the
+retrieved headers.  It should then return either 'nov or 'headers
+indicating the retrieved header format.  Failure to retrieve headers
+should return @code{nil}.
 
-If this variable is nil, or if the provided function returns nil for a
-search result, @code{gnus-retrieve-headers} will be called instead."
+If this variable is @code{nil}, or if the provided function returns
+@code{nil} for a search result, @code{gnus-retrieve-headers} will be
+called instead."
 
 
 @end table
@@ -21881,104 +21903,104 @@ tips and tricks}).
 @subsection Propagating marks
 
 First of: you really need a patched mairix binary for using the marks
-propagation feature efficiently. Otherwise, you would have to update
-the mairix database all the time. You can get the patch at
+propagation feature efficiently.  Otherwise, you would have to update
+the mairix database all the time.  You can get the patch at
 
 @uref{http://www.randomsample.de/mairix-maildir-patch.tar}
 
 You need the mairix v0.21 source code for this patch; everything else
-is explained in the accompanied readme file. If you don't want to use
+is explained in the accompanied readme file.  If you don't want to use
 marks propagation, you don't have to apply these patches, but they also
 fix some annoyances regarding changing maildir flags, so it might still
 be useful to you.
 
 With the patched mairix binary, you can use @code{nnmairix} as an
-alternative to mail splitting (@pxref{Fancy Mail Splitting}). For
+alternative to mail splitting (@pxref{Fancy Mail Splitting}).  For
 example, instead of splitting all mails from @samp{david@@foobar.com}
 into a group, you can simply create a search group with the query
-@samp{f:david@@foobar.com}. This is actually what ``smart folders'' are
+@samp{f:david@@foobar.com}.  This is actually what ``smart folders'' are
 all about: simply put everything in one mail folder and dynamically
-create searches instead of splitting. This is more flexible, since you
-can dynamically change your folders any time you want to. This also
+create searches instead of splitting.  This is more flexible, since you
+can dynamically change your folders any time you want to.  This also
 implies that you will usually read your mails in the @code{nnmairix}
 groups instead of your ``real'' mail groups.
 
 There is one problem, though: say you got a new mail from
 @samp{david@@foobar.com}; it will now show up in two groups, the
 ``real'' group (your INBOX, for example) and in the @code{nnmairix}
-search group (provided you have updated the mairix database). Now you
-enter the @code{nnmairix} group and read the mail. The mail will be
+search group (provided you have updated the mairix database).  Now you
+enter the @code{nnmairix} group and read the mail.  The mail will be
 marked as read, but only in the @code{nnmairix} group---in the ``real''
 mail group it will be still shown as unread.
 
 You could now catch up the mail group (@pxref{Group Data}), but this is
 tedious and error prone, since you may overlook mails you don't have
-created @code{nnmairix} groups for. Of course, you could first use
+created @code{nnmairix} groups for.  Of course, you could first use
 @code{nnmairix-goto-original-article} (@pxref{nnmairix keyboard
 shortcuts}) and then read the mail in the original group, but that's
 even more cumbersome.
 
 Clearly, the easiest way would be if marks could somehow be
-automatically set for the original article. This is exactly what
+automatically set for the original article.  This is exactly what
 @emph{marks propagation} is about.
 
-Marks propagation is inactive by default. You can activate it for a
+Marks propagation is inactive by default.  You can activate it for a
 certain @code{nnmairix} group with
 @code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b
-p}). This function will warn you if you try to use it with your default
+p}).  This function will warn you if you try to use it with your default
 search group; the reason is that the default search group is used for
 temporary searches, and it's easy to accidentally propagate marks from
-this group. However, you can ignore this warning if you really want to.
+this group.  However, you can ignore this warning if you really want to.
 
 With marks propagation enabled, all the marks you set in a @code{nnmairix}
-group should now be propagated to the original article. For example,
+group should now be propagated to the original article.  For example,
 you can now tick an article (by default with @kbd{!}) and this mark should
 magically be set for the original article, too.
 
 A few more remarks which you may or may not want to know:
 
 @vindex nnmairix-propagate-marks-upon-close
-Marks will not be set immediately, but only upon closing a group. This
+Marks will not be set immediately, but only upon closing a group.  This
 not only makes marks propagation faster, it also avoids problems with
 dangling symlinks when dealing with maildir files (since changing flags
-will change the file name). You can also control when to propagate marks
+will change the file name).  You can also control when to propagate marks
 via @code{nnmairix-propagate-marks-upon-close} (see the doc-string for
 details).
 
 Obviously, @code{nnmairix} will have to look up the original group for every
-article you want to set marks for. If available, @code{nnmairix} will first use
-the registry for determining the original group. The registry is very
+article you want to set marks for.  If available, @code{nnmairix} will first
+use the registry for determining the original group.  The registry is very
 fast, hence you should really, really enable the registry when using
-marks propagation. If you don't have to worry about RAM and disc space,
+marks propagation.  If you don't have to worry about RAM and disc space,
 set @code{gnus-registry-max-entries} to a large enough value; to be on
 the safe side, choose roughly the amount of mails you index with mairix.
 
 @vindex nnmairix-only-use-registry
 If you don't want to use the registry or the registry hasn't seen the
 original article yet, @code{nnmairix} will use an additional mairix
-search for determining the file name of the article. This, of course, is
+search for determining the file name of the article.  This, of course, is
 way slower than the registry---if you set hundreds or even thousands of
-marks this way, it might take some time. You can avoid this situation by
-setting @code{nnmairix-only-use-registry} to t.
+marks this way, it might take some time.  You can avoid this situation by
+setting @code{nnmairix-only-use-registry} to @code{t}.
 
 Maybe you also want to propagate marks the other way round, i.e., if you
 tick an article in a "real" mail group, you'd like to have the same
-article in a @code{nnmairix} group ticked, too. For several good
-reasons, this can only be done efficiently if you use maildir. To
+article in a @code{nnmairix} group ticked, too.  For several good
+reasons, this can only be done efficiently if you use maildir.  To
 immediately contradict myself, let me mention that it WON'T work with
 @code{nnmaildir}, since @code{nnmaildir} stores the marks externally and
-not in the file name. Therefore, propagating marks to @code{nnmairix}
+not in the file name.  Therefore, propagating marks to @code{nnmairix}
 groups will usually only work if you use an IMAP server which uses
 maildir as its file format.
 
 @vindex nnmairix-propagate-marks-to-nnmairix-groups
 If you work with this setup, just set
 @code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t} and see what
-happens. If you don't like what you see, just set it to @code{nil} again. One
-problem might be that you get a wrong number of unread articles; this
+happens.  If you don't like what you see, just set it to @code{nil} again.
+One problem might be that you get a wrong number of unread articles; this
 usually happens when you delete or expire articles in the original
-groups. When this happens, you can recreate the @code{nnmairix} group on the
-back end using @kbd{G b d}.
+groups.  When this happens, you can recreate the @code{nnmairix} group on
+the back end using @kbd{G b d}.
 
 @node nnmairix tips and tricks
 @subsection nnmairix tips and tricks
@@ -21988,7 +22010,7 @@ back end using @kbd{G b d}.
 Checking Mail
 
 @findex nnmairix-update-groups
-I put all my important mail groups at group level 1. The mairix groups
+I put all my important mail groups at group level 1.  The mairix groups
 have group level 5, so they do not get checked at start up (@pxref{Group
 Levels}).
 
@@ -22006,7 +22028,7 @@ I use the following to check for mails:
 @end lisp
 
 Instead of @samp{"mairixsearch"} use the name of your @code{nnmairix}
-server. See the doc string for @code{nnmairix-update-groups} for
+server.  See the doc string for @code{nnmairix-update-groups} for
 details.
 
 @item
@@ -22018,13 +22040,13 @@ articles always stay unread:
 Hit @kbd{G b g}, enter group name (e.g., @samp{important}), use
 @samp{F:f} as query and do not include threads.
 
-Now activate marks propagation for this group by using @kbd{G b p}. Then
+Now activate marks propagation for this group by using @kbd{G b p}.  Then
 activate the always-unread feature by using @kbd{G b r} twice.
 
 So far so good---but how do you remove the tick marks in the @code{nnmairix}
 group?  There are two options: You may simply use
 @code{nnmairix-remove-tick-mark-original-article} (bound to @kbd{$ u}) to remove
-tick marks from the original article. The other possibility is to set
+tick marks from the original article.  The other possibility is to set
 @code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t}, but see the above
 comments about this option.  If it works for you, the tick marks should
 also exist in the @code{nnmairix} group and you can remove them as usual,
@@ -22033,19 +22055,19 @@ e.g., by marking an article as read.
 When you have removed a tick mark from the original article, this
 article should vanish from the @code{nnmairix} group after you have updated the
 mairix database and updated the group.  Fortunately, there is a function
-for doing exactly that: @code{nnmairix-update-groups}. See the previous code
+for doing exactly that: @code{nnmairix-update-groups}.  See the previous code
 snippet and the doc string for details.
 
 @item
 Dealing with auto-subscription of mail groups
 
 As described before, all @code{nnmairix} groups are in fact stored on
-the mail back end in the form @samp{zz_mairix-<NAME>-<NUMBER>}. You can
-see them when you enter the back end server in the server buffer. You
-should not subscribe these groups! Unfortunately, these groups will
+the mail back end in the form @samp{zz_mairix-<NAME>-<NUMBER>}.  You can
+see them when you enter the back end server in the server buffer.  You
+should not subscribe these groups!  Unfortunately, these groups will
 usually get @emph{auto-subscribed} when you use @code{nnmaildir} or
 @code{nnml}, i.e., you will suddenly see groups of the form
-@samp{zz_mairix*} pop up in your group buffer. If this happens to you,
+@samp{zz_mairix*} pop up in your group buffer.  If this happens to you,
 simply kill these groups with C-k.  For avoiding this, turn off
 auto-subscription completely by setting the variable
 @code{gnus-auto-subscribed-groups} to @code{nil} (@pxref{Filtering New
@@ -22103,25 +22125,25 @@ mairix does only support us-ascii characters.
 @code{nnmairix} uses a rather brute force method to force Gnus to
 completely reread the group on the mail back end after mairix was
 called---it simply deletes and re-creates the group on the mail
-back end. So far, this has worked for me without any problems, and I
+back end.  So far, this has worked for me without any problems, and I
 don't see how @code{nnmairix} could delete other mail groups than its
 own, but anyway: you really should have a backup of your mail
 folders.
 
 @item
 All necessary information is stored in the group parameters
-(@pxref{Group Parameters}). This has the advantage that no active file
+(@pxref{Group Parameters}).  This has the advantage that no active file
 is needed, but also implies that when you kill a @code{nnmairix} group,
 it is gone for good.
 
 @item
 @findex nnmairix-purge-old-groups
 If you create and kill a lot of @code{nnmairix} groups, the
-``zz_mairix-*'' groups will accumulate on the mail back end server. To
+``zz_mairix-*'' groups will accumulate on the mail back end server.  To
 delete old groups which are no longer needed, call
-@code{nnmairix-purge-old-groups}. Note that this assumes that you don't
+@code{nnmairix-purge-old-groups}.  Note that this assumes that you don't
 save any ``real'' mail in folders of the form
-@code{zz_mairix-<NAME>-<NUMBER>}. You can change the prefix of
+@code{zz_mairix-<NAME>-<NUMBER>}.  You can change the prefix of
 @code{nnmairix} groups by changing the variable
 @code{nnmairix-group-prefix}.
 
@@ -22132,14 +22154,14 @@ for mairix (@pxref{Propagating marks}):
 A problem can occur when using @code{nnmairix} with maildir folders and
 comes with the fact that maildir stores mail flags like @samp{Seen} or
 @samp{Replied} by appending chars @samp{S} and @samp{R} to the message
-file name, respectively. This implies that currently you would have to
+file name, respectively.  This implies that currently you would have to
 update the mairix database not only when new mail arrives, but also when
-mail flags are changing. The same applies to new mails which are indexed
+mail flags are changing.  The same applies to new mails which are indexed
 while they are still in the @samp{new} folder but then get moved to
-@samp{cur} when Gnus has seen the mail. If you don't update the database
+@samp{cur} when Gnus has seen the mail.  If you don't update the database
 after this has happened, a mairix query can lead to symlinks pointing to
-non-existing files. In Gnus, these messages will usually appear with
-``(none)'' entries in the header and can't be accessed. If this happens
+non-existing files.  In Gnus, these messages will usually appear with
+``(none)'' entries in the header and can't be accessed.  If this happens
 to you, using @kbd{G b u} and updating the group will usually fix this.
 
 @end itemize
@@ -23479,7 +23501,7 @@ Using the last function would be something like this:
 @c #### FIXME: faces and x-faces' implementations should really be harmonized.
 
 @code{Face} headers are essentially a funkier version of @code{X-Face}
-ones. They describe a 48x48 pixel colored image that's supposed to
+ones.  They describe a 48x48 pixel colored image that's supposed to
 represent the author of the message.
 
 @cindex face
@@ -23511,7 +23533,7 @@ easier insertion of Face headers in outgoing messages.
 converts the file to Face format by using the
 @code{gnus-convert-image-to-face-command} shell command.
 
-Here's how you would typically use this function. Put something like the
+Here's how you would typically use this function.  Put something like the
 following in your @file{~/.gnus.el} file:
 
 @lisp
@@ -23690,7 +23712,7 @@ The following variables offer control over how things are displayed.
 
 @item gnus-gravatar-size
 @vindex gnus-gravatar-size
-The size in pixels of gravatars. Gravatars are always square, so one
+The size in pixels of gravatars.  Gravatars are always square, so one
 number for the size is enough.
 
 @item gnus-gravatar-properties
@@ -24905,7 +24927,7 @@ classified as spammers.
 While @code{spam-use-BBDB-exclusive} @emph{can} be used as an alias
 for @code{spam-use-BBDB} as far as @code{spam.el} is concerned, it is
 @emph{not} a separate back end.  If you set
-@code{spam-use-BBDB-exclusive} to t, @emph{all} your BBDB splitting
+@code{spam-use-BBDB-exclusive} to @code{t}, @emph{all} your BBDB splitting
 will be exclusive.
 
 @end defvar
@@ -25889,7 +25911,7 @@ Store custom flags and keywords
 The registry can store custom flags and keywords for a message.  For
 instance, you can mark a message ``To-Do'' this way and the flag will
 persist whether the message is in the nnimap, nnml, nnmaildir,
-etc. backends.
+etc.@: backends.
 
 @item
 Store arbitrary data
@@ -25919,7 +25941,7 @@ Fortunately, setting up the Gnus registry is pretty easy:
 @end lisp
 
 This adds registry saves to Gnus newsrc saves (which happen on exit
-and when you press @kbd{s} from the @code{*Group*} buffer.  It also
+and when you press @kbd{s} from the @file{*Group*} buffer.  It also
 adds registry calls to article actions in Gnus (copy, move, etc.)@: so
 it's not easy to undo the initialization.  See
 @code{gnus-registry-initialize} for the gory details.
@@ -25961,17 +25983,34 @@ the word ``archive'' is not followed.
 
 @defvar gnus-registry-max-entries
 The number (an integer or @code{nil} for unlimited) of entries the
-registry will keep.
+registry will keep.  If the registry has reached or exceeded this
+size, it will reject insertion of new entries.
+@end defvar
+
+@defvar gnus-registry-prune-factor
+This option (a float between 0 and 1) controls how much the registry
+is cut back during pruning.  In order to prevent constant pruning, the
+registry will be pruned back to less than
+@code{gnus-registry-max-entries}.  This option controls exactly how
+much less: the target is calculated as the maximum number of entries
+minus the maximum number times this factor.  The default is 0.1:
+i.e., if your registry is limited to 50000 entries, pruning will try to
+cut back to 45000 entries.  Entries with keys marked as precious will
+not be pruned.
 @end defvar
 
-@defvar gnus-registry-max-pruned-entries
-The maximum number (an integer or @code{nil} for unlimited) of entries
-the registry will keep after pruning.
+@defvar gnus-registry-default-sort-function
+This option specifies how registry entries are sorted during pruning.
+If a function is given, it should sort least valuable entries first,
+as pruning starts from the beginning of the list.  The default value
+is @code{gnus-registry-sort-by-creation-time}, which proposes the
+oldest entries for pruning.  Set to nil to perform no sorting, which
+will speed up the pruning process.
 @end defvar
 
 @defvar gnus-registry-cache-file
 The file where the registry will be stored between Gnus sessions.  By
-default the file name is @code{.gnus.registry.eioio} in the same
+default the file name is @code{.gnus.registry.eieio} in the same
 directory as your @code{.newsrc.eld}.
 @end defvar
 
@@ -26091,10 +26130,10 @@ their @code{:char} property, or showing the marks as full strings.
 
 @lisp
 ;; show the marks as single characters (see the :char property in
-;; `gnus-registry-marks'):
+;; 'gnus-registry-marks'):
 ;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-chars)
 
-;; show the marks by name (see `gnus-registry-marks'):
+;; show the marks by name (see 'gnus-registry-marks'):
 ;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-names)
 @end lisp
 
@@ -26204,8 +26243,8 @@ This variable controls whether to add timestamps to messages that are
 controlled by @code{gnus-verbose} and @code{gnus-verbose-backends} and
 are issued.  The default value is @code{nil} which means never to add
 timestamp.  If it is @code{log}, add timestamps to only the messages
-that go into the @samp{*Messages*} buffer (in XEmacs, it is the
-@w{@samp{ *Message-Log*}} buffer).  If it is neither @code{nil} nor
+that go into the @file{*Messages*} buffer (in XEmacs, it is the
+@w{@file{ *Message-Log*}} buffer).  If it is neither @code{nil} nor
 @code{log}, add timestamps not only to log messages but also to the ones
 displayed in the echo area.
 
@@ -26338,7 +26377,7 @@ XEmacs is distributed as a collection of packages.  You should install
 whatever packages the Gnus XEmacs package requires.  The current
 requirements are @samp{gnus}, @samp{mail-lib}, @samp{xemacs-base},
 @samp{eterm}, @samp{sh-script}, @samp{net-utils}, @samp{os-utils},
-@samp{dired}, @samp{mh-e}, @samp{sieve}, @samp{ps-print}, @samp{W3},
+@samp{dired}, @samp{mh-e}, @samp{sieve}, @samp{ps-print},
 @samp{pgg}, @samp{mailcrypt}, @samp{ecrypto}, and @samp{sasl}.
 
 
@@ -26780,7 +26819,7 @@ David Moore---rewrite of @file{nnvirtual.el} and many other things.
 Kevin Davidson---came up with the name @dfn{ding}, so blame him.
 
 @item
-Fran@,{c}ois Pinard---many, many interesting and thorough bug reports, as
+François Pinard---many, many interesting and thorough bug reports, as
 well as autoconf support.
 
 @end itemize
@@ -26888,7 +26927,7 @@ Gunnar Horrigmo,
 Richard Hoskins,
 Brad Howes,
 Miguel de Icaza,
-Fran@,{c}ois Felix Ingrand,
+François Felix Ingrand,
 Tatsuya Ichikawa, @c Ichikawa
 Ishikawa Ichiro, @c Ishikawa
 Lee Iverson,
@@ -27784,7 +27823,7 @@ As a result of the following change, the @file{~/News/overview/}
 directory is not used any more.  You can safely delete the entire
 hierarchy.
 
-@c FIXME: `gnus-load' is mentioned in README, which is not included in
+@c FIXME: 'gnus-load' is mentioned in README, which is not included in
 @c the repository.  We should find a better place for this item.
 @item
 @code{(require 'gnus-load)}
@@ -27874,7 +27913,7 @@ The estimated number of unread articles in the group buffer should now
 be correct for nnimap groups.  This is achieved by calling
 @code{nnimap-fixup-unread-after-getting-new-news} from the
 @code{gnus-setup-news-hook} (called on startup) and
-@code{gnus-after-getting-new-news-hook}. (called after getting new
+@code{gnus-after-getting-new-news-hook} (called after getting new
 mail).  If you have modified those variables from the default, you may
 want to add @code{nnimap-fixup-unread-after-getting-new-news} again.  If
 you were happy with the estimate and want to save some (minimal) time
@@ -28415,6 +28454,34 @@ New features in Ma Gnus:
 
 @itemize @bullet
 
+@item Installation changes
+@c ***********************
+
+@itemize @bullet
+@item
+Lisp source files and info files to be installed will be compressed by
+gzip by default.
+
+If you don't want those files to be compressed, use the configure option
+@samp{--without-compress-install}.  Lisp source files that don't have
+the compiled elc version in the installation directory will not be
+compressed.
+
+@end itemize
+
+@item Changes in summary and article mode
+@c **************************************
+
+@itemize @bullet
+
+@item
+By default, @acronym{MIME} part buttons for attachments (if any) will
+appear in the end of the article header in addition to the bottom of the
+article body, so you can easily find them without scrolling the article
+again and again.  @xref{MIME Commands}.
+
+@end itemize
+
 @item Changes in Message mode and related Gnus features
 @c ****************************************************
 
@@ -28760,7 +28827,7 @@ specified by RFC 1153.
 @cindex splitting, terminology
 @cindex mail sorting
 @cindex mail filtering (splitting)
-The action of sorting your emails according to certain rules. Sometimes
+The action of sorting your emails according to certain rules.  Sometimes
 incorrectly called mail filtering.
 
 @end table
@@ -28933,7 +29000,7 @@ Gnus will work.
 @item
 Try doing an @kbd{M-x gnus-version}.  If you get something that looks
 like @c
-@samp{Ma Gnus v0.9} @c Adjust ../Makefile.in if you change this line!
+@samp{Ma Gnus v0.14} @c Adjust ../Makefile.in if you change this line!
 @c
 you have the right files loaded.  Otherwise you have some old @file{.el}
 files lying around.  Delete these.