-\input texinfo @c -*-texinfo-*- -*- coding: iso-latin-1 -*-
+\input texinfo
@setfilename gnus
@settitle T-gnus 6.15 Manual
\ifx\pdfoutput\undefined
\else
-\usepackage[pdftex,bookmarks]{hyperref}
+\usepackage[pdftex,bookmarks,colorlinks=true]{hyperref}
+\usepackage{thumbpdf}
\pdfcompresslevel=9
\fi
\makeindex
\begin{document}
-\newcommand{\gnusversionname}{Oort Gnus v.}
+\newcommand{\gnusversionname}{Oort Gnus v0.05}
\newcommand{\gnuschaptername}{}
\newcommand{\gnussectionname}{}
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
Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
Group Topics
-* Topic Variables:: How to customize the topics the Lisp Way.
* 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.
* 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.
* 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
* 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
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.
* 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.
-* XEmacs 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.
* 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.
+* X-Face:: Display a funky, teensy black-and-white image.
* Toolbar:: Click'n'drool.
* XVarious:: Other XEmacsy Gnusey variables.
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.
* 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
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.
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.
+@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
@vindex gnus-select-group-hook
@vindex gnus-auto-select-first
-@code{gnus-auto-select-first} control whether any articles are selected
+If @code{gnus-auto-select-first} is non-@code{nil}, select an article
automatically when entering a group with the @kbd{SPACE} command.
+Which article this is is controlled by the
+@code{gnus-auto-select-subject} variable. Valid values for this
+variable is:
@table @code
-@item nil
-Don't select any articles when entering the group. Just display the
-full summary buffer.
-
-@item t
-Select the first unread article when entering the group.
-
-@item best
-Select the highest scored article in the group when entering the
-group.
-
-@end table
+@item unread
+Place point on the subject line of the first unread article.
-This variable can also be a function. In that case, that function will
-be called to place point on a subject line, and/or select some article.
-Useful functions include:
+@item first
+Place point on the subject line of the first article.
-@table @code
-@item gnus-summary-first-unread-subject
-Place point on the subject line of the first unread article, but
-don't select the article.
+@item unseen
+Place point on the subject line of the first unseen article.
-@item gnus-summary-first-unread-article
-Select the first unread article.
+@item best
+Place point on the subject line of the highest-scored unread article.
-@item gnus-summary-best-unread-article
-Select the highest-scored unread article.
@end table
+This variable can also be a function. In that case, that function
+will be called to place point on a subject line.
If you want to prevent automatic selection in some group (say, in a
-binary group with Huge articles) you can set this variable to @code{nil}
-in @code{gnus-select-group-hook}, which is called when a group is
+binary group with Huge articles) you can set the
+@code{gnus-auto-select-first} variable to @code{nil} in
+@code{gnus-select-group-hook}, which is called when a group is
selected.
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
value should be a regexp to match the groups that should go in that
topic.
+@item subscribe-level
+When subscribing new groups by topic (see the @code{subscribe} parameter),
+the group will be subscribed with the level specified in the
+@code{subscribe-level} instead of @code{gnus-level-default-subscribed}.
+
@end table
Group parameters (of course) override topic parameters, and topic
@item a
@kindex a (Group)
@findex gnus-group-post-news
-Post an article to a group (@code{gnus-group-post-news}). If given a
-prefix, the current group name will be used as the default.
-@xref{Composing Messages}.
+Start composing a message (a news by default)
+(@code{gnus-group-post-news}). If given a prefix, post to the group
+under the point. If the prefix is 1, prompt for a group to post to.
+Contrary to what the name of this function suggests, the prepared
+article might be a mail instead of a news, if a mail group is specified
+with the prefix argument. @xref{Composing Messages}.
@item m
@kindex m (Group)
@findex gnus-group-mail
-Mail a message somewhere (@code{gnus-group-mail}). @xref{Composing Messages}.
+Mail a message somewhere (@code{gnus-group-mail}). If given a prefix,
+use the posting style of the group under the point. If the prefix is 1,
+prompt for a group name to find the posting style.
+@xref{Composing Messages}.
+
+@item i
+@kindex i (Group)
+@findex gnus-group-news
+Start composing a news (@code{gnus-group-news}). If given a prefix,
+post to the group under the point. If the prefix is 1, prompt
+for group to post to. @xref{Composing Messages}.
+
+This function actually prepares a news even when using mail groups.
+This is useful for "posting" messages to mail groups without actually
+sending them over the network: they're just saved directly to the group
+in question. The corresponding back end must have a request-post method
+for this to work though.
@end table
"%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)))
+ (format-time-string "%b %d %H:%M" time)))
+@end lisp
+
@node File Commands
@subsection File Commands
@item <
Twenty minus thread level spaces.
@item U
-Unread.
+Unread. @xref{Read Articles}.
@item R
This misleadingly named specifier is the @dfn{secondary mark}. This
mark will say whether the article has been replied to, has been cached,
-or has been saved.
+or has been saved. @xref{Other Marks}.
@item i
Score as a number (@pxref{Scoring}).
"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:
@kindex G b (Summary)
@kindex , (Summary)
@findex gnus-summary-best-unread-article
-Go to the article with the highest score
-(@code{gnus-summary-best-unread-article}).
+Go to the unread article with the highest score
+(@code{gnus-summary-best-unread-article}). If given a prefix argument,
+go to the first unread article that has a score over the default score.
@item G l
@itemx l
@kindex S m (Summary)
@findex gnus-summary-mail-other-window
@c @icon{gnus-summary-mail-originate}
-Send a mail to some other person
-(@code{gnus-summary-mail-other-window}).
+Prepare a mail (@code{gnus-summary-mail-other-window}). By default, use
+the posting style of the current group. If given a prefix, disable that.
+If the prefix is 1, prompt for a group name to find the posting style.
+
+@item S i
+@itemx i
+@kindex i (Summary)
+@kindex S i (Summary)
+@findex gnus-summary-news-other-window
+Prepare a news (@code{gnus-summary-news-other-window}). By default,
+post to the current group. If given a prefix, disable that. If the
+prefix is 1, prompt for a group to post to.
+
+This function actually prepares a news even when using mail groups.
+This is useful for "posting" messages to mail groups without actually
+sending them over the network: they're just saved directly to the group
+in question. The corresponding back end must have a request-post method
+for this to work though.
@item S D b
@kindex S D b (Summary)
@kindex S p (Summary)
@findex gnus-summary-post-news
@c @icon{gnus-summary-post-news}
-Post an article to the current group
-(@code{gnus-summary-post-news}).
+Prepare for posting an article (@code{gnus-summary-post-news}). By
+default, post to the current group. If given a prefix, disable that.
+If the prefix is 1, prompt for another group instead.
@item S f
@itemx f
@code{nndraft:delayed} group.
And whenever you get new news, Gnus looks through the group for articles
-which are due and sends them. It uses the @code{gnus-delay-send-drafts}
+which are due and sends them. It uses the @code{gnus-delay-send-queue}
function for this. By default, this function is added to the hook
@code{gnus-get-new-news-hook}. But of course, you can change this.
Maybe you want to use the demon to send drafts? Just tell the demon to
-execute the @code{gnus-delay-send-drafts} function.
+execute the @code{gnus-delay-send-queue} function.
@table @code
@item gnus-delay-initialize
@findex gnus-delay-initialize
By default, this function installs the @kbd{C-c C-j} key binding in
-Message mode and @code{gnus-delay-send-drafts} in
+Message mode and @code{gnus-delay-send-queue} in
@code{gnus-get-new-news-hook}. But it accepts two optional arguments,
@code{no-keymap} and @code{no-check}. If @code{no-keymap} is non-nil,
the @kbd{C-c C-j} binding is not intalled. If @code{no-check} is
@item
@vindex gnus-unseen-mark
Articles that haven't been seen by the user before are marked with a
-@samp{.} in the second column (@code{gnus-unseen-mark}).
+@samp{.} in the second column (@code{gnus-unseen-mark}).
@item
@vindex gnus-not-empty-thread-mark
@kindex / o (Summary)
@findex gnus-summary-insert-old-articles
Insert all old articles in the summary buffer. If given a numbered
-prefix, fetch this number of articles.
+prefix, fetch this number of articles.
@end table
@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
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
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
@findex gnus-summary-pipe-output
Save the current article in a pipe. Uhm, like, what I mean is---Pipe
the current article to a process (@code{gnus-summary-pipe-output}).
+
+@item O P
+@kindex O P (Summary)
+@findex gnus-summary-muttprint
+@vindex gnus-summary-muttprint-program
+Save the current article into muttprint. That is, print it using the
+external program Muttprint (see
+@uref{http://muttprint.sourceforge.net/}). The program name and
+options to use is controlled by the variable
+@code{gnus-summary-muttprint-program}. (@code{gnus-summary-muttprint}).
+
@end table
@vindex gnus-prompt-before-saving
* 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
has been done.
If a prefix is given, a charset will be asked for.
-@item W f
-@kindex W f (Summary)
-@cindex x-face
-@findex gnus-article-display-x-face
-@findex gnus-article-x-face-command
-@vindex gnus-article-x-face-command
-@vindex gnus-article-x-face-too-ugly
-@iftex
-@iflatex
-\include{xface}
-@end iflatex
-@end iftex
-@c @anchor{X-Face}
-Look for and display any X-Face headers
-(@code{gnus-article-display-x-face}). The command executed by this
-function is given by the @code{gnus-article-x-face-command} variable.
-If this variable is a string, this string will be executed in a
-sub-shell. If it is a function, this function will be called with the
-face as the argument. If the @code{gnus-article-x-face-too-ugly} (which
-is a regexp) matches the @code{From} header, the face will not be shown.
-The default action under Emacs is to fork off the @code{display}
-program@footnote{@code{display} is from the ImageMagick package. For
-the @code{uncompface} and @code{icontopbm} programs look for a package
-like `compface' or `faces-xface' on a GNU/Linux system.} to view the
-face. Under XEmacs or Emacs 21+ with suitable image support, the
-default action is to display the face before the @code{From} header.
-(It's nicer if XEmacs has been compiled with X-Face support---that will
-make display somewhat faster. If there's no native X-Face support, Gnus
-will try to convert the @code{X-Face} header using external programs
-from the @code{pbmplus} package and friends.@footnote{On a GNU/Linux
-system look for packages with names like @code{netpbm} or
-@code{libgr-progs}.}) If you want to have this function in the display
-hook, it should probably come last.
-(NOTE: @code{x-face} is used in the variable/function names, not @code{xface}).
-
@item W b
@kindex W b (Summary)
@findex gnus-article-add-buttons
@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}).
+(@code{gnus-summary-force-verify-and-decrypt}). @xref{Security}.
@item W W H
@kindex W W H (Summary)
@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
preferred format automatically.
+@node Article Display
+@subsection Article Display
+@cindex picons
+@cindex x-face
+@cindex smileys
+
+These commands add various frivolous display gimmics to the article
+buffer in Emacs versions that support them.
+
+@code{X-Face} headers are small black-and-white images supplied by the
+message headers (@pxref{X-Face}).
+
+Picons, on the other hand, reside on your own system, and Gnus will
+try to match the headers to what you have (@pxref{Picons}).
+
+Smileys are those little @samp{:-)} symbols that people like to litter
+their messages with (@pxref{Smileys}).
+
+All these functions are toggles--if the elements already exist,
+they'll be removed.
+
+@table @kbd
+@item W D x
+@kindex W D x (Summary)
+@findex gnus-article-display-x-face
+Display an @code{X-Face} in the @code{From} header.
+(@code{gnus-article-display-x-face}).
+
+@item W D s
+@kindex W D s (Summary)
+@findex gnus-treat-smiley
+Display smileys (@code{gnus-treat-smiley}).
+
+@item W D f
+@kindex W D f (Summary)
+@findex gnus-treat-from-picon
+Piconify the @code{From} header (@code{gnus-treat-from-picon}).
+
+@item W D m
+@kindex W D m (Summary)
+@findex gnus-treat-mail-picon
+Piconify all mail headers (i. e., @code{Cc}, @code{To})
+(@code{gnus-treat-mail-picon}).
+
+@item W D n
+@kindex W D n (Summary)
+@findex gnus-treat-newsgroups-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
+
+
+
@node Article Signature
@subsection Article Signature
@cindex signatures
@vindex gnus-ps-print-hook
@findex gnus-summary-print-article
Generate and print a PostScript image of the article buffer
-(@code{gnus-summary-print-article}). @code{gnus-ps-print-hook} will be
-run just before printing the buffer.
+(@code{gnus-summary-print-article}). @code{gnus-ps-print-hook} will
+be run just before printing the buffer. An alternative way to print
+article is to use Muttprint (@pxref{Saving Articles}).
@end table
buffer is one of these, minimizing the tree window will also resize all
other windows displayed next to it.
+You may also wish to add the following hook to keep the window minimized
+at all times:
+
+@lisp
+(add-hook 'gnus-configure-windows-hook
+ 'gnus-tree-perhaps-minimize)
+@end lisp
+
@item gnus-generate-tree-function
@vindex gnus-generate-tree-function
@findex gnus-generate-horizontal-tree
buffers. For example:
@lisp
-(setq gnus-newsgroup-variables
+(setq gnus-newsgroup-variables
'(message-use-followup-to
- (gnus-visible-headers .
+ (gnus-visible-headers .
"^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^To:")))
@end lisp
@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
-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
-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
-manual. @xref{Security, ,Security, message, The Message Manual}.
+manual (@pxref{Security, ,Security, message, Message Manual}).
@table @code
@item mm-verify-option
@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
@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-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-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-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)
+
+@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-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-overstrike (t, integer)
+
+@xref{Article Highlighting}.
+
@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-unfold-headers (head)
+@item gnus-treat-fold-headers (head)
+@item gnus-treat-fold-newsgroups (head)
+
@item gnus-treat-decode-article-as-default-mime-charset
@end table
@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
@item h
Displayed when headers are hidden in the article buffer.
-@item p
+@item p
Displayed when article is digitally signed or encrypted, and Gnus has
hidden the security headers. (N.B. does not tell anything about
security status, i.e. good or bad signature.)
@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
-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}).
* 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
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
(@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 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.
-The @code{gpg-temp-directory} need to point to a directory with permissions set
-to 700, for your own safety.
+@table @kbd
-If you want to benefit of PGP2.6 compatibility, you might create a script named
-@file{gpg-2comp} with these instructions:
+@item C-c C-m s s
+@kindex C-c C-m s s
+@findex mml-secure-sign-smime
-@example
-#!/bin/sh
-exec gpg --rfc1991 "$@@"
-@end example
+Digitally sign current MIME part using S/MIME.
-If you don't want to use such compatibility, you can add the following line to
-your @file{~/.emacs} or @file{~/.gnus}:
+@item C-c C-m s o
+@kindex C-c C-m s o
+@findex mml-secure-sign-pgp
-@lisp
-(setq gpg-command-default-alist (quote ((gpg . "gpg") (gpg-2comp . "gpg"))))
-@end lisp
+Digitally sign current MIME part using PGP.
+
+@item C-c C-m s p
+@kindex C-c C-m s p
+@findex mml-secure-sign-pgp
+
+Digitally sign current MIME part using PGP/MIME.
+
+@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
-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 encrypt 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.
+@end table
+
+Also @xref{Security, ,Security, message, Message Manual}.
@node Select Methods
@chapter Select Methods
(add-hook 'nntp-prepare-post-hook 'canlock-insert-header)
@end lisp
+Note that not all servers support the recommended ID. This works for
+INN versions 2.3.0 and later, for instance.
+
@item nntp-list-options
@vindex nntp-list-options
List of newsgroup name used for a option of the LIST command to restrict
* 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
@vindex nnmail-expiry-target
The normal action taken when expiring articles is to delete them.
-However, in some circumstances it might make more sense to move them to
-other groups instead of deleting them. The variable @code{nnmail-expiry-target}
-(and the @code{expiry-target} group parameter) controls this. The
-variable supplies a default value for all groups, which can be
-overridden for specific groups by the group parameter.
-default value is @code{delete}, but this can also be a string (which
-should be the name of the group the message should be moved to), or a
-function (which will be called in a buffer narrowed to the message in
-question, and with the name of the group being moved from as its
-parameter) which should return a target -- either a group name or
-@code{delete}.
+However, in some circumstances it might make more sense to move them
+to other groups instead of deleting them. The variable
+@code{nnmail-expiry-target} (and the @code{expiry-target} group
+parameter) controls this. The variable supplies a default value for
+all groups, which can be overridden for specific groups by the group
+parameter. default value is @code{delete}, but this can also be a
+string (which should be the name of the group the message should be
+moved to), or a function (which will be called in a buffer narrowed to
+the message in question, and with the name of the group being moved
+from as its parameter) which should return a target -- either a group
+name or @code{delete}.
Here's an example for specifying a group name:
@lisp
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.
@sc{html} in the Gnus article buffers will use @code{browse-url} to
follow the link.
+
@node IMAP
@section @sc{imap}
@cindex nnimap
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
-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
-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
-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
(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:
@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
-@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
@itemize @bullet
@item
-@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require
+@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Requires
external program @code{imtest}.
@item
-@dfn{kerberos4:} Kerberos authentication. Require external program
+@dfn{kerberos4:} Kerberos 4 authentication. Requires external program
@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.
and in that case @code{nnvirtual} tells Gnus that the article came from a
not-news back end. (Just to be on the safe side.)
-@kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups}
+@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
@item J S
@kindex J S (Agent Group)
-@findex gnus-group-send-drafts
-Send all sendable messages in the draft group
-(@code{gnus-group-send-drafts}). @xref{Drafts}.
+@findex gnus-group-send-queue
+Send all sendable messages in the queue group
+(@code{gnus-group-send-queue}). @xref{Drafts}.
@item J a
@kindex J a (Agent Group)
@kindex J u (Agent Summary)
@findex gnus-agent-summary-fetch-group
Download all downloadable articles in the current group
-(@code{gnus-agent-summary-fetch-group}).
+(@code{gnus-agent-summary-fetch-group}).
@end table
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-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.
+
@end table
@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
this mechanism does, but here's a cookbook example for @code{nnml} on
how to allow scoring on the @samp{To} and @samp{Cc} headers.
-Put the following in your @file{.gnus.el} file.
+Put the following in your @file{.gnus.el} file.
@lisp
(setq gnus-extra-headers '(To Cc Newsgroups Keywords)
* 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.
-* XEmacs 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.
Also Gnus supports some extended format specifications, such as
@samp{%&user-date;}.
+
@node Mode Line Formatting
@subsection Mode Line Formatting
@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
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
@end lisp
-@node XEmacs Enhancements
-@section XEmacs Enhancements
-@cindex XEmacs
+@node Image Enhancements
+@section Image Enhancements
-XEmacs is able to display pictures and stuff, so Gnus has taken
-advantage of that.
+XEmacs, as well as Emacs 21, is able to display pictures and stuff, so
+Gnus has taken advantage of that.
@menu
-* 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.
+* X-Face:: Display a funky, teensy black-and-white image.
* Toolbar:: Click'n'drool.
* XVarious:: Other XEmacsy Gnusey variables.
@end menu
picons to be installed into a location pointed to by
@code{gnus-picons-database}.
+If you are using Debian GNU/Linux, saying @samp{apt-get install
+picons.*} will install the picons where Gnus can find them.
+
@node Picon Requirements
@subsubsection Picon Requirements
@end table
+@node X-Face
+@subsection X-Face
+@cindex x-face
+
+@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
+@findex gnus-article-x-face-command
+@vindex gnus-article-x-face-command
+@vindex gnus-article-x-face-too-ugly
+@iftex
+@iflatex
+\include{xface}
+@end iflatex
+@end iftex
+@c @anchor{X-Face}
+
+Decoding an @code{X-Face} header either requires an Emacs that has
+@samp{compface} support (which most XEmacs versions has), or that you
+have @samp{compface} installed on your system. If either is true,
+Gnus will default to displaying @code{X-Face} headers.
+
+The variable that controls this is the
+@code{gnus-article-x-face-command} variable. If this variable is a
+string, this string will be executed in a sub-shell. If it is a
+function, this function will be called with the face as the argument.
+If the @code{gnus-article-x-face-too-ugly} (which is a regexp) matches
+the @code{From} header, the face will not be shown.
+
+The default action under Emacs 20 is to fork off the @code{display}
+program@footnote{@code{display} is from the ImageMagick package. For
+the @code{uncompface} and @code{icontopbm} programs look for a package
+like @code{compface} or @code{faces-xface} on a GNU/Linux system.} to
+view the face.
+
+Under XEmacs or Emacs 21+ with suitable image support, the default
+action is to display the face before the @code{From} header. (It's
+nicer if XEmacs has been compiled with @code{X-Face} support---that
+will make display somewhat faster. If there's no native @code{X-Face}
+support, Gnus will try to convert the @code{X-Face} header using
+external programs from the @code{pbmplus} package and
+friends.@footnote{On a GNU/Linux system look for packages with names
+like @code{netpbm}, @code{libgr-progs} and @code{compface}.})
+
+(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
@chapter Appendices
@menu
+* 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.
@end menu
+@node XEmacs
+@section XEmacs
+@cindex XEmacs
+@cindex Installing under XEmacs
+
+XEmacs is distributed as a collection of packages. You should install
+whatever packages the Gnus XEmacs package requires. The current
+requirements are @samp{gnus}, @samp{w3}, @samp{mh-e},
+@samp{mailcrypt}, @samp{rmail}, @samp{eterm}, @samp{mail-lib},
+@samp{xemacs-base}, and @samp{fsf-compat}.
+
+
@node History
@section History
@node Gnus Versions
@subsection Gnus Versions
-@cindex Pterodactyl Gnus
@cindex ding Gnus
@cindex September Gnus
+@cindex Red 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
@table @strong
-@item RFC 822
+@item RFC (2)822
@cindex RFC 822
+@cindex RFC 2822
There are no known breaches of this standard.
@item RFC 1036
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 2289
+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
@itemize @bullet
-@item
+@item
The mail-fetching functions have changed. See the manual for the
many details. In particular, all procmail fetching variables are gone.
More information is available in the info doc at Select Methods ->
Getting Mail -> Mail Sources
-@item
+@item
Gnus is now a MIME-capable reader. This affects many parts of
Gnus, and adds a slew of new commands. See the manual for details.
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.
@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.
@end iflatex
@end iftex
+@c Local Variables:
+@c mode: texinfo
+@c coding: iso-8859-1
@c End:
% LocalWords: BNF mucho detailmenu cindex kindex kbd
% LocalWords: findex Gnusae vindex dfn dfn samp nntp setq nnspool nntpserver