T-gnus 6.15.18 revision 00.
[elisp/gnus.git-] / texi / gnus.texi
index a4104d8..690dba5 100644 (file)
@@ -615,6 +615,7 @@ Article Treatment
 * 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 Button Levels::       Controlling appearance of buttons.
 * Article Date::                Grumble, UT!
 * Article Display::             Display various stuff---X-Face, Picons, Smileys
 * Article Signature::           What is a signature?
@@ -767,7 +768,7 @@ Gnus Unplugged
 * Agent and IMAP::              How to use the Agent with IMAP.
 * Outgoing Messages::           What happens when you post/mail something?
 * Agent Variables::             Customizing is fun.
-* Example Setup::               An example @file{.gnus.el} file for offline people.
+* Example Setup::               An example @file{~/.gnus.el} file for offline people.
 * Batching Agents::             How to fetch news from a @code{cron} job.
 * Agent Caveats::               What you think it'll do and what it does.
 
@@ -954,7 +955,7 @@ If you want to start gnus in a different frame, you can use the command
 @kbd{M-x gnus-other-frame} instead.
 
 If things do not go smoothly at startup, you have to twiddle some
-variables in your @file{~/.gnus} file.  This file is similar to
+variables in your @file{~/.gnus.el} file.  This file is similar to
 @file{~/.emacs}, but is read when gnus starts.
 
 If you puzzle at any terms used in this manual, please refer to the
@@ -1633,7 +1634,7 @@ in a while from the group buffer instead (@pxref{Group Maintenance}).
 If non-@code{nil}, the startup message won't be displayed.  That way,
 your boss might not notice as easily that you are reading news instead
 of doing your job.  Note that this variable is used before
-@file{.gnus.el} is loaded, so it should be set in @file{.emacs} instead.
+@file{~/.gnus.el} is loaded, so it should be set in @file{.emacs} instead.
 
 @item gnus-no-groups-message
 @vindex gnus-no-groups-message
@@ -3498,7 +3499,7 @@ Hot and bothered?
 
 If you want this permanently enabled, you should add that minor mode to
 the hook for the group mode.  Put the following line in your
-@file{~/.gnus} file:
+@file{~/.gnus.el} file:
 
 @lisp
 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
@@ -4267,7 +4268,7 @@ trick:
 @vindex gnus-init-file
 @cindex reading init file
 Re-read the init file (@code{gnus-init-file}, which defaults to
-@file{~/.gnus}) (@code{gnus-group-read-init-file}).
+@file{~/.gnus.el}) (@code{gnus-group-read-init-file}).
 
 @item s
 @kindex s (Group)
@@ -4686,7 +4687,7 @@ You also have to instruct Gnus to display the data by changing the
 @code{gnus-summary-line-format} variable.
 
 In summary, you'd typically put something like the following in
-@file{~/.gnus}:
+@file{~/.gnus.el}:
 
 @lisp
 (setq gnus-extra-headers
@@ -7902,6 +7903,7 @@ these articles easier.
 * 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 Button Levels::       Controlling appearance of buttons.
 * Article Date::                Grumble, UT!
 * Article Display::             Display various stuff---X-Face, Picons, Smileys
 * Article Signature::           What is a signature?
@@ -8602,9 +8604,9 @@ button on these references.
 
 @vindex gnus-button-man-handler
 Gnus adds @dfn{buttons} to certain standard references by default:
-Well-formed URLs, mail addresses, Message-IDs, Info links and man pages.
-This is controlled by two variables, one that handles article bodies and
-one that handles article heads:
+Well-formed URLs, mail addresses, Message-IDs, Info links, man pages and
+Emacs or Gnus related references.  This is controlled by two variables,
+one that handles article bodies and one that handles article heads:
 
 @table @code
 
@@ -8623,7 +8625,7 @@ All text that match this regular expression (case insensitive) will be
 considered an external reference.  Here's a typical regexp that matches
 embedded URLs: @samp{<URL:\\([^\n\r>]*\\)>}.  This can also be a
 variable containing a regexp, useful variables to use include
-@code{gnus-button-url-regexp}.
+@code{gnus-button-url-regexp} and @code{gnus-button-mid-or-mail-regexp}.
 
 @item button-par
 Gnus has to know which parts of the matches is to be highlighted.  This
@@ -8633,7 +8635,11 @@ highlighted.  If you want it all highlighted, you use 0 here.
 @item use-p
 This form will be @code{eval}ed, and if the result is non-@code{nil},
 this is considered a match.  This is useful if you want extra sifting to
-avoid false matches.
+avoid false matches.  Often variables named
+@code{gnus-button-@var{*}-level} are used here, @xref{Article Button
+Levels}, but any other form may be used too.
+
+@c @code{use-p} is @code{eval}ed only if @code{regexp} matches.
 
 @item function
 This function will be called when you click on this button.
@@ -8662,11 +8668,70 @@ used to say what headers to apply the buttonize coding to:
 
 @var{header} is a regular expression.
 
+@subsubheading Related variables and functions
+
+@item gnus-button-@var{*}-level
+@xref{Article Button Levels}.
+
+@c Stuff related to gnus-button-browse-level
+
 @item gnus-button-url-regexp
 @vindex gnus-button-url-regexp
 A regular expression that matches embedded URLs.  It is used in the
 default values of the variables above.
 
+@c Stuff related to gnus-button-man-level
+
+@item gnus-button-man-handler
+@vindex gnus-button-man-handler
+The function to use for displaying man pages.  It must take at least one
+argument with a string naming the man page.
+
+@c Stuff related to gnus-button-message-level
+
+@item gnus-button-mid-or-mail-regexp
+@vindex gnus-button-mid-or-mail-regexp
+Regular expression that matches a message ID or a mail address.
+
+@item gnus-button-prefer-mid-or-mail
+@vindex gnus-button-prefer-mid-or-mail
+This variable determines what to do when the button on a string as
+@samp{foo123@@bar.invalid} is pushed.  Strings like this can be either a
+message ID or a mail address.  If it is one of the symbols @code{mid} or
+@code{mail}, Gnus will always assume that the string is a message ID or
+a mail address, respectivly.  If this variable is set to the symbol
+@code{ask}, always query the user what do do.  If it is a function, this
+function will be called with the string as it's only argument.  The
+function must return @code{mid}, @code{mail}, @code{invalid} or
+@code{ask}.  The default value is the function
+@code{gnus-button-mid-or-mail-heuristic}.
+
+@item gnus-button-mid-or-mail-heuristic
+@findex gnus-button-mid-or-mail-heuristic
+Function that guesses whether it's argument is a message ID or a mail
+address.  Returns @code{mid} it's a message IDs, @code{mail} if it's a
+mail address, @code{ask} if unsure and @code{invalid} if the string is
+invalid.
+
+@item gnus-button-mid-or-mail-heuristic-alist
+@vindex gnus-button-mid-or-mail-heuristic-alist
+An alist of @code{(RATE . REGEXP)} pairs used by the function
+@code{gnus-button-mid-or-mail-heuristic}.
+
+@c Stuff related to gnus-button-tex-level
+
+@item gnus-button-ctan-handler
+@findex gnus-button-ctan-handler
+The function to use for displaying CTAN links.  It must take one
+argument, the string naming the URL.
+
+@item gnus-ctan-url
+@vindex gnus-ctan-url
+Top directory of a CTAN (Comprehensive TeX Archive Network) archive used
+by @code{gnus-button-ctan-handler}.
+
+@c Misc stuff
+
 @item gnus-article-button-face
 @vindex gnus-article-button-face
 Face used on buttons.
@@ -8680,6 +8745,74 @@ Face used when the mouse cursor is over a button.
 @xref{Customizing Articles}, for how to buttonize articles automatically.
 
 
+@node Article Button Levels
+@subsection Article button levels
+@cindex button levels
+The higher the value of the variables @code{gnus-button-@var{*}-level},
+the more buttons will appear.  If the level is zero, no corresponding
+buttons are displayed.  With the default value (which is 5) you should
+already see quite a lot of buttons.  With higher levels, you will see
+more buttons, but you may also get more false positives.  To avoid them,
+you can set the variables @code{gnus-button-@var{*}-level} local to
+specific groups (@pxref{Group Parameters}).  Here's an example for the
+variable @code{gnus-parameters}:
+
+@lisp
+;; increase `gnus-button-*-level' in some groups:
+(setq gnus-parameters
+      '(("\\<\\(emacs\\|gnus\\)\\>" (gnus-button-emacs-level 10))
+        ("\\<unix\\>"               (gnus-button-man-level 10))
+        ("\\<tex\\>"                (gnus-button-tex-level 10))))
+@end lisp
+
+@table @code
+
+@item gnus-button-browse-level
+@vindex gnus-button-browse-level
+Controls the display of references to message IDs, mail addresses and
+news URLs.  Related variables and functions include
+@code{gnus-button-url-regexp}, @code{browse-url}, and
+@code{browse-url-browser-function}.
+
+@item gnus-button-emacs-level
+@vindex gnus-button-emacs-level
+Controls the display of Emacs or Gnus references.  Related functions are
+@code{gnus-button-handle-custom},
+@code{gnus-button-handle-describe-function},
+@code{gnus-button-handle-describe-variable},
+@code{gnus-button-handle-symbol},
+@code{gnus-button-handle-describe-key},
+@code{gnus-button-handle-apropos},
+@code{gnus-button-handle-apropos-command},
+@code{gnus-button-handle-apropos-variable},
+@code{gnus-button-handle-apropos-documentation}, and
+@code{gnus-button-handle-library}.
+
+@item gnus-button-man-level
+@vindex gnus-button-man-level
+Controls the display of references to (Unix) man pages.
+See @code{gnus-button-man-handler}.
+
+@item gnus-button-message-level
+@vindex gnus-button-message-level
+Controls the display of message IDs, mail addresses and news URLs.
+Related variables and functions include
+@code{gnus-button-mid-or-mail-regexp},
+@code{gnus-button-prefer-mid-or-mail},
+@code{gnus-button-mid-or-mail-heuristic}, and
+@code{gnus-button-mid-or-mail-heuristic-alist}.
+
+@item gnus-button-tex-level
+@vindex gnus-button-tex-level
+Controls the display of references to TeX or LaTeX stuff, e.g. for CTAN
+URLs.  See the variables @code{gnus-ctan-url},
+@code{gnus-button-ctan-handler},
+@code{gnus-button-ctan-directory-regexp}, and
+@code{gnus-button-handle-ctan-bogus-regexp}.
+
+@end table
+
+
 @node Article Date
 @subsection Article Date
 
@@ -8750,7 +8883,7 @@ If you want to have this line updated continually, you can put
 (gnus-start-date-timer)
 @end lisp
 
-in your @file{.gnus.el} file, or you can run it off of some hook.  If
+in your @file{~/.gnus.el} file, or you can run it off of some hook.  If
 you want to stop the timer, you can use the @code{gnus-stop-date-timer}
 command.
 
@@ -9122,7 +9255,7 @@ such unenlightened users, you can make live easier by adding
 @end lisp
 
 @noindent
-to your @file{.gnus.el} file.
+to your @file{~/.gnus.el} file.
 
 @end table
 
@@ -9641,7 +9774,7 @@ Here's the same thread displayed in a vertical tree buffer:
 
 If you're using horizontal trees, it might be nice to display the trees
 side-by-side with the summary buffer.  You could add something like the
-following to your @file{.gnus.el} file:
+following to your @file{~/.gnus.el} file:
 
 @lisp
 (setq gnus-use-trees t
@@ -10409,6 +10542,7 @@ Browse the mailing list archive, if List-Archive field exists.
 
 @end table
 
+
 @node Article Buffer
 @chapter Article Buffer
 @cindex article buffer
@@ -10882,6 +11016,11 @@ Hook called in article mode buffers.
 Syntax table used in article buffers.  It is initialized from
 @code{text-mode-syntax-table}.
 
+@vindex gnus-article-over-scroll
+@item gnus-article-over-scroll
+If non-@code{nil}, allow scrolling the article buffer even when there
+no more new text to scroll in.  The default is @code{nil}.
+
 @vindex gnus-article-mode-line-format
 @item gnus-article-mode-line-format
 This variable is a format string along the same lines as
@@ -12468,8 +12607,9 @@ List of strings to be used as the switches to
 @code{nntp-via-rlogin-command}.  The default is @code{nil}.  If you use
 @samp{ssh} for @code{nntp-via-rlogin-command}, you may set this to
 @samp{("-C")} in order to compress all data connections, otherwise set
-this to @samp{("-t")} or @samp{("-C" "-t")} if the telnet command
-requires a pseudo-tty allocation on an intermediate host.
+this to @samp{("-t" "-e" "none")} or @samp{("-C" "-t" "-e" "none")} if
+the telnet command requires a pseudo-tty allocation on an intermediate
+host.
 @end table
 
 @item nntp-open-via-telnet-and-telnet
@@ -12745,7 +12885,7 @@ mail back end of your choice into @code{gnus-secondary-select-methods},
 and things will happen automatically.
 
 For instance, if you want to use @code{nnml} (which is a ``one file per
-mail'' back end), you could put the following in your @file{.gnus.el} file:
+mail'' back end), you could put the following in your @file{~/.gnus.el} file:
 
 @lisp
 (setq gnus-secondary-select-methods '((nnml "")))
@@ -13846,7 +13986,7 @@ However, if you change group parameters, you'd have to update
 @code{nnmail-split-fancy} manually.  You can do it by running
 @code{gnus-group-split-update}.  If you'd rather have it updated
 automatically, just tell @code{gnus-group-split-setup} to do it for
-you.  For example, add to your @file{.gnus.el}:
+you.  For example, add to your @file{~/.gnus.el}:
 
 @lisp
 (gnus-group-split-setup AUTO-UPDATE CATCH-ALL)
@@ -13976,7 +14116,7 @@ By default, if you have auto expiry switched on, Gnus will mark all the
 articles you read as expirable, no matter if they were read or unread
 before.  To avoid having articles marked as read marked as expirable
 automatically, you can put something like the following in your
-@file{.gnus.el} file:
+@file{~/.gnus.el} file:
 
 @vindex gnus-mark-article-hook
 @lisp
@@ -15248,7 +15388,7 @@ lively discussion following the news articles.  @code{nnslashdot} will
 let you read this forum in a convenient manner.
 
 The easiest way to read this source is to put something like the
-following in your @file{.gnus.el} file:
+following in your @file{~/.gnus.el} file:
 
 @lisp
 (setq gnus-secondary-select-methods
@@ -15511,7 +15651,7 @@ 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 @file{~/.gnus} with a few @sc{imap} servers
+A server configuration in @file{~/.gnus.el} with a few @sc{imap} servers
 might look something like the following. (Note that for TLS/SSL, you
 need external programs and libraries, see below.)
 
@@ -16991,7 +17131,7 @@ Of course, to use it as such, you have to learn a few new commands.
 * Agent and IMAP::              How to use the Agent with IMAP.
 * Outgoing Messages::           What happens when you post/mail something?
 * Agent Variables::             Customizing is fun.
-* Example Setup::               An example @file{.gnus.el} file for offline people.
+* Example Setup::               An example @file{~/.gnus.el} file for offline people.
 * Batching Agents::             How to fetch news from a @code{cron} job.
 * Agent Caveats::               What you think it'll do and what it does.
 @end menu
@@ -17964,7 +18104,7 @@ ignores articles that have not been fetched), @code{unfetched}
 
 If you don't want to read this manual, and you have a fairly standard
 setup, you may be able to use something like the following as your
-@file{.gnus.el} file to get started.
+@file{~/.gnus.el} file to get started.
 
 @lisp
 ;;; Define how Gnus is to fetch news.  We do this over @sc{nntp}
@@ -18130,7 +18270,10 @@ Display the score of the current article
 @kindex V t (Summary)
 @findex gnus-score-find-trace
 Display all score rules that have been used on the current article
-(@code{gnus-score-find-trace}).
+(@code{gnus-score-find-trace}).  In the @code{*Score Trace*} buffer, you
+can use @kbd{q} to quit.  @kbd{e} edits the corresponding score file.
+When point is on a string within the match element, @kbd{e} will try to
+bring you to this string in the score file.
 
 @item V w
 @kindex V w (Summary)
@@ -19195,7 +19338,7 @@ Newsgroups} section of the manual, it's explained in greater detail what
 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)
@@ -20590,7 +20733,7 @@ you want to change the @code{article} setting, you could say:
 @end lisp
 
 You'd typically stick these @code{gnus-add-configuration} calls in your
-@file{.gnus.el} file or in some startup hook---they should be run after
+@file{~/.gnus.el} file or in some startup hook---they should be run after
 Gnus has been loaded.
 
 @vindex gnus-always-force-window-configuration
@@ -20937,7 +21080,7 @@ seconds.  This is 60 by default.  If you change that variable,
 all the timings in the handlers will be affected.)
 
 So, if you want to add a handler, you could put something like this in
-your @file{.gnus.el} file:
+your @file{~/.gnus.el} file:
 
 @findex gnus-demon-add-handler
 @lisp
@@ -20954,7 +21097,7 @@ Some ready-made functions to do this have been created:
 @code{gnus-demon-add-nntp-close-connection},
 @code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and
 @code{gnus-demon-add-scanmail}.  Just put those functions in your
-@file{.gnus.el} if you want those abilities.
+@file{~/.gnus.el} if you want those abilities.
 
 @findex gnus-demon-init
 @findex gnus-demon-cancel
@@ -21178,7 +21321,7 @@ buffers.  Put
 (add-hook 'gnus-summary-mode-hook 'gnus-moderate)
 @end lisp
 
-in your @file{.gnus.el} file.
+in your @file{~/.gnus.el} file.
 
 If you are the moderator of @samp{rec.zoofle}, this is how it's
 supposed to work:
@@ -21313,7 +21456,7 @@ Ordered list of suffixes on picon file names to try.  Defaults to
 currently the only package that uses Smiley, it is documented here.
 
 In short---to use Smiley in Gnus, put the following in your
-@file{.gnus.el} file:
+@file{~/.gnus.el} file:
 
 @lisp
 (setq gnus-treat-display-smileys t)
@@ -21423,7 +21566,7 @@ 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 first function.  Put something
-like the following in your @file{.gnus.el} file:
+like the following in your @file{~/.gnus.el} file:
 
 @lisp
 (setq message-required-news-headers
@@ -22593,7 +22736,7 @@ The filename used to store the dictionary.  This defaults to
 @subsubsection Splitting mail using spam-stat
 
 In order to use @code{spam-stat} to split your mail, you need to add the
-following to your @file{~/.gnus} file:
+following to your @file{~/.gnus.el} file:
 
 @lisp
 (require 'spam-stat)
@@ -22714,7 +22857,7 @@ spam-stat-split-fancy)} to @code{nnmail-split-fancy}
 @end defun
 
 Make sure you load the dictionary before using it.  This requires the
-following in your @file{~/.gnus} file:
+following in your @file{~/.gnus.el} file:
 
 @lisp
 (require 'spam-stat)
@@ -22965,6 +23108,7 @@ renamed it back again to ``Gnus''.  But in mixed case.  ``Gnus'' vs.
 @cindex Pterodactyl Gnus
 @cindex Oort Gnus
 @cindex No Gnus
+@cindex Gnus versions
 
 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
@@ -23365,13 +23509,21 @@ The following people have contributed many patches and suggestions:
 Christopher Davis,
 Andrew Eskilsson,
 Kai Grossjohann,
+Kevin Greiner,
+Jesper Harder,
+Paul Jarc,
+Simon Josefsson,
 David Kågedal,
 Richard Pieri,
 Fabrice Popineau,
 Daniel Quinlan,
+Michael Shields,
+Reiner Steib,
 Jason L. Tibbitts, III,
+Jack Vinson,
+Katsumi Yamaoka, @c Yamaoka
 and
-Jack Vinson.
+Teodor Zlatanov.
 
 Also thanks to the following for patches and stuff:
 
@@ -23442,7 +23594,7 @@ D. Hall,
 Magnus Hammerin,
 Kenichi Handa, @c Handa
 Raja R. Harinath,
-Yoshiki Hayashi, @c ?
+Yoshiki Hayashi, @c Hayashi
 P. E. Jareth Hein,
 Hisashige Kenji, @c Hisashige
 Scott Hofmann,
@@ -23452,7 +23604,7 @@ Richard Hoskins,
 Brad Howes,
 Miguel de Icaza,
 François Felix Ingrand,
-Tatsuya Ichikawa, @c ?
+Tatsuya Ichikawa, @c Ichikawa
 Ishikawa Ichiro, @c Ishikawa
 Lee Iverson,
 Iwamuro Motonori, @c Iwamuro
@@ -23462,7 +23614,6 @@ Adam P. Jenkins,
 Randell Jesup,
 Fred Johansen,
 Gareth Jones,
-Simon Josefsson,
 Greg Klanderman,
 Karl Kleinpaste,
 Michael Klingbeil,
@@ -23566,7 +23717,6 @@ Barry A. Warsaw,
 Christoph Wedler,
 Joe Wells,
 Lee Willis,
-Katsumi Yamaoka @c Yamaoka
 and
 Lloyd Zusman.
 
@@ -23651,8 +23801,8 @@ manner, so it should be difficult to lose much data on what you have
 read if your machine should go down (@pxref{Auto Save}).
 
 @item
-Gnus now has its own startup file (@file{.gnus.el}) to avoid cluttering up
-the @file{.emacs} file.
+Gnus now has its own startup file (@file{~/.gnus.el}) to avoid
+cluttering up the @file{.emacs} file.
 
 @item
 You can set the process mark on both groups and articles and perform