\makeindex
\begin{document}
-\newcommand{\gnusversionname}{Gnus v5.10.1}
+\newcommand{\gnusversionname}{Gnus v5.10.2}
\newcommand{\gnuschaptername}{}
\newcommand{\gnussectionname}{}
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Gnus v5.10.1.
+This manual corresponds to Gnus v5.10.2.
@end ifinfo
* Agent Basics:: How it all is supposed to work.
* Agent Categories:: How to tell the Gnus Agent what to download.
* Agent Commands:: New commands for all the buffers.
+* Agent Visuals:: Ways that the agent may effect your summary buffer.
* Agent as Cache:: The Agent is a big cache too.
* Agent Expiry:: How to make old articles go away.
* Agent Regeneration:: How to recover from lost connections and other accidents.
@end table
@vindex gnus-large-newsgroup
-The @code{gnus-large-newsgroup} variable says what Gnus should consider
-to be a big group. This is 200 by default. If the group has more
+The @code{gnus-large-newsgroup} variable says what Gnus should
+consider to be a big group. If it is @code{nil}, no groups are
+considered big. The default vaule is 200. If the group has more
(unread and/or ticked) articles than this, Gnus will query the user
-before entering the group. The user can then specify how many articles
-should be fetched from the server. If the user specifies a negative
-number (@code{-n}), the @code{n} oldest articles will be fetched. If it
-is positive, the @code{n} articles that have arrived most recently will
-be fetched.
+before entering the group. The user can then specify how many
+articles should be fetched from the server. If the user specifies a
+negative number (@var{-n}), the @var{n} oldest articles will be
+fetched. If it is positive, the @var{n} articles that have arrived
+most recently will be fetched.
@vindex gnus-large-ephemeral-newsgroup
-Same as @code{gnus-large-newsgroup}, but only used for ephemeral
+@code{gnus-large-ephemeral-newsgroup} is the same as
+@code{gnus-large-newsgroup}, but is only used for ephemeral
newsgroups.
@vindex gnus-select-group-hook
@item gnus-article-loose-mime
@vindex gnus-article-loose-mime
-If non-@code{nil}, Gnus won't required the @samp{MIME-Version} header
+If non-@code{nil}, Gnus won't require the @samp{MIME-Version} header
before interpreting the message as a @acronym{MIME} message. This helps
when reading messages from certain broken mail user agents. The
default is @code{nil}.
doesn't exist actually does exist. More specifically, @acronym{IMAP} has
this concept of marking articles @code{Deleted} which doesn't actually
delete them, and this (marking them @code{Deleted}, that is) is what
-nnimap does when you delete a article in Gnus (with @kbd{B DEL} or
+nnimap does when you delete an article in Gnus (with @kbd{B DEL} or
similar).
Since the articles aren't really removed when we mark them with the
@acronym{IMAP} servers support this, this function will give an error if it
doesn't.
-To edit a ACL for a mailbox, type @kbd{G l}
-(@code{gnus-group-edit-nnimap-acl}) and you'll be presented with a ACL
+To edit an ACL for a mailbox, type @kbd{G l}
+(@code{gnus-group-edit-nnimap-acl}) and you'll be presented with an ACL
editing window with detailed instructions.
Some possible uses:
* Agent Basics:: How it all is supposed to work.
* Agent Categories:: How to tell the Gnus Agent what to download.
* Agent Commands:: New commands for all the buffers.
+* Agent Visuals:: Ways that the agent may effect your summary buffer.
* Agent as Cache:: The Agent is a big cache too.
* Agent Expiry:: How to make old articles go away.
* Agent Regeneration:: How to recover from lost connections and other accidents.
@dfn{Downloading} means fetching things from the net to your local
machine. @dfn{Uploading} is doing the opposite.
+You know that Gnus gives you all the opportunity you'd ever want for
+shooting yourself in the foot. Some people call it flexibility. Gnus
+is also customizable to a great extent, which means that the user has a
+say on how Gnus behaves. Other newsreaders might unconditionally shoot
+you in your foot, but with Gnus, you have a choice!
+
+Gnus is never really in plugged or unplugged state. Rather, it applies
+that state to each server individually. This means that some servers
+can be plugged while others can be unplugged. Additionally, some
+servers can be ignored by the Agent altogether (which means that
+they're kinda like plugged always).
+
+So when you unplug the Agent and then wonder why is Gnus opening a
+connection to the Net, the next step to do is to look whether all
+servers are agentized. If there is an unagentized server, you found
+the culprit.
+
+Another thing is the @dfn{offline} state. Sometimes, servers aren't
+reachable. When Gnus notices this, it asks you whether you want the
+server to be switched to offline state. If you say yes, then the
+server will behave somewhat as if it was unplugged, except that Gnus
+will ask you whether you want to switch it back online again.
+
Let's take a typical Gnus session using the Agent.
@itemize @bullet
@kbd{J a} on the server (or servers) that you wish to have covered by the
Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically
added servers you do not wish to have covered by the Agent. By default,
-all @code{nntp} and @code{nnimap} groups in @code{gnus-select-method} and
+all @code{nntp} and @code{nnimap} servers in @code{gnus-select-method} and
@code{gnus-secondary-select-methods} are agentized.
@item
@end table
+@node Agent Visuals
+@subsection Agent Visuals
+
+If you open a summary while unplugged and, Gnus knows from the group's
+active range that there are more articles than the headers currently
+stored in the Agent, you may see some articles whose subject looks
+something like @samp{[Undownloaded article #####]}. These are
+placeholders for the missing headers. Aside from setting a mark,
+there is not much that can be done with one of these placeholders.
+When Gnus finally gets a chance to fetch the group's headers, the
+placeholders will automatically be replaced by the actual headers.
+You can configure the summary buffer's maneuvering to skip over the
+placeholders if you care (See @code{gnus-auto-goto-ignores}).
+
+While it may be obvious to all, the only headers and articles
+available while unplugged are those headers and articles that were
+fetched into the Agent while previously plugged. To put it another
+way, "If you forget to fetch something while plugged, you might have a
+less than satisfying unplugged session". For this reason, the Agent
+adds two visual effects to your summary buffer. These effects display
+the download status of each article so that you always know which
+articles will be available when unplugged.
+
+The first visual effect is the @samp{%O} spec. If you customize
+gnus-summary-line-format to include this specifier, you will add a
+single character field that indicates an article's download status.
+Articles that have been fetched into either the Agent or the Cache,
+will display @code{gnus-downloaded-mark} (defaults to @samp{+}). All
+other articles will display @code{gnus-undownloaded-mark} (defaults to
+@samp{-}). If you open a group that has not been agentized, a space
+(@samp{ }) will be displayed.
+
+The second visual effect are the undownloaded faces. The faces, there
+are three indicating the article's score (low, normal, high), seem to
+result in a love/hate response from many Gnus users. The problem is
+that the face selection is controlled by a list of condition tests and
+face names (See @code{gnus-summary-highlight}). Each condition is
+tested in the order in which it appears in the list so early
+conditions have precedence over later conditions. All of this means
+that, if you tick an undownloaded article, the article will continue
+to be displayed in the undownloaded face rather than the ticked face.
+
+If you use the Agent as a cache (to avoid downloading the same article
+each time you visit it or to minimize your connection time), the
+undownloaded face will probably seem like a good idea. The reason
+being that you do all of our work (marking, reading, deleting) with
+downloaded articles so the normal faces always appear.
+
+For occasional Agent users, the undownloaded faces may appear to be an
+absolutely horrible idea. The issue being that, since most of their
+articles have not been fetched into the Agent, most of the normal
+faces will be obscured by the undownloaded faces. If this is your
+situation, you have two choices available. First, you can completely
+disable the undownload faces by customizing
+@code{gnus-summary-highlight} to delete the three cons-cells that
+refer to the gnus-summary*-undownloaded-face faces. Second, if you
+prefer to take a more fine-grained approach, you may set the
+@code{agent-disable-undownloaded-faces} group parameter to t. This
+parameter, like all other agent parameters, may be set on an Agent
+Category (@pxref{Agent Categories}), a Group Topic (@pxref{Topic
+Parameters}), or an individual group (@pxref{Group Parameters}).
+
@node Agent as Cache
@subsection Agent as Cache
Technical note: the synchronization algorithm does not work by ``pushing''
all local flags to the server, but rather incrementally update the
server view of flags by changing only those flags that were changed by
-the user. Thus, if you set one flag on a article, quit the group and
+the user. Thus, if you set one flag on an article, quit the group and
re-select the group and remove the flag; the flag will be set and
removed from the server when you ``synchronize''. The queued flag
operations can be found in the per-server @code{flags} file in the Agent
@item gnus-server-unopen-status
@vindex gnus-server-unopen-status
-Perhaps not a Agent variable, but closely related to the Agent, this
+Perhaps not an Agent variable, but closely related to the Agent, this
variable says what will happen if Gnus cannot open a server. If the
Agent is enabled, the default, @code{nil}, makes Gnus ask the user
whether to deny the server or whether to unplug the agent. If the
@item gnus-auto-goto-ignores
@vindex gnus-auto-goto-ignores
-Another variable that isn't a Agent variable, yet so closely related
+Another variable that isn't an Agent variable, yet so closely related
that most will look for it here, this variable tells the summary
buffer how to maneuver around undownloaded (only headers stored in the
agent) and unfetched (neither article nor headers stored) articles.
entries will result in new score entries being added for all follow-ups
to articles that matches these score entries.
-Following this key is a arbitrary number of score entries, where each
+Following this key is an arbitrary number of score entries, where each
score entry has one to four elements.
@enumerate
citizen, you can even send off complaints to the proper authorities on
each unsolicited commercial email---at your leisure.
-If you are also a lazy net citizen, you will probably prefer complaining
-automatically with the @file{gnus-junk.el} package, available FOR FREE
-at @* @uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html}.
-Since most e-mail spam is sent automatically, this may reconcile the
-cosmic balance somewhat.
-
This works for me. It allows people an easy way to contact me (they can
just press @kbd{r} in the usual way), and I'm not bothered at all with
spam. It's a win-win situation. Forging @code{From} headers to point
@cindex RFC 1991
@cindex RFC 2440
RFC 1991 is the original @acronym{PGP} message specification,
-published as a Information RFC. RFC 2440 was the follow-up, now
+published as an informational RFC. RFC 2440 was the follow-up, now
called Open PGP, and put on the Standards Track. Both document a
non-@acronym{MIME} aware @acronym{PGP} format. Gnus supports both
encoding (signing and encryption) and decoding (verification and
Dired integration
@code{gnus-dired-minor-mode} installs key bindings in dired buffers to send
-a file as an attachment (@kbd{C-c C-a}), open a file using the approriate
+a file as an attachment (@kbd{C-c C-a}), open a file using the appropriate
mailcap entry (@kbd{C-c C-l}), and print a file using the mailcap entry
(@kbd{C-c P}). It is enabled with
@lisp
Earlier it was generated iff the user configurable email address was
different from the Gnus guessed default user address. As the guessing
-algorithm is rarely correct these days, and (more controversally) the
+algorithm is rarely correct these days, and (more controversially) the
only use of the Sender: header was to check if you are entitled to
cancel/supersede news (which is now solved by Cancel Locks instead,
see another entry), generation of the header has been disabled by
Gnus supports Cancel Locks in News.
This means a header @samp{Cancel-Lock} is inserted in news posting. It is
-used to determine if you wrote a article or not (for cancelling and
+used to determine if you wrote an article or not (for cancelling and
superseding). Gnus generates a random password string the first time
you post a message, and saves it in your @file{~/.emacs} using the Custom
system. While the variable is called @code{canlock-password}, it is not
@item Some limiting commands accept a @kbd{C-u} prefix to negate the match.
If @kbd{C-u} is used on subject, author or extra headers, i.e., @kbd{/
-s'}, @kbd{/ a}, and @kbd{/ x}
+s}, @kbd{/ a}, and @kbd{/ x}
(@code{gnus-summary-limit-to-@{subject,author,extra@}}) respectively, the
result will be to display all articles that do not match the expression.
@code{gnus-group-name-charset-method-alist} for customization.
@item
-The nnml and nnfolder backends store marks for each groups.
+The nnml and nnfolder back ends store marks for each groups.
This makes it possible to take backup of nnml/nnfolder servers/groups
separately of @file{~/.newsrc.eld}, while preserving marks. It also
@cindex elp
@cindex profile
@cindex slow
-Sometimes, a problem do not directly generate a elisp error but
+Sometimes, a problem do not directly generate an elisp error but
manifests itself by causing Gnus to be very slow. In these cases, you
can use @kbd{M-x toggle-debug-on-quit} and press @kbd{C-g} when things are
slow, and then try to analyze the backtrace (repeating the procedure