Importing Oort Gnus v0.05.
[elisp/gnus.git-] / texi / gnus.texi
index 30b8189..c000d91 100644 (file)
 
 \ifx\pdfoutput\undefined
 \else
 
 \ifx\pdfoutput\undefined
 \else
-\usepackage[pdftex,bookmarks]{hyperref}
+\usepackage[pdftex,bookmarks,colorlinks=true]{hyperref}
+\usepackage{thumbpdf}
 \pdfcompresslevel=9
 \fi
 
 \makeindex
 \begin{document}
 
 \pdfcompresslevel=9
 \fi
 
 \makeindex
 \begin{document}
 
-\newcommand{\gnusversionname}{Oort Gnus v.}
+\newcommand{\gnusversionname}{Oort Gnus v0.05}
 \newcommand{\gnuschaptername}{}
 \newcommand{\gnussectionname}{}
 
 \newcommand{\gnuschaptername}{}
 \newcommand{\gnussectionname}{}
 
 
 \thispagestyle{empty}
 
 
 \thispagestyle{empty}
 
-Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 Free Software Foundation, Inc.
 
 
 Free Software Foundation, Inc.
 
 
@@ -315,7 +316,7 @@ license to the document, as described in section 6 of the license.
 
 This file documents Gnus, the GNU Emacs newsreader.
 
 
 This file documents Gnus, the GNU Emacs newsreader.
 
-Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
         Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
         Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
@@ -345,7 +346,7 @@ license to the document, as described in section 6 of the license.
 @page
 
 @vskip 0pt plus 1filll
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
         Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
         Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
@@ -381,7 +382,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Oort Gnus v.
+This manual corresponds to Oort Gnus v0.05
 
 @end ifinfo
 
 
 @end ifinfo
 
@@ -477,8 +478,8 @@ Group Buffer Format
 
 Group Topics
 
 
 Group Topics
 
-* Topic Variables::             How to customize the topics the Lisp Way.
 * Topic Commands::              Interactive E-Z commands.
 * Topic Commands::              Interactive E-Z commands.
+* Topic Variables::             How to customize the topics the Lisp Way.
 * Topic Sorting::               Sorting each topic individually.
 * Topic Topology::              A map of the world.
 * Topic Parameters::            Parameters that apply to all groups in a topic.
 * Topic Sorting::               Sorting each topic individually.
 * Topic Topology::              A map of the world.
 * Topic Parameters::            Parameters that apply to all groups in a topic.
@@ -498,7 +499,7 @@ Summary Buffer
 * Choosing Articles::           Reading articles.
 * Paging the Article::          Scrolling the current article.
 * Reply Followup and Post::     Posting articles.
 * Choosing Articles::           Reading articles.
 * Paging the Article::          Scrolling the current article.
 * Reply Followup and Post::     Posting articles.
-* Delayed Articles::
+* Delayed Articles::            
 * Marking Articles::            Marking articles as read, expirable, etc.
 * Limiting::                    You can limit the summary buffer.
 * Threading::                   How threads are made.
 * Marking Articles::            Marking articles as read, expirable, etc.
 * Limiting::                    You can limit the summary buffer.
 * Threading::                   How threads are made.
@@ -543,16 +544,16 @@ Reply, Followup and Post
 * Summary Mail Commands::       Sending mail.
 * Summary Post Commands::       Sending news.
 * Summary Message Commands::    Other Message-related commands.
 * Summary Mail Commands::       Sending mail.
 * Summary Post Commands::       Sending news.
 * Summary Message Commands::    Other Message-related commands.
-* Canceling and Superseding::
+* Canceling and Superseding::   
 
 Marking Articles
 
 * Unread Articles::             Marks for unread articles.
 * Read Articles::               Marks for read articles.
 * Other Marks::                 Marks that do not affect readedness.
 
 Marking Articles
 
 * Unread Articles::             Marks for unread articles.
 * Read Articles::               Marks for read articles.
 * Other Marks::                 Marks that do not affect readedness.
-* Setting Marks::
-* Generic Marking Commands::
-* Setting Process Marks::
+* Setting Marks::               
+* Generic Marking Commands::    
+* Setting Process Marks::       
 
 Marking Articles
 
 
 Marking Articles
 
@@ -593,8 +594,10 @@ Article Treatment
 * Article Fontisizing::         Making emphasized text look nice.
 * Article Hiding::              You also want to make certain info go away.
 * Article Washing::             Lots of way-neat functions to make life better.
 * Article Fontisizing::         Making emphasized text look nice.
 * Article Hiding::              You also want to make certain info go away.
 * Article Washing::             Lots of way-neat functions to make life better.
+* Article Header::              Doing various header transformations.
 * Article Buttons::             Click on URLs, Message-IDs, addresses and the like.
 * Article Date::                Grumble, UT!
 * Article Buttons::             Click on URLs, Message-IDs, addresses and the like.
 * Article Date::                Grumble, UT!
+* Article Display::             Display various stuff---X-Face, Picons, Smileys
 * Article Signature::           What is a signature?
 * Article Miscellania::         Various other stuff.
 
 * Article Signature::           What is a signature?
 * Article Miscellania::         Various other stuff.
 
@@ -607,7 +610,7 @@ Various Summary Stuff
 
 * Summary Group Information::   Information oriented commands.
 * Searching for Articles::      Multiple article commands.
 
 * Summary Group Information::   Information oriented commands.
 * Searching for Articles::      Multiple article commands.
-* Summary Generation Commands::
+* Summary Generation Commands::  
 * Really Various Summary Commands::  Those pesky non-conformant commands.
 
 Article Buffer
 * Really Various Summary Commands::  Those pesky non-conformant commands.
 
 Article Buffer
@@ -627,7 +630,7 @@ Composing Messages
 * Posting Styles::              An easier way to specify who you are.
 * Drafts::                      Postponing messages and rejected messages.
 * Rejected Articles::           What happens if the server doesn't like your article?
 * Posting Styles::              An easier way to specify who you are.
 * Drafts::                      Postponing messages and rejected messages.
 * Rejected Articles::           What happens if the server doesn't like your article?
-* Using GPG::                   How to use GPG and MML to sign and encrypt messages
+* Signing and encrypting::      How to compose secure messages.
 
 Select Methods
 
 
 Select Methods
 
@@ -676,7 +679,6 @@ Getting Mail
 * Duplicates::                  Dealing with duplicated mail.
 * Not Reading Mail::            Using mail back ends for reading other files.
 * Choosing a Mail Back End::    Gnus can read a variety of mail formats.
 * Duplicates::                  Dealing with duplicated mail.
 * Not Reading Mail::            Using mail back ends for reading other files.
 * Choosing a Mail Back End::    Gnus can read a variety of mail formats.
-* Archiving Mail::              How to backup your mail.
 
 Mail Sources
 
 
 Mail Sources
 
@@ -695,6 +697,7 @@ Choosing a Mail Back End
 
 Browsing the Web
 
 
 Browsing the Web
 
+* Archiving Mail::              
 * Web Searches::                Creating groups from articles that match a string.
 * Slashdot::                    Reading the Slashdot comments.
 * Ultimate::                    The Ultimate Bulletin Board systems.
 * Web Searches::                Creating groups from articles that match a string.
 * Slashdot::                    Reading the Slashdot comments.
 * Ultimate::                    The Ultimate Bulletin Board systems.
@@ -752,9 +755,9 @@ Agent Categories
 
 Agent Commands
 
 
 Agent Commands
 
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands::        
+* Summary Agent Commands::      
+* Server Agent Commands::       
 
 Scoring
 
 
 Scoring
 
@@ -804,8 +807,9 @@ Various
 * Daemons::                     Gnus can do things behind your back.
 * NoCeM::                       How to avoid spam and other fatty foods.
 * Undo::                        Some actions can be undone.
 * Daemons::                     Gnus can do things behind your back.
 * NoCeM::                       How to avoid spam and other fatty foods.
 * Undo::                        Some actions can be undone.
+* Predicate Specifiers::        Specifying predicates.
 * Moderation::                  What to do if you're a moderator.
 * Moderation::                  What to do if you're a moderator.
-* Image Enhancements::          There are more pictures and stuff under XEmacs.
+* Image Enhancements::          Modern versions of Emacs/XEmacs can display images.
 * Fuzzy Matching::              What's the big fuzz?
 * Thwarting Email Spam::        A how-to on avoiding unsolicited commercial email.
 * Various Various::             Things that are really various.
 * Fuzzy Matching::              What's the big fuzz?
 * Thwarting Email Spam::        A how-to on avoiding unsolicited commercial email.
 * Various Various::             Things that are really various.
@@ -821,10 +825,11 @@ Formatting Variables
 * Tabulation::                  Tabulating your output.
 * Wide Characters::             Dealing with wide characters.
 
 * Tabulation::                  Tabulating your output.
 * Wide Characters::             Dealing with wide characters.
 
-XEmacs Enhancements
+Image Enhancements
 
 
-* Picons::                      How to display pictures of what your reading.
+* Picons::                      How to display pictures of what you're reading.
 * Smileys::                     Show all those happy faces the way they were meant to be shown.
 * Smileys::                     Show all those happy faces the way they were meant to be shown.
+* X-Face::                      Display a funky, teensy black-and-white image.
 * Toolbar::                     Click'n'drool.
 * XVarious::                    Other XEmacsy Gnusey variables.
 
 * Toolbar::                     Click'n'drool.
 * XVarious::                    Other XEmacsy Gnusey variables.
 
@@ -838,6 +843,7 @@ Picons
 
 Appendices
 
 
 Appendices
 
+* XEmacs::                      Requirements for installing under XEmacs.
 * History::                     How Gnus got where it is today.
 * On Writing Manuals::          Why this is not a beginner's guide.
 * Terminology::                 We use really difficult, like, words here.
 * History::                     How Gnus got where it is today.
 * On Writing Manuals::          Why this is not a beginner's guide.
 * Terminology::                 We use really difficult, like, words here.
@@ -845,6 +851,7 @@ Appendices
 * Troubleshooting::             What you might try if things do not work.
 * Gnus Reference Guide::        Rilly, rilly technical stuff.
 * Emacs for Heathens::          A short introduction to Emacsian terms.
 * Troubleshooting::             What you might try if things do not work.
 * Gnus Reference Guide::        Rilly, rilly technical stuff.
 * Emacs for Heathens::          A short introduction to Emacsian terms.
+* Frequently Asked Questions::
 
 History
 
 
 History
 
@@ -887,8 +894,8 @@ Gnus Reference Guide
 
 Back End Interface
 
 
 Back End Interface
 
-* Required Back End Functions:: Functions that must be implemented.
-* Optional Back End Functions:: Functions that need not be implemented.
+* Required Back End Functions::  Functions that must be implemented.
+* Optional Back End Functions::  Functions that need not be implemented.
 * Error Messaging::             How to get messages and report errors.
 * Writing New Back Ends::       Extending old back ends.
 * Hooking New Back Ends Into Gnus::  What has to be done on the Gnus end.
 * Error Messaging::             How to get messages and report errors.
 * Writing New Back Ends::       Extending old back ends.
 * Hooking New Back Ends Into Gnus::  What has to be done on the Gnus end.
@@ -1350,9 +1357,18 @@ and read ranges have become worthless.  You can use the @kbd{M-x
 gnus-group-clear-data-on-native-groups} command to clear out all data
 that you have on your native groups.  Use with caution.
 
 gnus-group-clear-data-on-native-groups} command to clear out all data
 that you have on your native groups.  Use with caution.
 
+@kindex M-x gnus-group-clear-data
+@findex gnus-group-clear-data
+Clear the data from the current group only---nix out marks and the
+list of read articles (@code{gnus-group-clear-data}).
+
 After changing servers, you @strong{must} move the cache hierarchy away,
 since the cached articles will have wrong article numbers, which will
 affect which articles Gnus thinks are read.
 After changing servers, you @strong{must} move the cache hierarchy away,
 since the cached articles will have wrong article numbers, which will
 affect which articles Gnus thinks are read.
+@code{gnus-group-clear-data-on-native-groups} will ask you if you want
+to have it done automatically; for @code{gnus-group-clear-data}, you
+can use @kbd{M-x gnus-cache-move-cache} (but beware, it will move the
+cache for all groups).
 
 
 @node Startup Files
 
 
 @node Startup Files
@@ -2082,6 +2098,11 @@ Place point on the subject line of the first article.
 @item unseen
 Place point on the subject line of the first unseen article.
 
 @item unseen
 Place point on the subject line of the first unseen article.
 
+@item unseen-or-unread
+Place point on the subject line of the first unseen article, and if
+there is no such article, place point on the subject line of the first
+unread article.
+
 @item best
 Place point on the subject line of the highest-scored unread article.
 
 @item best
 Place point on the subject line of the highest-scored unread article.
 
@@ -2657,6 +2678,17 @@ entering summary buffer.
 
 See also @code{gnus-parameter-to-list-alist}.
 
 
 See also @code{gnus-parameter-to-list-alist}.
 
+@item subscribed
+@cindex subscribed
+If this parameter is set to @code{t}, Gnus will consider the
+to-address and to-list parameters for this group as addresses of
+mailing lists you are subscribed to.  Giving Gnus this information
+will help it to generate correct Mail-Followup-To headers for your
+posts to these lists.  
+
+See also @code{gnus-find-subscribed-addresses}, the function that
+directly uses this group parameter.
+
 @item visible
 @cindex visible
 If the group parameter list has the element @code{(visible . t)},
 @item visible
 @cindex visible
 If the group parameter list has the element @code{(visible . t)},
@@ -3595,6 +3627,16 @@ Delete an empty topic (@code{gnus-topic-delete}).
 List all groups that Gnus knows about in a topics-ified way
 (@code{gnus-topic-list-active}).
 
 List all groups that Gnus knows about in a topics-ified way
 (@code{gnus-topic-list-active}).
 
+@item T M-n
+@kindex T M-n (Topic)
+@findex gnus-topic-goto-next-topic
+Go to the next topic (@code{gnus-topic-goto-next-topic}).
+
+@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}).
+
 @item G p
 @kindex G p (Topic)
 @findex gnus-topic-edit-parameters
 @item G p
 @kindex G p (Topic)
 @findex gnus-topic-edit-parameters
@@ -4074,6 +4116,20 @@ something like:
       "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
 @end lisp
 
       "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
 @end lisp
 
+If you would like greater control of the time format, you can use a
+user-defined format spec.  Something like the following should do the
+trick: 
+
+@lisp
+(setq gnus-group-line-format
+      "%M\%S\%p\%P\%5y: %(%-40,40g%) %ud\n")
+(defun gnus-user-format-function-d (headers)
+  (let ((time (gnus-group-timestamp gnus-tmp-group)))
+    (if time
+        (format-time-string "%b %d  %H:%M" time)
+      "")))
+@end lisp
+            
 
 @node File Commands
 @subsection File Commands
 
 @node File Commands
 @subsection File Commands
@@ -4185,7 +4241,7 @@ You can have as many summary buffers open as you wish.
 * Choosing Articles::           Reading articles.
 * Paging the Article::          Scrolling the current article.
 * Reply Followup and Post::     Posting articles.
 * Choosing Articles::           Reading articles.
 * Paging the Article::          Scrolling the current article.
 * Reply Followup and Post::     Posting articles.
-* Delayed Articles::
+* Delayed Articles::            
 * Marking Articles::            Marking articles as read, expirable, etc.
 * Limiting::                    You can limit the summary buffer.
 * Threading::                   How threads are made.
 * Marking Articles::            Marking articles as read, expirable, etc.
 * Limiting::                    You can limit the summary buffer.
 * Threading::                   How threads are made.
@@ -4466,6 +4522,9 @@ In summary, you'd typically put something like the following in
       "Your Name Here")
 @end lisp
 
       "Your Name Here")
 @end lisp
 
+(The values listed above are the default values in Gnus.  Alter them
+to fit your needs.)
+
 Now, this is mostly useful for mail groups, where you have control over
 the @sc{nov} files that are created.  However, if you can persuade your
 nntp admin to add:
 Now, this is mostly useful for mail groups, where you have control over
 the @sc{nov} files that are created.  However, if you can persuade your
 nntp admin to add:
@@ -4896,7 +4955,7 @@ Select the article buffer (@code{gnus-summary-select-article-buffer}).
 * Summary Mail Commands::       Sending mail.
 * Summary Post Commands::       Sending news.
 * Summary Message Commands::    Other Message-related commands.
 * Summary Mail Commands::       Sending mail.
 * Summary Post Commands::       Sending news.
 * Summary Message Commands::    Other Message-related commands.
-* Canceling and Superseding::
+* Canceling and Superseding::   
 @end menu
 
 
 @end menu
 
 
@@ -4937,8 +4996,8 @@ Mail a wide reply to the author of the current article
 goes out to all people listed in the @code{To}, @code{From} (or
 @code{Reply-to}) and @code{Cc} headers.
 
 goes out to all people listed in the @code{To}, @code{From} (or
 @code{Reply-to}) and @code{Cc} headers.
 
-@item S W
-@kindex S W (Summary)
+@item S V
+@kindex S V (Summary)
 @findex gnus-summary-wide-reply-with-original
 Mail a wide reply to the current article and include the original
 message (@code{gnus-summary-wide-reply-with-original}).  This command uses
 @findex gnus-summary-wide-reply-with-original
 Mail a wide reply to the current article and include the original
 message (@code{gnus-summary-wide-reply-with-original}).  This command uses
@@ -6526,6 +6585,7 @@ Matching}).
 @findex gnus-thread-sort-by-author
 @findex gnus-thread-sort-by-number
 @vindex gnus-thread-sort-functions
 @findex gnus-thread-sort-by-author
 @findex gnus-thread-sort-by-number
 @vindex gnus-thread-sort-functions
+@findex gnus-thread-sort-by-most-recent-thread
 If you are using a threaded summary display, you can sort the threads by
 setting @code{gnus-thread-sort-functions}, which can be either a single
 function, a list of functions, or a list containing functions and
 If you are using a threaded summary display, you can sort the threads by
 setting @code{gnus-thread-sort-functions}, which can be either a single
 function, a list of functions, or a list containing functions and
@@ -6534,7 +6594,9 @@ function, a list of functions, or a list containing functions and
 By default, sorting is done on article numbers.  Ready-made sorting
 predicate functions include @code{gnus-thread-sort-by-number},
 @code{gnus-thread-sort-by-author}, @code{gnus-thread-sort-by-subject},
 By default, sorting is done on article numbers.  Ready-made sorting
 predicate functions include @code{gnus-thread-sort-by-number},
 @code{gnus-thread-sort-by-author}, @code{gnus-thread-sort-by-subject},
-@code{gnus-thread-sort-by-date}, @code{gnus-thread-sort-by-score}, and
+@code{gnus-thread-sort-by-date}, @code{gnus-thread-sort-by-score},
+@code{gnus-thread-sort-by-most-recent-number},
+@code{gnus-thread-sort-by-most-recent-date} and
 @code{gnus-thread-sort-by-total-score}.
 
 Each function takes two threads and returns non-@code{nil} if the first
 @code{gnus-thread-sort-by-total-score}.
 
 Each function takes two threads and returns non-@code{nil} if the first
@@ -6773,6 +6835,10 @@ gnus-cache-generate-nov-databases} will (re)build all the @sc{nov}
 files, and @kbd{gnus-cache-generate-active} will (re)generate the active
 file.
 
 files, and @kbd{gnus-cache-generate-active} will (re)generate the active
 file.
 
+@findex gnus-cache-move-cache
+@code{gnus-cache-move-cache} will move your whole
+@code{gnus-cache-directory} to some other location. You get asked to
+where, isn't that cool?
 
 @node Persistent Articles
 @section Persistent Articles
 
 @node Persistent Articles
 @section Persistent Articles
@@ -7548,15 +7614,16 @@ writing, so there are tons of functions and variables to make reading
 these articles easier.
 
 @menu
 these articles easier.
 
 @menu
-* Article Highlighting::    You want to make the article look like fruit salad.
-* Article Fontisizing::     Making emphasized text look nice.
-* Article Hiding::          You also want to make certain info go away.
-* Article Washing::         Lots of way-neat functions to make life better.
-* Article Buttons::         Click on URLs, Message-IDs, addresses and the like.
-* Article Date::            Grumble, UT!
-* Article Display::         Display various stuff---X-Face, Picons, Smileys
-* Article Signature::       What is a signature?
-* Article Miscellania::     Various other stuff.
+* Article Highlighting::        You want to make the article look like fruit salad.
+* Article Fontisizing::         Making emphasized text look nice.
+* Article Hiding::              You also want to make certain info go away.
+* Article Washing::             Lots of way-neat functions to make life better.
+* Article Header::              Doing various header transformations.
+* Article Buttons::             Click on URLs, Message-IDs, addresses and the like.
+* Article Date::                Grumble, UT!
+* Article Display::             Display various stuff---X-Face, Picons, Smileys
+* Article Signature::           What is a signature?
+* Article Miscellania::         Various other stuff.
 @end menu
 
 
 @end menu
 
 
@@ -8077,18 +8144,7 @@ message.@footnote{PGP keys for many hierarchies are available at
 @kindex W s (Summary)
 @findex gnus-summary-force-verify-and-decrypt
 Verify a signed (PGP, PGP/MIME or S/MIME) message
 @kindex W s (Summary)
 @findex gnus-summary-force-verify-and-decrypt
 Verify a signed (PGP, PGP/MIME or S/MIME) message
-(@code{gnus-summary-force-verify-and-decrypt}).
-
-@item W u
-@kindex W u (Summary)
-@findex gnus-article-treat-unfold-headers
-Unfold folded header lines (@code{gnus-article-treat-unfold-headers}).
-
-@item W n
-@kindex W n (Summary)
-@findex gnus-article-treat-fold-newsgroups
-Fold the @code{Newsgroups} and @code{Followup-To} headers
-(@code{gnus-article-treat-fold-newsgroups}).
+(@code{gnus-summary-force-verify-and-decrypt}). @xref{Security}.
 
 @item W W H
 @kindex W W H (Summary)
 
 @item W W H
 @kindex W W H (Summary)
@@ -8144,6 +8200,33 @@ body (@code{gnus-article-strip-trailing-space}).
 @xref{Customizing Articles}, for how to wash articles automatically.
 
 
 @xref{Customizing Articles}, for how to wash articles automatically.
 
 
+@node Article Header
+@subsection Article Header
+
+These commands perform various transformations of article header.
+
+@table @kbd
+
+@item W G u
+@kindex W G u (Summary)
+@findex gnus-article-treat-unfold-headers
+Unfold folded header lines (@code{gnus-article-treat-unfold-headers}).
+
+@item W G n
+@kindex W G n (Summary)
+@findex gnus-article-treat-fold-newsgroups
+Fold the @code{Newsgroups} and @code{Followup-To} headers
+(@code{gnus-article-treat-fold-newsgroups}).
+
+@item W G f
+@kindex W G f (Summary)
+@findex gnus-article-treat-fold-header
+Fold all the message headers
+(@code{gnus-article-treat-fold-headers}).
+
+@end table
+
+
 @node Article Buttons
 @subsection Article Buttons
 @cindex buttons
 @node Article Buttons
 @subsection Article Buttons
 @cindex buttons
@@ -8348,9 +8431,8 @@ Display an @code{X-Face} in the @code{From} header.
 
 @item W D s
 @kindex W D s (Summary)
 
 @item W D s
 @kindex W D s (Summary)
-@findex gnus-article-toggle-smiley
-Toggle whether to display smileys
-(@code{gnus-article-toggle-smiley}).
+@findex gnus-smiley-smiley
+Display smileys (@code{gnus-treat-smiley}).
 
 @item W D f
 @kindex W D f (Summary)
 
 @item W D f
 @kindex W D f (Summary)
@@ -8369,6 +8451,12 @@ Piconify all mail headers (i. e., @code{Cc}, @code{To})
 Piconify all news headers (i. e., @code{Newsgroups} and
 @code{Followup-To}) (@code{gnus-treat-from-picon}).
 
 Piconify all news headers (i. e., @code{Newsgroups} and
 @code{Followup-To}) (@code{gnus-treat-from-picon}).
 
+@item W D D
+@kindex W D D (Summary)
+@findex gnus-article-remove-images
+Remove all images from the article buffer
+(@code{gnus-article-remove-images}).
+
 @end table
 
 
 @end table
 
 
@@ -9309,7 +9397,7 @@ suggestions you find reasonable.  (Note that
 @menu
 * Summary Group Information::   Information oriented commands.
 * Searching for Articles::      Multiple article commands.
 @menu
 * Summary Group Information::   Information oriented commands.
 * Searching for Articles::      Multiple article commands.
-* Summary Generation Commands::
+* Summary Generation Commands::  
 * Really Various Summary Commands::  Those pesky non-conformant commands.
 @end menu
 
 * Really Various Summary Commands::  Those pesky non-conformant commands.
 @end menu
 
@@ -9791,23 +9879,22 @@ to you to figure out, I think.
 @section Security
 
 Gnus is able to verify signed messages or decrypt encrypted messages.
 @section Security
 
 Gnus is able to verify signed messages or decrypt encrypted messages.
-The formats that are supported are PGP (plain text, RFC 1991 format),
-PGP/MIME (RFC 2015/3156) and S/MIME, however you need some external
-programs to get things to work:
+The formats that are supported are PGP, PGP/MIME and S/MIME, however
+you need some external programs to get things to work:
 
 @enumerate
 @item
 
 @enumerate
 @item
-To verify or decrypt PGP messages, you have to install mailcrypt or
-gpg.el as well as a OpenPGP implementation (such as GnuPG). @xref{Using GPG}.
+To handle PGP messages, you have to install mailcrypt or gpg.el as
+well as a OpenPGP implementation (such as GnuPG).
 
 @item
 
 @item
-To verify or decrypt S/MIME message, you need to install OpenSSL.
-OpenSSL 0.9.6 or newer is recommended.
+To handle S/MIME message, you need to install OpenSSL.  OpenSSL 0.9.6
+or newer is recommended.
 
 @end enumerate
 
 More information on how to set things up can be found in the message
 
 @end enumerate
 
 More information on how to set things up can be found in the message
-manual. @xref{Security, ,Security, message, The Message Manual}.
+manual (@pxref{Security, ,Security, message, Message Manual}).
 
 @table @code
 @item mm-verify-option
 
 @table @code
 @item mm-verify-option
@@ -9819,7 +9906,7 @@ protocols. Otherwise, ask user.
 @item mm-decrypt-option
 @vindex mm-decrypt-option
 Option of decrypting encrypted parts.  @code{never}, no decryption;
 @item mm-decrypt-option
 @vindex mm-decrypt-option
 Option of decrypting encrypted parts.  @code{never}, no decryption;
-@code{always}, always decrypt @code{known}, only decrypt known
+@code{always}, always decrypt; @code{known}, only decrypt known
 protocols. Otherwise, ask user.
 
 @end table
 protocols. Otherwise, ask user.
 
 @end table
@@ -10217,7 +10304,21 @@ possible but those listed are probably sufficient for most people.
 @table @code
 @item gnus-treat-buttonize (t, integer)
 @item gnus-treat-buttonize-head (head)
 @table @code
 @item gnus-treat-buttonize (t, integer)
 @item gnus-treat-buttonize-head (head)
+
+@xref{Article Buttons}.
+
 @item gnus-treat-capitalize-sentences (t, integer)
 @item gnus-treat-capitalize-sentences (t, integer)
+@item gnus-treat-overstrike (t, integer)
+@item gnus-treat-strip-cr (t, integer)
+@item gnus-treat-strip-headers-in-body (t, integer)
+@item gnus-treat-strip-leading-blank-lines (t, integer)
+@item gnus-treat-strip-multiple-blank-lines (t, integer)
+@item gnus-treat-strip-pem (t, last, integer)
+@item gnus-treat-strip-pgp (t, last, integer)
+@item gnus-treat-strip-trailing-blank-lines (t, last, integer)
+
+@xref{Article Washing}.
+
 @item gnus-treat-date-english (head)
 @item gnus-treat-date-iso8601 (head)
 @item gnus-treat-date-lapsed (head)
 @item gnus-treat-date-english (head)
 @item gnus-treat-date-iso8601 (head)
 @item gnus-treat-date-lapsed (head)
@@ -10225,9 +10326,29 @@ possible but those listed are probably sufficient for most people.
 @item gnus-treat-date-original (head)
 @item gnus-treat-date-user-defined (head)
 @item gnus-treat-date-ut (head)
 @item gnus-treat-date-original (head)
 @item gnus-treat-date-user-defined (head)
 @item gnus-treat-date-ut (head)
-@item gnus-treat-display-picons (head)
+
+@xref{Article Date}.
+
+@item gnus-treat-from-picon (head)
+@item gnus-treat-mail-picon (head)
+@item gnus-treat-newsgroups-picon (head)
+
+@xref{Picons}.
+
 @item gnus-treat-display-smileys (t, integer)
 @item gnus-treat-display-smileys (t, integer)
+
+@item gnus-treat-body-boundary (head)
+
+@vindex gnus-body-boundary-delimiter
+Adds a delimiter between header and body, the string used as delimiter
+is controlled by @code{gnus-body-boundary-delimiter}.
+
+@xref{Smileys}.
+
 @item gnus-treat-display-xface (head)
 @item gnus-treat-display-xface (head)
+
+@xref{X-Face}.
+
 @item gnus-treat-emphasize (t, head, integer)
 @item gnus-treat-fill-article (t, integer)
 @item gnus-treat-fill-long-lines (t, integer)
 @item gnus-treat-emphasize (t, head, integer)
 @item gnus-treat-fill-article (t, integer)
 @item gnus-treat-fill-long-lines (t, integer)
@@ -10236,26 +10357,25 @@ possible but those listed are probably sufficient for most people.
 @item gnus-treat-hide-citation-maybe (t, integer)
 @item gnus-treat-hide-headers (head)
 @item gnus-treat-hide-signature (t, last)
 @item gnus-treat-hide-citation-maybe (t, integer)
 @item gnus-treat-hide-headers (head)
 @item gnus-treat-hide-signature (t, last)
+
+@xref{Article Hiding}.
+
 @item gnus-treat-highlight-citation (t, integer)
 @item gnus-treat-highlight-headers (head)
 @item gnus-treat-highlight-signature (t, last, integer)
 @item gnus-treat-highlight-citation (t, integer)
 @item gnus-treat-highlight-headers (head)
 @item gnus-treat-highlight-signature (t, last, integer)
-@item gnus-treat-overstrike (t, integer)
+
+@xref{Article Highlighting}.
+
 @item gnus-treat-play-sounds
 @item gnus-treat-play-sounds
-@item gnus-treat-strip-cr (t, integer)
-@item gnus-treat-strip-headers-in-body (t, integer)
-@item gnus-treat-strip-leading-blank-lines (t, integer)
-@item gnus-treat-strip-multiple-blank-lines (t, integer)
-@item gnus-treat-strip-pem (t, last, integer)
-@item gnus-treat-strip-pgp (t, last, integer)
-@item gnus-treat-strip-trailing-blank-lines (t, last, integer)
 @item gnus-treat-translate
 @item gnus-treat-x-pgp-sig (head)
 @item gnus-treat-translate
 @item gnus-treat-x-pgp-sig (head)
-@item gnus-treat-from-picon (head)
-@item gnus-treat-mail-picon (head)
-@item gnus-treat-newsgroups-picon (head)
+
 @item gnus-treat-unfold-headers (head)
 @item gnus-treat-unfold-headers (head)
+@item gnus-treat-fold-headers (head)
 @item gnus-treat-fold-newsgroups (head)
 @item gnus-treat-fold-newsgroups (head)
-@item gnus-treat-body-boundary (head)
+
+
+
 @end table
 
 @vindex gnus-part-display-hook
 @end table
 
 @vindex gnus-part-display-hook
@@ -10325,6 +10445,23 @@ only makes sense if you have buttonizing turned on.
 @findex gnus-article-prev-button
 Go to the previous button, if any (@code{gnus-article-prev-button}).
 
 @findex gnus-article-prev-button
 Go to the previous button, if any (@code{gnus-article-prev-button}).
 
+@item R
+@kindex R (Article)
+@findex gnus-article-reply-with-original
+Send a reply to the current article and yank the current article
+(@code{gnus-article-reply-with-original}).  If given a prefix, make a
+wide reply.  If the region is active, only yank the text in the
+region.
+
+@item F
+@kindex F (Article)
+@findex gnus-article-followup-with-original
+Send a followup to the current article and yank the current article
+(@code{gnus-article-followup-with-original}).  If given a prefix, make
+a wide reply.  If the region is active, only yank the text in the
+region.
+
+
 @end table
 
 
 @end table
 
 
@@ -10429,11 +10566,13 @@ This is the delimiter mentioned above.  By default, it is @samp{^L}
 @cindex followup
 @cindex post
 @cindex using gpg
 @cindex followup
 @cindex post
 @cindex using gpg
+@cindex using s/mime
+@cindex using smime
 
 @kindex C-c C-c (Post)
 All commands for posting and mailing will put you in a message buffer
 where you can edit the article all you like, before you send the
 
 @kindex C-c C-c (Post)
 All commands for posting and mailing will put you in a message buffer
 where you can edit the article all you like, before you send the
-article by pressing @kbd{C-c C-c}.  @xref{Top, , Top, message, The
+article by pressing @kbd{C-c C-c}.  @xref{Top, , Overview, message,
 Message Manual}.  Where the message will be posted/mailed to depends
 on your setup (@pxref{Posting Server}).
 
 Message Manual}.  Where the message will be posted/mailed to depends
 on your setup (@pxref{Posting Server}).
 
@@ -10445,7 +10584,7 @@ on your setup (@pxref{Posting Server}).
 * Posting Styles::              An easier way to specify who you are.
 * Drafts::                      Postponing messages and rejected messages.
 * Rejected Articles::           What happens if the server doesn't like your article?
 * Posting Styles::              An easier way to specify who you are.
 * Drafts::                      Postponing messages and rejected messages.
 * Rejected Articles::           What happens if the server doesn't like your article?
-* Using GPG::                   How to use GPG and MML to sign and encrypt messages
+* Signing and encrypting::      How to compose secure messages.
 @end menu
 
 Also see @pxref{Canceling and Superseding} for information on how to
 @end menu
 
 Also see @pxref{Canceling and Superseding} for information on how to
@@ -10701,8 +10840,8 @@ of names).
 This variable can be used instead of @code{gnus-message-archive-group},
 but the latter is the preferred method.
 
 This variable can be used instead of @code{gnus-message-archive-group},
 but the latter is the preferred method.
 
-@item gnus-inews-mark-gcc-as-read
-@vindex gnus-inews-mark-gcc-as-read
+@item gnus-gcc-mark-as-read
+@vindex gnus-gcc-mark-as-read
 If non-@code{nil}, automatically mark @code{Gcc} articles as read.
 
 @end table
 If non-@code{nil}, automatically mark @code{Gcc} articles as read.
 
 @end table
@@ -10906,36 +11045,66 @@ The rejected articles will automatically be put in a special draft group
 (@pxref{Drafts}).  When the server comes back up again, you'd then
 typically enter that group and send all the articles off.
 
 (@pxref{Drafts}).  When the server comes back up again, you'd then
 typically enter that group and send all the articles off.
 
-@node Using GPG
-@section Using GPG
+@node Signing and encrypting
+@section Signing and encrypting
 @cindex using gpg
 @cindex using gpg
+@cindex using s/mime
+@cindex using smime
 
 
-Gnus has an ALPHA support to GPG that's provided by @file{gpg.el}. See
-@code{mm-verify-option} and @code{mm-decrypt-option} to enable Gnus to
-verify or decrypt messages accordingly.
+Gnus can digitally sign and encrypt your messages, using vanilla PGP
+format or PGP/MIME or S/MIME.  For decoding such messages, see the
+@code{mm-verify-option} and @code{mm-decrypt-option} options
+(@pxref{Security}).
 
 
-To use this correctly with GPG, you'll need the following lisp code in your
-@file{~/.emacs} or @file{~/.gnus}:
+For PGP, Gnus supports two external libraries, @sc{gpg.el} and
+@sc{Mailcrypt}, you need to install at least one of them.  The S/MIME
+support in Gnus requires the external program OpenSSL.
 
 
-@lisp
-(require 'gpg)
-(setq mml2015-use 'gpg)
-(setq mml1991-use 'gpg)
-(setq gpg-temp-directory (expand-file-name "~/.gnupg/tmp"))
-@end lisp
+Instructing MML to perform security operations on a MIME part is done
+using the @code{C-c C-m s} key map for signing and the @code{C-c C-m
+c} key map for encryption, as follows.
+
+@table @kbd
+
+@item C-c C-m s s
+@kindex C-c C-m s s
+@findex mml-secure-sign-smime
+
+Digitally sign current MIME part using S/MIME.
+
+@item C-c C-m s o
+@kindex C-c C-m s o
+@findex mml-secure-sign-pgp
+
+Digitally sign current MIME part using PGP.
 
 
-The @code{gpg-temp-directory} need to point to a directory with permissions set
-to 700, for your own safety.
+@item C-c C-m s p
+@kindex C-c C-m s p
+@findex mml-secure-sign-pgp
 
 
-To sign or encrypt your message you may choose to use the MML Security
-menu or @kbd{C-c C-m s p} to sign your message using PGP/MIME,
-@kbd{C-c C-m s s} to sign your message using S/MIME.  There's also
-@kbd{C-c C-m c p} to encrypt your message with PGP/MIME and @kbd{C-c
-C-m c s} to encrypt using S/MIME. @xref{Security, ,Security, message,
-The Message Manual}.
+Digitally sign current MIME part using PGP/MIME.
 
 
-Gnus will ask for your passphrase and then it will send your message, if
-you've typed it correctly.
+@item C-c C-m c s
+@kindex C-c C-m c s
+@findex mml-secure-encrypt-smime
+
+Digitally encrypt current MIME part using S/MIME.
+
+@item C-c C-m c o
+@kindex C-c C-m c o
+@findex mml-secure-encrypt-pgp
+
+Digitally encrypt current MIME part using PGP.
+
+@item C-c C-m c p
+@kindex C-c C-m c p
+@findex mml-secure-encrypt-pgpmime
+
+Digitally encrypt current MIME part using PGP/MIME.
+
+@end table
+
+Also @xref{Security, ,Security, message, Message Manual}.
 
 @node Select Methods
 @chapter Select Methods
 
 @node Select Methods
 @chapter Select Methods
@@ -11890,7 +12059,6 @@ course.
 * Duplicates::                  Dealing with duplicated mail.
 * Not Reading Mail::            Using mail back ends for reading other files.
 * Choosing a Mail Back End::    Gnus can read a variety of mail formats.
 * Duplicates::                  Dealing with duplicated mail.
 * Not Reading Mail::            Using mail back ends for reading other files.
 * Choosing a Mail Back End::    Gnus can read a variety of mail formats.
-* Archiving Mail::              How to backup your mail.
 @end menu
 
 
 @end menu
 
 
@@ -13409,10 +13577,13 @@ Gnus will read the mail spool when you activate a mail group.  The mail
 file is first copied to your home directory.  What happens after that
 depends on what format you want to store your mail in.
 
 file is first copied to your home directory.  What happens after that
 depends on what format you want to store your mail in.
 
-There are five different mail back ends in the standard Gnus, and more
+There are six different mail back ends in the standard Gnus, and more
 back ends are available separately.  The mail back end most people use
 back ends are available separately.  The mail back end most people use
-(because it is the fastest and most flexible) is @code{nnml}
-(@pxref{Mail Spool}).
+(because it is possibly the fastest) is @code{nnml} (@pxref{Mail
+Spool}).  You might notice that only five back ends are listed below;
+@code{nnmaildir}'s documentation has not yet been completely
+incorporated into this manual.  Until it is, you can find it at
+@uref{http://multivac.cwru.edu./nnmaildir/}.
 
 @menu
 * Unix Mail Box::               Using the (quite) standard Un*x mbox.
 
 @menu
 * Unix Mail Box::               Using the (quite) standard Un*x mbox.
@@ -13527,6 +13698,10 @@ Individual @code{nnml} groups are also possible to backup, use @kbd{G m}
 to restore the group (after restoring the backup into the nnml
 directory).
 
 to restore the group (after restoring the backup into the nnml
 directory).
 
+If for some reason you believe your @file{.marks} files are screwed
+up, you can just delete them all.  Gnus will then correctly regenerate
+them next time it starts.
+
 Virtual server settings:
 
 @table @code
 Virtual server settings:
 
 @table @code
@@ -13844,6 +14019,62 @@ messages, @code{nnfolder} is not the best choice, but if you receive
 only a moderate amount of mail, @code{nnfolder} is probably the most
 friendly mail back end all over.
 
 only a moderate amount of mail, @code{nnfolder} is probably the most
 friendly mail back end all over.
 
+@item nnmaildir
+
+@code{nnmaildir} is largely similar to @code{nnml}, with some notable
+differences.  Each message is stored in a separate file, but the
+filename is unrelated to the article number in Gnus.  @code{nnmaildir}
+also stores the equivalent of @code{nnml}'s overview files in one file
+per article, so it uses about twice as many inodes as @code{nnml}.  (Use
+@code{df -i} to see how plentiful your inode supply is.)  If this slows
+you down or takes up very much space, consider switching to ReiserFS
+(@uref{http://www.namesys.com/}) or another non-block-structured
+filesystem.
+
+Since maildirs don't require locking for delivery, the maildirs you use
+as groups can also be the maildirs your mail is directly delivered to.
+This means you can skip Gnus's mail splitting if your mail is already
+organized into different mailboxes during delivery.  A @code{directory}
+entry in @code{mail-sources} would have a similar effect, but would
+require one set of mailboxes for spooling deliveries (in mbox format,
+thus damaging message bodies), and another set to be used as groups (in
+whatever format you like).  A maildir has a built-in spool, in the
+@code{new/} subdirectory.  Beware that currently, mail moved from
+@code{new/} to @code{cur/} instead of via mail splitting will undergo
+treatment such as duplicate checking.
+
+An article will not necessarily keep the same number across Gnus
+sessions; articles are renumbered starting from 1 for each Gnus session
+(more precisely, each time you open the @code{nnmaildir} server).  This
+way, you don't get gaps in your article number ranges, and when entering
+large groups, Gnus is likely to give a more accurate article count.  The
+price is that @code{nnmaildir} doesn't work with the cache or agent.
+This will probably be changed in the future.
+
+@code{nnmaildir} stores article marks for a given group in the
+corresponding maildir, in a way designed so that it's easy to manipulate
+them from outside Gnus.  You can tar up a maildir, unpack it somewhere
+else, and still have your marks.  @code{nnml} also stores marks, but
+it's not as easy to work with them from outside Gnus as with
+@code{nnmaildir}.
+
+For configuring expiry and other things, @code{nnmaildir} uses group
+parameters slightly different from those of other mail backends.
+
+@code{nnmaildir} uses a significant amount of memory to speed things up.
+(It keeps in memory some of the things that @code{nnml} stores in files
+and that @code{nnmh} repeatedly parses out of message files.)  If this
+is a problem for you, you can set the @code{nov-cache-size} group
+parameter to somthing small (0 would probably not work, but 1 probably
+would) to make it use less memory.
+
+Startup and shutdown are likely to be slower with @code{nnmaildir} than
+with other backends.  Everything in between is likely to be faster,
+depending in part on your filesystem.
+
+@code{nnmaildir} does not use @code{nnoo}, so you cannot use @code{nnoo}
+to write an @code{nnmaildir}-derived backend.
+
 @end table
 
 
 @end table
 
 
@@ -13875,6 +14106,7 @@ Gnus has been getting a bit of a collection of back ends for providing
 interfaces to these sources.
 
 @menu
 interfaces to these sources.
 
 @menu
+* Archiving Mail::              
 * Web Searches::                Creating groups from articles that match a string.
 * Slashdot::                    Reading the Slashdot comments.
 * Ultimate::                    The Ultimate Bulletin Board systems.
 * Web Searches::                Creating groups from articles that match a string.
 * Slashdot::                    Reading the Slashdot comments.
 * Ultimate::                    The Ultimate Bulletin Board systems.
@@ -14259,6 +14491,7 @@ Put that in your @file{.emacs} file, and hitting links in w3-rendered
 @sc{html} in the Gnus article buffers will use @code{browse-url} to
 follow the link.
 
 @sc{html} in the Gnus article buffers will use @code{browse-url} to
 follow the link.
 
+
 @node IMAP
 @section @sc{imap}
 @cindex nnimap
 @node IMAP
 @section @sc{imap}
 @cindex nnimap
@@ -14270,23 +14503,24 @@ server is much similar to connecting to a news server, you just
 specify the network address of the server.
 
 @sc{imap} has two properties.  First, @sc{imap} can do everything that
 specify the network address of the server.
 
 @sc{imap} has two properties.  First, @sc{imap} can do everything that
-POP can, it can hence be viewed as POP++.  Secondly, @sc{imap} is a
+POP can, it can hence be viewed as a POP++.  Secondly, @sc{imap} is a
 mail storage protocol, similar to @sc{nntp} being a news storage
 mail storage protocol, similar to @sc{nntp} being a news storage
-protocol.  (@sc{imap} offers more features than @sc{nntp} because news
-is more or less read-only whereas mail is read-write.)
+protocol -- however, @sc{imap} offers more features than @sc{nntp}
+because news is more or less read-only whereas mail is read-write.
 
 
-If you want to use @sc{imap} as POP++, use an imap entry in
-mail-sources.  With this, Gnus will fetch mails from the @sc{imap}
-server and store them on the local disk.  This is not the usage
-described in this section.  @xref{Mail Sources}.
+If you want to use @sc{imap} as a POP++, use an imap entry in
+@code{mail-sources}.  With this, Gnus will fetch mails from the
+@sc{imap} server and store them on the local disk.  This is not the
+usage described in this section--@xref{Mail Sources}.
 
 If you want to use @sc{imap} as a mail storage protocol, use an nnimap
 
 If you want to use @sc{imap} as a mail storage protocol, use an nnimap
-entry in gnus-secondary-select-methods.  With this, Gnus will
+entry in @code{gnus-secondary-select-methods}.  With this, Gnus will
 manipulate mails stored on the @sc{imap} server.  This is the kind of
 usage explained in this section.
 
 A server configuration in @code{~/.gnus} with a few @sc{imap} servers
 manipulate mails stored on the @sc{imap} server.  This is the kind of
 usage explained in this section.
 
 A server configuration in @code{~/.gnus} with a few @sc{imap} servers
-might look something like this:
+might look something like the following. (Note that for SSL/TLS, you
+need external programs and libraries, see below.)
 
 @lisp
 (setq gnus-secondary-select-methods
 
 @lisp
 (setq gnus-secondary-select-methods
@@ -14312,9 +14546,6 @@ might look something like this:
                 (nnimap-stream ssl))))
 @end lisp
 
                 (nnimap-stream ssl))))
 @end lisp
 
-(Note that for SSL/TLS to work, you need the external library
-@samp{ssl.el}, see below.)
-
 The following variables can be used to create a virtual @code{nnimap}
 server:
 
 The following variables can be used to create a virtual @code{nnimap}
 server:
 
@@ -14376,10 +14607,10 @@ Please note that the value of @code{nnimap-stream} is a symbol!
 
 @itemize @bullet
 @item
 
 @itemize @bullet
 @item
-@dfn{gssapi:} Connect with GSSAPI (usually kerberos 5). Requires the
+@dfn{gssapi:} Connect with GSSAPI (usually Kerberos 5). Requires the
 @samp{imtest} program.
 @item
 @samp{imtest} program.
 @item
-@dfn{kerberos4:} Connect with kerberos 4. Requires the @samp{imtest} program.
+@dfn{kerberos4:} Connect with Kerberos 4. Requires the @samp{imtest} program.
 @item
 @dfn{starttls:} Connect via the STARTTLS extension (similar to
 SSL). Requires the external library @samp{starttls.el} and program
 @item
 @dfn{starttls:} Connect via the STARTTLS extension (similar to
 SSL). Requires the external library @samp{starttls.el} and program
@@ -14437,13 +14668,13 @@ Please note that the value of @code{nnimap-authenticator} is a symbol!
 
 @itemize @bullet
 @item
 
 @itemize @bullet
 @item
-@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require
+@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Requires
 external program @code{imtest}.
 @item
 external program @code{imtest}.
 @item
-@dfn{kerberos4:} Kerberos authentication. Require external program
+@dfn{kerberos4:} Kerberos 4 authentication. Requires external program
 @code{imtest}.
 @item
 @code{imtest}.
 @item
-@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Require
+@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Requires
 external library @code{digest-md5.el}.
 @item
 @dfn{cram-md5:} Encrypted username/password via CRAM-MD5.
 external library @code{digest-md5.el}.
 @item
 @dfn{cram-md5:} Encrypted username/password via CRAM-MD5.
@@ -15462,9 +15693,12 @@ regexp to match component groups.
 
 All marks in the virtual group will stick to the articles in the
 component groups.  So if you tick an article in a virtual group, the
 
 All marks in the virtual group will stick to the articles in the
 component groups.  So if you tick an article in a virtual group, the
-article will also be ticked in the component group from whence it came.
-(And vice versa---marks from the component groups will also be shown in
-the virtual group.)
+article will also be ticked in the component group from whence it
+came.  (And vice versa---marks from the component groups will also be
+shown in the virtual group.). To create an empty virtual group, run
+@kbd{G V} (@code{gnus-group-make-empty-virtual}) in the group buffer
+and edit the method regexp with @kbd{M-e}
+(@code{gnus-group-edit-group-method})
 
 Here's an example @code{nnvirtual} method that collects all Andrea Dworkin
 newsgroups into one, big, happy newsgroup:
 
 Here's an example @code{nnvirtual} method that collects all Andrea Dworkin
 newsgroups into one, big, happy newsgroup:
@@ -15522,6 +15756,9 @@ not-news back end.  (Just to be on the safe side.)
 @kbd{C-c C-n} in the message buffer will insert the @code{Newsgroups}
 line from the article you respond to in these cases.
 
 @kbd{C-c C-n} in the message buffer will insert the @code{Newsgroups}
 line from the article you respond to in these cases.
 
+@code{nnvirtual} groups do not inherit anything but articles and marks
+from component groups---group parameters, for instance, are not
+inherited. 
 
 
 @node Kibozed Groups
 
 
 @node Kibozed Groups
@@ -16109,17 +16346,17 @@ toggles the plugged/unplugged state of the Gnus Agent.
 
 
 @menu
 
 
 @menu
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands::        
+* Summary Agent Commands::      
+* Server Agent Commands::       
 @end menu
 
 @end menu
 
-You can run a complete batch fetch from the command line with the
+You can run a complete batch command from the command line with the
 following incantation:
 
 following incantation:
 
-@cindex gnus-agent-batch-fetch
+@cindex gnus-agent-batch
 @example
 @example
-$ emacs -batch -l ~/.gnus.el -f gnus-agent-batch-fetch
+$ emacs -batch -l ~/.gnus.el -f gnus-agent-batch
 @end example
 
 
 @end example
 
 
@@ -16244,6 +16481,20 @@ whenever you feel that you're running out of space.  It's not
 particularly fast or efficient, and it's not a particularly good idea to
 interrupt it (with @kbd{C-g} or anything else) once you've started it.
 
 particularly fast or efficient, and it's not a particularly good idea to
 interrupt it (with @kbd{C-g} or anything else) once you've started it.
 
+@code{gnus-agent-expire-days} can also be a list of regexp/day pairs.
+The regexps will be matched against group names to allow differing
+expiry in different groups.
+
+@lisp
+(setq gnus-agent-expire-days
+      '(("alt\\." 7)
+        (".*binary" 1)
+        ("." 21)))
+@end lisp
+
+If you use the list form, the last element must always be the default
+method---it must always match all groups.
+
 @vindex gnus-agent-expire-all
 if @code{gnus-agent-expire-all} is non-@code{nil}, this command will
 expire all articles---unread, read, ticked and dormant.  If @code{nil}
 @vindex gnus-agent-expire-all
 if @code{gnus-agent-expire-all} is non-@code{nil}, this command will
 expire all articles---unread, read, ticked and dormant.  If @code{nil}
@@ -16343,6 +16594,24 @@ Hook run when connecting to the network.
 @vindex gnus-agent-unplugged-hook
 Hook run when disconnecting from the network.
 
 @vindex gnus-agent-unplugged-hook
 Hook run when disconnecting from the network.
 
+@item gnus-agent-fetched-hook
+@vindex gnus-agent-fetched-hook
+Hook run when after finishing fetching articles.
+
+@item gnus-agent-cache
+@vindex gnus-agent-cache
+Variable to control whether use the locally stored NOV and articles when
+plugged.
+
+@item gnus-agent-go-online
+@vindex gnus-agent-go-online
+If @code{gnus-agent-go-online} is @code{nil}, the Agent will never
+automatically switch offline servers into online status.  If it is
+@code{ask}, the default, the Agent will ask if you wish to switch
+offline servers into online status when you re-connect.  If it has any
+other value, all offline servers will be automatically switched into
+online status.
+
 @end table
 
 
 @end table
 
 
@@ -16412,20 +16681,19 @@ newsreaders.  Here are some common questions that some imaginary people
 may ask:
 
 @table @dfn
 may ask:
 
 @table @dfn
-@item If I read an article while plugged, do they get entered into the
-Agent?
+@item If I read an article while plugged, do they get entered into the Agent?
 
 
-@strong{No.}
+@strong{No}.
 
 
-@item If I read an article while plugged, and the article already exists
-in the Agent, will it get downloaded once more?
+@item If I read an article while plugged, and the article already exists in the Agent, will it get downloaded once more?
 
 
-@strong{Yes.}
+@strong{No}, unless @code{gnus-agent-cache} is `nil'.
 
 @end table
 
 In short, when Gnus is unplugged, it only looks into the locally stored
 
 @end table
 
 In short, when Gnus is unplugged, it only looks into the locally stored
-articles; when it's plugged, it only talks to your ISP.
+articles; when it's plugged, it only talks to your ISP and also uses the
+locally stored articles.
 
 
 @node Scoring
 
 
 @node Scoring
@@ -16883,12 +17151,12 @@ are expired.  It's 7 by default.
 
 @item gnus-update-score-entry-dates
 @vindex gnus-update-score-entry-dates
 
 @item gnus-update-score-entry-dates
 @vindex gnus-update-score-entry-dates
-If this variable is non-@code{nil}, matching score entries will have
-their dates updated.  (This is how Gnus controls expiry---all
-non-matching entries will become too old while matching entries will
-stay fresh and young.)  However, if you set this variable to @code{nil},
-even matching entries will grow old and will have to face that oh-so
-grim reaper.
+If this variable is non-@code{nil}, temporary score entries that have
+been triggered (matched) will have their dates updated.  (This is how Gnus
+controls expiry---all non-matched-entries will become too old while
+matched entries will stay fresh and young.)  However, if you set this
+variable to @code{nil}, even matched entries will grow old and will
+have to face that oh-so grim reaper.
 
 @item gnus-score-after-write-file-function
 @vindex gnus-score-after-write-file-function
 
 @item gnus-score-after-write-file-function
 @vindex gnus-score-after-write-file-function
@@ -18275,24 +18543,25 @@ four days, Gnus will decay the scores four times, for instance.
 @chapter Various
 
 @menu
 @chapter Various
 
 @menu
-* Process/Prefix::          A convention used by many treatment commands.
-* Interactive::             Making Gnus ask you many questions.
-* Symbolic Prefixes::       How to supply some Gnus functions with options.
-* Formatting Variables::    You can specify what buffers should look like.
-* Window Layout::           Configuring the Gnus buffer windows.
-* Faces and Fonts::         How to change how faces look.
-* Compilation::             How to speed Gnus up.
-* Mode Lines::              Displaying information in the mode lines.
-* Highlighting and Menus::  Making buffers look all nice and cozy.
-* Buttons::                 Get tendinitis in ten easy steps!
-* Daemons::                 Gnus can do things behind your back.
-* NoCeM::                   How to avoid spam and other fatty foods.
-* Undo::                    Some actions can be undone.
-* Moderation::              What to do if you're a moderator.
-* Image Enhancements::      Modern versions of Emacs/XEmacs can display images.
-* Fuzzy Matching::          What's the big fuzz?
-* Thwarting Email Spam::    A how-to on avoiding unsolicited commercial email.
-* Various Various::         Things that are really various.
+* Process/Prefix::              A convention used by many treatment commands.
+* Interactive::                 Making Gnus ask you many questions.
+* Symbolic Prefixes::           How to supply some Gnus functions with options.
+* Formatting Variables::        You can specify what buffers should look like.
+* Window Layout::               Configuring the Gnus buffer windows.
+* Faces and Fonts::             How to change how faces look.
+* Compilation::                 How to speed Gnus up.
+* Mode Lines::                  Displaying information in the mode lines.
+* Highlighting and Menus::      Making buffers look all nice and cozy.
+* Buttons::                     Get tendinitis in ten easy steps!
+* Daemons::                     Gnus can do things behind your back.
+* NoCeM::                       How to avoid spam and other fatty foods.
+* Undo::                        Some actions can be undone.
+* Predicate Specifiers::        Specifying predicates.
+* Moderation::                  What to do if you're a moderator.
+* Image Enhancements::          Modern versions of Emacs/XEmacs can display images.
+* Fuzzy Matching::              What's the big fuzz?
+* Thwarting Email Spam::        A how-to on avoiding unsolicited commercial email.
+* Various Various::             Things that are really various.
 @end menu
 
 
 @end menu
 
 
@@ -18484,6 +18753,7 @@ less than 4 characters wide.
 Also Gnus supports some extended format specifications, such as
 @samp{%&user-date;}.
 
 Also Gnus supports some extended format specifications, such as
 @samp{%&user-date;}.
 
+
 @node Mode Line Formatting
 @subsection Mode Line Formatting
 
 @node Mode Line Formatting
 @subsection Mode Line Formatting
 
@@ -18550,6 +18820,13 @@ Return an empty string if the field is equal to the specified value.
 @item form
 Use the specified form as the field value when the @samp{@@} spec is
 used.
 @item form
 Use the specified form as the field value when the @samp{@@} spec is
 used.
+
+Here's an example:
+
+@lisp
+"~(form (current-time-string))@@"
+@end lisp
+
 @end table
 
 Let's take an example.  The @samp{%o} spec in the summary mode lines
 @end table
 
 Let's take an example.  The @samp{%o} spec in the summary mode lines
@@ -19467,6 +19744,33 @@ command, which should feel kinda like the normal Emacs @code{undo}
 command.
 
 
 command.
 
 
+@node Predicate Specifiers
+@section Predicate Specifiers
+@cindex predicate specifiers
+
+Some Gnus variables are @dfn{predicate specifiers}.  This is a special
+form that allows flexible specification of predicates without having
+to type all that much.
+
+These specifiers are lists consisting of functions, symbols and lists.
+
+Here's an example:
+
+@lisp
+(or gnus-article-unseen-p
+    gnus-article-unread-p)
+@end lisp
+
+The available symbols are @code{or}, @code{and} and @code{not}.  The
+functions all take one parameter.
+
+@findex gnus-make-predicate
+Internally, Gnus calls @code{gnus-make-predicate} on these specifiers
+to create a function that can be called.  This input parameter to this
+function will be passed along to all the functions in the predicate
+specifier. 
+
+
 @node Moderation
 @section Moderation
 @cindex moderation
 @node Moderation
 @section Moderation
 @cindex moderation
@@ -19519,11 +19823,11 @@ XEmacs, as well as Emacs 21, is able to display pictures and stuff, so
 Gnus has taken advantage of that.
 
 @menu
 Gnus has taken advantage of that.
 
 @menu
-* Picons::     How to display pictures of what you're reading.
-* Smileys::    Show all those happy faces the way they were meant to be shown.
-* X-Face::     Display a funky, teensy black-and-white image.
-* Toolbar::    Click'n'drool.
-* XVarious::   Other XEmacsy Gnusey variables.
+* Picons::                      How to display pictures of what you're reading.
+* Smileys::                     Show all those happy faces the way they were meant to be shown.
+* X-Face::                      Display a funky, teensy black-and-white image.
+* Toolbar::                     Click'n'drool.
+* XVarious::                    Other XEmacsy Gnusey variables.
 @end menu
 
 
 @end menu
 
 
@@ -19871,9 +20175,10 @@ Face used for mouse highlighting over the smiley face.
 @subsection X-Face
 @cindex x-face
 
 @subsection X-Face
 @cindex x-face
 
-@code{X-Face} headers describe a 48x48 pixel black-and-white image
-that's supposed to represent the author of the message.  It seems to
-be supported by an ever-growing number of mail and news readers.
+@code{X-Face} headers describe a 48x48 pixel black-and-white (1 bit
+depth) image that's supposed to represent the author of the message.
+It seems to be supported by an ever-growing number of mail and news
+readers.
 
 @cindex x-face
 @findex gnus-article-display-x-face
 
 @cindex x-face
 @findex gnus-article-display-x-face
@@ -19917,6 +20222,39 @@ like @code{netpbm}, @code{libgr-progs} and @code{compface}.})
 (NOTE: @code{x-face} is used in the variable/function names, not
 @code{xface}).
 
 (NOTE: @code{x-face} is used in the variable/function names, not
 @code{xface}).
 
+Gnus provides a few convenience functions and variables to allow
+easier insertion of X-Face headers in outgoing messages.
+
+@findex gnus-random-x-face
+@code{gnus-random-x-face} goes through all the @samp{pbm} files
+in @code{gnus-x-face-directory} and picks one at random, and then
+converts it to the X-Face format by using the
+@code{gnus-convert-pbm-to-x-face-command} shell command.  The
+@samp{pbm} files should be 48x48 pixels big.
+
+@code{gnus-x-face-from-file} takes a file as the parameter, and then
+converts the file to X-Face format by using the
+@code{gnus-convert-image-to-x-face-command} shell command.
+
+Here's how you would typically use the former function.  Put something
+like the folllowing in your @file{.gnus.el} file:
+
+@lisp
+(setq message-required-news-headers
+      (nconc message-required-news-headers
+             (list '(X-Face . gnus-random-x-face))))
+@end lisp
+
+Using the latter function would be something like this:
+
+@lisp
+(setq message-required-news-headers
+      (nconc message-required-news-headers
+             (list '(X-Face . (lambda ()
+                                (gnus-x-face-from-file
+                                 "~/My-face.gif"))))))
+@end lisp
+
 
 @node Toolbar
 @subsection Toolbar
 
 @node Toolbar
 @subsection Toolbar
@@ -20303,10 +20641,13 @@ renamed it back again to ``Gnus''.  But in mixed case.  ``Gnus'' vs.
 
 @node Gnus Versions
 @subsection Gnus Versions
 
 @node Gnus Versions
 @subsection Gnus Versions
-@cindex Pterodactyl Gnus
 @cindex ding Gnus
 @cindex September Gnus
 @cindex ding Gnus
 @cindex September Gnus
+@cindex Red Gnus
 @cindex Quassia Gnus
 @cindex Quassia Gnus
+@cindex Pterodactyl Gnus
+@cindex Oort Gnus
+@cindex No Gnus
 
 The first ``proper'' release of Gnus 5 was done in November 1995 when it
 was included in the Emacs 19.30 distribution (132 (ding) Gnus releases
 
 The first ``proper'' release of Gnus 5 was done in November 1995 when it
 was included in the Emacs 19.30 distribution (132 (ding) Gnus releases
@@ -20460,8 +20801,9 @@ with, of course.
 
 @table @strong
 
 
 @table @strong
 
-@item RFC 822
+@item RFC (2)822
 @cindex RFC 822
 @cindex RFC 822
+@cindex RFC 2822
 There are no known breaches of this standard.
 
 @item RFC 1036
 There are no known breaches of this standard.
 
 @item RFC 1036
@@ -20490,6 +20832,38 @@ on Son-of-RFC 1036.  They have produced a number of drafts proposing
 various changes to the format of news articles.  The Gnus towers will
 look into implementing the changes when the draft is accepted as an RFC.
 
 various changes to the format of news articles.  The Gnus towers will
 look into implementing the changes when the draft is accepted as an RFC.
 
+@item MIME - RFC 2045-2049 etc
+@cindex MIME
+All the various MIME RFCs are supported.
+
+@item Disposition Notifications - RFC 2298
+Message Mode is able to request notifications from the receiver.
+
+@item PGP - RFC 1991 and RFC 2440
+@cindex RFC 1991
+@cindex RFC 2440
+RFC 1991 is the original PGP message specification, published as a
+Information RFC.  RFC 2440 was the follow-up, now called Open PGP, and
+put on the Standards Track.  Both document a non-MIME aware PGP
+format.  Gnus supports both encoding (signing and encryption) and
+decoding (verification and decryption).
+
+@item PGP/MIME - RFC 2015/3156
+RFC 2015 (superceded by 3156 which references RFC 2440 instead of RFC
+1991) describes the MIME-wrapping around the RF 1991/2440 format.
+Gnus supports both encoding and decoding.
+
+@item S/MIME - RFC 2633
+RFC 2633 describes the S/MIME format.
+
+@item IMAP - RFC 1730/2060, RFC 2195, RFC 2086, RFC 2359, RFC 2595, RFC 1731
+RFC 1730 is IMAP version 4, updated somewhat by RFC 2060 (IMAP 4
+revision 1).  RFC 2195 describes CRAM-MD5 authentication for IMAP. RFC
+2086 describes access control lists (ACLs) for IMAP. RFC 2359
+describes a IMAP protocol enhancement.  RFC 2595 describes the proper
+TLS integration (STARTTLS) with IMAP.  RFC 1731 describes the
+GSSAPI/Kerberos4 mechanisms for IMAP.
+
 @end table
 
 If you ever notice Gnus acting non-compliant with regards to the texts
 @end table
 
 If you ever notice Gnus acting non-compliant with regards to the texts
@@ -21962,6 +22336,22 @@ want to read them anyway.
 If this is non-@code{nil}, all threads in the summary buffer will be
 hidden initially.
 
 If this is non-@code{nil}, all threads in the summary buffer will be
 hidden initially.
 
+This can also be a predicate specifier (@pxref{Predicate Specifiers}).
+Avaliable predicates are @code{gnus-article-unread-p} and
+@code{gnus-article-unseen-p}).
+
+Here's an example:
+
+@lisp
+(setq gnus-thread-hide-subtree
+      '(or gnus-article-unread-p
+           gnus-article-unseen-p))
+@end lisp
+
+(It's a pretty nonsensical example, since all unseen articles are also
+unread, but you get my drift.)
+
+
 @item gnus-updated-mode-lines
 If this is @code{nil}, Gnus will not put information in the buffer mode
 lines, which might save some time.
 @item gnus-updated-mode-lines
 If this is @code{nil}, Gnus will not put information in the buffer mode
 lines, which might save some time.
@@ -22320,8 +22710,8 @@ In the examples and definitions I will refer to the imaginary back end
 @cindex @code{nnchoke}
 
 @menu
 @cindex @code{nnchoke}
 
 @menu
-* Required Back End Functions:: Functions that must be implemented.
-* Optional Back End Functions:: Functions that need not be implemented.
+* Required Back End Functions::  Functions that must be implemented.
+* Optional Back End Functions::  Functions that need not be implemented.
 * Error Messaging::             How to get messages and report errors.
 * Writing New Back Ends::       Extending old back ends.
 * Hooking New Back Ends Into Gnus::  What has to be done on the Gnus end.
 * Error Messaging::             How to get messages and report errors.
 * Writing New Back Ends::       Extending old back ends.
 * Hooking New Back Ends Into Gnus::  What has to be done on the Gnus end.