@include gnus-overrides.texi
-@setfilename gnus
+@setfilename gnus.info
@settitle Gnus Manual
+@include docstyle.texi
@syncodeindex fn cp
@syncodeindex vr cp
@syncodeindex pg cp
-@documentencoding UTF-8
-
@copying
-Copyright @copyright{} 1995--2014 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--2015 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
+Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
and with the Back-Cover Texts as in (a) below. A copy of the license
is included in the section entitled ``GNU Free Documentation License''.
\begin{document}
% Adjust ../Makefile.in if you change the following line:
-\newcommand{\gnusversionname}{Ma Gnus v0.10}
+\newcommand{\gnusversionname}{Ma Gnus v0.14}
\newcommand{\gnuschaptername}{}
\newcommand{\gnussectionname}{}
luck.
@c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to Ma Gnus v0.10
+This manual corresponds to Ma Gnus v0.14
@ifnottex
@insertcopying
the program.
@c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to Ma Gnus v0.10
+This manual corresponds to Ma Gnus v0.14
@heading Other related manuals
@itemize
* Hiding Headers:: Deciding what headers should be displayed.
* Using MIME:: Pushing articles through @acronym{MIME} before reading them.
+* HTML:: Reading @acronym{HTML} messages.
* Customizing Articles:: Tailoring the look of the articles.
* Article Keymap:: Keystrokes available in the article buffer.
* Misc Article:: Other stuff.
@item gcc-self
@cindex gcc-self
If @code{(gcc-self . t)} is present in the group parameter list, newly
-composed messages will be @code{Gcc}'d to the current group. If
+composed messages will be @code{gcc}d to the current group. If
@code{(gcc-self . none)} is present, no @code{Gcc:} header will be
-generated, if @code{(gcc-self . "string")} is present, this string will
-be inserted literally as a @code{gcc} header. This parameter takes
-precedence over any default @code{Gcc} rules as described later
-(@pxref{Archived Messages}), with the exception for messages to resend.
+generated, if @code{(gcc-self . "group")} is present, this string will
+be inserted literally as a @code{Gcc:} header. It should be a group
+name. The @code{gcc-self} value may also be a list of strings and
+@code{t}, e.g., @code{(gcc-self "group1" "group2" t)} means to
+@code{gcc} the newly composed message into the groups @code{"group1"}
+and @code{"group2"}, and into the current group. The @code{gcc-self}
+parameter takes precedence over any default @code{Gcc} rules as
+described later (@pxref{Archived Messages}), with the exception for
+messages to resend.
@strong{Caveat}: Adding @code{(gcc-self . t)} to the parameter list of
@code{nntp} groups (or the like) isn't valid. An @code{nntp} server
Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
Quoted-Printable is one common @acronym{MIME} encoding employed when
sending non-@acronym{ASCII} (i.e., 8-bit) articles. It typically
-makes strings like @samp{d@'ej@`a vu} look like @samp{d=E9j=E0 vu},
+makes strings like @samp{déjà vu} look like @samp{d=E9j=E0 vu},
which doesn't look very readable to me. Note that this is usually
done automatically by Gnus if the message in question has a
@code{Content-Transfer-Encoding} header that says that this encoding
article. That's well and nice, but there's also lots of information
most people do not want to see---what systems the article has passed
through before reaching you, the @code{Message-ID}, the
-@code{References}, etc. ad nauseam---and you'll probably want to get rid
+@code{References}, etc.@: ad nauseam---and you'll probably want to get rid
of some of those lines. If you want to keep all those lines in the
article buffer, you can set @code{gnus-show-all-headers} to @code{t}.
@section @acronym{HTML}
@cindex @acronym{HTML}
-If you have @code{w3m} installed on your system, Gnus can display
-@acronym{HTML} articles in the article buffer. There are many Gnus
-add-ons for doing this, using various approaches, but there's one
-(sort of) built-in method that's used by default.
+Gnus can display @acronym{HTML} articles nicely formatted in the
+article buffer. There are many methods for doing that, but two of
+them are kind of default methods.
+
+If your Emacs copy has been built with libxml2 support, then Gnus uses
+Emacs' built-in, plain elisp Simple HTML Renderer @code{shr}
+@footnote{@code{shr} displays colors as declared in the @acronym{HTML}
+article but tries to adjust them in order to be readable. If you
+prefer more contrast, @xref{FAQ 4-16}.} which is also used by Emacs'
+browser EWW (@pxref{EWW, ,EWW, emacs, The Emacs Manual}).
+
+If your Emacs copy lacks libxml2 support but you have @code{w3m}
+installed on your system, Gnus uses that to render @acronym{HTML} mail
+and display the results in the article buffer (@code{gnus-w3m}).
-For a complete overview, consult @xref{Display Customization,
-,Display Customization, emacs-mime, The Emacs MIME Manual}. This
-section only describes the default method.
+For a complete overview, consult @xref{Display Customization, ,Display
+Customization, emacs-mime, The Emacs MIME Manual}. This section only
+describes the default method.
@table @code
@item mm-text-html-renderer
@vindex mm-text-html-renderer
-If set to @code{gnus-article-html}, Gnus will use the built-in method,
-that's based on @code{w3m}.
+If set to @code{shr}, Gnus uses its own simple @acronym{HTML}
+renderer. If set to @code{gnus-w3m}, it uses @code{w3m}.
@item gnus-blocked-images
@vindex gnus-blocked-images
@ifinfo
@c Avoid sort of redundant entries in the same section for the printed
-@c manual, but add them in info to allow `i gnus-treat-foo-bar RET' or
-@c `i foo-bar'.
+@c manual, but add them in info to allow 'i gnus-treat-foo-bar RET' or
+@c 'i foo-bar'.
@vindex gnus-treat-buttonize
@vindex gnus-treat-buttonize-head
@vindex gnus-treat-capitalize-sentences
Modify to suit your needs.
@vindex gnus-message-highlight-citation
-If @code{gnus-message-highlight-citation} is t, different levels of
+If @code{gnus-message-highlight-citation} is @code{t}, different levels of
citations are highlighted like in Gnus article buffers also in message
mode buffers.
from date id references chars lines xref extra.
In the case of a string value, if the @code{match} is a regular
-expression, a @samp{gnus-match-substitute-replacement} is proceed on
-the value to replace the positional parameters @samp{\@var{n}} by the
-corresponding parenthetical matches (see @xref{Replacing Match,,
-Replacing the Text that Matched, elisp, The Emacs Lisp Reference Manual}.)
+expression, or if it takes the form @code{(header @var{match}
+@var{regexp})}, a @samp{gnus-match-substitute-replacement} is proceed
+on the value to replace the positional parameters @samp{\@var{n}} by
+the corresponding parenthetical matches (see @xref{Replacing Match,,
+Replacing the Text that Matched, elisp, The Emacs Lisp Reference
+Manual}.)
@vindex message-reply-headers
;; @r{If I'm replying to Larsi, set the Organization header.}
((header "from" "larsi.*org")
(Organization "Somewhere, Inc."))
+ ;; @r{Reply to a message from the same subaddress the message}
+ ;; @r{was sent to.}
+ ((header "x-original-to" "me\\(\\+.+\\)@@example.org")
+ (address "me\\1@@example.org"))
((posting-from-work-p) ;; @r{A user defined function}
(signature-file "~/.work-signature")
(address "user@@bar.foo")
* Connecting to an IMAP Server:: Getting started with @acronym{IMAP}.
* Customizing the IMAP Connection:: Variables for @acronym{IMAP} connection.
* Client-Side IMAP Splitting:: Put mail in the correct mail box.
+* Support for IMAP Extensions:: Getting extensions and labels from servers.
@end menu
can use this option, and customize @code{nnimap-shell-program} to be
what you need.
+@item plain
+Non-encrypted and unsafe straight socket connection.
+@acronym{STARTTLS} will not be used even if it is available.
+
@end table
@item nnimap-authenticator
@end example
+@node Support for IMAP Extensions
+@subsection Support for IMAP Extensions
+
+@cindex Gmail
+@cindex X-GM-LABELS
+@cindex IMAP labels
+
+If you're using Google's Gmail, you may want to see your Gmail labels
+when reading your mail. Gnus can give you this information if you ask
+for @samp{X-GM-LABELS} in the variable @code{gnus-extra-headers}. For
+example:
+
+@example
+(setq gnus-extra-headers
+ '(To Newsgroups X-GM-LABELS))
+@end example
+
+This will result in Gnus storing your labels in message header
+structures for later use. The content is always a parenthesized
+(possible empty) list.
+
+
+
@node Getting Mail
@section Getting Mail
@cindex reading mail
@samp{cram-md5}, @samp{anonymous} or the default @samp{login}.
@item :program
-When using the `shell' :stream, the contents of this variable is
+When using the @samp{shell} :stream, the contents of this variable is
mapped into the @code{imap-shell-program} variable. This should be a
@code{format}-like string (or list of strings). Here's an example:
If the search engine changes its output substantially, @code{nnweb}
won't be able to parse it and will fail. One could hardly fault the Web
-providers if they were to do this---their @emph{raison d'@^etre} is to
+providers if they were to do this---their @emph{raison d'être} is to
make money off of advertisements, not to provide services to the
community. Since @code{nnweb} washes the ads off all the articles, one
might think that the providers might be somewhat miffed. We'll see.
@item
You forget all about it and keep on getting and reading new mail, as usual.
@item
-From time to time, as you type `g' in the group buffer and as the date
+From time to time, as you type @kbd{g} in the group buffer and as the date
is getting closer, the message will pop up again to remind you of your
appointment, just as if it were new and unread.
@item
@end table
@item
-If you are scoring on `e' (extra) headers, you will then be prompted for
+If you are scoring on @samp{e} (extra) headers, you will then be prompted for
the header name on which you wish to score. This must be a header named
in gnus-extra-headers, and @samp{TAB} completion is available.
You can inhibit this slow scoring on headers or body by setting the
variable @code{gnus-inhibit-slow-scoring}. If
@code{gnus-inhibit-slow-scoring} is regexp, slow scoring is inhibited if
-the group matches the regexp. If it is t, slow scoring on it is
+the group matches the regexp. If it is @code{t}, slow scoring on it is
inhibited for all groups.
Now, there's not much you can do about the slowness for news groups, but for
To work correctly the @code{nnir-namazu-remove-prefix} variable must
also be correct. This is the prefix to remove from each file name
-returned by Namazu in order to get a proper group name (albeit with `/'
-instead of `.').
+returned by Namazu in order to get a proper group name (albeit with @samp{/}
+instead of @samp{.}).
For example, suppose that Namazu returns file names such as
@samp{/home/john/Mail/mail/misc/42}. For this example, use the
Extra switches may be passed to the namazu search command by setting the
variable @code{nnir-namazu-additional-switches}. It is particularly
important not to pass any any switches to namazu that will change the
-output format. Good switches to use include `--sort', `--ascending',
-`--early' and `--late'. Refer to the Namazu documentation for further
+output format. Good switches to use include @option{--sort},
+@option{--ascending}, @option{--early} and @option{--late}.
+Refer to the Namazu documentation for further
information on valid switches.
-Mail must first be indexed with the `mknmz' program. Read the documentation
-for namazu to create a configuration file. Here is an example:
+Mail must first be indexed with the @command{mknmz} program. Read the
+documentation for namazu to create a configuration file. Here is an
+example:
@cartouche
@example
package conf; # Don't remove this line!
- # Paths which will not be indexed. Don't use `^' or `$' anchors.
+ # Paths which will not be indexed. Don't use '^' or '$' anchors.
$EXCLUDE_PATH = "spam|sent";
# Header fields which should be searchable. case-insensitive
@item nnir-summary-line-format
The format specification to be used for lines in an nnir summary buffer.
-All the items from `gnus-summary-line-format' are available, along with
+All the items from @code{gnus-summary-line-format} are available, along with
three items unique to nnir summary buffers:
@example
%g Article original short group name (string)
@end example
-If nil (the default) this will use @code{gnus-summary-line-format}.
+If @code{nil} (the default) this will use @code{gnus-summary-line-format}.
@item nnir-retrieve-headers-override-function
-If non-nil, a function that retrieves article headers rather than using
+If non-@code{nil}, a function that retrieves article headers rather than using
the gnus built-in function. This function takes an article list and
-group as arguments and populates the `nntp-server-buffer' with the
+group as arguments and populates the @code{nntp-server-buffer} with the
retrieved headers. It should then return either 'nov or 'headers
indicating the retrieved header format. Failure to retrieve headers
should return @code{nil}.
-If this variable is nil, or if the provided function returns nil for a
-search result, @code{gnus-retrieve-headers} will be called instead."
+If this variable is @code{nil}, or if the provided function returns
+@code{nil} for a search result, @code{gnus-retrieve-headers} will be
+called instead."
@end table
search for determining the file name of the article. This, of course, is
way slower than the registry---if you set hundreds or even thousands of
marks this way, it might take some time. You can avoid this situation by
-setting @code{nnmairix-only-use-registry} to t.
+setting @code{nnmairix-only-use-registry} to @code{t}.
Maybe you also want to propagate marks the other way round, i.e., if you
tick an article in a "real" mail group, you'd like to have the same
While @code{spam-use-BBDB-exclusive} @emph{can} be used as an alias
for @code{spam-use-BBDB} as far as @code{spam.el} is concerned, it is
@emph{not} a separate back end. If you set
-@code{spam-use-BBDB-exclusive} to t, @emph{all} your BBDB splitting
+@code{spam-use-BBDB-exclusive} to @code{t}, @emph{all} your BBDB splitting
will be exclusive.
@end defvar
The registry can store custom flags and keywords for a message. For
instance, you can mark a message ``To-Do'' this way and the flag will
persist whether the message is in the nnimap, nnml, nnmaildir,
-etc. backends.
+etc.@: backends.
@item
Store arbitrary data
@defvar gnus-registry-max-entries
The number (an integer or @code{nil} for unlimited) of entries the
-registry will keep.
+registry will keep. If the registry has reached or exceeded this
+size, it will reject insertion of new entries.
@end defvar
-@defvar gnus-registry-max-pruned-entries
-The maximum number (an integer or @code{nil} for unlimited) of entries
-the registry will keep after pruning.
+@defvar gnus-registry-prune-factor
+This option (a float between 0 and 1) controls how much the registry
+is cut back during pruning. In order to prevent constant pruning, the
+registry will be pruned back to less than
+@code{gnus-registry-max-entries}. This option controls exactly how
+much less: the target is calculated as the maximum number of entries
+minus the maximum number times this factor. The default is 0.1:
+i.e., if your registry is limited to 50000 entries, pruning will try to
+cut back to 45000 entries. Entries with keys marked as precious will
+not be pruned.
+@end defvar
+
+@defvar gnus-registry-default-sort-function
+This option specifies how registry entries are sorted during pruning.
+If a function is given, it should sort least valuable entries first,
+as pruning starts from the beginning of the list. The default value
+is @code{gnus-registry-sort-by-creation-time}, which proposes the
+oldest entries for pruning. Set to nil to perform no sorting, which
+will speed up the pruning process.
@end defvar
@defvar gnus-registry-cache-file
The file where the registry will be stored between Gnus sessions. By
-default the file name is @code{.gnus.registry.eioio} in the same
+default the file name is @code{.gnus.registry.eieio} in the same
directory as your @code{.newsrc.eld}.
@end defvar
@lisp
;; show the marks as single characters (see the :char property in
-;; `gnus-registry-marks'):
+;; 'gnus-registry-marks'):
;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-chars)
-;; show the marks by name (see `gnus-registry-marks'):
+;; show the marks by name (see 'gnus-registry-marks'):
;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-names)
@end lisp
Kevin Davidson---came up with the name @dfn{ding}, so blame him.
@item
-Fran@,{c}ois Pinard---many, many interesting and thorough bug reports, as
+François Pinard---many, many interesting and thorough bug reports, as
well as autoconf support.
@end itemize
Richard Hoskins,
Brad Howes,
Miguel de Icaza,
-Fran@,{c}ois Felix Ingrand,
+François Felix Ingrand,
Tatsuya Ichikawa, @c Ichikawa
Ishikawa Ichiro, @c Ishikawa
Lee Iverson,
directory is not used any more. You can safely delete the entire
hierarchy.
-@c FIXME: `gnus-load' is mentioned in README, which is not included in
+@c FIXME: 'gnus-load' is mentioned in README, which is not included in
@c the repository. We should find a better place for this item.
@item
@code{(require 'gnus-load)}
@itemize @bullet
+@item Installation changes
+@c ***********************
+
+@itemize @bullet
+@item
+Lisp source files and info files to be installed will be compressed by
+gzip by default.
+
+If you don't want those files to be compressed, use the configure option
+@samp{--without-compress-install}. Lisp source files that don't have
+the compiled elc version in the installation directory will not be
+compressed.
+
+@end itemize
+
@item Changes in summary and article mode
@c **************************************
@item
Try doing an @kbd{M-x gnus-version}. If you get something that looks
like @c
-@samp{Ma Gnus v0.10} @c Adjust ../Makefile.in if you change this line!
+@samp{Ma Gnus v0.14} @c Adjust ../Makefile.in if you change this line!
@c
you have the right files loaded. Otherwise you have some old @file{.el}
files lying around. Delete these.