Update Copyright.
[gnus] / texi / gnus.texi
index c1196e6..e08af92 100644 (file)
@@ -750,6 +750,7 @@ Gnus Unplugged
 * Agent as Cache::              The Agent is a big cache too.
 * Agent Expiry::                How to make old articles go away.
 * Agent Regeneration::          How to recover from lost connections and other accidents.
+* Agent and flags::             How the Agent maintains flags.
 * Agent and IMAP::              How to use the Agent with @acronym{IMAP}.
 * Outgoing Messages::           What happens when you post/mail something?
 * Agent Variables::             Customizing is fun.
@@ -3116,6 +3117,33 @@ value of the @code{gnus-parameters-case-fold-search} variable to
 @code{nil}.  Otherwise, set it to @code{t} if you want to compare them
 always in a case-insensitive manner.
 
+You can define different sorting to different groups via
+@code{gnus-parameters}.  Here is an example to sort an @acronym{NNTP}
+group by subject and an @acronym{RSS} group by reverse date to see the
+latest news at the top.  In this example, the first group is the Debian
+daily news group @code{gmane.linux.debian.user.news} from
+news.gmane.org.  The @acronym{RSS} group corresponds to the Debian
+weekly news RSS feed
+@url{http://packages.debian.org/unstable/newpkg_main.en.rdf},
+@xref{RSS}.
+
+@lisp
+(setq
+ gnus-parameters
+ '(("nntp.*gmane\\.debian\\.user\\.news"
+    (gnus-show-threads nil)
+    (gnus-article-sort-functions '((not gnus-article-sort-by-date)))
+    (gnus-use-adaptive-scoring nil)
+    (gnus-use-scoring nil))
+   ("nnrss.*debian"
+    (gnus-show-threads nil)
+    (gnus-article-sort-functions 'gnus-article-sort-by-subject)
+    (gnus-use-adaptive-scoring nil)
+    (gnus-use-scoring t)
+    (gnus-score-find-score-files-function 'gnus-score-find-single)
+    (gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n"))))
+@end lisp
+
 
 @node Listing Groups
 @section Listing Groups
@@ -7079,46 +7107,10 @@ say something like:
 
 @lisp
 (setq gnus-thread-sort-functions
-      '((lambda (t1 t2)
-          (not (gnus-thread-sort-by-number t1 t2)))
+      '((not gnus-thread-sort-by-number)
         gnus-thread-sort-by-score))
 @end lisp
 
-Yet more examples. You can define different sorting to different
-groups. Here is an example for where one @acronym{NNTP} group is
-sorted by subject and the @acronym{RSS} group is sorted by date to see
-the latest news at the top.
-
-@lisp
-(require 'cl)
-
-(defun my-gnus-summary-mode-hook-group-select ()
-  (flet ((lsetq (x val) ;; Local setq
-                (set (make-local-variable x) val)))
-    (cond
-     ;;  In Group buffer to make Debian daily news group press: G m
-     ;;  and point it to nntp server news.gmane.org and
-     ;;  group gmane.linux.debian.user.news
-     ((string-match "nntp.*debian.user.news" gnus-newsgroup-name)
-      (lsetq 'gnus-show-threads nil)
-      (lsetq 'gnus-article-sort-functions 'gnus-article-sort-by-date-reverse)
-      (lsetq 'gnus-use-adaptive-scoring nil)
-      (lsetq 'gnus-use-scoring nil))
-     ;;  In Group buffer to read Debian weekly news RSS feed press: G R
-     ;;  and point it to url:
-     ;;  http://packages.debian.org/unstable/newpkg_main.en.rdf
-     ((string-match "nnrss.*debian" gnus-newsgroup-name)
-      (lsetq 'gnus-show-threads nil)
-      (lsetq 'gnus-article-sort-functions 'gnus-article-sort-by-subject)
-      (lsetq 'gnus-use-adaptive-scoring nil)
-      (lsetq 'gnus-use-scoring t)
-      (lsetq 'gnus-score-find-score-files-function 'gnus-score-find-single)
-      (lsetq 'gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n")))))
-
-(defun my-gnus-summary-mode-hook  ()
-  (my-gnus-summary-mode-hook-group-select))
-@end lisp
-
 @vindex gnus-thread-score-function
 The function in the @code{gnus-thread-score-function} variable (default
 @code{+}) is used for calculating the total score of a thread.  Useful
@@ -7152,6 +7144,8 @@ say something like:
         gnus-article-sort-by-subject))
 @end lisp
 
+You can define group specific sorting via @code{gnus-parameters},
+@xref{Group Parameters}.
 
 
 @node Asynchronous Fetching
@@ -10562,6 +10556,12 @@ Mark all articles, even the ticked ones, as read and then exit
 Mark all articles as read and go to the next group
 (@code{gnus-summary-catchup-and-goto-next-group}).
 
+@item Z p
+@kindex Z p (Summary)
+@findex gnus-summary-catchup-and-goto-prev-group
+Mark all articles as read and go to the previous group
+(@code{gnus-summary-catchup-and-goto-prev-group}).
+
 @item Z R
 @itemx C-x C-s
 @kindex Z R (Summary)
@@ -12536,7 +12536,19 @@ configuration to the example above:
       (nntp-via-rlogin-command "ssh")
 @end lisp
 
-See also @code{nntp-via-rlogin-command-switches}.
+See also @code{nntp-via-rlogin-command-switches}.  Here's an example for
+an indirect connection:
+@lisp
+(setq gnus-select-method
+      '(nntp "indirect"
+            (nntp-address "news.server.example")
+             (nntp-via-user-name "intermediate_user_name")
+             (nntp-via-address "intermediate.host.example")
+             (nntp-via-rlogin-command "ssh")
+             (nntp-end-of-line "\n")
+             (nntp-via-rlogin-command-switches ("-C" "-t" "-e" "none"))
+             (nntp-open-connection-function nntp-open-via-rlogin-and-telnet)))
+@end lisp
 
 If you're behind a firewall, but have direct access to the outside world
 through a wrapper command like "runsocks", you could open a socksified
@@ -13070,7 +13082,7 @@ List of strings to be used as the switches to
 
 @item nntp-open-via-telnet-and-telnet
 @findex nntp-open-via-telnet-and-telnet
-Does essentially also the same, but uses @samp{telnet} instead of
+Does essentially the same, but uses @samp{telnet} instead of
 @samp{rlogin} to connect to the intermediate host.
 
 @code{nntp-open-via-telnet-and-telnet}-specific variables:
@@ -18205,6 +18217,7 @@ Of course, to use it as such, you have to learn a few new commands.
 * Agent as Cache::              The Agent is a big cache too.
 * Agent Expiry::                How to make old articles go away.
 * Agent Regeneration::          How to recover from lost connections and other accidents.
+* Agent and flags::             How the Agent maintains flags.
 * Agent and IMAP::              How to use the Agent with @acronym{IMAP}.
 * Outgoing Messages::           What happens when you post/mail something?
 * Agent Variables::             Customizing is fun.
@@ -18369,9 +18382,6 @@ listed below.
 
 @cindex Agent Parameters
 @table @code
-@item agent-cat-name
-The name of the category.
-
 @item agent-groups
 The list of groups that are in this category.
 
@@ -18379,7 +18389,7 @@ The list of groups that are in this category.
 A predicate which (generally) gives a rough outline of which articles
 are eligible for downloading; and
 
-@item agent-score-file
+@item agent-score
 a score rule which (generally) gives you a finer granularity when
 deciding what articles to download.  (Note that this @dfn{download
 score} is not necessarily related to normal scores.)
@@ -18400,11 +18410,11 @@ an integer that overrides the value of @code{gnus-agent-low-score}.
 @item agent-high-score
 an integer that overrides the value of @code{gnus-agent-high-score}.
 
-@item agent-length-when-short
+@item agent-short-article
 an integer that overrides the value of
 @code{gnus-agent-short-article}.
 
-@item agent-length-when-long
+@item agent-long-article
 an integer that overrides the value of @code{gnus-agent-long-article}.
 
 @item agent-enable-undownloaded-faces
@@ -18916,9 +18926,9 @@ Download all eligible (@pxref{Agent Categories}) articles in this group.
 
 @item J s
 @kindex J s (Agent Summary)
-@findex gnus-agent-fetch-series
+@findex gnus-agent-summary-fetch-series
 Download all processable articles in this group.
-(@code{gnus-agent-fetch-series}).
+(@code{gnus-agent-summary-fetch-series}).
 
 @item J u
 @kindex J u (Agent Summary)
@@ -19111,23 +19121,19 @@ then updates the internal data structures that document which articles
 are stored locally.  An optional argument will mark articles in the
 agent as unread.
 
-@node Agent and IMAP
-@subsection Agent and IMAP
+@node Agent and flags
+@subsection Agent and flags
 
-The Agent works with any Gnus back end, including nnimap.  However,
-since there are some conceptual differences between @acronym{NNTP} and
-@acronym{IMAP}, this section (should) provide you with some information to
-make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client.
-
-The first thing to keep in mind is that all flags (read, ticked, etc)
-are kept on the @acronym{IMAP} server, rather than in @file{.newsrc} as is the
-case for nntp.  Thus Gnus need to remember flag changes when
-disconnected, and synchronize these flags when you plug back in.
+The Agent works with any Gnus back end including those, such as
+nnimap, that store flags (read, ticked, etc) on the server.  Sadly,
+the Agent does not actually know which backends keep their flags in
+the backend server rather than in @file{.newsrc}.  This means that the
+Agent, while unplugged or disconnected, will always record all changes
+to the flags in its own files.
 
-Gnus keeps track of flag changes when reading nnimap groups under the
-Agent.  When you plug back in, Gnus will check if you have any changed
-any flags and ask if you wish to synchronize these with the server.
-The behavior is customizable by @code{gnus-agent-synchronize-flags}.
+When you plug back in, Gnus will then check to see if you have any
+changed any flags and ask if you wish to synchronize these with the
+server.  This behavior is customizable by @code{gnus-agent-synchronize-flags}.
 
 @vindex gnus-agent-synchronize-flags
 If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
@@ -19141,6 +19147,23 @@ re-connect, you can do it manually with the
 @code{gnus-agent-synchronize-flags} command that is bound to @kbd{J Y}
 in the group buffer.
 
+Technical note: the synchronization algorithm does not work by ``pushing''
+all local flags to the server, but rather by incrementally updated the
+server view of flags by changing only those flags that were changed by
+the user.  Thus, if you set one flag on an article, quit the group then
+re-select the group and remove the flag; the flag will be set and
+removed from the server when you ``synchronize''.  The queued flag
+operations can be found in the per-server @code{flags} file in the Agent
+directory.  It's emptied when you synchronize flags.
+
+@node Agent and IMAP
+@subsection Agent and IMAP
+
+The Agent works with any Gnus back end, including nnimap.  However,
+since there are some conceptual differences between @acronym{NNTP} and
+@acronym{IMAP}, this section (should) provide you with some information to
+make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client.
+
 Some things are currently not implemented in the Agent that you'd might
 expect from a disconnected @acronym{IMAP} client, including:
 
@@ -19154,16 +19177,6 @@ Creating/deleting nnimap groups when unplugged.
 
 @end itemize
 
-Technical note: the synchronization algorithm does not work by ``pushing''
-all local flags to the server, but rather incrementally update the
-server view of flags by changing only those flags that were changed by
-the user.  Thus, if you set one flag on an article, quit the group and
-re-select the group and remove the flag; the flag will be set and
-removed from the server when you ``synchronize''.  The queued flag
-operations can be found in the per-server @code{flags} file in the Agent
-directory.  It's emptied when you synchronize flags.
-
-
 @node Outgoing Messages
 @subsection Outgoing Messages
 
@@ -19247,6 +19260,14 @@ mark articles as unread after downloading.  This is usually a safe
 thing to do as the newly downloaded article has obviously not been
 read.  The default is @code{t}.
 
+@item gnus-agent-synchronize-flags
+@vindex gnus-agent-synchronize-flags
+If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
+never automatically synchronize flags.  If it is @code{ask}, which is
+the default, the Agent will check if you made any changes and if so
+ask if you wish to synchronize these when you re-connect.  If it has
+any other value, all flags will be synchronized automatically.
+
 @item gnus-agent-consider-all-articles
 @vindex gnus-agent-consider-all-articles
 If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the
@@ -22744,18 +22765,6 @@ This is where Gnus will look for pictures.  Gnus will normally
 auto-detect this directory, but you may set it manually if you have an
 unusual directory structure.
 
-@item gnus-xmas-logo-color-alist
-@vindex gnus-xmas-logo-color-alist
-This is an alist where the key is a type symbol and the values are the
-foreground and background color of the splash page glyph.
-
-@item gnus-xmas-logo-color-style
-@vindex gnus-xmas-logo-color-style
-This is the key used to look up the color in the alist described above.
-Valid values include @code{flame}, @code{pine}, @code{moss},
-@code{irish}, @code{sky}, @code{tin}, @code{velvet}, @code{grape},
-@code{labia}, @code{berry},&nb