Importing pgnus-0.62
[elisp/gnus.git-] / texi / gnus.texi
index 240437a..e67cf14 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Pterodactyl Gnus 0.39 Manual
+@settitle Pterodactyl Gnus 0.62 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Pterodactyl Gnus 0.39 Manual
+@title Pterodactyl Gnus 0.62 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -354,7 +354,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.
 
-This manual corresponds to Pterodactyl Gnus 0.39.
+This manual corresponds to Pterodactyl Gnus 0.62.
 
 @end ifinfo
 
@@ -481,11 +481,15 @@ If @code{gnus-nntp-server} is set, this variable will override
 @code{gnus-nntp-server} to @code{nil}, which is what it is by default.
 
 @vindex gnus-secondary-servers
+@vindex gnus-nntp-server
 You can also make Gnus prompt you interactively for the name of an
 @sc{nntp} server.  If you give a non-numerical prefix to @code{gnus}
 (i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
 in the @code{gnus-secondary-servers} list (if any).  You can also just
-type in the name of any server you feel like visiting.
+type in the name of any server you feel like visiting.  (Note that this
+will set @code{gnus-nntp-server}, which means that if you then @kbd{M-x
+gnus} later in the same Emacs session, Gnus will contact the same
+server.)
 
 @findex gnus-group-browse-foreign-server
 @kindex B (Group)
@@ -2161,6 +2165,23 @@ something like @code{(dummy-variable (ding))} in the parameters of that
 group.  @code{dummy-variable} will be set to the result of the
 @code{(ding)} form, but who cares?
 
+@item posting-style
+You can store additional posting style information for this group only
+here (@pxref{Posting Styles}). The format is that of an entry in the
+@code{gnus-posting-styles} alist, except that there's no regexp matching
+the group name (of course). Style elements in this group parameter will
+take precedence over the ones found in @code{gnus-posting-styles}.
+
+For instance, if you want a funky name and signature in this group only,
+instead of hacking @code{gnus-posting-styles}, you could put something
+like this in the group parameters:
+
+@example
+(posting-style 
+  (name "Funky Name") 
+  (signature "Funky Signature"))
+@end example
+
 @end table
 
 Use the @kbd{G p} command to edit group parameters of a group.  You
@@ -2738,17 +2759,6 @@ Mark all groups in the current topic with the process mark
 Remove the process mark from all groups in the current topic
 (@code{gnus-topic-unmark-topic}).
 
-@item RET
-@kindex RET (Topic)
-@findex gnus-topic-select-group
-@itemx SPACE
-Either select a group or fold a topic (@code{gnus-topic-select-group}).
-When you perform this command on a group, you'll enter the group, as
-usual.  When done on a topic line, the topic will be folded (if it was
-visible) or unfolded (if it was folded already).  So it's basically a
-toggling command on topics.  In addition, if you give a numerical
-prefix, group on that level (and lower) will be displayed.
-
 @item T TAB
 @itemx TAB
 @kindex T TAB (Topic)
@@ -2764,6 +2774,23 @@ previous topic (@code{gnus-topic-indent}).  If given a prefix,
 ``Un-indent'' the current topic so that it becomes a sub-topic of the
 parent of its current parent (@code{gnus-topic-unindent}).  
 
+@item RET
+@kindex RET (Topic)
+@findex gnus-topic-select-group
+@itemx SPACE
+Either select a group or fold a topic (@code{gnus-topic-select-group}).
+When you perform this command on a group, you'll enter the group, as
+usual.  When done on a topic line, the topic will be folded (if it was
+visible) or unfolded (if it was folded already).  So it's basically a
+toggling command on topics.  In addition, if you give a numerical
+prefix, group on that level (and lower) will be displayed.
+
+@item C-c C-x
+@kindex C-c C-x (Topic)
+@findex gnus-topic-expire-articles
+Run all expirable articles in the current group or topic through the expiry
+process (if any) (@code{gnus-topic-expire-articles}).
+
 @item C-k
 @kindex C-k (Topic)
 @findex gnus-topic-kill-group
@@ -3447,7 +3474,7 @@ headers are used instead.
 
 @vindex nnmail-extra-headers
 A related variable is @code{nnmail-extra-headers}, which controls when
-to include extra headers when generating active files.
+to include extra headers when generating overview (@sc{nov}) files.
 
 In summary, you'd typically do something like the following:
 
@@ -3461,6 +3488,17 @@ In summary, you'd typically do something like the following:
       "Your Name Here")
 @end lisp
 
+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:
+
+@example
+Newsgroups:full
+@end example
+
+to the end of her @file{overview.fmt} file, then you can use that just
+as you would the extra headers from the mail groups.
+
 
 @node Summary Buffer Mode Line
 @subsection Summary Buffer Mode Line
@@ -3640,6 +3678,9 @@ action.  This will also inhibit horizontal re-centering of the summary
 buffer, which might make it more inconvenient to read extremely long
 threads.
 
+This variable can also be a number.  In that case, center the window at
+the given number of lines from the top.
+
 @end table
 
 
@@ -3901,7 +3942,7 @@ goes out to all people listed in the @code{To}, @code{From} (or
 @kindex S W (Summary)
 @findex gnus-summary-wide-reply-with-original
 Mail a wide reply to the current article and include the original
-message (@code{gnus-summary-reply-with-original}).  This command uses
+message (@code{gnus-summary-wide-reply-with-original}).  This command uses
 the process/prefix convention.
 
 @item S o m
@@ -5185,7 +5226,10 @@ Matching}).
 @findex gnus-thread-sort-by-number
 @vindex gnus-thread-sort-functions
 If you are using a threaded summary display, you can sort the threads by
-setting @code{gnus-thread-sort-functions}, which is a list of functions.
+setting @code{gnus-thread-sort-functions}, which can be either a single
+function, a list of functions, or a list containing functions and
+@code{(not some-function)} elements.
+
 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},
@@ -5194,22 +5238,23 @@ predicate functions include @code{gnus-thread-sort-by-number},
 
 Each function takes two threads and returns non-@code{nil} if the first
 thread should be sorted before the other.  Note that sorting really is
-normally done by looking only at the roots of each thread.  If you use
-more than one function, the primary sort key should be the last function
-in the list.  You should probably always include
+normally done by looking only at the roots of each thread.
+
+If you use more than one function, the primary sort key should be the
+last function in the list.  You should probably always include
 @code{gnus-thread-sort-by-number} in the list of sorting
 functions---preferably first.  This will ensure that threads that are
 equal with respect to the other sort criteria will be displayed in
 ascending article order.
 
-If you would like to sort by score, then by subject, and finally by
-number, you could do something like:
+If you would like to sort by reverse score, then by subject, and finally
+by number, you could do something like:
 
 @lisp
 (setq gnus-thread-sort-functions
       '(gnus-thread-sort-by-number
         gnus-thread-sort-by-subject
-        gnus-thread-sort-by-total-score))
+        (reverse gnus-thread-sort-by-total-score)))
 @end lisp
 
 The threads that have highest score will be displayed first in the
@@ -6569,7 +6614,9 @@ when filling.
 @item W c
 @kindex W c (Summary)
 @findex gnus-article-remove-cr
-Remove CR (i. e., @samp{^M}s on the end of the lines)
+Translate CRLF pairs (i. e., @samp{^M}s on the end of the lines) into LF
+(this takes care of DOS line endings), and then translate any remaining
+CRs into LF (this takes care of Mac line endings)
 (@code{gnus-article-remove-cr}).
 
 @item W q
@@ -6658,6 +6705,12 @@ Remove all blank lines
 Remove all white space from the beginning of all lines of the article
 body (@code{gnus-article-strip-leading-space}).
 
+@item W E e
+@kindex W E e (Summary)
+@findex gnus-article-strip-trailing-space
+Remove all white space from the end of all lines of the article
+body (@code{gnus-article-strip-trailing-space}).
+
 @end table
 
 @xref{Customizing Articles} for how to wash articles automatically.
@@ -6886,6 +6939,12 @@ signature after all.
 @cindex MIME decoding
 
 @table @kbd
+@item M-t
+@kindex M-t (Summary)
+@findex gnus-summary-display-buttonized
+Toggle the buttonized display of the article buffer
+(@code{gnus-summary-toggle-display-buttonized}).
+
 @item W M w
 @kindex W M w (Summary)
 Decode RFC2047-encoded words in the article headers
@@ -6917,7 +6976,41 @@ Relevant variables:
 @vindex gnus-ignored-mime-types
 This is a list of regexps.  @sc{mime} types that match a regexp from
 this list will be completely ignored by Gnus.  The default value is
-@code{("text/x-vcard")}.
+@code{nil}.
+
+To have all Vcards be ignored, you'd say something like this:
+
+@lisp
+(setq gnus-ignored-mime-types
+      '("text/x-vcard"))
+@end lisp
+
+@item gnus-unbuttonized-mime-types
+@vindex gnus-unbuttonized-mime-types
+This is a list of regexps.  @sc{mime} types that match a regexp from
+this list won't have @sc{mime} buttons inserted unless they aren't
+displayed.  The default value is @code{(".*/.*")}.
+
+@item gnus-article-mime-part-function
+@vindex gnus-article-mime-part-function
+For each @sc{mime} part, this function will be called with the @sc{mime} 
+handle as the parameter.  The function is meant to be used to allow
+users to gather information from the article (e. g., add Vcard info to
+the bbdb database) or to do actions based on parts (e. g., automatically 
+save all jpegs into some directory).
+
+Here's an example function the does the latter:
+
+@lisp
+(defun my-save-all-jpeg-parts (handle)
+  (when (equal (car (mm-handle-type handle)) "image/jpeg")
+    (with-temp-buffer
+      (insert (mm-get-part handle))
+      (write-region (point-min) (point-max)
+                    (read-file-name "Save jpeg to: ")))))
+(setq gnus-article-mime-part-function
+      'my-save-all-jpeg-parts)
+@end lisp
 
 @end table
 
@@ -7640,6 +7733,12 @@ If given a prefix, force an @code{article} window configuration.
 Edit the group parameters (@pxref{Group Parameters}) of the current
 group (@code{gnus-summary-edit-parameters}).
 
+@item M-C-g
+@kindex M-C-g (Summary)
+@findex gnus-summary-customize-parameters
+Customize the group parameters (@pxref{Group Parameters}) of the current
+group (@code{gnus-summary-customize-parameters}).
+
 @end table
 
 
@@ -8242,6 +8341,8 @@ extension:
 The @dfn{wash status} of the article.  This is a short string with one
 character for each possible article wash operation that may have been
 performed.
+@item m
+The number of @sc{mime} parts in the article.
 @end table
 
 @vindex gnus-break-pages
@@ -10212,6 +10313,11 @@ with!  So there!
 
 Most people make most of their mail groups total-expirable, though.
 
+@vindex gnus-inhibit-user-auto-expire
+If @code{gnus-inhibit-user-auto-expire} is non-@code{nil}, user marking
+commands will not mark an article as expirable, even if the group has
+auto-expire turned on.
+
 
 @node Washing Mail
 @subsection Washing Mail
@@ -10723,6 +10829,11 @@ in this directory, which defaults to @file{~/.nneething/}.
 All files that match this regexp will be ignored.  Nice to use to exclude
 auto-save files and the like, which is what it does by default.
 
+@item nneething-include-files
+@vindex nneething-include-files
+Regexp saying what files to include in the group.  If this variable is
+non-@code{nil}, only files matching this regexp will be included.
+
 @item nneething-map-file
 @vindex nneething-map-file
 Name of the map files.
@@ -14401,6 +14512,15 @@ and so on.  Create as many faces as you wish.  The same goes for the
 @code{mouse-face} specs---you can say @samp{%3(hello%)} to have
 @samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}.
 
+Text inside the @samp{%<} and @samp{%>} specifiers will get the special
+@code{balloon-help} property set to @code{gnus-balloon-face-0}. If you say
+@samp{%1<}, you'll get @code{gnus-balloon-face-1} and so on. The
+@code{gnus-balloon-face-*} variables should be either strings or
+symbols naming functions that return a string. Under @code{balloon-help-mode},
+when the mouse passes over text with this property set, a balloon window 
+will appear and display the string. Please refer to the doc string of
+@code{balloon-help-mode} for more information on this.
+
 Here's an alternative recipe for the group buffer:
 
 @lisp
@@ -15478,6 +15598,9 @@ Ordered list of suffixes on picon file names to try.  Defaults to
 Whether to move point to first empty line when displaying picons.  This
 has only an effect if `gnus-picons-display-where' has value `article'.
 
+If @code{nil}, display the picons in the @code{From} and
+@code{Newsgroups} lines.  This is the defailt.
+
 @item gnus-picons-clear-cache-on-shutdown
 @vindex gnus-picons-clear-cache-on-shutdown
 Whether to clear the picons cache when exiting gnus.  Gnus caches every
@@ -15882,7 +16005,7 @@ but at the common table.@*
 * Terminology::                    We use really difficult, like, words here.
 * Customization::                  Tailoring Gnus to your needs.
 * Troubleshooting::                What you might try if things do not work.
-* A Programmers Guide to Gnus::    Rilly, rilly technical stuff.
+* Gnus Reference Guide::           Rilly, rilly technical stuff.
 * Emacs for Heathens::             A short introduction to Emacsian terms.
 * Frequently Asked Questions::     A question-and-answer session.
 @end menu
@@ -16105,15 +16228,16 @@ Gnus should work on :
 @itemize @bullet
 
 @item
-Emacs 20.2 and up.
+Emacs 20.3 and up.
 
 @item
 XEmacs 20.4 and up.
 
 @end itemize
 
-Gnus will absolutely not work on any Emacsen older than that.  Not
-reliably, at least.
+This Gnus version will absolutely not work on any Emacsen older than
+that.  Not reliably, at least.  Older versions of Gnus may work on older 
+Emacs versions.
 
 There are some vague differences between Gnus on the various
 platforms---XEmacs features more graphics (a logo and a toolbar)---but
@@ -18295,6 +18419,19 @@ groups it has been crossposted to, or something.  (Agent.)
 `S D r' should allow expansion of aliases.
 
 @item
+If point is on a group that appears multiple times in topics, and
+you press `l', point will move to the first instance of the group.
+
+@item
+The documentation should mention pop3.el, fetchmail, smtpmail and why
+po:username often fails.
+
+@item
+Fetch by Message-ID from dejanews.
+
+<URL:http://search.dejanews.com/msgid.xp?MID=%3C62h9l9$hm4@@basement.replay.com%3E&fmt=raw>
+
+@item
 Solve the halting problem.
 
 @c TODO
@@ -18761,8 +18898,8 @@ Write to @samp{ding-request@@gnus.org} to subscribe.
 
 
 @page
-@node A Programmers Guide to Gnus
-@section A Programmer@'s Guide to Gnus
+@node Gnus Reference Guide
+@section Gnus Reference Guide
 
 It is my hope that other people will figure out smart stuff that Gnus
 can do, and that other people will write those smart things as well.  To