emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/doc/misc/gnus.texi,v


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/doc/misc/gnus.texi,v
Date: Sun, 28 Oct 2007 09:19:37 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Miles Bader <miles>     07/10/28 09:18:40

Index: doc/misc/gnus.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/doc/misc/gnus.texi,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- doc/misc/gnus.texi  9 Oct 2007 08:52:52 -0000       1.3
+++ doc/misc/gnus.texi  28 Oct 2007 09:18:37 -0000      1.4
@@ -6,6 +6,8 @@
 @syncodeindex vr cp
 @syncodeindex pg cp
 
address@hidden ISO-8859-1
+
 @copying
 Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001,
 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@@ -50,7 +52,7 @@
 \begin{document}
 
 % Adjust ../Makefile.in if you change the following line:
-\newcommand{\gnusversionname}{Gnus v5.11}
+\newcommand{\gnusversionname}{No Gnus v0.7}
 \newcommand{\gnuschaptername}{}
 \newcommand{\gnussectionname}{}
 
@@ -360,7 +362,7 @@
 luck.
 
 @c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to Gnus v5.11.
+This manual corresponds to No Gnus v0.7.
 
 @end ifinfo
 
@@ -412,6 +414,7 @@
 * Emacs-MIME:(emacs-mime).   Composing messages; @acronym{MIME}-specific parts.
 * Sieve:(sieve).             Managing Sieve scripts in Emacs.
 * PGG:(pgg).                 @acronym{PGP/MIME} with Gnus.
+* SASL:(sasl).               @acronym{SASL} authentication in Emacs.
 
 @detailmenu
  --- The Detailed Node Listing ---
@@ -454,6 +457,7 @@
 * Browse Foreign Server::       You can browse a server.  See what it has to 
offer.
 * Exiting Gnus::                Stop reading news and get some work done.
 * Group Topics::                A folding group mode divided into topics.
+* Non-ASCII Group Names::       Accessing groups of non-English names.
 * Misc Group Stuff::            Other stuff that you can to do.
 
 Group Buffer Format
@@ -493,6 +497,7 @@
 * Asynchronous Fetching::       Gnus might be able to pre-fetch articles.
 * Article Caching::             You may store articles in a cache.
 * Persistent Articles::         Making articles expiry-resistant.
+* Sticky Articles::             Article buffers that are not reused.
 * Article Backlog::             Having already read articles hang around.
 * Saving Articles::             Ways of customizing article saving.
 * Decoding Articles::           Gnus can treat series of (uu)encoded articles.
@@ -646,6 +651,7 @@
 * Direct Functions::            Connecting directly to the server.
 * Indirect Functions::          Connecting indirectly to the server.
 * Common Variables::            Understood by several connection functions.
+* NNTP marks::                  Storing marks for @acronym{NNTP} servers.
 
 Getting Mail
 
@@ -749,6 +755,7 @@
 * Agent as Cache::              The Agent is a big cache too.
 * Agent Expiry::                How to make old articles go away.
 * Agent Regeneration::          How to recover from lost connections and other 
accidents.
+* Agent and flags::             How the Agent maintains flags.
 * Agent and IMAP::              How to use the Agent with @acronym{IMAP}.
 * Outgoing Messages::           What happens when you post/mail something?
 * Agent Variables::             Customizing is fun.
@@ -784,17 +791,9 @@
 * 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.
 
-GroupLens
-
-* Using GroupLens::             How to make Gnus use GroupLens.
-* Rating Articles::             Letting GroupLens know how you rate articles.
-* Displaying Predictions::      Displaying predictions given by GroupLens.
-* GroupLens Variables::         Customizing GroupLens.
-
 Advanced Scoring
 
 * Advanced Scoring Syntax::     A definition.
@@ -901,6 +900,7 @@
 * Quassia Gnus::                Two times two is four, or Gnus 5.6/5.7.
 * Pterodactyl Gnus::            Pentad also starts with P, AKA Gnus 5.8/5.9.
 * Oort Gnus::                   It's big.  It's far out.  Gnus 5.10/5.11.
+* No Gnus::                     Very punny.
 
 Customization
 
@@ -1067,6 +1067,11 @@
 (setq gnus-secondary-select-methods '((nnmbox "")))
 @end lisp
 
+Note: the @acronym{NNTP} back end stores marks in marks files
+(@pxref{NNTP marks}).  This feature makes it easy to share marks between
+several Gnus installations, but may slow down things a bit when fetching
+new articles.  @xref{NNTP marks}, for more information.
+
 
 @node The First Time
 @section The First Time
@@ -1718,6 +1723,7 @@
 * Browse Foreign Server::       You can browse a server.  See what it has to 
offer.
 * Exiting Gnus::                Stop reading news and get some work done.
 * Group Topics::                A folding group mode divided into topics.
+* Non-ASCII Group Names::       Accessing groups of non-English names.
 * Misc Group Stuff::            Other stuff that you can to do.
 @end menu
 
@@ -1819,8 +1825,15 @@
 hysterical raisins, even the mail back ends, where the true number of
 unread messages might be available efficiently, use the same limited
 interface.  To remove this restriction from Gnus means that the back
-end interface has to be changed, which is not an easy job.  If you
-want to work on this, please contact the Gnus mailing list.
+end interface has to be changed, which is not an easy job.
+
+The nnml backend (@pxref{Mail Spool}) has a feature called ``group
+compaction'' which circumvents this deficiency: the idea is to
+renumber all articles from 1, removing all gaps between numbers, hence
+getting a correct total count.  Other backends may support this in the
+future.  In order to keep your total article count relatively up to
+date, you might want to compact your groups (or even directly your
+server) from time to time. @xref{Misc Group Stuff}, @xref{Server Commands}.
 
 @item y
 Number of unread, unticked, non-dormant articles.
@@ -1886,6 +1899,12 @@
 A string that says when you last read the group (@pxref{Group
 Timestamp}).
 
address@hidden F
+The disk space used by the articles fetched by both the cache and
+agent.  The value is automatically scaled to bytes(B), kilobytes(K),
+megabytes(M), or gigabytes(G) to minimize the column width.  A format
+of %7F is sufficient for a fixed-width column.
+
 @item u
 User defined specifier.  The next character in the format string should
 be a letter.  Gnus will call the function
@@ -2071,6 +2090,11 @@
 the commands that say they move to the next unread group.  The default
 is @code{t}.
 
address@hidden gnus-summary-next-group-on-exit
+If @code{gnus-summary-next-group-on-exit} is @code{t}, when a summary is
+exited, the point in the group buffer is moved to the next unread group.
+Otherwise, the point is set to the group just exited.  The default is
address@hidden
 
 @node Selecting a Group
 @section Selecting a Group
@@ -2988,6 +3012,15 @@
   (signature "Funky Signature"))
 @end example
 
+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
+group result from the hierarchical merging of all posting-style
+entries in the parameters of this group and all the topics it belongs
+to.
+
+
 @item post-method
 @cindex post-method
 If it is set, the value is used as the method for posting message
@@ -3014,11 +3047,25 @@
 Commands}) the following Sieve code is generated:
 
 @example
-if address \"sender\" \"sieve-admin@@extundo.com\" @{
-        fileinto \"INBOX.list.sieve\";
+if address "sender" "sieve-admin@@extundo.com" @{
+        fileinto "INBOX.list.sieve";
 @}
 @end example
 
+To generate tests for multiple email-addresses use a group parameter
+like @code{(sieve address "sender" ("name@@one.org" else@@two.org"))}.
+When generating a sieve script (@pxref{Sieve Commands}) Sieve code
+like the following is generated:
+
address@hidden
+if address "sender" ["name@@one.org", "else@@two.org"] @{
+        fileinto "INBOX.list.sieve";
address@hidden
address@hidden example
+
+See @pxref{Sieve Commands} for commands and variables that might be of
+interest in relation to the sieve parameter.
+
 The Sieve language is described in RFC 3028.  @xref{Top, Emacs Sieve,
 Top, sieve, Emacs Sieve}.
 
@@ -3132,6 +3179,33 @@
 @code{nil}.  Otherwise, set it to @code{t} if you want to compare them
 always in a case-insensitive manner.
 
+You can define different sorting to different groups via
address@hidden  Here is an example to sort an @acronym{NNTP}
+group by reverse date to see the latest news at the top and an
address@hidden group by subject.  In this example, the first group is the
+Debian daily news group @code{gmane.linux.debian.user.news} from
+news.gmane.org.  The @acronym{RSS} group corresponds to the Debian
+weekly news RSS feed
address@hidden://packages.debian.org/unstable/newpkg_main.en.rdf},
address@hidden
+
address@hidden
+(setq
+ gnus-parameters
+ '(("nntp.*gmane\\.debian\\.user\\.news"
+    (gnus-show-threads nil)
+    (gnus-article-sort-functions '((not gnus-article-sort-by-date)))
+    (gnus-use-adaptive-scoring nil)
+    (gnus-use-scoring nil))
+   ("nnrss.*debian"
+    (gnus-show-threads nil)
+    (gnus-article-sort-functions 'gnus-article-sort-by-subject)
+    (gnus-use-adaptive-scoring nil)
+    (gnus-use-scoring t)
+    (gnus-score-find-score-files-function 'gnus-score-find-single)
+    (gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n"))))
address@hidden lisp
+
 
 @node Listing Groups
 @section Listing Groups
@@ -3847,7 +3921,7 @@
 @item T M-p
 @kindex T M-p (Topic)
 @findex gnus-topic-goto-previous-topic
-Go to the next topic (@code{gnus-topic-goto-previous-topic}).
+Go to the previous topic (@code{gnus-topic-goto-previous-topic}).
 
 @item G p
 @kindex G p (Topic)
@@ -4086,6 +4160,132 @@
 happens.  You just have to be careful if you do stuff like that.
 
 
address@hidden Non-ASCII Group Names
address@hidden Accessing groups of non-English names
address@hidden non-ascii group names
+
+There are some news servers that provide groups of which the names are
+expressed with their native languages in the world.  For instance, in a
+certain news server there are some newsgroups of which the names are
+spelled in Chinese, where people are talking in Chinese.  You can, of
+course, subscribe to such news groups using Gnus.  Currently Gnus
+supports address@hidden group names not only with the @code{nntp}
+back end but also with the @code{nnml} back end and the @code{nnrss}
+back end.
+
+Every such group name is encoded by a certain charset in the server
+side (in an @acronym{NNTP} server its administrator determines the
+charset, but for groups in the other back ends it is determined by you).
+Gnus has to display the decoded ones for you in the group buffer and the
+article buffer, and needs to use the encoded ones when communicating
+with servers.  However, Gnus doesn't know what charset is used for each
address@hidden group name.  The following two variables are just
+the ones for telling Gnus what charset should be used for each group:
+
address@hidden @code
address@hidden gnus-group-name-charset-method-alist
address@hidden gnus-group-name-charset-method-alist
+An alist of select methods and charsets.  The default value is
address@hidden  The names of groups in the server specified by that select
+method are all supposed to use the corresponding charset.  For example:
+
address@hidden
+(setq gnus-group-name-charset-method-alist
+      '(((nntp "news.com.cn") . cn-gb-2312)))
address@hidden lisp
+
+Charsets specified for groups with this variable are preferred to the
+ones specified for the same groups with the
address@hidden variable (see below).
+
+A select method can be very long, like:
+
address@hidden
+(nntp "gmane"
+      (nntp-address "news.gmane.org")
+      (nntp-end-of-line "\n")
+      (nntp-open-connection-function
+       nntp-open-via-rlogin-and-telnet)
+      (nntp-via-rlogin-command "ssh")
+      (nntp-via-rlogin-command-switches
+       ("-C" "-t" "-e" "none"))
+      (nntp-via-address @dots{}))
address@hidden lisp
+
+In that case, you can truncate it into @code{(nntp "gmane")} in this
+variable.  That is, it is enough to contain only the back end name and
+the server name.
+
address@hidden gnus-group-name-charset-group-alist
address@hidden UTF-8 group names
address@hidden gnus-group-name-charset-group-alist
+An alist of regexp of group name and the charset for group names.
address@hidden((".*" . utf-8))} is the default value if UTF-8 is supported,
+otherwise the default is @code{nil}.  For example:
+
address@hidden
+(setq gnus-group-name-charset-group-alist
+      '(("\\.com\\.cn:" . cn-gb-2312)
+        (".*" . utf-8)))
address@hidden lisp
+
+Note that this variable is ignored if the match is made with
address@hidden
address@hidden table
+
+Those two variables are used also to determine the charset for encoding
+and decoding address@hidden group names that are in the back ends
+other than @code{nntp}.  It means that it is you who determine it.  If
+you do nothing, the charset used for group names in those back ends will
+all be @code{utf-8} because of the last element of
address@hidden
+
+There is one more important variable for address@hidden group
+names.  @emph{XEmacs users must set this}.  Emacs users necessarily need
+not do:
+
address@hidden @code
address@hidden nnmail-pathname-coding-system
+The value of this variable should be a coding system or @code{nil}
+(which is the default).  The @code{nnml} back end, the @code{nnrss} back
+end, the @acronym{NNTP} marks feature (@pxref{NNTP marks}), the agent,
+and the cache use address@hidden group names in those files and
+directories.  This variable overrides the value of
address@hidden which specifies the coding system used
+when encoding and decoding those file names and directory names.
+
+In XEmacs (with the @code{mule} feature), @code{file-name-coding-system}
+is the only means to specify the coding system used to encode and decode
+file names.  Therefore, @emph{you, XEmacs users, have to set it} to the
+coding system that is suitable to encode and decode address@hidden
+group names.  On the other hand, Emacs uses the value of
address@hidden if @code{file-name-coding-system}
+is @code{nil}.  Normally the value of
address@hidden is initialized according to the
+locale, so you will need to do nothing if the value is suitable to
+encode and decode address@hidden group names.
+
+The value of this variable (or @code{default-file-name-coding-system})
+does not necessarily need to be the same value that is determined by
address@hidden and
address@hidden
+
+If you want to subscribe to the groups spelled in Chinese but
address@hidden is initialized by default to
address@hidden for example, that is the most typical case where you
+have to set @code{nnmail-pathname-coding-system} even if you are an
+Emacs user.  The @code{utf-8} coding system is a good candidate for it.
+Otherwise, you may change the locale in your system so that
address@hidden may be initialized to an
+appropriate value, instead of specifying this variable.
address@hidden table
+
+Note that when you copy or move articles from a address@hidden
+group to another group, the charset used to encode and decode group
+names should be the same in both groups.  Otherwise the Newsgroups
+header will be displayed incorrectly in the article buffer.
+
+
 @node Misc Group Stuff
 @section Misc Group Stuff
 
@@ -4152,6 +4352,15 @@
 in question.  The corresponding back end must have a request-post method
 for this to work though.
 
address@hidden G z
address@hidden G z (Group)
address@hidden gnus-group-compact-group
+
+Compact the group under point (@code{gnus-group-compact-group}).
+Currently implemented only in nnml (@pxref{Mail Spool}).  This removes
+gaps between article numbers, hence getting a correct total article
+count.
+
 @end table
 
 Variables for the group buffer:
@@ -4179,31 +4388,6 @@
 Groups matching this regexp will always be listed in the group buffer,
 whether they are empty or not.
 
address@hidden gnus-group-name-charset-method-alist
address@hidden gnus-group-name-charset-method-alist
-An alist of method and the charset for group names.  It is used to show
address@hidden group names.
-
-For example:
address@hidden
-(setq gnus-group-name-charset-method-alist
-    '(((nntp "news.com.cn") . cn-gb-2312)))
address@hidden lisp
-
address@hidden gnus-group-name-charset-group-alist
address@hidden UTF-8 group names
address@hidden gnus-group-name-charset-group-alist
-An alist of regexp of group name and the charset for group names.  It
-is used to show address@hidden group names.  @code{((".*"
-utf-8))} is the default value if UTF-8 is supported, otherwise the
-default is @code{nil}.
-
-For example:
address@hidden
-(setq gnus-group-name-charset-group-alist
-    '(("\\.com\\.cn:" . cn-gb-2312)))
address@hidden lisp
-
 @end table
 
 @node Scanning New Messages
@@ -4536,6 +4720,7 @@
 * Asynchronous Fetching::       Gnus might be able to pre-fetch articles.
 * Article Caching::             You may store articles in a cache.
 * Persistent Articles::         Making articles expiry-resistant.
+* Sticky Articles::             Article buffers that are not reused.
 * Article Backlog::             Having already read articles hang around.
 * Saving Articles::             Ways of customizing article saving.
 * Decoding Articles::           Gnus can treat series of (uu)encoded articles.
@@ -4838,6 +5023,13 @@
 @code{From} header, the value of the @code{To} or @code{Newsreader}
 headers are used instead.
 
+To distinguish regular articles from those where the @code{From} field
+has been swapped, a string is prefixed to the @code{To} or
address@hidden header in the summary line.  By default the string is
address@hidden> } for @code{To} and @samp{=> } for @code{Newsgroups}, you can
+customize these strings with @code{gnus-summary-to-prefix} and
address@hidden
+
 @end enumerate
 
 @vindex nnmail-extra-headers
@@ -6362,6 +6554,27 @@
 (@code{gnus-summary-limit-to-author}).  If given a prefix, exclude
 matching articles.
 
address@hidden / R
address@hidden / R (Summary)
address@hidden gnus-summary-limit-to-recipient
+Limit the summary buffer to articles that match some recipient
+(@code{gnus-summary-limit-to-recipient}).  If given a prefix, exclude
+matching articles.
+
address@hidden / A
address@hidden / A (Summary)
address@hidden gnus-summary-limit-to-address
+Limit the summary buffer to articles in which contents of From, To or Cc
+header match a given address (@code{gnus-summary-limit-to-address}).  If
+given a prefix, exclude matching articles.
+
address@hidden / S
address@hidden / S (Summary)
address@hidden gnus-summary-limit-to-singletons
+Limit the summary buffer to articles that aren't part of any displayed
+threads (@code{gnus-summary-limit-to-singletons}).  If given a prefix,
+limit to articles that are part of displayed threads.
+
 @item / x
 @kindex / x (Summary)
 @findex gnus-summary-limit-to-extra
@@ -6427,6 +6640,13 @@
 (@code{gnus-summary-limit-to-display-predicate}).  @xref{Group
 Parameters}, for more on this predicate.
 
address@hidden / r
address@hidden / r (Summary)
address@hidden gnus-summary-limit-to-replied
+Limit the summary buffer to replied articles
+(@code{gnus-summary-limit-to-replied}).  If given a prefix, exclude
+replied articles.
+
 @item / E
 @itemx M S
 @kindex M S (Summary)
@@ -6488,6 +6708,20 @@
 Insert all old articles in the summary buffer.  If given a numbered
 prefix, fetch this number of articles.
 
address@hidden / b
address@hidden / b (Summary)
address@hidden gnus-summary-limit-to-bodies
+Limit the summary buffer to articles that have bodies that match a
+certain regexp (@code{gnus-summary-limit-to-bodies}).  If given a
+prefix, reverse the limit.  This command is quite slow since it
+requires selecting each article to find the matches.
+
address@hidden / h
address@hidden / h (Summary)
address@hidden gnus-summary-limit-to-headers
+Like the previous command, only limit to headers instead
+(@code{gnus-summary-limit-to-headers}).
+
 @end table
 
 
@@ -6988,6 +7222,12 @@
 Make the current article the child of the marked (or previous) article
 (@code{gnus-summary-reparent-thread}).
 
address@hidden T M-^
address@hidden T M-^ (Summary)
address@hidden gnus-summary-reparent-children
+Make the current article the parent of the marked articles
+(@code{gnus-summary-reparent-children}).
+
 @end table
 
 The following commands are thread movement commands.  They all
@@ -7052,6 +7292,7 @@
 @findex gnus-thread-sort-by-score
 @findex gnus-thread-sort-by-subject
 @findex gnus-thread-sort-by-author
address@hidden gnus-thread-sort-by-recipient
 @findex gnus-thread-sort-by-number
 @findex gnus-thread-sort-by-random
 @vindex gnus-thread-sort-functions
@@ -7064,8 +7305,10 @@
 
 By default, sorting is done on article numbers.  Ready-made sorting
 predicate functions include @code{gnus-thread-sort-by-number},
address@hidden, @code{gnus-thread-sort-by-subject},
address@hidden, @code{gnus-thread-sort-by-score},
address@hidden, @code{gnus-thread-sort-by-recipient},
address@hidden,
address@hidden,
address@hidden,
 @code{gnus-thread-sort-by-most-recent-number},
 @code{gnus-thread-sort-by-most-recent-date},
 @code{gnus-thread-sort-by-random} and
@@ -7103,8 +7346,7 @@
 
 @lisp
 (setq gnus-thread-sort-functions
-      '((lambda (t1 t2)
-          (not (gnus-thread-sort-by-number t1 t2)))
+      '((not gnus-thread-sort-by-number)
         gnus-thread-sort-by-score))
 @end lisp
 
@@ -7141,6 +7383,8 @@
         gnus-article-sort-by-subject))
 @end lisp
 
+You can define group specific sorting via @code{gnus-parameters},
address@hidden Parameters}.
 
 
 @node Asynchronous Fetching
@@ -7362,6 +7606,53 @@
 (setq gnus-use-cache 'passive)
 @end lisp
 
address@hidden Sticky Articles
address@hidden Sticky Articles
address@hidden sticky articles
+
+When you select an article the current article buffer will be reused
+according to the value of the variable
address@hidden  If its value is address@hidden (the
+default) all articles reuse the same article buffer.  Else each group
+has its own article buffer.
+
+This implies that it's not possible to have more than one article buffer
+in a group at a time.  But sometimes you might want to display all the
+latest emails from your mother, your father, your aunt, your uncle and
+your 17 cousins to coordinate the next christmas party.
+
+That's where sticky articles come in handy.  A sticky article buffer
+basically is a normal article buffer, but it won't be reused when you
+select another article.  You can make an article sticky with:
+
address@hidden @kbd
address@hidden A S
address@hidden A S (Summary)
address@hidden gnus-sticky-article
+Make the current article sticky.  If a prefix arg is given, ask for a
+name for this sticky article buffer.
address@hidden table
+
+To close a sticky article buffer you can use these commands:
+
address@hidden @kbd
address@hidden q
address@hidden q (Article)
address@hidden bury-buffer
+Puts this sticky article buffer at the end of the list of all buffers.
+
address@hidden k
address@hidden k (Article)
address@hidden gnus-kill-sticky-article-buffer
+Kills this sticky article buffer.
address@hidden table
+
+To kill all sticky article buffers you can use:
+
address@hidden gnus-kill-sticky-article-buffers ARG
+Kill all sticky article buffers.
+If a prefix ARG is given, ask for confirmation.
address@hidden defun
 
 @node Article Backlog
 @section Article Backlog
@@ -8555,6 +8846,16 @@
 @findex gnus-summary-morse-message
 Morse decode the article buffer (@code{gnus-summary-morse-message}).
 
address@hidden W i
address@hidden W i (Summary)
address@hidden gnus-summary-idna-message
+Decode IDNA encoded domain names in the current articles.  IDNA
+encoded domain names looks like @samp{xn--bar}.  If a string remain
+unencoded after running invoking this, it is likely an invalid IDNA
+string (@samp{xn--bar} is invalid).  You must have GNU Libidn
+(@url{http://www.gnu.org/software/libidn/}) installed for this command
+to work.
+
 @item W t
 @item t
 @kindex W t (Summary)
@@ -8657,9 +8958,9 @@
 Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
 Quoted-Printable is one common @acronym{MIME} encoding employed when
 sending address@hidden (i.e., 8-bit) articles.  It typically
-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
+makes strings like @samp{d@'address@hidden 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
 has been done.  If a prefix is given, a charset will be asked for.
 
@@ -8680,6 +8981,14 @@
 common encoding employed when sending Chinese articles.  It typically
 makes strings look like @address@hidden<:Ky2;address@hidden,NpJ)address@hidden
 
address@hidden W A
address@hidden W A (Summary)
address@hidden gnus-article-treat-ansi-sequences
address@hidden @acronym{ANSI} control sequences
+Translate @acronym{ANSI} SGR control sequences into overlays or
+extents (@code{gnus-article-treat-ansi-sequences}).  @acronym{ANSI}
+sequences are used in some Chinese hierarchies for highlighting.
+
 @item W u
 @kindex W u (Summary)
 @findex gnus-article-unsplit-urls
@@ -9307,7 +9616,7 @@
 @cindex viewing attachments
 
 The following commands all understand the numerical prefix.  For
-instance, @kbd{3 b} means ``view the third @acronym{MIME} part''.
+instance, @kbd{3 K v} means ``view the third @acronym{MIME} part''.
 
 @table @kbd
 @item b
@@ -9320,6 +9629,21 @@
 @kindex K o (Summary)
 Save the @acronym{MIME} part.
 
address@hidden K O
address@hidden K O (Summary)
+Prompt for a file name, then save the @acronym{MIME} part and strip it
+from the article.  The stripped @acronym{MIME} object will be referred
+via the message/external-body @acronym{MIME} type.
+
address@hidden K r
address@hidden K r (Summary)
+Replace the @acronym{MIME} part with an external body.
+
address@hidden K d
address@hidden K d (Summary)
+Delete the @acronym{MIME} part and add some information about the
+removed part.
+
 @item K c
 @kindex K c (Summary)
 Copy the @acronym{MIME} part.
@@ -9677,6 +10001,11 @@
 @findex gnus-summary-sort-by-author
 Sort by author (@code{gnus-summary-sort-by-author}).
 
address@hidden C-c C-s C-t
address@hidden C-c C-s C-t (Summary)
address@hidden gnus-summary-sort-by-recipient
+Sort by recipient (@code{gnus-summary-sort-by-recipient}).
+
 @item C-c C-s C-s
 @kindex C-c C-s C-s (Summary)
 @findex gnus-summary-sort-by-subject
@@ -10401,6 +10730,18 @@
 Search through all previous (raw) articles for a regexp
 (@code{gnus-summary-search-article-backward}).
 
address@hidden M-S
address@hidden M-S (Summary)
address@hidden gnus-summary-repeat-search-article-forward
+Repeat the previous search forwards
+(@code{gnus-summary-repeat-search-article-forward}).
+
address@hidden M-R
address@hidden M-R (Summary)
address@hidden gnus-summary-repeat-search-article-backward
+Repeat the previous search backwards
+(@code{gnus-summary-repeat-search-article-backward}).
+
 @item &
 @kindex & (Summary)
 @findex gnus-summary-execute-command
@@ -10442,6 +10783,12 @@
 Pull all dormant articles (for the current group) into the summary buffer
 (@code{gnus-summary-insert-dormant-articles}).
 
address@hidden Y t
address@hidden Y t (Summary)
address@hidden gnus-summary-insert-ticked-articles
+Pull all ticked articles (for the current group) into the summary buffer
+(@code{gnus-summary-insert-ticked-articles}).
+
 @end table
 
 
@@ -10464,6 +10811,28 @@
 some format, you @kbd{C-d} and read these messages in a more convenient
 fashion.
 
address@hidden gnus-auto-select-on-ephemeral-exit
+The variable @code{gnus-auto-select-on-ephemeral-exit} controls what
+article should be selected after exiting a digest group.  Valid values
+include:
+
address@hidden @code
address@hidden next
+Select the next article.
+
address@hidden next-unread
+Select the next unread article.
+
address@hidden next-noselect
+Move the cursor to the next article.  This is the default.
+
address@hidden next-unread-noselect
+Move the cursor to the next unread article.
address@hidden table
+
+If it has any other value or there is no next (unread) article, the
+article selected before entering to the digest group will appear.
+
 @item C-M-d
 @kindex C-M-d (Summary)
 @findex gnus-summary-read-document
@@ -10562,6 +10931,12 @@
 Mark all articles as read and go to the next group
 (@code{gnus-summary-catchup-and-goto-next-group}).
 
address@hidden Z p
address@hidden Z p (Summary)
address@hidden gnus-summary-catchup-and-goto-prev-group
+Mark all articles as read and go to the previous group
+(@code{gnus-summary-catchup-and-goto-prev-group}).
+
 @item Z R
 @itemx C-x C-s
 @kindex Z R (Summary)
@@ -10891,7 +11266,7 @@
 
 @item C-c C-n a
 @kindex C-c C-n a (Summary)
address@hidden gnus-mailing-list-owner
address@hidden gnus-mailing-list-archive
 Browse the mailing list archive, if List-Archive field exists.
 
 @end table
@@ -11111,6 +11486,13 @@
 message/external-body @acronym{MIME} type.
 (@code{gnus-mime-save-part-and-strip}).
 
address@hidden gnus-mime-replace-part
address@hidden r (Article)
address@hidden r (Article)
+Prompt for a file name, replace the @acronym{MIME} object with an
+external body refering to the file via the message/external-body
address@hidden type.  (@code{gnus-mime-replace-part}).
+
 @findex gnus-mime-delete-part
 @item d (Article)
 @kindex d (Article)
@@ -11118,11 +11500,16 @@
 information about the removed @acronym{MIME} object
 (@code{gnus-mime-delete-part}).
 
address@hidden FIXME: gnus-auto-select-part should be documented here
+
 @findex gnus-mime-copy-part
 @item c (Article)
 @kindex c (Article)
 Copy the @acronym{MIME} object to a fresh buffer and display this buffer
-(@code{gnus-mime-copy-part}).  Compressed files like @file{.gz} and
+(@code{gnus-mime-copy-part}).  If given a prefix, copy the raw contents
+without decoding.  If given a numerical prefix, you can do semi-manual
+charset stuff (see @code{gnus-summary-show-article-charset-alist} in
address@hidden the Article}).  Compressed files like @file{.gz} and
 @file{.bz2} are automatically decompressed if
 @code{auto-compression-mode} is enabled (@pxref{Compressed Files,,
 Accessing Compressed Files, emacs, The Emacs Editor}).
@@ -11142,7 +11529,10 @@
 the raw contents without decoding.  If given a numerical prefix, you can
 do semi-manual charset stuff (see
 @code{gnus-summary-show-article-charset-alist} in @ref{Paging the
-Article}).
+Article}).  Compressed files like @file{.gz} and @file{.bz2} are
+automatically decompressed depending on @code{jka-compr} regardless of
address@hidden (@pxref{Compressed Files,, Accessing
+Compressed Files, emacs, The Emacs Editor}).
 
 @findex gnus-mime-view-part-internally
 @item E (Article)
@@ -11217,7 +11607,10 @@
 @code{head}: Do the treatment on the headers.
 
 @item
address@hidden: Do this treatment on the last part.
address@hidden: Do this treatment on the first body part.
+
address@hidden
address@hidden: Do this treatment on the last body part.
 
 @item
 An integer: Do this treatment on all body parts that have a length less
@@ -11322,7 +11715,7 @@
 @item gnus-treat-overstrike (t, integer)
 @item gnus-treat-strip-cr (t, integer)
 @item gnus-treat-strip-headers-in-body (t, integer)
address@hidden gnus-treat-strip-leading-blank-lines (t, integer)
address@hidden gnus-treat-strip-leading-blank-lines (t, first, integer)
 @item gnus-treat-strip-multiple-blank-lines (t, integer)
 @item gnus-treat-strip-pem (t, last, integer)
 @item gnus-treat-strip-trailing-blank-lines (t, last, integer)
@@ -11403,6 +11796,7 @@
 @item gnus-treat-play-sounds
 @vindex gnus-treat-translate
 @item gnus-treat-translate
address@hidden gnus-treat-ansi-sequences (t)
 @vindex gnus-treat-x-pgp-sig
 @item gnus-treat-x-pgp-sig (head)
 
@@ -11615,7 +12009,8 @@
 @item gnus-use-idna
 This variable controls whether Gnus performs IDNA decoding of
 internationalized domain names inside @samp{From}, @samp{To} and
address@hidden headers.  This requires
address@hidden headers.  @xref{IDNA, ,IDNA,message, The Message Manual},
+for how to compose such messages.  This requires
 @uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
 variable is only enabled if you have installed it.
 
@@ -11873,6 +12268,10 @@
 
 Modify to suit your needs.
 
address@hidden gnus-message-highlight-citation
+If @code{gnus-message-highlight-citation} is t, different levels of
+citations are highlighted like in Gnus article buffers also in message
+mode buffers.
 
 @node Archived Messages
 @section Archived Messages
@@ -11891,7 +12290,8 @@
 
 @vindex gnus-message-archive-method
 @code{gnus-message-archive-method} says what virtual server Gnus is to
-use to store sent messages.  The default is:
+use to store sent messages.  The default is @code{"archive"}, and when
+actually being used it is expanded into:
 
 @lisp
 (nnfolder "archive"
@@ -11901,6 +12301,22 @@
           (nnfolder-inhibit-expiry t))
 @end lisp
 
address@hidden
address@hidden gnus-update-message-archive-method
+Note: a server like this is saved in the @file{~/.newsrc.eld} file first
+so that it may be used as a real method of the server which is named
address@hidden"archive"} (that is, for the case where
address@hidden is set to @code{"archive"}) ever
+since.  If it once has been saved, it will never be updated by default
+even if you change the value of @code{gnus-message-archive-method}
+afterward.  Therefore, the server @code{"archive"} doesn't necessarily
+mean the @code{nnfolder} server like this at all times.  If you want the
+saved method to reflect always the value of
address@hidden, set the
address@hidden variable to a address@hidden
+value.  The default value of this variable is @code{nil}.
address@hidden quotation
+
 You can, however, use any mail select method (@code{nnml},
 @code{nnmbox}, etc.).  @code{nnfolder} is a quite likable select method
 for doing this sort of thing, though.  If you don't like the default
@@ -12104,6 +12520,9 @@
 @item @code{body}
 @end itemize
 
+Note that the @code{signature-file} attribute honors the variable
address@hidden
+
 The attribute name can also be a string or a symbol.  In that case,
 this will be used as a header name, and the value will be inserted in
 the headers of the article; if the value is @code{nil}, the header
@@ -12535,6 +12954,15 @@
 (@code{gnus-server-regenerate-server}).  This can be useful if you have
 a mail back end that has gotten out of sync.
 
address@hidden z
address@hidden z (Server)
address@hidden gnus-server-compact-server
+
+Compact all groups in the server under point
+(@code{gnus-server-compact-server}).  Currently implemented only in
+nnml (@pxref{Mail Spool}).  This removes gaps between article numbers,
+hence getting a correct total article count.
+
 @end table
 
 
@@ -12616,7 +13044,19 @@
       (nntp-via-rlogin-command "ssh")
 @end lisp
 
-See also @code{nntp-via-rlogin-command-switches}.
+See also @code{nntp-via-rlogin-command-switches}.  Here's an example for
+an indirect connection:
address@hidden
+(setq gnus-select-method
+      '(nntp "indirect"
+             (nntp-address "news.server.example")
+             (nntp-via-user-name "intermediate_user_name")
+             (nntp-via-address "intermediate.host.example")
+             (nntp-via-rlogin-command "ssh")
+             (nntp-end-of-line "\n")
+             (nntp-via-rlogin-command-switches ("-C" "-t" "-e" "none"))
+             (nntp-open-connection-function nntp-open-via-rlogin-and-telnet)))
address@hidden lisp
 
 If you're behind a firewall, but have direct access to the outside world
 through a wrapper command like "runsocks", you could open a socksified
@@ -13006,9 +13446,9 @@
 It is possible to customize how the connection to the nntp server will
 be opened.  If you specify an @code{nntp-open-connection-function}
 parameter, Gnus will use that function to establish the connection.
-Six pre-made functions are supplied.  These functions can be grouped in
-two categories: direct connection functions (four pre-made), and
-indirect ones (two pre-made).
+Seven pre-made functions are supplied.  These functions can be grouped
+in two categories: direct connection functions (four pre-made), and
+indirect ones (three pre-made).
 
 @item nntp-never-echoes-commands
 @vindex nntp-never-echoes-commands
@@ -13049,6 +13489,7 @@
 * Direct Functions::            Connecting directly to the server.
 * Indirect Functions::          Connecting indirectly to the server.
 * Common Variables::            Understood by several connection functions.
+* NNTP marks::                  Storing marks for @acronym{NNTP} servers.
 @end menu
 
 
@@ -13158,6 +13599,41 @@
 host.
 @end table
 
+Note that you may want to change the value for @code{nntp-end-of-line}
+to @samp{\n} (@pxref{Common Variables}).
+
address@hidden nntp-open-via-rlogin-and-netcat
address@hidden nntp-open-via-rlogin-and-netcat
+Does essentially the same, but uses
address@hidden://netcat.sourceforge.net/, netcat} instead of @samp{telnet}
+to connect to the real @acronym{NNTP} server from the intermediate host.
+
address@hidden variables:
+
address@hidden @code
address@hidden nntp-via-netcat-command
address@hidden nntp-via-netcat-command
+Command used to connect to the real @acronym{NNTP} server from the
+intermediate host.  The default is @samp{nc}.  You can also use other
+programs like @uref{http://www.imasy.or.jp/~gotoh/ssh/connect.html,
+connect} instead.
+
address@hidden nntp-via-netcat-switches
address@hidden nntp-via-netcat-switches
+List of strings to be used as the switches to the
address@hidden command.  The default is @code{nil}.
+
address@hidden nntp-via-rlogin-command
address@hidden nntp-via-rlogin-command
+Command used to log in on the intermediate host.  The default is
address@hidden, but @samp{ssh} is a popular alternative.
+
address@hidden nntp-via-rlogin-command-switches
address@hidden nntp-via-rlogin-command-switches
+List of strings to be used as the switches to
address@hidden  The default is @code{nil}.
address@hidden table
+
 @item nntp-open-via-telnet-and-telnet
 @findex nntp-open-via-telnet-and-telnet
 Does essentially the same, but uses @samp{telnet} instead of
@@ -13193,6 +13669,8 @@
 
 @end table
 
+Note that you may want to change the value for @code{nntp-end-of-line}
+to @samp{\n} (@pxref{Common Variables}).
 @end table
 
 
@@ -13247,7 +13725,7 @@
 @vindex nntp-end-of-line
 String to use as end-of-line marker when talking to the @acronym{NNTP}
 server.  This is @samp{\r\n} by default, but should be @samp{\n} when
-using a non native connection function.
+using a non native telnet connection function.
 
 @item nntp-telnet-command
 @vindex nntp-telnet-command
@@ -13263,6 +13741,52 @@
 
 @end table
 
address@hidden NNTP marks
address@hidden NNTP marks
address@hidden storing NNTP marks
+
+Gnus stores marks (@pxref{Marking Articles}) for @acronym{NNTP}
+servers in marks files.  A marks file records what marks you have set
+in a group and each file is specific to the corresponding server.
+Marks files are stored in @file{~/News/marks}
+(@code{nntp-marks-directory}) under a classic hierarchy resembling
+that of a news server, for example marks for the group
address@hidden on the news.gmane.org server will be stored in
+the file @file{~/News/marks/news.gmane.org/gmane/discuss/.marks}.
+
+Marks files are useful because you can copy the @file{~/News/marks}
+directory (using rsync, scp or whatever) to another Gnus installation,
+and it will realize what articles you have read and marked.  The data
+in @file{~/News/marks} has priority over the same data in
address@hidden/.newsrc.eld}.
+
+Note that marks files are very much server-specific: Gnus remembers
+the article numbers so if you don't use the same servers on both
+installations things are most likely to break (most @acronym{NNTP}
+servers do not use the same article numbers as any other server).
+However, if you use servers A, B, C on one installation and servers A,
+D, E on the other, you can sync the marks files for A and then you'll
+get synchronization for that server between the two installations.
+
+Using @acronym{NNTP} marks can possibly incur a performance penalty so
+if Gnus feels sluggish, try setting the @code{nntp-marks-is-evil}
+variable to @code{t}.  Marks will then be stored in @file{~/.newsrc.eld}.
+
+Related variables:
+
address@hidden @code
+
address@hidden nntp-marks-is-evil
address@hidden nntp-marks-is-evil
+If address@hidden, this back end will ignore any marks files.  The
+default is @code{nil}.
+
address@hidden nntp-marks-directory
address@hidden nntp-marks-directory
+The directory where marks for nntp groups will be stored.
+
address@hidden table
+
 
 @node News Spool
 @subsection News Spool
@@ -13926,7 +14450,9 @@
 ssh %s imapd
 @end example
 
-The valid format specifier characters are:
+Make sure nothing is interfering with the output of the program, e.g.,
+don't forget to redirect the error output to the void.  The valid format
+specifier characters are:
 
 @table @samp
 @item s
@@ -14342,7 +14868,7 @@
 The buffer is narrowed to the message in question when @var{function}
 is run.  That's why @code{(widen)} needs to be called after
 @code{save-excursion} and @code{save-restriction} in the example
-above.  Also note that with the nnimap backend, message bodies will
+above.  Also note that with the nnimap back end, message bodies will
 not be downloaded by default.  You need to set
 @code{nnimap-split-download-body} to @code{t} to do that
 (@pxref{Splitting in IMAP}).
@@ -14956,12 +15482,16 @@
 @findex nnmail-remove-tabs
 Translate all @samp{TAB} characters into @samp{SPACE} characters.
 
address@hidden nnmail-fix-eudora-headers
address@hidden nnmail-fix-eudora-headers
address@hidden nnmail-ignore-broken-references
address@hidden nnmail-ignore-broken-references
address@hidden @findex nnmail-fix-eudora-headers
 @cindex Eudora
-Eudora produces broken @code{References} headers, but OK
address@hidden headers.  This function will get rid of the
address@hidden headers.
address@hidden Pegasus
+Some mail user agents (e.g. Eudora and Pegasus) produce broken
address@hidden headers, but correct @code{In-Reply-To} headers.  This
+function will get rid of the @code{References} header if the headers
+contain a line matching the regular expression
address@hidden
 
 @end table
 
@@ -15186,7 +15716,7 @@
 servers have the property that you may backup them using @code{tar} or
 similar, and later be able to restore them into Gnus (by adding the
 proper @code{nnml} server) and have all your marks be preserved.  Marks
-for a group is usually stored in the @code{.marks} file (but see
+for a group are usually stored in the @code{.marks} file (but see
 @code{nnml-marks-file-name}) within each @code{nnml} group's directory.
 Individual @code{nnml} groups are also possible to backup, use @kbd{G m}
 to restore the group (after restoring the backup into the nnml
@@ -15245,7 +15775,18 @@
 @item nnml-use-compressed-files
 @vindex nnml-use-compressed-files
 If address@hidden, @code{nnml} will allow using compressed message
-files.
+files.  This requires @code{auto-compression-mode} to be enabled
+(@pxref{Compressed Files, ,Compressed Files, emacs, The Emacs Manual}).
+If the value of @code{nnml-use-compressed-files} is a string, it is used
+as the file extension specifying the compression program.  You can set it
+to @samp{.bz2} if your Emacs supports it.  A value of @code{t} is
+equivalent to @samp{.gz}.
+
address@hidden nnml-compressed-files-size-threshold
address@hidden nnml-compressed-files-size-threshold
+Default size threshold for compressed message files.  Message files with
+bodies larger than that many characters will be automatically compressed
+if @code{nnml-use-compressed-files} is address@hidden
 
 @end table
 
@@ -15958,7 +16499,7 @@
 
 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'être} is to
+providers if they were to do this---their @emph{raison d'@^etre} 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.
@@ -16238,6 +16779,15 @@
 @code{mm-universal-coding-system} (which defaults to @code{emacs-mule}
 in Emacs or @code{escape-quoted} in XEmacs).
 
address@hidden nnrss-ignore-article-fields
address@hidden nnrss-ignore-article-fields
+Some feeds update constantly article fields during their publications,
+e.g. to indicate the number of comments.  However, if there is
+a difference between the local article and the distant one, the latter
+is considered to be new.  To avoid this and discard some fields, set this
+variable to the list of fields to be ignored.  The default is
address@hidden'(slash:comments)}.
+
 @item nnrss-use-local
 @vindex nnrss-use-local
 @findex nnrss-generate-download-script
@@ -16275,7 +16825,7 @@
 @lisp
 (require 'browse-url)
 
-(defun browse-nnrss-url( arg )
+(defun browse-nnrss-url (arg)
   (interactive "p")
   (let ((url (assq nnrss-url-field
                    (mail-header-extra
@@ -16529,8 +17079,10 @@
 
 @vindex imap-shell-program
 @vindex imap-shell-host
-For @acronym{IMAP} connections using the @code{shell} stream, the variable
address@hidden specify what program to call.
+For @acronym{IMAP} connections using the @code{shell} stream, the
+variable @code{imap-shell-program} specify what program to call.  Make
+sure nothing is interfering with the output of the program, e.g., don't
+forget to redirect the error output to the void.
 
 @item nnimap-authenticator
 @vindex nnimap-authenticator
@@ -16709,6 +17261,30 @@
 if you get a lot of email within a week, setting this variable will
 cause a lot of network traffic between Gnus and the IMAP server.
 
address@hidden nnimap-logout-timeout
address@hidden nnimap-logout-timeout
+
+There is a case where a connection to a @acronym{IMAP} server is unable
+to close, when connecting to the server via a certain kind of network,
+e.g. @acronym{VPN}.  In that case, it will be observed that a connection
+between Emacs and the local network looks alive even if the server has
+closed a connection for some reason (typically, a timeout).
+Consequently, Emacs continues waiting for a response from the server for
+the @code{LOGOUT} command that Emacs sent, or hangs in other words.  If
+you are in such a network, setting this variable to a number of seconds
+will be helpful.  If it is set, a hung connection will be closed
+forcibly, after this number of seconds from the time Emacs sends the
address@hidden command.  It should not be too small value but too large
+value will be inconvenient too.  Perhaps the value 1.0 will be a good
+candidate but it might be worth trying some other values.
+
+Example server specification:
+
address@hidden
+(nnimap "mail.server.com"
+        (nnimap-logout-timeout 1.0))
address@hidden lisp
+
 @end table
 
 @menu
@@ -18350,7 +18926,8 @@
 reading news on a machine.
 
 Setting up Gnus as an ``offline'' newsreader is quite simple.  In
-fact, you don't even have to configure anything.
+fact, you don't have to configure anything as the agent is now enabled
+by default (@pxref{Agent Variables, gnus-agent}).
 
 Of course, to use it as such, you have to learn a few new commands.
 
@@ -18362,6 +18939,7 @@
 * Agent as Cache::              The Agent is a big cache too.
 * Agent Expiry::                How to make old articles go away.
 * Agent Regeneration::          How to recover from lost connections and other 
accidents.
+* Agent and flags::             How the Agent maintains flags.
 * Agent and IMAP::              How to use the Agent with @acronym{IMAP}.
 * Outgoing Messages::           What happens when you post/mail something?
 * Agent Variables::             Customizing is fun.
@@ -18526,55 +19104,46 @@
 
 @cindex Agent Parameters
 @table @code
address@hidden gnus-agent-cat-name
-The name of the category.
-
address@hidden gnus-agent-cat-groups
address@hidden agent-groups
 The list of groups that are in this category.
 
address@hidden gnus-agent-cat-predicate
address@hidden agent-predicate
 A predicate which (generally) gives a rough outline of which articles
 are eligible for downloading; and
 
address@hidden gnus-agent-cat-score-file
address@hidden agent-score
 a score rule which (generally) gives you a finer granularity when
 deciding what articles to download.  (Note that this @dfn{download
 score} is not necessarily related to normal scores.)
 
address@hidden gnus-agent-cat-enable-expiration
address@hidden agent-enable-expiration
 a boolean indicating whether the agent should expire old articles in
 this group.  Most groups should be expired to conserve disk space.  In
 fact, its probably safe to say that the gnus.* hierarchy contains the
 only groups that should not be expired.
 
address@hidden gnus-agent-cat-days-until-old
address@hidden agent-days-until-old
 an integer indicating the number of days that the agent should wait
 before deciding that a read article is safe to expire.
 
address@hidden gnus-agent-cat-low-score
address@hidden agent-low-score
 an integer that overrides the value of @code{gnus-agent-low-score}.
 
address@hidden gnus-agent-cat-high-score
address@hidden agent-high-score
 an integer that overrides the value of @code{gnus-agent-high-score}.
 
address@hidden gnus-agent-cat-length-when-short
address@hidden agent-short-article
 an integer that overrides the value of
 @code{gnus-agent-short-article}.
 
address@hidden gnus-agent-cat-length-when-long
address@hidden agent-long-article
 an integer that overrides the value of @code{gnus-agent-long-article}.
 
address@hidden @item gnus-agent-cat-disable-undownloaded-faces
address@hidden a symbol indicating whether the summary buffer should @emph{not} 
display
address@hidden undownloaded articles using the gnus-summary-*-undownloaded-face
address@hidden faces.  The symbol nil will enable the use of undownloaded faces 
while
address@hidden all other symbols disable them.
-
address@hidden gnus-agent-cat-enable-undownloaded-faces
address@hidden agent-enable-undownloaded-faces
 a symbol indicating whether the summary buffer should display
-undownloaded articles using the gnus-summary-*-undownloaded-face
-faces.  The symbol nil will disable the use of undownloaded faces while
-all other symbols enable them.
+undownloaded articles using the @code{gnus-summary-*-undownloaded-face}
+faces.  Any symbol other than @code{nil} will enable the use of
+undownloaded faces.
 @end table
 
 The name of a category can not be changed once the category has been
@@ -19079,9 +19648,9 @@
 
 @item J s
 @kindex J s (Agent Summary)
address@hidden gnus-agent-fetch-series
address@hidden gnus-agent-summary-fetch-series
 Download all processable articles in this group.
-(@code{gnus-agent-fetch-series}).
+(@code{gnus-agent-summary-fetch-series}).
 
 @item J u
 @kindex J u (Agent Summary)
@@ -19157,21 +19726,28 @@
 each time you visit it or to minimize your connection time), the
 undownloaded face will probably seem like a good idea.  The reason
 being that you do all of our work (marking, reading, deleting) with
-downloaded articles so the normal faces always appear.
-
-For occasional Agent users, the undownloaded faces may appear to be an
-absolutely horrible idea.  The issue being that, since most of their
-articles have not been fetched into the Agent, most of the normal
-faces will be obscured by the undownloaded faces.  If this is your
-situation, you have two choices available.  First, you can completely
-disable the undownload faces by customizing
address@hidden to delete the three cons-cells that
-refer to the @code{gnus-summary-*-undownloaded-face} faces.  Second,
-if you prefer to take a more fine-grained approach, you may set the
address@hidden group parameter to @code{t}.
-This parameter, like all other agent parameters, may be set on an
-Agent Category (@pxref{Agent Categories}), a Group Topic (@pxref{Topic
-Parameters}), or an individual group (@pxref{Group Parameters}).
+downloaded articles so the normal faces always appear.  For those
+users using the agent to improve online performance by caching the NOV
+database (most users since 5.10.2), the undownloaded faces may appear
+to be an absolutely horrible idea.  The issue being that, since none
+of their articles have been fetched into the Agent, all of the
+normal faces will be obscured by the undownloaded faces.
+
+If you would like to use the undownloaded faces, you must enable the
+undownloaded faces by setting the @code{agent-enable-undownloaded-faces}
+group parameter to @code{t}.  This parameter, like all other agent
+parameters, may be set on an Agent Category (@pxref{Agent Categories}),
+a Group Topic (@pxref{Topic Parameters}), or an individual group
+(@pxref{Group Parameters}).
+
+The one problem common to all users using the agent is how quickly it
+can consume disk space.  If you using the agent on many groups, it is
+even more difficult to effectively recover disk space.  One solution
+is the @samp{%F} format available in @code{gnus-group-line-format}.
+This format will display the actual disk space used by articles
+fetched into both the agent and cache.  By knowing which groups use
+the most space, users know where to focus their efforts when ``agent
+expiring'' articles.
 
 @node Agent as Cache
 @subsection Agent as Cache
@@ -19267,23 +19843,19 @@
 are stored locally.  An optional argument will mark articles in the
 agent as unread.
 
address@hidden Agent and IMAP
address@hidden Agent and IMAP
-
-The Agent works with any Gnus back end, including nnimap.  However,
-since there are some conceptual differences between @acronym{NNTP} and
address@hidden, this section (should) provide you with some information to
-make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client.
address@hidden Agent and flags
address@hidden Agent and flags
 
-The first thing to keep in mind is that all flags (read, ticked, etc)
-are kept on the @acronym{IMAP} server, rather than in @file{.newsrc} as is the
-case for nntp.  Thus Gnus need to remember flag changes when
-disconnected, and synchronize these flags when you plug back in.
-
-Gnus keeps track of flag changes when reading nnimap groups under the
-Agent.  When you plug back in, Gnus will check if you have any changed
-any flags and ask if you wish to synchronize these with the server.
-The behavior is customizable by @code{gnus-agent-synchronize-flags}.
+The Agent works with any Gnus back end including those, such as
+nnimap, that store flags (read, ticked, etc) on the server.  Sadly,
+the Agent does not actually know which backends keep their flags in
+the backend server rather than in @file{.newsrc}.  This means that the
+Agent, while unplugged or disconnected, will always record all changes
+to the flags in its own files.
+
+When you plug back in, Gnus will then check to see if you have any
+changed any flags and ask if you wish to synchronize these with the
+server.  This behavior is customizable by @code{gnus-agent-synchronize-flags}.
 
 @vindex gnus-agent-synchronize-flags
 If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
@@ -19297,6 +19869,23 @@
 @code{gnus-agent-synchronize-flags} command that is bound to @kbd{J Y}
 in the group buffer.
 
+Technical note: the synchronization algorithm does not work by ``pushing''
+all local flags to the server, but rather by incrementally updated the
+server view of flags by changing only those flags that were changed by
+the user.  Thus, if you set one flag on an article, quit the group then
+re-select the group and remove the flag; the flag will be set and
+removed from the server when you ``synchronize''.  The queued flag
+operations can be found in the per-server @code{flags} file in the Agent
+directory.  It's emptied when you synchronize flags.
+
address@hidden Agent and IMAP
address@hidden Agent and IMAP
+
+The Agent works with any Gnus back end, including nnimap.  However,
+since there are some conceptual differences between @acronym{NNTP} and
address@hidden, this section (should) provide you with some information to
+make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client.
+
 Some things are currently not implemented in the Agent that you'd might
 expect from a disconnected @acronym{IMAP} client, including:
 
@@ -19310,34 +19899,43 @@
 
 @end itemize
 
-Technical note: the synchronization algorithm does not work by ``pushing''
-all local flags to the server, but rather incrementally update the
-server view of flags by changing only those flags that were changed by
-the user.  Thus, if you set one flag on an article, quit the group and
-re-select the group and remove the flag; the flag will be set and
-removed from the server when you ``synchronize''.  The queued flag
-operations can be found in the per-server @code{flags} file in the Agent
-directory.  It's emptied when you synchronize flags.
-
-
 @node Outgoing Messages
 @subsection Outgoing Messages
 
-When Gnus is unplugged, all outgoing messages (both mail and news) are
-stored in the draft group ``queue'' (@pxref{Drafts}).  You can view
-them there after posting, and edit them at will.
-
-When Gnus is plugged again, you can send the messages either from the
-draft group with the special commands available there, or you can use
-the @kbd{J S} command in the group buffer to send all the sendable
-messages in the draft group.
-
-
+By default, when Gnus is unplugged, all outgoing messages (both mail
+and news) are stored in the draft group ``queue'' (@pxref{Drafts}).
+You can view them there after posting, and edit them at will.
+
+You can control the circumstances under which outgoing mail is queued
+(see @code{gnus-agent-queue-mail}, @pxref{Agent Variables}).  Outgoing
+news is always queued when Gnus is unplugged, and never otherwise.
+
+You can send the messages either from the draft group with the special
+commands available there, or you can use the @kbd{J S} command in the
+group buffer to send all the sendable messages in the draft group.
+Posting news will only work when Gnus is plugged, but you can send
+mail at any time.
+
+If sending mail while unplugged does not work for you and you worry
+about hitting @kbd{J S} by accident when unplugged, you can have Gnus
+ask you to confirm your action (see
address@hidden, @pxref{Agent Variables}).
 
 @node Agent Variables
 @subsection Agent Variables
 
 @table @code
address@hidden gnus-agent
address@hidden gnus-agent
+Is the agent enabled?  The default is @code{t}.  When first enabled,
+the agent will use @code{gnus-agent-auto-agentize-methods} to
+automatically mark some back ends as agentized.  You may change which
+back ends are agentized using the agent commands in the server buffer.
+
+To enter the server buffer, use the @kbd{^}
+(@code{gnus-group-enter-server-mode}) command in the group buffer.
+
+
 @item gnus-agent-directory
 @vindex gnus-agent-directory
 Where the Gnus Agent will store its files.  The default is
@@ -19384,6 +19982,14 @@
 thing to do as the newly downloaded article has obviously not been
 read.  The default is @code{t}.
 
address@hidden gnus-agent-synchronize-flags
address@hidden gnus-agent-synchronize-flags
+If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
+never automatically synchronize flags.  If it is @code{ask}, which is
+the default, the Agent will check if you made any changes and if so
+ask if you wish to synchronize these when you re-connect.  If it has
+any other value, all flags will be synchronized automatically.
+
 @item gnus-agent-consider-all-articles
 @vindex gnus-agent-consider-all-articles
 If @code{gnus-agent-consider-all-articles} is address@hidden, the
@@ -19432,13 +20038,26 @@
 ignores articles that have not been fetched), @code{unfetched}
 (maneuvering ignores articles whose headers have not been fetched).
 
address@hidden gnus-agent-queue-mail
address@hidden gnus-agent-queue-mail
+When @code{gnus-agent-queue-mail} is @code{always}, Gnus will always
+queue mail rather than sending it straight away.  When @code{t}, Gnus
+will queue mail when unplugged only.  When @code{nil}, never queue
+mail.  The default is @code{t}.
+
address@hidden gnus-agent-prompt-send-queue
address@hidden gnus-agent-prompt-send-queue
+When @code{gnus-agent-prompt-send-queue} is address@hidden Gnus will
+prompt you to confirm that you really wish to proceed if you hit
address@hidden S} while unplugged.  The default is @code{nil}.
+
 @item gnus-agent-auto-agentize-methods
 @vindex gnus-agent-auto-agentize-methods
 If you have never used the Agent before (or more technically, if
 @file{~/News/agent/lib/servers} does not exist), Gnus will
 automatically agentize a few servers for you.  This variable control
-which backends should be auto-agentized.  It is typically only useful
-to agentize remote backends.  The auto-agentizing has the same effect
+which back ends should be auto-agentized.  It is typically only useful
+to agentize remote back ends.  The auto-agentizing has the same effect
 as running @kbd{J a} on the servers (@pxref{Server Agent Commands}).
 If the file exist, you must manage the servers manually by adding or
 removing them, this variable is only applicable the first time you
@@ -19578,7 +20197,6 @@
 * 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.
 @end menu
@@ -19849,6 +20467,12 @@
 
 @table @kbd
 
address@hidden W e
address@hidden W e (Group)
address@hidden gnus-score-edit-all-score
+Edit the apply-to-all-groups all.SCORE file.  You will be popped into
+a @code{gnus-score-mode} buffer (@pxref{Score File Editing}).
+
 @item W f
 @kindex W f (Group)
 @findex gnus-score-flush-cache
@@ -20453,6 +21077,11 @@
 group name with @code{gnus-adaptive-file-suffix} appended.  The default
 is @file{ADAPT}.
 
address@hidden gnus-adaptive-pretty-print
+Adaptive score files can get huge and are not meant to be edited by
+human hands.  If @code{gnus-adaptive-pretty-print} is @code{nil} (the
+deafult) those files will not be written in a human readable way.
+
 @vindex gnus-score-exact-adapt-limit
 When doing adaptive scoring, substring or fuzzy matching would probably
 give you the best results in most cases.  However, if the header one
@@ -20705,6 +21334,13 @@
 
 See?  Simple.
 
address@hidden gnus-inhibit-slow-scoring
+You can inhibit scoring the slow scoring on headers or body by setting
+the variable @code{gnus-inhibit-slow-scoring}.  If
address@hidden is regexp, slow scoring is inhibited if
+the group matches the regexp.  If it is t, slow scoring on it is
+inhibited for all groups.
+
 
 @node Scoring Tips
 @section Scoring Tips
@@ -20967,205 +21603,6 @@
 before.
 
 
address@hidden GroupLens
address@hidden GroupLens
address@hidden GroupLens
-
address@hidden:} Unfortunately the GroupLens system seems to have shut down,
-so this section is mostly of historical interest.
-
address@hidden://www.cs.umn.edu/Research/GroupLens/, GroupLens} is a
-collaborative filtering system that helps you work together with other
-people to find the quality news articles out of the huge volume of
-news articles generated every day.
-
-To accomplish this the GroupLens system combines your opinions about
-articles you have already read with the opinions of others who have done
-likewise and gives you a personalized prediction for each unread news
-article.  Think of GroupLens as a matchmaker.  GroupLens watches how you
-rate articles, and finds other people that rate articles the same way.
-Once it has found some people you agree with it tells you, in the form
-of a prediction, what they thought of the article.  You can use this
-prediction to help you decide whether or not you want to read the
-article.
-
address@hidden
-* Using GroupLens::             How to make Gnus use GroupLens.
-* Rating Articles::             Letting GroupLens know how you rate articles.
-* Displaying Predictions::      Displaying predictions given by GroupLens.
-* GroupLens Variables::         Customizing GroupLens.
address@hidden menu
-
-
address@hidden Using GroupLens
address@hidden Using GroupLens
-
-To use GroupLens you must register a pseudonym with your local
address@hidden://www.cs.umn.edu/Research/GroupLens/bbb.html, Better Bit
-Bureau (BBB)} is the only better bit in town at the moment.
-
-Once you have registered you'll need to set a couple of variables.
-
address@hidden @code
-
address@hidden gnus-use-grouplens
address@hidden gnus-use-grouplens
-Setting this variable to a address@hidden value will make Gnus hook into
-all the relevant GroupLens functions.
-
address@hidden grouplens-pseudonym
address@hidden grouplens-pseudonym
-This variable should be set to the pseudonym you got when registering
-with the Better Bit Bureau.
-
address@hidden grouplens-newsgroups
address@hidden grouplens-newsgroups
-A list of groups that you want to get GroupLens predictions for.
-
address@hidden table
-
-That's the minimum of what you need to get up and running with GroupLens.
-Once you've registered, GroupLens will start giving you scores for
-articles based on the average of what other people think.  But, to get
-the real benefit of GroupLens you need to start rating articles
-yourself.  Then the scores GroupLens gives you will be personalized for
-you, based on how the people you usually agree with have already rated.
-
-
address@hidden Rating Articles
address@hidden Rating Articles
-
-In GroupLens, an article is rated on a scale from 1 to 5, inclusive.
-Where 1 means something like this article is a waste of bandwidth and 5
-means that the article was really good.  The basic question to ask
-yourself is, ``on a scale from 1 to 5 would I like to see more articles
-like this one?''
-
-There are four ways to enter a rating for an article in GroupLens.
-
address@hidden @kbd
-
address@hidden r
address@hidden r (GroupLens)
address@hidden bbb-summary-rate-article
-This function will prompt you for a rating on a scale of one to five.
-
address@hidden k
address@hidden k (GroupLens)
address@hidden grouplens-score-thread
-This function will prompt you for a rating, and rate all the articles in
-the thread.  This is really useful for some of those long running giant
-threads in rec.humor.
-
address@hidden table
-
-The next two commands, @kbd{n} and @kbd{,} take a numerical prefix to be
-the score of the article you're reading.
-
address@hidden @kbd
-
address@hidden 1-5 n
address@hidden n (GroupLens)
address@hidden grouplens-next-unread-article
-Rate the article and go to the next unread article.
-
address@hidden 1-5 ,
address@hidden , (GroupLens)
address@hidden grouplens-best-unread-article
-Rate the article and go to the next unread article with the highest score.
-
address@hidden table
-
-If you want to give the current article a score of 4 and then go to the
-next article, just type @kbd{4 n}.
-
-
address@hidden Displaying Predictions
address@hidden Displaying Predictions
-
-GroupLens makes a prediction for you about how much you will like a
-news article.  The predictions from GroupLens are on a scale from 1 to
-5, where 1 is the worst and 5 is the best.  You can use the predictions
-from GroupLens in one of three ways controlled by the variable
address@hidden
-
address@hidden gnus-grouplens-override-scoring
-There are three ways to display predictions in grouplens.  You may
-choose to have the GroupLens scores contribute to, or override the
-regular Gnus scoring mechanism.  override is the default; however, some
-people prefer to see the Gnus scores plus the grouplens scores.  To get
-the separate scoring behavior you need to set
address@hidden to @code{'separate}.  To have the
-GroupLens predictions combined with the grouplens scores set it to
address@hidden'override} and to combine the scores set
address@hidden to @code{'combine}.  When you use
-the combine option you will also want to set the values for
address@hidden and
address@hidden
-
address@hidden grouplens-prediction-display
-In either case, GroupLens gives you a few choices for how you would like
-to see your predictions displayed.  The display of predictions is
-controlled by the @code{grouplens-prediction-display} variable.
-
-The following are valid values for that variable.
-
address@hidden @code
address@hidden prediction-spot
-The higher the prediction, the further to the right an @samp{*} is
-displayed.
-
address@hidden confidence-interval
-A numeric confidence interval.
-
address@hidden prediction-bar
-The higher the prediction, the longer the bar.
-
address@hidden confidence-bar
-Numerical confidence.
-
address@hidden confidence-spot
-The spot gets bigger with more confidence.
-
address@hidden prediction-num
-Plain-old numeric value.
-
address@hidden confidence-plus-minus
-Prediction +/- confidence.
-
address@hidden table
-
-
address@hidden GroupLens Variables
address@hidden GroupLens Variables
-
address@hidden @code
-
address@hidden gnus-summary-grouplens-line-format
-The summary line format used in GroupLens-enhanced summary buffers.  It
-accepts the same specs as the normal summary line format (@pxref{Summary
-Buffer Lines}).  The default is @samp{%U%R%z%l%I%(%[%4L: %-23,23n%]%)
-%s\n}.
-
address@hidden grouplens-bbb-host
-Host running the bbbd server.  @samp{grouplens.cs.umn.edu} is the
-default.
-
address@hidden grouplens-bbb-port
-Port of the host running the bbbd server.  The default is 9000.
-
address@hidden grouplens-score-offset
-Offset the prediction by this value.  In other words, subtract the
-prediction value by this number to arrive at the effective score.  The
-default is 0.
-
address@hidden grouplens-score-scale-factor
-This variable allows the user to magnify the effect of GroupLens scores.
-The scale factor is applied after the offset.  The default is 1.
-
address@hidden table
-
-
 @node Advanced Scoring
 @section Advanced Scoring
 
@@ -21366,9 +21803,12 @@
 When score files are loaded and @code{gnus-decay-scores} is
 address@hidden, Gnus will run the score files through the decaying
 mechanism thereby lowering the scores of all non-permanent score rules.
-The decay itself if performed by the @code{gnus-decay-score-function}
-function, which is @code{gnus-decay-score} by default.  Here's the
-definition of that function:
+If @code{gnus-decay-scores} is a regexp, only score files matching this
+regexp are treated.  E.g. you may set it to @samp{\\.ADAPT\\'} if only
address@hidden score files should be decayed.  The decay itself if
+performed by the @code{gnus-decay-score-function} function, which is
address@hidden by default.  Here's the definition of that
+function:
 
 @lisp
 (defun gnus-decay-score (score)
@@ -21423,6 +21863,8 @@
 @include sieve.texi
 @chapter PGG
 @include pgg.texi
address@hidden SASL
address@hidden sasl.texi
 @end iflatex
 @end iftex
 
@@ -22805,6 +23247,32 @@
 Face to show X-Face.  The colors from this face are used as the
 foreground and background colors of the displayed X-Faces.  The
 default colors are black and white.
+
address@hidden gnus-face-properties-alist
address@hidden gnus-face-properties-alist
+Alist of image types and properties applied to Face (@pxref{Face}) and
+X-Face images.  The default value is @code{((pbm . (:face gnus-x-face))
+(png . nil))} for Emacs or @code{((xface . (:face gnus-x-face)))} for
+XEmacs.  Here are examples:
+
address@hidden
+;; Specify the altitude of Face and X-Face images in the From header.
+(setq gnus-face-properties-alist
+      '((pbm . (:face gnus-x-face :ascent 80))
+        (png . (:ascent 80))))
+
+;; Show Face and X-Face images as pressed buttons.
+(setq gnus-face-properties-alist
+      '((pbm . (:face gnus-x-face :relief -2))
+        (png . (:relief -2))))
address@hidden lisp
+
address@hidden Descriptors, ,Image Descriptors, elisp, The Emacs Lisp
+Reference Manual} for the valid properties for various image types.
+Currently, @code{pbm} is used for X-Face images and @code{png} is used
+for Face images in Emacs.  Only the @code{:face} property is effective
+on the @code{xface} image type in XEmacs if it is built with the
address@hidden library.
 @end table
 
 If you use posting styles, you can use an @code{x-face-file} entry in
@@ -22871,6 +23339,9 @@
 See @uref{http://quimby.gnus.org/circus/face/} for the precise
 specifications.
 
+The @code{gnus-face-properties-alist} variable affects the appearance of
+displayed Face images.  @xref{X-Face}.
+
 Viewing an @code{Face} header requires an Emacs that is able to display
 PNG images.
 @c Maybe add this:
@@ -22994,6 +23465,11 @@
 @code{gnus-picon-databases} points to the directory containing the
 Picons databases.
 
address@hidden gnus-picon-style
+The variable @code{gnus-picon-style} controls how picons are displayed.
+If @code{inline}, the textual representation is replaced.  If
address@hidden, picons are added right to the textual representation.
+
 The following variables offer control over where things are located.
 
 @table @code
@@ -23360,7 +23836,7 @@
           "spam"))))
 @end lisp
 
-Note that with the nnimap backend, message bodies will not be
+Note that with the nnimap back end, message bodies will not be
 downloaded by default.  You need to set
 @code{nnimap-split-download-body} to @code{t} to do that
 (@pxref{Splitting in IMAP}).
@@ -23383,10 +23859,10 @@
 @cindex hashcash
 
 A novel technique to fight spam is to require senders to do something
-costly for each message they send.  This has the obvious drawback that
-you cannot rely on everyone in the world using this technique,
-since it is not part of the Internet standards, but it may be useful
-in smaller communities.
+costly and demonstrably unique for each message they send.  This has
+the obvious drawback that you cannot rely on everyone in the world
+using this technique, since it is not part of the Internet standards,
+but it may be useful in smaller communities.
 
 While the tools in the previous section work well in practice, they
 work only because the tools are constantly maintained and updated as
@@ -23402,24 +23878,20 @@
 @cindex X-Hashcash
 The ``something costly'' is to burn CPU time, more specifically to
 compute a hash collision up to a certain number of bits.  The
-resulting hashcash cookie is inserted in a @samp{X-Hashcash:}
-header.  For more details, and for the external application
address@hidden you need to install to use this feature, see
address@hidden://www.cypherspace.org/~adam/hashcash/}.  Even more
-information can be found at @uref{http://www.camram.org/}.
-
-If you wish to call hashcash for each message you send, say something
-like:
+resulting hashcash cookie is inserted in a @samp{X-Hashcash:} header.
+For more details, and for the external application @code{hashcash} you
+need to install to use this feature, see
address@hidden://www.hashcash.org/}.  Even more information can be found
+at @uref{http://www.camram.org/}.
+
+If you wish to generate hashcash for each message you send, you can
+customize @code{message-generate-hashcash} (@pxref{Mail Headers, ,Mail
+Headers,message, The Message Manual}), as in:
 
 @lisp
-(require 'hashcash)
-(add-hook 'message-send-hook 'mail-add-payment)
+(setq message-generate-hashcash t)
 @end lisp
 
-The @file{hashcash.el} library can be found in the Gnus development
-contrib directory or at
address@hidden://users.actrix.gen.nz/mycroft/hashcash.el}.
-
 You will need to set up some additional variables as well:
 
 @table @code
@@ -23427,8 +23899,8 @@
 @item hashcash-default-payment
 @vindex hashcash-default-payment
 This variable indicates the default number of bits the hash collision
-should consist of.  By default this is 0, meaning nothing will be
-done.  Suggested useful values include 17 to 29.
+should consist of.  By default this is 20.  Suggested useful values
+include 17 to 29.
 
 @item hashcash-payment-alist
 @vindex hashcash-payment-alist
@@ -23440,16 +23912,23 @@
 @var{amount})} cells, where the @var{string} is the string to use
 (normally the email address or newsgroup name is used).
 
address@hidden hashcash
address@hidden hashcash
-Where the @code{hashcash} binary is installed.
address@hidden hashcash-path
address@hidden hashcash-path
+Where the @code{hashcash} binary is installed.  This variable should
+be automatically set by @code{executable-find}, but if it's @code{nil}
+(usually because the @code{hashcash} binary is not in your path)
+you'll get a warning when you check hashcash payments and an error
+when you generate hashcash payments.
 
 @end table
 
-Currently there is no built in functionality in Gnus to verify
-hashcash cookies, it is expected that this is performed by your hand
-customized mail filtering scripts.  Improvements in this area would be
-a useful contribution, however.
+Gnus can verify hashcash cookies, although this can also be done by
+hand customized mail filtering scripts.  To verify a hashcash cookie
+in a message, use the @code{mail-check-payment} function in the
address@hidden library.  You can also use the @code{spam.el}
+package with the @code{spam-use-hashcash} back end to validate hashcash
+cookies in incoming mail and filter mail accordingly (@pxref{Anti-spam
+Hashcash Payments}).
 
 @node Spam Package
 @section Spam Package
@@ -23481,6 +23960,9 @@
 You must read this section to understand how the Spam package works.
 Do not skip, speed-read, or glance through this section.
 
+Make sure you read the section on the @code{spam.el} sequence of
+events.  See @xref{Extending the Spam package}.
+
 @cindex spam-initialize
 @vindex spam-use-stat
 To use the Spam package, you @strong{must} first run the function
@@ -23836,7 +24318,7 @@
 @code{spam-mark-ham-unread-before-move-from-spam-group} parameter is
 set, the ham articles are marked as unread before being moved.
 
-If ham can not be moved---because of a read-only backend such as
+If ham can not be moved---because of a read-only back end such as
 @acronym{NNTP}, for example, it will be copied.
 
 Note that you can use multiples destinations per group or regular
@@ -23873,7 +24355,7 @@
 that if you see @samp{nntp:servername} before the group name in the
 group buffer then you need it here as well.
 
-If spam can not be moved---because of a read-only backend such as
+If spam can not be moved---because of a read-only back end such as
 @acronym{NNTP}, for example, it will be copied.
 
 Note that you can use multiples destinations per group or regular
@@ -23992,7 +24474,7 @@
 
 @end example
 
address@hidden Using @file{spam.el} on an IMAP server with a statistical filter 
on the server
address@hidden Using @code{spam.el} on an IMAP server with a statistical filter 
on the server
 From Reiner Steib <reiner.steib@@gmx.de>.
 
 My provider has set up bogofilter (in combination with @acronym{DCC}) on
@@ -24046,7 +24528,7 @@
 In my ham folders, I just hit @kbd{S x}
 (@code{gnus-summary-mark-as-spam}) whenever I see an unrecognized spam
 mail (false negative).  On group exit, those messages are moved to
address@hidden
address@hidden
 @end itemize
 
 @subsubheading Reporting spam articles in Gmane groups with 
@code{spam-report.el}
@@ -24086,6 +24568,7 @@
 * Blackholes::
 * Regular Expressions Header Matching::
 * Bogofilter::
+* SpamAssassin back end::
 * ifile spam filtering::
 * Spam Statistics Filtering::
 * SpamOracle::
@@ -24138,7 +24621,7 @@
 
 Instead of the obsolete
 @code{gnus-group-spam-exit-processor-blacklist}, it is recommended
-that you use @code{'(spam spam-use-blacklist)}.  Everything will work
+that you use @code{(spam spam-use-blacklist)}.  Everything will work
 the same way, we promise.
 
 @end defvar
@@ -24150,14 +24633,13 @@
 @code{gnus-spam-process-newsgroups} variable.  When this symbol is
 added to a group's @code{spam-process} parameter, the senders of
 ham-marked articles in @emph{ham} groups will be added to the
-whitelist.  Note that this ham processor has no effect in @emph{spam}
-or @emph{unclassified} groups.
+whitelist.
 
 @emph{WARNING}
 
 Instead of the obsolete
 @code{gnus-group-ham-exit-processor-whitelist}, it is recommended
-that you use @code{'(ham spam-use-whitelist)}.  Everything will work
+that you use @code{(ham spam-use-whitelist)}.  Everything will work
 the same way, we promise.
 
 @end defvar
@@ -24207,6 +24689,12 @@
 addresses in the BBDB will be allowed through; all others will be
 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
address@hidden a separate back end.  If you set
address@hidden to t, @emph{all} your BBDB splitting
+will be exclusive.
+
 @end defvar
 
 @defvar gnus-group-ham-exit-processor-BBDB
@@ -24216,14 +24704,13 @@
 @code{gnus-spam-process-newsgroups} variable.  When this symbol is
 added to a group's @code{spam-process} parameter, the senders of
 ham-marked articles in @emph{ham} groups will be added to the
-BBDB.  Note that this ham processor has no effect in @emph{spam}
-or @emph{unclassified} groups.
+BBDB.
 
 @emph{WARNING}
 
 Instead of the obsolete
 @code{gnus-group-ham-exit-processor-BBDB}, it is recommended
-that you use @code{'(ham spam-use-BBDB)}.  Everything will work
+that you use @code{(ham spam-use-BBDB)}.  Everything will work
 the same way, we promise.
 
 @end defvar
@@ -24250,7 +24737,7 @@
 
 Instead of the obsolete
 @code{gnus-group-spam-exit-processor-report-gmane}, it is recommended
-that you use @code{'(spam spam-use-gmane)}.  Everything will work the
+that you use @code{(spam spam-use-gmane)}.  Everything will work the
 same way, we promise.
 
 @end defvar
@@ -24261,8 +24748,15 @@
 running your own news server, for instance, and the local article
 numbers don't correspond to the Gmane article numbers.  When
 @code{spam-report-gmane-use-article-number} is @code{nil},
address@hidden will use the @code{X-Report-Spam} header that
-Gmane provides.
address@hidden will fetch the number from the article headers.
+
address@hidden defvar
+
address@hidden spam-report-user-mail-address
+
+Mail address exposed in the User-Agent spam reports to Gmane.  It allows
+the Gmane administrators to contact you in case of misreports.  The
+default is @code{user-mail-address}.
 
 @end defvar
 
@@ -24276,12 +24770,10 @@
 
 Similar to @code{spam-use-whitelist} (@pxref{Blacklists and
 Whitelists}), but uses hashcash tokens for whitelisting messages
-instead of the sender address.  You must have the @code{hashcash.el}
-package loaded for @code{spam-use-hashcash} to work properly.
-Messages without a hashcash payment token will be sent to the next
-spam-split rule.  This is an explicit filter, meaning that unless a
-hashcash token is found, the messages are not assumed to be spam or
-ham.
+instead of the sender address.  Messages without a hashcash payment
+token will be sent to the next spam-split rule.  This is an explicit
+filter, meaning that unless a hashcash token is found, the messages
+are not assumed to be spam or ham.
 
 @end defvar
 
@@ -24301,7 +24793,7 @@
 contains outdated servers.
 
 The blackhole check uses the @code{dig.el} package, but you can tell
address@hidden to use @code{dns.el} instead for better performance if
address@hidden to use @code{dns.el} instead for better performance if
 you set @code{spam-use-dig} to @code{nil}.  It is not recommended at
 this time to set @code{spam-use-dig} to @code{nil} despite the
 possible performance improvements, because some users may be unable to
@@ -24428,7 +24920,7 @@
 
 Instead of the obsolete
 @code{gnus-group-spam-exit-processor-bogofilter}, it is recommended
-that you use @code{'(spam spam-use-bogofilter)}.  Everything will work
+that you use @code{(spam spam-use-bogofilter)}.  Everything will work
 the same way, we promise.
 @end defvar
 
@@ -24438,14 +24930,13 @@
 @code{gnus-spam-process-newsgroups} variable.  When this symbol is
 added to a group's @code{spam-process} parameter, the ham-marked
 articles in @emph{ham} groups will be added to the Bogofilter database
-of non-spam messages.  Note that this ham processor has no effect in
address@hidden or @emph{unclassified} groups.
+of non-spam messages.
 
 @emph{WARNING}
 
 Instead of the obsolete
 @code{gnus-group-ham-exit-processor-bogofilter}, it is recommended
-that you use @code{'(ham spam-use-bogofilter)}.  Everything will work
+that you use @code{(ham spam-use-bogofilter)}.  Everything will work
 the same way, we promise.
 @end defvar
 
@@ -24464,6 +24955,59 @@
 used, or has already been used on the article.  The 0.9.2.1 version of
 Bogofilter was used to test this functionality.
 
address@hidden SpamAssassin back end
address@hidden SpamAssassin back end
address@hidden spam filtering
address@hidden spamassassin, spam filtering
address@hidden spam
+
address@hidden spam-use-spamassassin
+
+Set this variable if you want @code{spam-split} to use SpamAssassin.
+
+SpamAssassin assigns a score to each article based on a set of rules
+and tests, including a Bayesian filter.  The Bayesian filter can be
+trained by associating the @samp{$} mark for spam articles.  The
+spam score can be viewed by using the command @kbd{S t} in summary
+mode.
+
+If you set this variable, each article will be processed by
+SpamAssassin when @code{spam-split} is called.  If your mail is
+preprocessed by SpamAssassin, and you want to just use the
+SpamAssassin headers, set @code{spam-use-spamassassin-headers}
+instead.
+
+You should not enable this if you use
address@hidden
+
address@hidden defvar
+
address@hidden spam-use-spamassassin-headers
+
+Set this variable if your mail is preprocessed by SpamAssassin and
+want @code{spam-split} to split based on the SpamAssassin headers.
+
+You should not enable this if you use @code{spam-use-spamassassin}.
+
address@hidden defvar
+
address@hidden spam-spamassassin-program
+
+This variable points to the SpamAssassin executable.  If you have
address@hidden running, you can set this variable to the @code{spamc}
+executable for faster processing.  See the SpamAssassin documentation
+for more information on @code{spamd}/@code{spamc}.
+
address@hidden defvar
+
+SpamAssassin is a powerful and flexible spam filter that uses a wide
+variety of tests to identify spam.  A ham and a spam processors are
+provided, plus the @code{spam-use-spamassassin} and
address@hidden variables to indicate to
+spam-split that SpamAssassin should be either used, or has already
+been used on the article.  The 2.63 version of SpamAssassin was used
+to test this functionality.
+
 @node ifile spam filtering
 @subsubsection ifile spam filtering
 @cindex spam filtering
@@ -24533,7 +25077,7 @@
 
 Instead of the obsolete
 @code{gnus-group-spam-exit-processor-stat}, it is recommended
-that you use @code{'(spam spam-use-stat)}.  Everything will work
+that you use @code{(spam spam-use-stat)}.  Everything will work
 the same way, we promise.
 @end defvar
 
@@ -24543,18 +25087,17 @@
 @code{gnus-spam-process-newsgroups} variable.  When this symbol is
 added to a group's @code{spam-process} parameter, the ham-marked
 articles in @emph{ham} groups will be added to the spam-stat database
-of non-spam messages.  Note that this ham processor has no effect in
address@hidden or @emph{unclassified} groups.
+of non-spam messages.
 
 @emph{WARNING}
 
 Instead of the obsolete
 @code{gnus-group-ham-exit-processor-stat}, it is recommended
-that you use @code{'(ham spam-use-stat)}.  Everything will work
+that you use @code{(ham spam-use-stat)}.  Everything will work
 the same way, we promise.
 @end defvar
 
-This enables @file{spam.el} to cooperate with @file{spam-stat.el}.
+This enables @code{spam.el} to cooperate with @file{spam-stat.el}.
 @file{spam-stat.el} provides an internal (Lisp-only) spam database,
 which unlike ifile or Bogofilter does not require external programs.
 A spam and a ham processor, and the @code{spam-use-stat} variable for
@@ -24583,7 +25126,7 @@
 call SpamOracle.
 
 @vindex spam-use-spamoracle
-To enable SpamOracle usage by @file{spam.el}, set the variable
+To enable SpamOracle usage by @code{spam.el}, set the variable
 @code{spam-use-spamoracle} to @code{t} and configure the
 @code{nnmail-split-fancy} or @code{nnimap-split-fancy}.  @xref{Spam
 Package}.  In this example the @samp{INBOX} of an nnimap server is
@@ -24641,7 +25184,7 @@
 
 Instead of the obsolete
 @code{gnus-group-spam-exit-processor-spamoracle}, it is recommended
-that you use @code{'(spam spam-use-spamoracle)}.  Everything will work
+that you use @code{(spam spam-use-spamoracle)}.  Everything will work
 the same way, we promise.
 @end defvar
 
@@ -24651,14 +25194,13 @@
 @code{gnus-spam-process-newsgroups} variable.  When this symbol is added
 to a group's @code{spam-process} parameter, the ham-marked articles in
 @emph{ham} groups will be sent to the SpamOracle as samples of ham
-messages.  Note that this ham processor has no effect in @emph{spam} or
address@hidden groups.
+messages.
 
 @emph{WARNING}
 
 Instead of the obsolete
 @code{gnus-group-ham-exit-processor-spamoracle}, it is recommended
-that you use @code{'(ham spam-use-spamoracle)}.  Everything will work
+that you use @code{(ham spam-use-spamoracle)}.  Everything will work
 the same way, we promise.
 @end defvar
 
@@ -24696,45 +25238,22 @@
   "True if blackbox should be used.")
 @end lisp
 
-Add
address@hidden
-(spam-use-blackbox   . spam-check-blackbox)
address@hidden lisp
-to @code{spam-list-of-checks}.
-
-Add
address@hidden
-(gnus-group-ham-exit-processor-blackbox  ham spam-use-blackbox)
-(gnus-group-spam-exit-processor-blackbox spam spam-use-blackbox)
address@hidden lisp
-
-to @code{spam-list-of-processors}.
-
-Add
address@hidden
-(spam-use-blackbox spam-blackbox-register-routine
-                   nil
-                   spam-blackbox-unregister-routine
-                   nil)
address@hidden lisp
+Write @code{spam-check-blackbox} if Blackbox can check incoming mail.
 
-to @code{spam-registration-functions}.  Write the register/unregister
-routines using the bogofilter register/unregister routines as a
-start, or other register/unregister routines more appropriate to
-Blackbox.
+Write @code{spam-blackbox-register-routine} and
address@hidden using the bogofilter
+register/unregister routines as a start, or other restister/unregister
+routines more appropriate to Blackbox, if Blackbox can
+register/unregister spam and ham.
 
 @item
 Functionality
 
-Write the @code{spam-check-blackbox} function.  It should return
address@hidden or @code{spam-split-group}, observing the other
-conventions.  See the existing @code{spam-check-*} functions for
-examples of what you can do, and stick to the template unless you
-fully understand the reasons why you aren't.
-
-Make sure to add @code{spam-use-blackbox} to
address@hidden if Blackbox is a statistical
-mail analyzer that needs the full message body to operate.
+The @code{spam-check-blackbox} function should return @samp{nil} or
address@hidden, observing the other conventions.  See the
+existing @code{spam-check-*} functions for examples of what you can
+do, and stick to the template unless you fully understand the reasons
+why you aren't.
 
 @end enumerate
 
@@ -24749,8 +25268,8 @@
 provide them if Blackbox supports spam or ham processing.
 
 Also, ham and spam processors are being phased out as single
-variables.  Instead the form @code{'(spam spam-use-blackbox)} or
address@hidden'(ham spam-use-blackbox)} is favored.  For now, spam/ham
+variables.  Instead the form @code{(spam spam-use-blackbox)} or
address@hidden(ham spam-use-blackbox)} is favored.  For now, spam/ham
 processor variables are still around but they won't be for long.
 
 @lisp
@@ -24781,7 +25300,64 @@
 (variable-item spam-use-blackbox)
 @end lisp
 to the @code{spam-autodetect-methods} group parameter in
address@hidden
address@hidden if Blackbox can check incoming mail for spam contents.
+
+Finally, use the appropriate @code{spam-install-*-backend} function in
address@hidden  Here are the available functions.
+
+
address@hidden
+
address@hidden
address@hidden
+
+This function will simply install an alias for a back end that does
+everything like the original back end.  It is currently only used to
+make @code{spam-use-BBDB-exclusive} act like @code{spam-use-BBDB}.
+
address@hidden
address@hidden
+
+This function installs a back end that has no check function, but can
+register/unregister ham or spam.  The @code{spam-use-gmane} back end is
+such a back end.
+
address@hidden
address@hidden
+
+This function will install a back end that can only check incoming mail
+for spam contents.  It can't register or unregister messages.
address@hidden and @code{spam-use-hashcash} are such
+back ends.
+
address@hidden
address@hidden
+
+This function installs a statistical back end (one which requires the
+full body of a message to check it) that can only check incoming mail
+for contents.  @code{spam-use-regex-body} is such a filter.
+
address@hidden
address@hidden
+
+This function install a statistical back end with incoming checks and
+registration/unregistration routines.  @code{spam-use-bogofilter} is
+set up this way.
+
address@hidden
address@hidden
+
+This is the most normal back end installation, where a back end that can
+check and register/unregister messages is set up without statistical
+abilities.  The @code{spam-use-BBDB} is such a back end.
+
address@hidden
address@hidden
+
+Mover back ends are internal to @code{spam.el} and specifically move
+articles around when the summary is exited.  You will very probably
+never install such a back end.
address@hidden enumerate
 
 @end enumerate
 
@@ -25140,6 +25716,17 @@
 This variable works the same way as @code{gnus-verbose}, but it applies
 to the Gnus back ends instead of Gnus proper.
 
address@hidden gnus-add-timestamp-to-message
address@hidden gnus-add-timestamp-to-message
+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
address@hidden@samp{ *Message-Log*}} buffer).  If it is neither @code{nil} nor
address@hidden, add timestamps not only to log messages but also to the ones
+displayed in the echo area.
+
 @item nnheader-max-head-length
 @vindex nnheader-max-head-length
 When the back ends read straight heads of articles, they all try to read
@@ -25661,8 +26248,7 @@
 Kim-Minh Kaplan---further work on the picon code.
 
 @item
-Brad address@hidden and the GroupLens manual section
-(@pxref{GroupLens}).
+Brad address@hidden and the GroupLens manual section.
 
 @item
 Sudish Joseph---innumerable bug fixes.
@@ -25703,7 +26289,7 @@
 Kevin Davidson---came up with the name @dfn{ding}, so blame him.
 
 @item
-François Pinard---many, many interesting and thorough bug reports, as
+Fran@,{c}ois Pinard---many, many interesting and thorough bug reports, as
 well as autoconf support.
 
 @end itemize
@@ -25720,7 +26306,7 @@
 Jesper Harder,
 Paul Jarc,
 Simon Josefsson,
-David Kågedal,
+David address@hidden,
 Richard Pieri,
 Fabrice Popineau,
 Daniel Quinlan,
@@ -25805,12 +26391,13 @@
 P. E. Jareth Hein,
 Hisashige Kenji, @c Hisashige
 Scott Hofmann,
+Tassilo Horn,
 Marc Horowitz,
 Gunnar Horrigmo,
 Richard Hoskins,
 Brad Howes,
 Miguel de Icaza,
-François Felix Ingrand,
+Fran@,{c}ois Felix Ingrand,
 Tatsuya Ichikawa, @c Ichikawa
 Ishikawa Ichiro, @c Ishikawa
 Lee Iverson,
@@ -25950,6 +26537,7 @@
 * Quassia Gnus::                Two times two is four, or Gnus 5.6/5.7.
 * Pterodactyl Gnus::            Pentad also starts with P, AKA Gnus 5.8/5.9.
 * Oort Gnus::                   It's big.  It's far out.  Gnus 5.10/5.11.
+* No Gnus::                     Very punny.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
@@ -26109,7 +26697,7 @@
 referred.
 
 @item
-Gnus can make use of GroupLens predictions (@pxref{GroupLens}).
+Gnus can make use of GroupLens predictions.
 
 @item
 Picons (personal icons) can be displayed under XEmacs (@pxref{Picons}).
@@ -26758,7 +27346,7 @@
 using a wide variety of programs and filter rules.  Among the supported
 methods are RBL blocklists, bogofilter and white/blacklists.  Hooks
 for easy use of external packages such as SpamAssassin and Hashcash
-are also new.  @xref{Thwarting Email Spam}.
+are also new.  @ref{Thwarting Email Spam} and @ref{Spam Package}.
 @c FIXME: @xref{Spam Package}?.  Should this be under Misc?
 
 @item
@@ -27325,6 +27913,15 @@
 
 @end itemize
 
address@hidden No Gnus
address@hidden No Gnus
address@hidden No Gnus
+
+New features in No Gnus:
address@hidden FIXME: Gnus 5.12?
+
address@hidden gnus-news.texi
+
 @iftex
 
 @page
@@ -28416,7 +29013,9 @@
 alterations.  This comes in handy if the back end really carries all
 the information (as is the case with virtual and imap groups).  This
 function should destructively alter the info to suit its needs, and
-should return a address@hidden value.
+should return a address@hidden value (exceptionally,
address@hidden always returns @code{nil} not to waste
+the network resources).
 
 There should be no result data from this function.
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]