summaryrefslogtreecommitdiff
path: root/doc/misc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/ChangeLog511
-rw-r--r--doc/misc/Makefile.in8
-rw-r--r--doc/misc/calc.texi13
-rw-r--r--doc/misc/emacs-mime.texi55
-rw-r--r--doc/misc/gnus-coding.texi381
-rw-r--r--doc/misc/gnus-faq.texi26
-rw-r--r--doc/misc/gnus-news.el121
-rw-r--r--doc/misc/gnus-news.texi264
-rw-r--r--doc/misc/gnus.texi1520
-rw-r--r--doc/misc/makefile.w32-in13
-rw-r--r--doc/misc/message.texi112
-rw-r--r--doc/misc/pgg.texi14
-rw-r--r--doc/misc/remember.texi406
-rw-r--r--doc/misc/sasl.texi270
-rw-r--r--doc/misc/sieve.texi6
-rw-r--r--doc/misc/tramp.texi75
-rw-r--r--doc/misc/widget.texi13
17 files changed, 3255 insertions, 553 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 73677b121ee..63f9a6e596f 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,514 @@
+2007-11-09 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus-news.texi: Fix spelling.
+ `message-insert-formatted-citation-line', not
+ `message-insert-formated-citation-line'.
+
+2007-11-07 Michael Albinus <michael.albinus@gmx.de>
+
+ * tramp.texi (Overview): Mention also the PuTTY integration under
+ Win32. Remove paragraphs about Tramp's experimental status.
+ (Frequently Asked Questions): Add code example for highlighting the
+ mode line.
+
+2007-11-03 Michael Olson <mwolson@gnu.org>
+
+ * remember.texi: Change mentions of remember-buffer to
+ remember-finalize throughout.
+
+2007-10-30 Michael Olson <mwolson@gnu.org>
+
+ * remember.texi (Copying): Remove.
+ (Mailbox): Update with non-BBDB instructions.
+ (Diary, Org): Add.
+ (Bibliography, Planner Page): Remove.
+
+2007-10-30 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (INFO_TARGETS): Add remember.
+ (DVI_TARGETS): Add remember.dvi.
+ ($(infodir)/remember): New rule.
+ (clean): Add remember*.
+
+2007-10-30 Michael Olson <mwolson@gnu.org>
+
+ * Makefile.in (INFO_TARGETS, DVI_TARGETS): Add remember.
+ ($(infodir)/remember): New rule that builds the Remember Manual.
+
+ * remember.texi: New file containing the Remember Mode Manual.
+ Shuffle chapters around after initial import.
+ (Function Reference): Split Keystrokes into separate chapter.
+ (Keystrokes): Document C-c C-k.
+ (Introduction): Fix typographical issue with "---".
+
+2007-10-29 Michael Albinus <michael.albinus@gmx.de>
+
+ * tramp.texi (Connection caching): Host names must be different
+ when tunneling.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi, gnus-faq.texi, message.texi: Bump version to
+ Gnus v5.13.
+
+2007-10-28 Miles Bader <miles@gnu.org>
+
+ * gnus-news.texi, gnus-coding.texi, sasl.texi: New files.
+
+2007-10-28 Emanuele Giaquinta <e.giaquinta@glauco.it> (tiny change)
+
+ * gnus-faq.texi ([5.12]): Remove reference to discontinued service.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Sorting the Summary Buffer): Remove
+ gnus-article-sort-by-date-reverse.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Non-ASCII Group Names): New node.
+ (Misc Group Stuff): Move gnus-group-name-charset-method-alist and
+ gnus-group-name-charset-group-alist to Non-ASCII Group Names node.
+
+2007-10-28 Micha,Ak(Bl Cadilhac <michael@cadilhac.name>
+
+ * gnus.texi (Mail Source Specifiers, IMAP): Add a notice on the need to
+ clean the output of the program `imap-shell-program'.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (IMAP): Mention nnimap-logout-timeout.
+
+2007-10-28 Tassilo Horn <tassilo@member.fsf.org>
+
+ * gnus.texi (Sticky Articles): Documentation for sticky article
+ buffers.
+
+2007-10-28 Micha,Ak(Bl Cadilhac <michael@cadilhac.name>
+
+ * gnus.texi (RSS): Document nnrss-ignore-article-fields.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Various Various): Mention gnus-add-timestamp-to-message.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Archived Messages): Document
+ gnus-update-message-archive-method.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Limiting): Document gnus-summary-limit-to-address.
+
+2007-10-28 Micha,Ak(Bl Cadilhac <michael@cadilhac.name>
+
+ * gnus.texi (Group Maneuvering): Document
+ `gnus-summary-next-group-on-exit'.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Really Various Summary Commands): Mention
+ gnus-auto-select-on-ephemeral-exit.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi, message.texi: Bump version number.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Group Line Specification, Misc Group Stuff)
+ (Server Commands): Parenthesize @pxref{Mail Spool}.
+
+2007-10-28 Didier Verna <didier@xemacs.org>
+
+ New user option: message-signature-directory.
+ * message.texi (Insertion Variables): Document it.
+ * gnus.texi (Posting Styles): Ditto.
+
+2007-10-28 Didier Verna <didier@xemacs.org>
+
+ * gnus.texi (Group Line Specification):
+ * gnus.texi (Misc Group Stuff):
+ * gnus.texi (Server Commands): Document the group compaction feature.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus-faq.texi ([5.2]): Adjust for message-fill-column.
+
+ * message.texi (Various Message Variables): Add message-fill-column.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi: Untabify.
+
+2007-10-28 Didier Verna <didier@xemacs.org>
+
+ * gnus.texi (Group Parameters): Document the posting-style merging
+ process in topic-mode.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Scoring On Other Headers): Add gnus-inhibit-slow-scoring.
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * gnus.texi (Mail Spool): Fix typo.
+ Update copyright.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Limiting): Add gnus-summary-limit-to-singletons.
+
+2007-10-28 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
+
+ * gnus.texi (Summary Generation Commands):
+ Add gnus-summary-insert-ticked-articles.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi
+ (SpamAssassin back end): Rename spam-spamassassin-path to
+ spam-spamassassin-program.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Mail and Post): Add gnus-message-highlight-citation.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Limiting): Add gnus-summary-limit-to-headers.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * message.texi (Mail Headers): Document `opportunistic'.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * emacs-mime.texi (Encoding Customization): Explain how to set
+ mm-coding-system-priorities per hierarchy.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Washing Mail): Add nnmail-ignore-broken-references and
+ nnmail-broken-references-mailers instead of nnmail-fix-eudora-headers.
+
+2007-10-28 Didier Verna <didier@xemacs.org>
+
+ * message.texi (Wide Reply): Update documentation of
+ message-dont-reply-to-names (now allowing a list of regexps).
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Spam Package Introduction): Fix spam menu and links.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (SpamAssassin back end): Fix typo.
+
+ * sieve.texi (Examples): Fix grammar.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Searching for Articles): Document M-S and M-R.
+ (Limiting): Document / b.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Thread Commands): T M-^.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * message.texi (Mail Aliases): Document ecomplete.
+ (Mail Aliases): Fix typo.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Face): Restore xref to gnus-face-properties-alist;
+ fix typo.
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * gnus.texi (Mail Spool): Grammar fix.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Mail Spool): nnml-use-compressed-files can be a
+ string.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Group Parameters): Fix description.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Gmane Spam Reporting): Fix
+ spam-report-gmane-use-article-number. Add
+ spam-report-user-mail-address.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * emacs-mime.texi (Non-MIME): x-gnus-verbatim -> x-verbatim.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Group Parameters): Add simplified sorting example based on
+ example for `Sorting the Summary Buffer' from Jari Aalto
+ <jari.aalto@cante.net>.
+ (Example Methods): Add example for an indirect connection.
+
+2007-10-28 Kevin Greiner <kevin.greiner@compsol.cc>
+
+ * gnus.texi (nntp-open-via-telnet-and-telnet): Fixed grammar.
+ (Agent Parameters): Updated parameter names to match code.
+ (Group Agent Commands): Corrected 'gnus-agent-fetch-series' as
+ 'gnus-agent-summary-fetch-series'.
+ (Agent and flags): New section providing a generalized discussion
+ of flag handling.
+ (Agent and IMAP): Removed flag discussion.
+ (Agent Variables): Added 'gnus-agent-synchronize-flags'
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * gnus.texi (Exiting the Summary Buffer): Add new function
+ `gnus-summary-catchup-and-goto-prev-group', bound to `Z p'.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Conformity): Fix typo.
+ (Customizing Articles): Document `first'.
+
+2007-10-28 Jari Aalto <jari.aalto@cante.net>
+
+ * gnus.texi (Sorting the Summary Buffer):
+ Add `gnus-thread-sort-by-date-reverse'. Add example
+ host to different sorting in NNTP and RSS groups.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * message.texi (Insertion): Describe prefix for
+ message-mark-inserted-region and message-mark-insert-file.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * emacs-mime.texi (Non-MIME): Add Slrn-style verbatim marks and
+ LaTeX documents. Describe "text/x-gnus-verbatim".
+
+2007-10-28 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus.texi (Blacklists and Whitelists)
+ (Blacklists and Whitelists, BBDB Whitelists)
+ (Gmane Spam Reporting, Bogofilter, spam-stat spam filtering)
+ (spam-stat spam filtering, SpamOracle)
+ (Extending the Spam ELisp package): Removed extra quote symbol for
+ clarity.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (MIME Commands): Add gnus-article-save-part-and-strip,
+ gnus-article-delete-part and gnus-article-replace-part.
+ (Using MIME): Add gnus-mime-replace-part.
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * gnus.texi (Mail Spool): Mention that `nnml-use-compressed-files'
+ requires `auto-compression-mode' to be enabled. Add new nnml
+ variable `nnml-compressed-files-size-threshold'.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Sorting the Summary Buffer): Added
+ gnus-thread-sort-by-recipient.
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * message.texi (Insertion Variables): Mention new variable
+ `message-yank-empty-prefix'. Change `message-yank-cited-prefix'
+ documentation accordingly.
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * gnus.texi (To From Newsgroups): Mention new variables
+ `gnus-summary-to-prefix' and `gnus-summary-newsgroup-prefix'.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Using MIME): gnus-mime-copy-part supports the charset
+ stuff; gnus-mime-inline-part does the automatic decompression.
+
+2007-10-28 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus.texi (Spam ELisp Package Configuration Examples):
+ "training.ham" should be "training.spam"
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * message.texi (Mail Variables): Fix the default value for
+ message-send-mail-function.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Optional Back End Functions): nntp-request-update-info
+ always returns nil exceptionally.
+
+2007-10-28 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (Article Washing): Add libidn URL. Suggested by
+ Michael Cook <michael@waxrat.com>.
+
+2007-10-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Topic Commands): Fix next/previous.
+
+2007-10-28 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (Article Washing): Mention `W i'.
+
+2007-10-28 Jochen K,A|(Bpper <jochen@fhi-berlin.mpg.de>
+
+ * gnus.texi (Group Parameters): Slight extension of sieve
+ parameter description.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Score Decays): `gnus-decay-scores' can be a regexp
+ matching score files as well.
+ (Picons): Describe `gnus-picon-style'.
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * message.texi (Message Headers): Mention that headers are hidden
+ using narrowing, and how to expose them.
+ Update copyright.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnusref.tex: Mention `gnus-summary-limit-to-recipient' and
+ `gnus-summary-sort-by-recipient'.
+
+2007-10-28 Romain Francoise <romain@orebokech.com>
+
+ * gnus.texi (NNTP marks): New node.
+ (NNTP): Move NNTP marks variables to the new node.
+
+2007-10-28 Jesper Harder <harder@ifa.au.dk>
+
+ * gnus.texi, gnus-news.texi, pgg.texi, sasl.texi: backend -> back
+ end.
+
+ * gnus.texi (MIME Commands, Hashcash): Markup fix.
+
+2007-10-28 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus.texi: replaced @file{spam.el} with @code{spam.el}
+ everywhere for consistency.
+ (Filtering Spam Using The Spam ELisp Package): admonish again.
+ (Spam ELisp Package Sequence of Events): this is Gnus, say so.
+ Say "regular expression" instead of "regex." Admonish. Pick
+ other words to sound better (s/so/thus/).
+ (Spam ELisp Package Filtering of Incoming Mail): mention
+ statistical filters. Remove old TODO.
+ (Spam ELisp Package Sorting and Score Display in Summary Buffer):
+ new section on sorting and displaying the spam score
+ (BBDB Whitelists): mention spam-use-BBDB-exclusive is not a
+ backend but an alias to spam-use-BBDB
+ (Extending the Spam ELisp package): rewrite the example using the
+ new backend functionality.
+
+2007-10-28 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (NNTP): Mention nntp-marks-is-evil and
+ nntp-marks-directory, from Romain Francoise
+ <romain@orebokech.com>.
+
+2007-10-28 Magnus Henoch <mange@freemail.hu>
+
+ * gnus.texi (Hashcash): New default value of
+ hashcash-default-payment.
+
+2007-10-28 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (Hashcash): Fix URL. Add pref to spam section.
+ (Anti-spam Hashcash Payments): No need to load hashcash.el now.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Adaptive Scoring): Added gnus-adaptive-pretty-print.
+
+2007-10-28 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (documentencoding): Add, to avoid warnings.
+
+2007-10-28 Simon Josefsson <jas@extundo.com>
+
+ * message.texi (Mail Headers): Add.
+
+ * gnus.texi (Hashcash): Fix.
+
+2007-10-28 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus.texi (Hashcash): changed location of library, also mention
+ that payments can be verified and fix the name of the
+ hashcash-path variable
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi
+ (Article Display): Add `gnus-picon-style'.
+
+2007-10-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (SpamAssassin backend): Add it to the detailmenu.
+
+2007-10-28 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus.texi (Blacklists and Whitelists, BBDB Whitelists)
+ (Bogofilter, spam-stat spam filtering, SpamOracle): old incorrect
+ warning about ham processors in spam groups removed
+
+2007-10-28 Teodor Zlatanov <tzz@lifelogs.com>
+ From Hubert Chan <hubert@uhoreg.ca>
+
+ * gnus.texi (SpamAssassin backend): added new node about SpamAssassin
+
+2007-10-28 Jesper Harder <harder@ifa.au.dk>
+
+ * gnus.texi (Spam ELisp Package Sequence of Events): Index.
+ (Mailing List): Typo.
+ (Customizing Articles): Add gnus-treat-ansi-sequences.
+ (Article Washing): Index.
+
+ * message.texi: Use m-dash consistently.
+
+2007-10-28 Jesper Harder <harder@ifa.au.dk>
+
+ * gnus.texi (GroupLens): Remove.
+
+2007-10-28 Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+ * gnus.texi (Outgoing Messages, Agent Variables): Add
+ gnus-agent-queue-mail and gnus-agent-prompt-send-queue.
+ Suggested by Gaute Strokkenes <gs234@srcf.ucam.org>
+
+2007-10-28 Jesper Harder <harder@ifa.au.dk>
+
+ * gnus.texi (Limiting): Add gnus-summary-limit-to-replied.
+
+2007-10-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Article Washing): Add `gnus-article-treat-ansi-sequences'.
+
+ * gnus.texi (No Gnus): New node. Includes `gnus-news.texi'.
+
+2007-10-28 Simon Josefsson <jas@extundo.com>
+
+ * gnus.texi (Top): Add SASL.
+
+2007-10-27 Jay Belanger <jay.p.belanger@gmail.com>
+
+ * calc.texi (Formulas, Composition Basics): Lower the
+ precedence of negation.
+
2007-10-25 Jonathan Yavner <jyavner@member.fsf.org>
* ses.texi (The Basics): Mention how to create a new spreadsheet.
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 65caeb77ecb..93982f419dc 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -64,6 +64,7 @@ INFO_TARGETS = \
$(infodir)/pcl-cvs \
$(infodir)/pgg \
$(infodir)/rcirc \
+ $(infodir)/remember \
$(infodir)/reftex \
$(infodir)/sc \
$(infodir)/ses \
@@ -104,6 +105,7 @@ DVI_TARGETS = \
pgg.dvi \
rcirc.dvi \
reftex.dvi \
+ remember.dvi \
sc.dvi \
ses.dvi \
sieve.dvi \
@@ -306,6 +308,12 @@ $(infodir)/reftex: reftex.texi
reftex.dvi: reftex.texi
$(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi
+remember : $(infodir)/remember
+$(infodir)/remember: remember.texi
+ cd $(srcdir); $(MAKEINFO) remember.texi
+remember.dvi: remember.texi
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi
+
sc : $(infodir)/sc
$(infodir)/sc: sc.texi
cd $(srcdir); $(MAKEINFO) sc.texi
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index ee2dbfb5bc8..2441f0c1166 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -11579,8 +11579,7 @@ with their equivalent function names, are:
postfix @samp{%} [@code{percent}] (as in @samp{25% = 0.25});
-prefix @samp{+} and @samp{-} [@code{neg}] (as in @samp{-x})
-and prefix @samp{!} [@code{lnot}] (logical ``not,'' as in @samp{!x});
+prefix @samp{!} [@code{lnot}] (logical ``not,'' as in @samp{!x});
@samp{+/-} [@code{sdev}] (the standard deviation symbol) and
@samp{mod} [@code{makemod}] (the symbol for modulo forms);
@@ -11590,6 +11589,8 @@ and postfix @samp{!!} [@code{dfact}] (double factorial);
@samp{^} [@code{pow}] (raised-to-the-power-of);
+prefix @samp{+} and @samp{-} [@code{neg}] (as in @samp{-x});
+
@samp{*} [@code{mul}];
@samp{/} [@code{div}], @samp{%} [@code{mod}] (modulo), and
@@ -14610,15 +14611,15 @@ The operator table used by normal and Big language modes has the
following precedences:
@example
-_ 1200 @r{(subscripts)}
-% 1100 @r{(as in n}%@r{)}
-- 1000 @r{(as in }-@r{n)}
-! 1000 @r{(as in }!@r{n)}
+_ 1200 @r{(subscripts)}
+% 1100 @r{(as in n}%@r{)}
+! 1000 @r{(as in }!@r{n)}
mod 400
+/- 300
!! 210 @r{(as in n}!!@r{)}
! 210 @r{(as in n}!@r{)}
^ 200
+- 197 @r{(as in }-@r{n)}
* 195 @r{(or implicit multiplication)}
/ % \ 190
+ - 180 @r{(as in a}+@r{b)}
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 7490c9b6bc2..d4cbf8380b6 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -180,8 +180,27 @@ Patches. This is intended for groups where diffs of committed files
are automatically sent to. It only works in groups matching
@code{mm-uu-diff-groups-regexp}.
+@item verbatim-marks
+@cindex verbatim-marks
+Slrn-style verbatim marks.
+
+@item LaTeX
+@cindex LaTeX
+LaTeX documents. It only works in groups matching
+@code{mm-uu-tex-groups-regexp}.
+
@end table
+@cindex text/x-verbatim
+@c Is @vindex suitable for a face?
+@vindex mm-uu-extract
+Some inlined non-@acronym{MIME} attachments are displayed using the face
+@code{mm-uu-extract}. By default, no @acronym{MIME} button for these
+parts is displayed. You can force displaying a button using @kbd{K b}
+(@code{gnus-summary-display-buttonized}) or add @code{text/x-verbatim}
+to @code{gnus-buttonized-mime-types}, @xref{MIME Commands, ,MIME
+Commands, gnus, Gnus Manual}.
+
@node Handles
@section Handles
@@ -849,6 +868,36 @@ ISO-8859-1 if possible, you can set this variable to
@code{(iso-8859-1)}. You can override this setting on a per-message
basis by using the @code{charset} @acronym{MML} tag (@pxref{MML Definition}).
+As different hierarchies prefer different charsets, you may want to set
+@code{mm-coding-system-priorities} according to the hierarchy in Gnus.
+Here's an example:
+
+@c Corrections about preferred charsets are welcome. de, fr and fj
+@c should be correct, I don't know about the rest (so these are only
+@c examples):
+@lisp
+(add-to-list 'gnus-newsgroup-variables 'mm-coding-system-priorities)
+(setq gnus-parameters
+ (nconc
+ ;; Some charsets are just examples!
+ '(("^cn\\." ;; Chinese
+ (mm-coding-system-priorities
+ '(iso-8859-1 cn-big5 chinese-iso-7bit utf-8)))
+ ("^cz\\.\\|^pl\\." ;; Central and Eastern European
+ (mm-coding-system-priorities '(iso-8859-2 utf-8)))
+ ("^de\\." ;; German language
+ (mm-coding-system-priorities '(iso-8859-1 iso-8859-15 utf-8)))
+ ("^fr\\." ;; French
+ (mm-coding-system-priorities '(iso-8859-15 iso-8859-1 utf-8)))
+ ("^fj\\." ;; Japanese
+ (mm-coding-system-priorities
+ '(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8)))
+ ("^ru\\." ;; Cyrillic
+ (mm-coding-system-priorities
+ '(koi8-r iso-8859-5 iso-8859-1 utf-8))))
+ gnus-parameters))
+@end lisp
+
@item mm-content-transfer-encoding-defaults
@vindex mm-content-transfer-encoding-defaults
Mapping from @acronym{MIME} types to encoding to use. This variable is usually
@@ -1155,7 +1204,7 @@ Return the value of the field under point.
@item mail-encode-encoded-word-region
@findex mail-encode-encoded-word-region
Encode the non-@acronym{ASCII} words in the region. For instance,
-@samp{Naïve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}.
+@samp{Na@"{@dotless{i}}ve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}.
@item mail-encode-encoded-word-buffer
@findex mail-encode-encoded-word-buffer
@@ -1168,7 +1217,7 @@ Encode the words that need encoding in a string, and return the result.
@example
(mail-encode-encoded-word-string
- "This is naïve, baby")
+ "This is na@"{@dotless{i}}ve, baby")
@result{} "This is =?iso-8859-1?q?na=EFve,?= baby"
@end example
@@ -1183,7 +1232,7 @@ Decode the encoded words in the string and return the result.
@example
(mail-decode-encoded-word-string
"This is =?iso-8859-1?q?na=EFve,?= baby")
-@result{} "This is naïve, baby"
+@result{} "This is na@"{@dotless{i}}ve, baby"
@end example
@end table
diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi
new file mode 100644
index 00000000000..1fead8c9b80
--- /dev/null
+++ b/doc/misc/gnus-coding.texi
@@ -0,0 +1,381 @@
+\input texinfo
+
+@setfilename gnus-coding
+@settitle Gnus Coding Style and Maintainance Guide
+@syncodeindex fn cp
+@syncodeindex vr cp
+@syncodeindex pg cp
+
+@copying
+Copyright (c) 2004, 2005, 2007 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.1 or
+any later version published by the Free Software Foundation; with no
+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'' in the Emacs manual.
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+
+This document is part of a collection distributed under the GNU Free
+Documentation License. If you want to distribute this document
+separately from the collection, you can do so by adding a copy of the
+license to the document, as described in section 6 of the license.
+@end quotation
+@end copying
+
+
+@titlepage
+@title Gnus Coding Style and Maintainance Guide
+
+@author by Reiner Steib <Reiner.Steib@@gmx.de>
+
+@insertcopying
+@end titlepage
+
+@c Obviously this is only a very rudimentary draft. We put it in CVS
+@c anyway hoping that it might annoy someone enough to fix it. ;-)
+@c Fixing only a paragraph also is appreciated.
+
+@node Top
+@top Gnus Coding Style and Maintainance Guide
+This manual describes @dots{}
+@menu
+* Gnus Coding Style:: Gnus Coding Style
+* Gnus Maintainance Guide:: Gnus Maintainance Guide
+@end menu
+
+@c @ref{Gnus Reference Guide, ,Gnus Reference Guide, gnus, The Gnus Newsreader}
+
+@node Gnus Coding Style
+@chapter Gnus Coding Style
+@section Dependencies
+
+The Gnus distribution contains a lot of libraries that have been written
+for Gnus and used intensively for Gnus. But many of those libraries are
+useful on their own. E.g. other Emacs Lisp packages might use the
+@acronym{MIME} library @xref{Top, ,Top, emacs-mime, The Emacs MIME
+Manual}.
+
+@subsection General purpose libraries
+
+@table @file
+
+@item netrc.el
+@file{.netrc} parsing functionality.
+@c As of 2005-10-21...
+There are no Gnus dependencies in this file.
+
+@item format-spec.el
+Functions for formatting arbitrary formatting strings.
+@c As of 2005-10-21...
+There are no Gnus dependencies in this file.
+
+@item hex-util.el
+Functions to encode/decode hexadecimal string.
+@c As of 2007-08-25...
+There are no Gnus dependencies in these files.
+@end table
+
+@subsection Encryption and security
+
+@table @file
+@item encrypt.el
+File encryption routines
+@c As of 2005-10-25...
+There are no Gnus dependencies in this file.
+
+@item password.el
+Read passwords from user, possibly using a password cache.
+@c As of 2005-10-21...
+There are no Gnus dependencies in this file.
+
+@item tls.el
+TLS/SSL support via wrapper around GnuTLS
+@c As of 2005-10-21...
+There are no Gnus dependencies in this file.
+
+@item pgg*.el
+Glue for the various PGP implementations.
+@c As of 2005-10-21...
+There are no Gnus dependencies in these files.
+
+@item sha1.el
+SHA1 Secure Hash Algorithm.
+@c As of 2007-08-25...
+There are no Gnus dependencies in these files.
+@end table
+
+@subsection Networking
+
+@table @file
+@item dig.el
+Domain Name System dig interface.
+@c As of 2005-10-21...
+There are no serious Gnus dependencies in this file. Uses
+@code{gnus-run-mode-hooks} (a wrapper function).
+
+@item dns.el, dns-mode.el
+Domain Name Service lookups.
+@c As of 2005-10-21...
+There are no Gnus dependencies in these files.
+@end table
+
+@subsection Mail and News related RFCs
+
+@table @file
+@item pop3.el
+Post Office Protocol (RFC 1460) interface.
+@c As of 2005-10-21...
+There are no Gnus dependencies in this file.
+
+@item imap.el
+@acronym{IMAP} library.
+@c As of 2005-10-21...
+There are no Gnus dependencies in this file.
+
+@item ietf-drums.el
+Functions for parsing RFC822bis headers.
+@c As of 2005-10-21...
+There are no Gnus dependencies in this file.
+
+@item rfc1843.el
+HZ (rfc1843) decoding. HZ is a data format for exchanging files of
+arbitrarily mixed Chinese and @acronym{ASCII} characters.
+@c As of 2005-10-21...
+@code{rfc1843-gnus-setup} seem to be useful only for Gnus. Maybe this
+function should be relocated to remove dependencies on Gnus. Other
+minor dependencies: @code{gnus-newsgroup-name} could be eliminated by
+using an optional argument to @code{rfc1843-decode-article-body}.
+
+@item rfc2045.el
+Functions for decoding rfc2045 headers
+@c As of 2007-08-25...
+There are no Gnus dependencies in these files.
+
+@item rfc2047.el
+Functions for encoding and decoding rfc2047 messages
+@c As of 2007-08-25...
+There are no Gnus dependencies in these files.
+@c
+Only a couple of tests for gnusy symbols.
+
+@item rfc2104.el
+RFC2104 Hashed Message Authentication Codes
+@c As of 2007-08-25...
+There are no Gnus dependencies in these files.
+
+@item rfc2231.el
+Functions for decoding rfc2231 headers
+@c As of 2007-08-25...
+There are no Gnus dependencies in these files.
+
+@item flow-fill.el
+Interpret RFC2646 "flowed" text.
+@c As of 2005-10-27...
+There are no Gnus dependencies in this file.
+
+@item uudecode.el
+Elisp native uudecode.
+@c As of 2005-12-06...
+There are no Gnus dependencies in this file.
+@c ... but the custom group is gnus-extract.
+
+@item canlock.el
+Functions for Cancel-Lock feature
+@c Cf. draft-ietf-usefor-cancel-lock-01.txt
+@c Although this draft has expired, Canlock-Lock revived in 2007 when
+@c major news providers (e.g. news.individual.org) started to use it.
+@c As of 2007-08-25...
+There are no Gnus dependencies in these files.
+
+@end table
+
+@subsection message
+
+All message composition from Gnus (both mail and news) takes place in
+Message mode buffers. Message mode is intended to be a replacement for
+Emacs mail mode. There should be no Gnus dependencies in
+@file{message.el}. Alas it is not anymore. Patches and suggestions to
+remove the dependencies are welcome.
+
+@c message.el requires nnheader which requires gnus-util.
+
+@subsection Emacs @acronym{MIME}
+
+The files @file{mml*.el} and @file{mm-*.el} provide @acronym{MIME}
+functionality for Emacs.
+
+@acronym{MML} (@acronym{MIME} Meta Language) is supposed to be
+independent from Gnus. Alas it is not anymore. Patches and suggestions
+to remove the dependencies are welcome.
+
+@subsection Gnus backends
+
+The files @file{nn*.el} provide functionality for accessing NNTP
+(@file{nntp.el}), IMAP (@file{nnimap.el}) and several other Mail back
+ends (probably @file{nnml.el}, @file{nnfolder.el} and
+@file{nnmaildir.el} are the most widely used mail back ends).
+
+@c mm-uu requires nnheader which requires gnus-util. message.el also
+@c requires nnheader.
+
+
+@section Compatibility
+
+No Gnus and Gnus 5.10.10 and up should work on:
+@itemize @bullet
+@item
+Emacs 21.1 and up.
+@item
+XEmacs 21.4 and up.
+@end itemize
+
+Gnus 5.10.8 and below should work on:
+@itemize @bullet
+@item
+Emacs 20.7 and up.
+@item
+XEmacs 21.1 and up.
+@end itemize
+
+@node Gnus Maintainance Guide
+@chapter Gnus Maintainance Guide
+
+@section Stable and development versions
+
+The development of Gnus normally is done on the CVS trunk, i.e. there
+are no separate branches to develop and test new features. Most of the
+time, the trunk is developed quite actively with more or less daily
+changes. Only after a new major release, e.g. 5.10.1, there's usually a
+feature period of several months. After the release of Gnus 5.10.6 the
+development of new features started again on the trunk while the 5.10
+series is continued on the stable branch (v5-10) from which more stable
+releases will be done when needed (5.10.7, @dots{}).
+@ref{Gnus Development, ,Gnus Development, gnus, The Gnus Newsreader}
+
+Stable releases of Gnus finally become part of Emacs. E.g. Gnus 5.8
+became a part of Emacs 21 (relabeled to Gnus 5.9). The 5.10 series
+became part of Emacs 22 as Gnus 5.11.
+
+@section Syncing
+
+@c Some MIDs related to this follow. Use http://thread.gmane.org/MID
+@c (and click on the subject) to get the thread on Gmane.
+
+@c Some quotes from Miles Bader follow...
+
+@c <v9eklyke6b.fsf@marauder.physik.uni-ulm.de>
+@c <buovfd71nkk.fsf@mctpc71.ucom.lsi.nec.co.jp>
+
+In the past, the inclusion of Gnus into Emacs was quite cumbersome. For
+each change made to Gnus in Emacs repository, it had to be checked that
+it was applied to the new Gnus version, too. Else, bug fixes done in
+Emacs repository might have been lost.
+
+With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus
+gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus
+CVS semi-automatically. These bug fixes are installed on the stable
+branch and on the trunk. Basically the idea is that the gateway will
+cause all common files in Emacs and Gnus v5-10 to be identical except
+when there's a very good reason (e.g., the Gnus version string in Emacs
+says @samp{5.11}, but the v5-10 version string remains @samp{5.10.x}).
+Furthermore, all changes in these files in either Emacs or the v5-10
+branch will be installed into the Gnus CVS trunk, again except where
+there's a good reason.
+@c (typically so far the only exception has been that the changes
+@c already exist in the trunk in modified form).
+Because of this, when the next major version of Gnus will be included in
+Emacs, it should be very easy -- just plonk in the files from the Gnus
+trunk without worrying about lost changes from the Emacs tree.
+
+The effect of this is that as hacker, you should generally only have to
+make changes in one place:
+
+@itemize
+@item
+If it's a file which is thought of as being outside of Gnus (e.g., the
+new @file{encrypt.el}), you should probably make the change in the Emacs
+tree, and it will show up in the Gnus tree a few days later.
+
+If you don't have Emacs CVS access (or it's inconvenient), you can
+change such a file in the v5-10 branch, and it should propagate to Emacs
+CVS -- however, it will get some extra scrutiny (by Miles) to see if the
+changes are possibly controversial and need discussion on the mailing
+list. Many changes are obvious bug-fixes however, so often there won't
+be any problem.
+
+@item
+If it's to a Gnus file, and it's important enough that it should be part
+of Emacs and the v5-10 branch, then you can make the change on the v5-10
+branch, and it will go into Emacs CVS and the Gnus CVS trunk (a few days
+later). The most prominent examples for such changes are bug-fixed
+including improvements on the documentation.
+
+If you know that there will be conflicts (perhaps because the affected
+source code is different in v5-10 and the Gnus CVS trunk), then you can
+install your change in both places, and when I try to sync them, there
+will be a conflict -- however, since in most such cases there would be a
+conflict @emph{anyway}, it's often easier for me to resolve it simply if
+I see two @samp{identical} changes, and can just choose the proper one,
+rather than having to actually fix the code.
+
+@item
+For general Gnus development changes, of course you just make the
+change on the Gnus CVS trunk and it goes into Emacs a few years
+later... :-)
+@end itemize
+
+Of course in any case, if you just can't wait for me to sync your
+change, you can commit it in more than one place and probably there will
+be no problem; usually the changes are textually identical anyway, so
+can be easily resolved automatically (sometimes I notice silly things in
+such multiple commits, like whitespace differences, and unify those ;-).
+
+
+@c I do Emacs->Gnus less often (than Gnus->Emacs) because it tends to
+@c require more manual work.
+
+@c By default I sync about once a week. I also try to follow any Gnus
+@c threads on the mailing lists and make sure any changes being discussed
+@c are kept more up-to-date (so say 1-2 days delay for "topical" changes).
+
+@c <buovfd71nkk.fsf@mctpc71.ucom.lsi.nec.co.jp>
+
+@c BTW, just to add even more verbose explanation about the syncing thing:
+
+@section Miscellanea
+
+@heading @file{GNUS-NEWS}
+
+Starting from No Gnus, the @file{GNUS-NEWS} is created from
+@file{texi/gnus-news.texi}. Don't edit @file{GNUS-NEWS}. Edit
+@file{texi/gnus-news.texi}, type @command{make GNUS-NEWS} in the
+@file{texi} directory and commit @file{GNUS-NEWS} and
+@file{texi/gnus-news.texi}.
+
+@heading Conventions for version information in defcustoms
+
+For new customizable variables introduced in Oort Gnus (including the
+v5-10 branch) use @code{:version "22.1" ;; Oort Gnus} (including the
+comment) or e.g. @code{:version "22.2" ;; Gnus 5.10.10} if the feature
+was added for Emacs 22.2 and Gnus 5.10.10.
+@c
+If the variable is new in No Gnus use @code{:version "23.0" ;; No Gnus}.
+
+The same applies for customizable variables when its default value was
+changed.
+
+@c Local Variables:
+@c mode: texinfo
+@c coding: iso-8859-1
+@c End:
+
+@ignore
+ arch-tag: ab15234c-2c8a-4cbd-8111-1811bcc6f931
+@end ignore
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 6bfb3477627..8f0280ce9f0 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -128,7 +128,7 @@ What is the latest version of Gnus?
Jingle please: Gnus 5.10 is released, get it while it's
hot! As well as the step in version number is rather
small, Gnus 5.10 has tons of new features which you
-shouldn't miss. The current release (5.10.8) should be at
+shouldn't miss. The current release (5.13) should be at
least as stable as the latest release of the 5.8 series.
@node [1.2]
@@ -1286,18 +1286,23 @@ How to enable automatic word-wrap when composing messages?
@subsubheading Answer
-Say
+Starting from No Gnus, automatic word-wrap is already enabled by
+default, see the variable message-fill-column.
+
+For other versions of Gnus, say
@example
-(add-hook 'message-mode-hook
- (lambda ()
- (setq fill-column 72)
- (turn-on-auto-fill)))
+(unless (boundp 'message-fill-column)
+ (add-hook 'message-mode-hook
+ (lambda ()
+ (setq fill-column 72)
+ (turn-on-auto-fill))))
@end example
@noindent
-in ~/.gnus.el. You can reformat a paragraph by hitting
-@samp{M-q} (as usual)
+in ~/.gnus.el.
+
+You can reformat a paragraph by hitting @samp{M-q} (as usual).
@node [5.3]
@subsubheading Question 5.3
@@ -1676,10 +1681,7 @@ you to use something like
yourUserName.userfqdn.provider.net, or you can use
somethingUnique.yourdomain.tld if you own the domain
yourdomain.tld, or you can register at a service which
-gives private users a FQDN for free, e.g.
-@uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}.
-(Sorry but this website is in German, if you know of an
-English one offering the same, drop me a note).
+gives private users a FQDN for free.
Finally you can tell Gnus not to generate a Message-ID
for News at all (and letting the server do the job) by saying
diff --git a/doc/misc/gnus-news.el b/doc/misc/gnus-news.el
new file mode 100644
index 00000000000..9f31513e435
--- /dev/null
+++ b/doc/misc/gnus-news.el
@@ -0,0 +1,121 @@
+;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source
+;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+
+;; Author: Reiner Steib <Reiner.Steib@gmx.de>
+;; Keywords: tools
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+(defvar gnus-news-header-disclaimer
+"GNUS NEWS -- history of user-visible changes.
+
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2006, 2007 Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
+Please send Gnus bug reports to bugs@gnus.org.
+For older news, see Gnus info node \"New Features\".\n\n")
+
+(defvar gnus-news-trailer
+"
+* For older news, see Gnus info node \"New Features\".
+
+----------------------------------------------------------------------
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
+
+ \nLocal variables:\nmode: outline
+paragraph-separate: \"[ ]*$\"\nend:\n")
+
+(defvar gnus-news-makeinfo-command "makeinfo")
+
+(defvar gnus-news-fill-column 80)
+
+(defvar gnus-news-makeinfo-switches
+ (concat " --no-headers --paragraph-indent=0"
+ " --no-validate" ;; Allow unresolved references.
+ " --fill-column=" (number-to-string
+ (+ 3 ;; will strip leading spaces later
+ (or gnus-news-fill-column 80)))))
+
+(defun batch-gnus-news ()
+ "Make GNUS-NEWS in batch mode."
+ (let (infile outfile)
+ (setq infile (car command-line-args-left)
+ command-line-args-left (cdr command-line-args-left)
+ outfile (car command-line-args-left)
+ command-line-args-left nil)
+ (if (and infile outfile)
+ (message "Creating `%s' from `%s'..." outfile infile)
+ (error "Not enough files given."))
+ (gnus-news-translate-file infile outfile)))
+
+(defun gnus-news-translate-file (infile outfile)
+ "Translate INFILE (texinfo) to OUTFILE (GNUS-NEWS)."
+ (let* ((dir (concat (or (getenv "srcdir") ".") "/"))
+ (infile (concat dir infile))
+ (buffer (find-file-noselect (concat dir outfile))))
+ (with-temp-buffer
+ ;; Could be done using `texinfmt' stuff as in `infohack.el'.
+ (insert
+ (shell-command-to-string
+ (concat gnus-news-makeinfo-command " "
+ gnus-news-makeinfo-switches " " infile)))
+ (goto-char (point-max))
+ (delete-char -1)
+ (goto-char (point-min))
+ (save-excursion
+ (while (re-search-forward "^ \\* " nil t)
+ (replace-match "\f\n* ")))
+ (save-excursion
+ (while (re-search-forward "^ \\* " nil t)
+ (replace-match "** ")))
+ (save-excursion
+ (while (re-search-forward "^ " nil t)
+ (replace-match "")))
+ ;; Avoid `*' from @ref at beginning of line:
+ (save-excursion
+ (while (re-search-forward "^\\*Note" nil t)
+ (replace-match " \\&")))
+ (goto-char (point-min))
+ (insert gnus-news-header-disclaimer)
+ (goto-char (point-max))
+ (insert gnus-news-trailer)
+ (write-region (point-min) (point-max) outfile))))
+
+;;; arch-tag: e23cdd27-eafd-4ba0-816f-98f5edb0dc29
+;;; gnus-news.el ends here
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
new file mode 100644
index 00000000000..0c08a93883b
--- /dev/null
+++ b/doc/misc/gnus-news.texi
@@ -0,0 +1,264 @@
+@c -*-texinfo-*-
+
+@c Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+
+@c Permission is granted to anyone to make or distribute verbatim copies
+@c of this document as received, in any medium, provided that the
+@c copyright notice and this permission notice are preserved,
+@c thus giving the recipient permission to redistribute in turn.
+
+@c Permission is granted to distribute modified versions
+@c of this document, or of portions of it,
+@c under the above conditions, provided also that they
+@c carry prominent notices stating who last changed them.
+
+@c This file contains a list of news features Gnus. It is supposed to be
+@c included in `gnus.texi'. `GNUS-NEWS' is automatically generated from
+@c this file (see `gnus-news.el').
+
+@itemize @bullet
+
+@item Installation changes
+
+@itemize @bullet
+@item Upgrading from previous (stable) version if you have used No Gnus.
+
+If you have tried No Gnus (the unstable Gnus branch leading to this
+release) but went back to a stable version, be careful when upgrading
+to this version. In particular, you will probably want to remove the
+@file{~/News/marks} directory (perhaps selectively), so that flags are
+read from your @file{~/.newsrc.eld} instead of from the stale marks
+file, where this release will store flags for nntp. See a later entry
+for more information about nntp marks. Note that downgrading isn't
+safe in general.
+
+@item Lisp files are now installed in @file{.../site-lisp/gnus/} by default.
+It defaulted to @file{.../site-lisp/} formerly. In addition to this,
+the new installer issues a warning if other Gnus installations which
+will shadow the latest one are detected. You can then remove those
+shadows manually or remove them using @code{make
+remove-installed-shadows}.
+@end itemize
+
+@item New packages and libraries within Gnus
+
+@itemize @bullet
+
+@item Gnus includes the Emacs Lisp @acronym{SASL} library.
+
+This provides a clean @acronym{API} to @acronym{SASL} mechanisms from
+within Emacs. The user visible aspects of this, compared to the earlier
+situation, include support for @acronym{DIGEST}-@acronym{MD5} and
+@acronym{NTLM}. @xref{Top, ,Emacs SASL, sasl, Emacs SASL}.
+
+@item ManageSieve connections uses the @acronym{SASL} library by default.
+
+The primary change this brings is support for @acronym{DIGEST-MD5} and
+@acronym{NTLM}, when the server supports it.
+
+@item Gnus includes a password cache mechanism in password.el.
+
+It is enabled by default (see @code{password-cache}), with a short
+timeout of 16 seconds (see @code{password-cache-expiry}). If
+@acronym{PGG} is used as the @acronym{PGP} back end, the @acronym{PGP}
+passphrase is managed by this mechanism. Passwords for ManageSieve
+connections are managed by this mechanism, after querying the user
+about whether to do so.
+@end itemize
+
+@item Changes in summary and article mode
+
+@itemize @bullet
+
+@item Gnus now supports sticky article buffers. Those are article buffers
+that are not reused when you select another article. @xref{Sticky
+Articles}.
+
+@item International host names (@acronym{IDNA}) can now be decoded
+inside article bodies using @kbd{W i}
+(@code{gnus-summary-idna-message}). This requires that GNU Libidn
+(@url{http://www.gnu.org/software/libidn/}) has been installed.
+@c FIXME: Also mention @code{message-use-idna}?
+
+@item The non-@acronym{ASCII} group names handling has been much
+improved. The back ends that fully support non-@acronym{ASCII} group
+names are now @code{nntp}, @code{nnml}, and @code{nnrss}. Also the
+agent, the cache, and the marks features work with those back ends.
+@xref{Non-ASCII Group Names}.
+
+@item Gnus now displays @acronym{DNS} master files sent as text/dns
+using dns-mode.
+
+@item Gnus supports new limiting commands in the Summary buffer:
+@kbd{/ r} (@code{gnus-summary-limit-to-replied}) and @kbd{/ R}
+(@code{gnus-summary-limit-to-recipient}). @xref{Limiting}.
+
+@item You can now fetch all ticked articles from the server using
+@kbd{Y t} (@code{gnus-summary-insert-ticked-articles}). @xref{Summary
+Generation Commands}.
+
+@item Gnus supports a new sort command in the Summary buffer:
+@kbd{C-c C-s C-t} (@code{gnus-summary-sort-by-recipient}). @xref{Summary
+Sorting}.
+
+@item @acronym{S/MIME} now features @acronym{LDAP} user certificate searches.
+You need to configure the server in @code{smime-ldap-host-list}.
+
+@item URLs inside Open@acronym{PGP} headers are retrieved and imported
+to your PGP key ring when you click on them.
+
+@item
+Picons can be displayed right from the textual address, see
+@code{gnus-picon-style}. @xref{Picons}.
+
+@item @acronym{ANSI} @acronym{SGR} control sequences can be transformed
+using @kbd{W A}.
+
+@acronym{ANSI} sequences are used in some Chinese hierarchies for
+highlighting articles (@code{gnus-article-treat-ansi-sequences}).
+
+@item Gnus now MIME decodes articles even when they lack "MIME-Version" header.
+This changes the default of @code{gnus-article-loose-mime}.
+
+@item @code{gnus-decay-scores} can be a regexp matching score files.
+For example, set it to @samp{\\.ADAPT\\'} and only adaptive score files
+will be decayed. @xref{Score Decays}.
+
+@item Strings prefixing to the @code{To} and @code{Newsgroup} headers in
+summary lines when using @code{gnus-ignored-from-addresses} can be
+customized with @code{gnus-summary-to-prefix} and
+@code{gnus-summary-newsgroup-prefix}. @xref{To From Newsgroups}.
+
+@item You can replace @acronym{MIME} parts with external bodies.
+See @code{gnus-mime-replace-part} and @code{gnus-article-replace-part}.
+@xref{MIME Commands}, @ref{Using MIME}.
+
+@item
+The option @code{mm-fill-flowed} can be used to disable treatment of
+format=flowed messages. Also, flowed text is disabled when sending
+inline @acronym{PGP} signed messages. @xref{Flowed text, ,Flowed text,
+emacs-mime, The Emacs MIME Manual}. (New in Gnus 5.10.7)
+@c This entry is also present in the node "Oort Gnus".
+
+@end itemize
+
+@item Changes in Message mode
+
+@itemize @bullet
+@item Gnus now supports the ``hashcash'' client puzzle anti-spam mechanism.
+Use @code{(setq message-generate-hashcash t)} to enable.
+@xref{Hashcash}.
+
+@item You can now drag and drop attachments to the Message buffer.
+See @code{mml-dnd-protocol-alist} and @code{mml-dnd-attach-options}.
+@xref{MIME, ,MIME, message, Message Manual}.
+
+@item The option @code{message-yank-empty-prefix} now controls how
+empty lines are prefixed in cited text. @xref{Insertion Variables,
+,Insertion Variables, message, Message Manual}.
+
+@item Gnus uses narrowing to hide headers in Message buffers.
+The @code{References} header is hidden by default. To make all
+headers visible, use @code{(setq message-hidden-headers nil)}.
+@xref{Message Headers, ,Message Headers, message, Message Manual}.
+
+@item You can highlight different levels of citations like in the
+article buffer. See @code{gnus-message-highlight-citation}.
+
+@item @code{auto-fill-mode} is enabled by default in Message mode.
+See @code{message-fill-column}. @xref{Various Message Variables, ,
+Message Headers, message, Message Manual}.
+
+@item You can now store signature files in a special directory
+named @code{message-signature-directory}.
+
+@item The option @code{message-citation-line-format} controls the format
+of the "Whomever writes:" line. You need to set
+@code{message-citation-line-function} to
+@code{message-insert-formatted-citation-line} as well.
+@end itemize
+
+@item Changes in back ends
+
+@itemize @bullet
+@item The nntp back end stores article marks in @file{~/News/marks}.
+
+The directory can be changed using the (customizable) variable
+@code{nntp-marks-directory}, and marks can be disabled using the
+(back end) variable @code{nntp-marks-is-evil}. The advantage of this
+is that you can copy @file{~/News/marks} (using rsync, scp or
+whatever) to another Gnus installation, and it will realize what
+articles you have read and marked. The data in @file{~/News/marks}
+has priority over the same data in @file{~/.newsrc.eld}.
+
+@item
+You can import and export your @acronym{RSS} subscriptions from
+@acronym{OPML} files. @xref{RSS}.
+
+@item @acronym{IMAP} identity (@acronym{RFC} 2971) is supported.
+
+By default, Gnus does not send any information about itself, but you can
+customize it using the variable @code{nnimap-id}.
+
+@item The @code{nnrss} back end now supports multilingual text.
+Non-@acronym{ASCII} group names for the @code{nnrss} groups are also
+supported. @xref{RSS}.
+
+@item Retrieving mail with @acronym{POP3} is supported over @acronym{SSL}/@acronym{TLS} and with StartTLS.
+
+@item The nnml back end allows other compression programs beside @file{gzip}
+for compressed message files. @xref{Mail Spool}.
+
+@item The nnml back end supports group compaction.
+
+This feature, accessible via the functions
+@code{gnus-group-compact-group} (@kbd{G z} in the group buffer) and
+@code{gnus-server-compact-server} (@kbd{z} in the server buffer)
+renumbers all articles in a group, starting from 1 and removing gaps.
+As a consequence, you get a correct total article count (until
+messages are deleted again).
+@end itemize
+
+@item Appearance
+@c Maybe it's not worth to separate this from "Miscellaneous"?
+
+@itemize @bullet
+
+@item The tool bar has been updated to use GNOME icons.
+You can also customize the tool bar. There's no documentation in the
+manual yet, but @kbd{M-x customize-apropos RET -tool-bar$} should get
+you started. (Only for Emacs, not in XEmacs.)
+@c FIXME: Document this in the manual
+
+@item The tool bar icons are now (de)activated correctly
+in the group buffer, see the variable @code{gnus-group-update-tool-bar}.
+Its default value depends on your Emacs version.
+@c FIXME: Document this in the manual
+
+@item You can change the location of XEmacs' toolbars in Gnus buffers.
+See @code{gnus-use-toolbar} and @code{message-use-toolbar}.
+
+@end itemize
+
+@item Miscellaneous changes
+
+@itemize @bullet
+@item Having edited the select-method for the foreign server in the
+server buffer is immediately reflected to the subscription of the groups
+which use the server in question. For instance, if you change
+@code{nntp-via-address} into @samp{bar.example.com} from
+@samp{foo.example.com}, Gnus will connect to the news host by way of the
+intermediate host @samp{bar.example.com} from next time.
+
+@item The @file{all.SCORE} file can be edited from the group buffer
+using @kbd{W e}.
+
+@end itemize
+
+@end itemize
+
+@c gnus-news.texi ends here.
+
+@ignore
+ arch-tag: 872c7569-4340-4d73-9d1d-7826d9f94a51
+@end ignore
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 4093b061f74..97e70c1cec2 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -6,6 +6,8 @@
@syncodeindex vr cp
@syncodeindex pg cp
+@documentencoding ISO-8859-1
+
@copying
Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@@ -50,7 +52,7 @@ license to the document, as described in section 6 of the license.
\begin{document}
% Adjust ../Makefile.in if you change the following line:
-\newcommand{\gnusversionname}{Gnus v5.11}
+\newcommand{\gnusversionname}{Gnus v5.13}
\newcommand{\gnuschaptername}{}
\newcommand{\gnussectionname}{}
@@ -360,7 +362,7 @@ spool or your mbox file. All at the same time, if you want to push your
luck.
@c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to Gnus v5.11.
+This manual corresponds to Gnus v5.13
@end ifinfo
@@ -412,6 +414,7 @@ Other related manuals
* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts.
* Sieve:(sieve). Managing Sieve scripts in Emacs.
* PGG:(pgg). @acronym{PGP/MIME} with Gnus.
+* SASL:(sasl). @acronym{SASL} authentication in Emacs.
@detailmenu
--- The Detailed Node Listing ---
@@ -454,6 +457,7 @@ Group Buffer
* Browse Foreign Server:: You can browse a server. See what it has to offer.
* Exiting Gnus:: Stop reading news and get some work done.
* Group Topics:: A folding group mode divided into topics.
+* Non-ASCII Group Names:: Accessing groups of non-English names.
* Misc Group Stuff:: Other stuff that you can to do.
Group Buffer Format
@@ -493,6 +497,7 @@ Summary Buffer
* Asynchronous Fetching:: Gnus might be able to pre-fetch articles.
* Article Caching:: You may store articles in a cache.
* Persistent Articles:: Making articles expiry-resistant.
+* Sticky Articles:: Article buffers that are not reused.
* Article Backlog:: Having already read articles hang around.
* Saving Articles:: Ways of customizing article saving.
* Decoding Articles:: Gnus can treat series of (uu)encoded articles.
@@ -646,6 +651,7 @@ Getting News
* Direct Functions:: Connecting directly to the server.
* Indirect Functions:: Connecting indirectly to the server.
* Common Variables:: Understood by several connection functions.
+* NNTP marks:: Storing marks for @acronym{NNTP} servers.
Getting Mail
@@ -749,6 +755,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.
@@ -784,17 +791,9 @@ Scoring
* Global Score Files:: Earth-spanning, ear-splitting score files.
* Kill Files:: They are still here, but they can be ignored.
* Converting Kill Files:: Translating kill files to score files.
-* GroupLens:: Getting predictions on what you like to read.
* Advanced Scoring:: Using logical expressions to build score rules.
* Score Decays:: It can be useful to let scores wither away.
-GroupLens
-
-* Using GroupLens:: How to make Gnus use GroupLens.
-* Rating Articles:: Letting GroupLens know how you rate articles.
-* Displaying Predictions:: Displaying predictions given by GroupLens.
-* GroupLens Variables:: Customizing GroupLens.
-
Advanced Scoring
* Advanced Scoring Syntax:: A definition.
@@ -901,6 +900,7 @@ New Features
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
* Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11.
+* No Gnus:: Very punny.
Customization
@@ -1067,6 +1067,11 @@ you would typically set this variable to
(setq gnus-secondary-select-methods '((nnmbox "")))
@end lisp
+Note: the @acronym{NNTP} back end stores marks in marks files
+(@pxref{NNTP marks}). This feature makes it easy to share marks between
+several Gnus installations, but may slow down things a bit when fetching
+new articles. @xref{NNTP marks}, for more information.
+
@node The First Time
@section The First Time
@@ -1718,6 +1723,7 @@ long as Gnus is active.
* Browse Foreign Server:: You can browse a server. See what it has to offer.
* Exiting Gnus:: Stop reading news and get some work done.
* Group Topics:: A folding group mode divided into topics.
+* Non-ASCII Group Names:: Accessing groups of non-English names.
* Misc Group Stuff:: Other stuff that you can to do.
@end menu
@@ -1819,8 +1825,15 @@ the true unread message count is not possible efficiently. For
hysterical raisins, even the mail back ends, where the true number of
unread messages might be available efficiently, use the same limited
interface. To remove this restriction from Gnus means that the back
-end interface has to be changed, which is not an easy job. If you
-want to work on this, please contact the Gnus mailing list.
+end interface has to be changed, which is not an easy job.
+
+The nnml backend (@pxref{Mail Spool}) has a feature called ``group
+compaction'' which circumvents this deficiency: the idea is to
+renumber all articles from 1, removing all gaps between numbers, hence
+getting a correct total count. Other backends may support this in the
+future. In order to keep your total article count relatively up to
+date, you might want to compact your groups (or even directly your
+server) from time to time. @xref{Misc Group Stuff}, @xref{Server Commands}.
@item y
Number of unread, unticked, non-dormant articles.
@@ -1886,6 +1899,12 @@ the group lately.
A string that says when you last read the group (@pxref{Group
Timestamp}).
+@item F
+The disk space used by the articles fetched by both the cache and
+agent. The value is automatically scaled to bytes(B), kilobytes(K),
+megabytes(M), or gigabytes(G) to minimize the column width. A format
+of %7F is sufficient for a fixed-width column.
+
@item u
User defined specifier. The next character in the format string should
be a letter. Gnus will call the function
@@ -2071,6 +2090,11 @@ commands will move to the next group, not the next unread group. Even
the commands that say they move to the next unread group. The default
is @code{t}.
+@vindex gnus-summary-next-group-on-exit
+If @code{gnus-summary-next-group-on-exit} is @code{t}, when a summary is
+exited, the point in the group buffer is moved to the next unread group.
+Otherwise, the point is set to the group just exited. The default is
+@code{t}.
@node Selecting a Group
@section Selecting a Group
@@ -2988,6 +3012,15 @@ like this in the group parameters:
(signature "Funky Signature"))
@end example
+If you're using topics to organize your group buffer
+(@pxref{Group Topics}), note that posting styles can also be set in
+the topics parameters. Posting styles in topic parameters apply to all
+groups in this topic. More precisely, the posting-style settings for a
+group result from the hierarchical merging of all posting-style
+entries in the parameters of this group and all the topics it belongs
+to.
+
+
@item post-method
@cindex post-method
If it is set, the value is used as the method for posting message
@@ -3014,11 +3047,25 @@ translating the group parameter into a Sieve script (@pxref{Sieve
Commands}) the following Sieve code is generated:
@example
-if address \"sender\" \"sieve-admin@@extundo.com\" @{
- fileinto \"INBOX.list.sieve\";
+if address "sender" "sieve-admin@@extundo.com" @{
+ fileinto "INBOX.list.sieve";
+@}
+@end example
+
+To generate tests for multiple email-addresses use a group parameter
+like @code{(sieve address "sender" ("name@@one.org" else@@two.org"))}.
+When generating a sieve script (@pxref{Sieve Commands}) Sieve code
+like the following is generated:
+
+@example
+if address "sender" ["name@@one.org", "else@@two.org"] @{
+ fileinto "INBOX.list.sieve";
@}
@end example
+See @pxref{Sieve Commands} for commands and variables that might be of
+interest in relation to the sieve parameter.
+
The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve,
Top, sieve, Emacs Sieve}.
@@ -3132,6 +3179,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 reverse date to see the latest news at the top and an
+@acronym{RSS} group by subject. 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
@@ -3847,7 +3921,7 @@ Go to the next topic (@code{gnus-topic-goto-next-topic}).
@item T M-p
@kindex T M-p (Topic)
@findex gnus-topic-goto-previous-topic
-Go to the next topic (@code{gnus-topic-goto-previous-topic}).
+Go to the previous topic (@code{gnus-topic-goto-previous-topic}).
@item G p
@kindex G p (Topic)
@@ -4086,6 +4160,132 @@ happen. In fact, I hereby declare that it is @dfn{undefined} what
happens. You just have to be careful if you do stuff like that.
+@node Non-ASCII Group Names
+@section Accessing groups of non-English names
+@cindex non-ascii group names
+
+There are some news servers that provide groups of which the names are
+expressed with their native languages in the world. For instance, in a
+certain news server there are some newsgroups of which the names are
+spelled in Chinese, where people are talking in Chinese. You can, of
+course, subscribe to such news groups using Gnus. Currently Gnus
+supports non-@acronym{ASCII} group names not only with the @code{nntp}
+back end but also with the @code{nnml} back end and the @code{nnrss}
+back end.
+
+Every such group name is encoded by a certain charset in the server
+side (in an @acronym{NNTP} server its administrator determines the
+charset, but for groups in the other back ends it is determined by you).
+Gnus has to display the decoded ones for you in the group buffer and the
+article buffer, and needs to use the encoded ones when communicating
+with servers. However, Gnus doesn't know what charset is used for each
+non-@acronym{ASCII} group name. The following two variables are just
+the ones for telling Gnus what charset should be used for each group:
+
+@table @code
+@item gnus-group-name-charset-method-alist
+@vindex gnus-group-name-charset-method-alist
+An alist of select methods and charsets. The default value is
+@code{nil}. The names of groups in the server specified by that select
+method are all supposed to use the corresponding charset. For example:
+
+@lisp
+(setq gnus-group-name-charset-method-alist
+ '(((nntp "news.com.cn") . cn-gb-2312)))
+@end lisp
+
+Charsets specified for groups with this variable are preferred to the
+ones specified for the same groups with the
+@code{gnus-group-name-charset-group-alist} variable (see below).
+
+A select method can be very long, like:
+
+@lisp
+(nntp "gmane"
+ (nntp-address "news.gmane.org")
+ (nntp-end-of-line "\n")
+ (nntp-open-connection-function
+ nntp-open-via-rlogin-and-telnet)
+ (nntp-via-rlogin-command "ssh")
+ (nntp-via-rlogin-command-switches
+ ("-C" "-t" "-e" "none"))
+ (nntp-via-address @dots{}))
+@end lisp
+
+In that case, you can truncate it into @code{(nntp "gmane")} in this
+variable. That is, it is enough to contain only the back end name and
+the server name.
+
+@item gnus-group-name-charset-group-alist
+@cindex UTF-8 group names
+@vindex gnus-group-name-charset-group-alist
+An alist of regexp of group name and the charset for group names.
+@code{((".*" . utf-8))} is the default value if UTF-8 is supported,
+otherwise the default is @code{nil}. For example:
+
+@lisp
+(setq gnus-group-name-charset-group-alist
+ '(("\\.com\\.cn:" . cn-gb-2312)
+ (".*" . utf-8)))
+@end lisp
+
+Note that this variable is ignored if the match is made with
+@code{gnus-group-name-charset-method-alist}.
+@end table
+
+Those two variables are used also to determine the charset for encoding
+and decoding non-@acronym{ASCII} group names that are in the back ends
+other than @code{nntp}. It means that it is you who determine it. If
+you do nothing, the charset used for group names in those back ends will
+all be @code{utf-8} because of the last element of
+@code{gnus-group-name-charset-group-alist}.
+
+There is one more important variable for non-@acronym{ASCII} group
+names. @emph{XEmacs users must set this}. Emacs users necessarily need
+not do:
+
+@table @code
+@item nnmail-pathname-coding-system
+The value of this variable should be a coding system or @code{nil}
+(which is the default). The @code{nnml} back end, the @code{nnrss} back
+end, the @acronym{NNTP} marks feature (@pxref{NNTP marks}), the agent,
+and the cache use non-@acronym{ASCII} group names in those files and
+directories. This variable overrides the value of
+@code{file-name-coding-system} which specifies the coding system used
+when encoding and decoding those file names and directory names.
+
+In XEmacs (with the @code{mule} feature), @code{file-name-coding-system}
+is the only means to specify the coding system used to encode and decode
+file names. Therefore, @emph{you, XEmacs users, have to set it} to the
+coding system that is suitable to encode and decode non-@acronym{ASCII}
+group names. On the other hand, Emacs uses the value of
+@code{default-file-name-coding-system} if @code{file-name-coding-system}
+is @code{nil}. Normally the value of
+@code{default-file-name-coding-system} is initialized according to the
+locale, so you will need to do nothing if the value is suitable to
+encode and decode non-@acronym{ASCII} group names.
+
+The value of this variable (or @code{default-file-name-coding-system})
+does not necessarily need to be the same value that is determined by
+@code{gnus-group-name-charset-method-alist} and
+@code{gnus-group-name-charset-group-alist}.
+
+If you want to subscribe to the groups spelled in Chinese but
+@code{default-file-name-coding-system} is initialized by default to
+@code{iso-latin-1} for example, that is the most typical case where you
+have to set @code{nnmail-pathname-coding-system} even if you are an
+Emacs user. The @code{utf-8} coding system is a good candidate for it.
+Otherwise, you may change the locale in your system so that
+@code{default-file-name-coding-system} may be initialized to an
+appropriate value, instead of specifying this variable.
+@end table
+
+Note that when you copy or move articles from a non-@acronym{ASCII}
+group to another group, the charset used to encode and decode group
+names should be the same in both groups. Otherwise the Newsgroups
+header will be displayed incorrectly in the article buffer.
+
+
@node Misc Group Stuff
@section Misc Group Stuff
@@ -4152,6 +4352,15 @@ sending them over the network: they're just saved directly to the group
in question. The corresponding back end must have a request-post method
for this to work though.
+@item G z
+@kindex G z (Group)
+@findex gnus-group-compact-group
+
+Compact the group under point (@code{gnus-group-compact-group}).
+Currently implemented only in nnml (@pxref{Mail Spool}). This removes
+gaps between article numbers, hence getting a correct total article
+count.
+
@end table
Variables for the group buffer:
@@ -4179,31 +4388,6 @@ generated. It may be used to move point around, for instance.
Groups matching this regexp will always be listed in the group buffer,
whether they are empty or not.
-@item gnus-group-name-charset-method-alist
-@vindex gnus-group-name-charset-method-alist
-An alist of method and the charset for group names. It is used to show
-non-@acronym{ASCII} group names.
-
-For example:
-@lisp
-(setq gnus-group-name-charset-method-alist
- '(((nntp "news.com.cn") . cn-gb-2312)))
-@end lisp
-
-@item gnus-group-name-charset-group-alist
-@cindex UTF-8 group names
-@vindex gnus-group-name-charset-group-alist
-An alist of regexp of group name and the charset for group names. It
-is used to show non-@acronym{ASCII} group names. @code{((".*"
-utf-8))} is the default value if UTF-8 is supported, otherwise the
-default is @code{nil}.
-
-For example:
-@lisp
-(setq gnus-group-name-charset-group-alist
- '(("\\.com\\.cn:" . cn-gb-2312)))
-@end lisp
-
@end table
@node Scanning New Messages
@@ -4536,6 +4720,7 @@ command or better use it as a prefix key. For example:
* Asynchronous Fetching:: Gnus might be able to pre-fetch articles.
* Article Caching:: You may store articles in a cache.
* Persistent Articles:: Making articles expiry-resistant.
+* Sticky Articles:: Article buffers that are not reused.
* Article Backlog:: Having already read articles hang around.
* Saving Articles:: Ways of customizing article saving.
* Decoding Articles:: Gnus can treat series of (uu)encoded articles.
@@ -4838,6 +5023,13 @@ summary line spec returns the @code{To}, @code{Newsreader} or
@code{From} header, the value of the @code{To} or @code{Newsreader}
headers are used instead.
+To distinguish regular articles from those where the @code{From} field
+has been swapped, a string is prefixed to the @code{To} or
+@code{Newsgroups} header in the summary line. By default the string is
+@samp{-> } for @code{To} and @samp{=> } for @code{Newsgroups}, you can
+customize these strings with @code{gnus-summary-to-prefix} and
+@code{gnus-summary-newsgroup-prefix}.
+
@end enumerate
@vindex nnmail-extra-headers
@@ -6362,6 +6554,27 @@ Limit the summary buffer to articles that match some author
(@code{gnus-summary-limit-to-author}). If given a prefix, exclude
matching articles.
+@item / R
+@kindex / R (Summary)
+@findex gnus-summary-limit-to-recipient
+Limit the summary buffer to articles that match some recipient
+(@code{gnus-summary-limit-to-recipient}). If given a prefix, exclude
+matching articles.
+
+@item / A
+@kindex / A (Summary)
+@findex gnus-summary-limit-to-address
+Limit the summary buffer to articles in which contents of From, To or Cc
+header match a given address (@code{gnus-summary-limit-to-address}). If
+given a prefix, exclude matching articles.
+
+@item / S
+@kindex / S (Summary)
+@findex gnus-summary-limit-to-singletons
+Limit the summary buffer to articles that aren't part of any displayed
+threads (@code{gnus-summary-limit-to-singletons}). If given a prefix,
+limit to articles that are part of displayed threads.
+
@item / x
@kindex / x (Summary)
@findex gnus-summary-limit-to-extra
@@ -6427,6 +6640,13 @@ group parameter predicate
(@code{gnus-summary-limit-to-display-predicate}). @xref{Group
Parameters}, for more on this predicate.
+@item / r
+@kindex / r (Summary)
+@findex gnus-summary-limit-to-replied
+Limit the summary buffer to replied articles
+(@code{gnus-summary-limit-to-replied}). If given a prefix, exclude
+replied articles.
+
@item / E
@itemx M S
@kindex M S (Summary)
@@ -6488,6 +6708,20 @@ if @var{back-end}@code{-get-new-mail} is non-@code{nil}.
Insert all old articles in the summary buffer. If given a numbered
prefix, fetch this number of articles.
+@item / b
+@kindex / b (Summary)
+@findex gnus-summary-limit-to-bodies
+Limit the summary buffer to articles that have bodies that match a
+certain regexp (@code{gnus-summary-limit-to-bodies}). If given a
+prefix, reverse the limit. This command is quite slow since it
+requires selecting each article to find the matches.
+
+@item / h
+@kindex / h (Summary)
+@findex gnus-summary-limit-to-headers
+Like the previous command, only limit to headers instead
+(@code{gnus-summary-limit-to-headers}).
+
@end table
@@ -6988,6 +7222,12 @@ summary buffer is otherwise unthreaded.
Make the current article the child of the marked (or previous) article
(@code{gnus-summary-reparent-thread}).
+@item T M-^
+@kindex T M-^ (Summary)
+@findex gnus-summary-reparent-children
+Make the current article the parent of the marked articles
+(@code{gnus-summary-reparent-children}).
+
@end table
The following commands are thread movement commands. They all
@@ -7052,6 +7292,7 @@ Matching}).
@findex gnus-thread-sort-by-score
@findex gnus-thread-sort-by-subject
@findex gnus-thread-sort-by-author
+@findex gnus-thread-sort-by-recipient
@findex gnus-thread-sort-by-number
@findex gnus-thread-sort-by-random
@vindex gnus-thread-sort-functions
@@ -7064,8 +7305,10 @@ function, a list of functions, or a list containing functions and
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},
-@code{gnus-thread-sort-by-date}, @code{gnus-thread-sort-by-score},
+@code{gnus-thread-sort-by-author}, @code{gnus-thread-sort-by-recipient},
+@code{gnus-thread-sort-by-subject},
+@code{gnus-thread-sort-by-date},
+@code{gnus-thread-sort-by-score},
@code{gnus-thread-sort-by-most-recent-number},
@code{gnus-thread-sort-by-most-recent-date},
@code{gnus-thread-sort-by-random} and
@@ -7103,8 +7346,7 @@ 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
@@ -7141,6 +7383,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
@@ -7362,6 +7606,53 @@ interested in persistent articles:
(setq gnus-use-cache 'passive)
@end lisp
+@node Sticky Articles
+@section Sticky Articles
+@cindex sticky articles
+
+When you select an article the current article buffer will be reused
+according to the value of the variable
+@code{gnus-single-article-buffer}. If its value is non-@code{nil} (the
+default) all articles reuse the same article buffer. Else each group
+has its own article buffer.
+
+This implies that it's not possible to have more than one article buffer
+in a group at a time. But sometimes you might want to display all the
+latest emails from your mother, your father, your aunt, your uncle and
+your 17 cousins to coordinate the next christmas party.
+
+That's where sticky articles come in handy. A sticky article buffer
+basically is a normal article buffer, but it won't be reused when you
+select another article. You can make an article sticky with:
+
+@table @kbd
+@item A S
+@kindex A S (Summary)
+@findex gnus-sticky-article
+Make the current article sticky. If a prefix arg is given, ask for a
+name for this sticky article buffer.
+@end table
+
+To close a sticky article buffer you can use these commands:
+
+@table @kbd
+@item q
+@kindex q (Article)
+@findex bury-buffer
+Puts this sticky article buffer at the end of the list of all buffers.
+
+@item k
+@kindex k (Article)
+@findex gnus-kill-sticky-article-buffer
+Kills this sticky article buffer.
+@end table
+
+To kill all sticky article buffers you can use:
+
+@defun gnus-kill-sticky-article-buffers ARG
+Kill all sticky article buffers.
+If a prefix ARG is given, ask for confirmation.
+@end defun
@node Article Backlog
@section Article Backlog
@@ -8555,6 +8846,16 @@ is rumored to have employed this form of, uh, somewhat weak encryption.
@findex gnus-summary-morse-message
Morse decode the article buffer (@code{gnus-summary-morse-message}).
+@item W i
+@kindex W i (Summary)
+@findex gnus-summary-idna-message
+Decode IDNA encoded domain names in the current articles. IDNA
+encoded domain names looks like @samp{xn--bar}. If a string remain
+unencoded after running invoking this, it is likely an invalid IDNA
+string (@samp{xn--bar} is invalid). You must have GNU Libidn
+(@url{http://www.gnu.org/software/libidn/}) installed for this command
+to work.
+
@item W t
@item t
@kindex W t (Summary)
@@ -8657,9 +8958,9 @@ CRs into LF (this takes care of Mac line endings)
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é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
+makes strings like @samp{d@'ej@`a 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
has been done. If a prefix is given, a charset will be asked for.
@@ -8680,6 +8981,14 @@ Treat HZ or HZP (@code{gnus-article-decode-HZ}). HZ (or HZP) is one
common encoding employed when sending Chinese articles. It typically
makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}.
+@item W A
+@kindex W A (Summary)
+@findex gnus-article-treat-ansi-sequences
+@cindex @acronym{ANSI} control sequences
+Translate @acronym{ANSI} SGR control sequences into overlays or
+extents (@code{gnus-article-treat-ansi-sequences}). @acronym{ANSI}
+sequences are used in some Chinese hierarchies for highlighting.
+
@item W u
@kindex W u (Summary)
@findex gnus-article-unsplit-urls
@@ -9307,7 +9616,7 @@ Translate the article from one language to another
@cindex viewing attachments
The following commands all understand the numerical prefix. For
-instance, @kbd{3 b} means ``view the third @acronym{MIME} part''.
+instance, @kbd{3 K v} means ``view the third @acronym{MIME} part''.
@table @kbd
@item b
@@ -9320,6 +9629,21 @@ View the @acronym{MIME} part.
@kindex K o (Summary)
Save the @acronym{MIME} part.
+@item K O
+@kindex K O (Summary)
+Prompt for a file name, then save the @acronym{MIME} part and strip it
+from the article. The stripped @acronym{MIME} object will be referred
+via the message/external-body @acronym{MIME} type.
+
+@item K r
+@kindex K r (Summary)
+Replace the @acronym{MIME} part with an external body.
+
+@item K d
+@kindex K d (Summary)
+Delete the @acronym{MIME} part and add some information about the
+removed part.
+
@item K c
@kindex K c (Summary)
Copy the @acronym{MIME} part.
@@ -9677,6 +10001,11 @@ Sort by article number (@code{gnus-summary-sort-by-number}).
@findex gnus-summary-sort-by-author
Sort by author (@code{gnus-summary-sort-by-author}).
+@item C-c C-s C-t
+@kindex C-c C-s C-t (Summary)
+@findex gnus-summary-sort-by-recipient
+Sort by recipient (@code{gnus-summary-sort-by-recipient}).
+
@item C-c C-s C-s
@kindex C-c C-s C-s (Summary)
@findex gnus-summary-sort-by-subject
@@ -10401,6 +10730,18 @@ Search through all subsequent (raw) articles for a regexp
Search through all previous (raw) articles for a regexp
(@code{gnus-summary-search-article-backward}).
+@item M-S
+@kindex M-S (Summary)
+@findex gnus-summary-repeat-search-article-forward
+Repeat the previous search forwards
+(@code{gnus-summary-repeat-search-article-forward}).
+
+@item M-R
+@kindex M-R (Summary)
+@findex gnus-summary-repeat-search-article-backward
+Repeat the previous search backwards
+(@code{gnus-summary-repeat-search-article-backward}).
+
@item &
@kindex & (Summary)
@findex gnus-summary-execute-command
@@ -10442,6 +10783,12 @@ Pull all cached articles (for the current group) into the summary buffer
Pull all dormant articles (for the current group) into the summary buffer
(@code{gnus-summary-insert-dormant-articles}).
+@item Y t
+@kindex Y t (Summary)
+@findex gnus-summary-insert-ticked-articles
+Pull all ticked articles (for the current group) into the summary buffer
+(@code{gnus-summary-insert-ticked-articles}).
+
@end table
@@ -10464,6 +10811,28 @@ whenever you see a message that is a collection of other messages of
some format, you @kbd{C-d} and read these messages in a more convenient
fashion.
+@vindex gnus-auto-select-on-ephemeral-exit
+The variable @code{gnus-auto-select-on-ephemeral-exit} controls what
+article should be selected after exiting a digest group. Valid values
+include:
+
+@table @code
+@item next
+Select the next article.
+
+@item next-unread
+Select the next unread article.
+
+@item next-noselect
+Move the cursor to the next article. This is the default.
+
+@item next-unread-noselect
+Move the cursor to the next unread article.
+@end table
+
+If it has any other value or there is no next (unread) article, the
+article selected before entering to the digest group will appear.
+
@item C-M-d
@kindex C-M-d (Summary)
@findex gnus-summary-read-document
@@ -10562,6 +10931,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)
@@ -10891,7 +11266,7 @@ Send a message to the mailing list owner, if List-Owner field exists.
@item C-c C-n a
@kindex C-c C-n a (Summary)
-@findex gnus-mailing-list-owner
+@findex gnus-mailing-list-archive
Browse the mailing list archive, if List-Archive field exists.
@end table
@@ -11111,6 +11486,13 @@ like. The stripped @acronym{MIME} object will be referred via the
message/external-body @acronym{MIME} type.
(@code{gnus-mime-save-part-and-strip}).
+@findex gnus-mime-replace-part
+@item r (Article)
+@kindex r (Article)
+Prompt for a file name, replace the @acronym{MIME} object with an
+external body refering to the file via the message/external-body
+@acronym{MIME} type. (@code{gnus-mime-replace-part}).
+
@findex gnus-mime-delete-part
@item d (Article)
@kindex d (Article)
@@ -11118,11 +11500,16 @@ Delete the @acronym{MIME} object from the article and replace it with some
information about the removed @acronym{MIME} object
(@code{gnus-mime-delete-part}).
+@c FIXME: gnus-auto-select-part should be documented here
+
@findex gnus-mime-copy-part
@item c (Article)
@kindex c (Article)
Copy the @acronym{MIME} object to a fresh buffer and display this buffer
-(@code{gnus-mime-copy-part}). Compressed files like @file{.gz} and
+(@code{gnus-mime-copy-part}). If given a prefix, copy the raw contents
+without decoding. If given a numerical prefix, you can do semi-manual
+charset stuff (see @code{gnus-summary-show-article-charset-alist} in
+@ref{Paging the Article}). Compressed files like @file{.gz} and
@file{.bz2} are automatically decompressed if
@code{auto-compression-mode} is enabled (@pxref{Compressed Files,,
Accessing Compressed Files, emacs, The Emacs Editor}).
@@ -11142,7 +11529,10 @@ Insert the contents of the @acronym{MIME} object into the buffer
the raw contents without decoding. If given a numerical prefix, you can
do semi-manual charset stuff (see
@code{gnus-summary-show-article-charset-alist} in @ref{Paging the
-Article}).
+Article}). Compressed files like @file{.gz} and @file{.bz2} are
+automatically decompressed depending on @code{jka-compr} regardless of
+@code{auto-compression-mode} (@pxref{Compressed Files,, Accessing
+Compressed Files, emacs, The Emacs Editor}).
@findex gnus-mime-view-part-internally
@item E (Article)
@@ -11217,7 +11607,10 @@ for sensible values.
@code{head}: Do the treatment on the headers.
@item
-@code{last}: Do this treatment on the last part.
+@code{first}: Do this treatment on the first body part.
+
+@item
+@code{last}: Do this treatment on the last body part.
@item
An integer: Do this treatment on all body parts that have a length less
@@ -11322,7 +11715,7 @@ possible but those listed are probably sufficient for most people.
@item gnus-treat-overstrike (t, integer)
@item gnus-treat-strip-cr (t, integer)
@item gnus-treat-strip-headers-in-body (t, integer)
-@item gnus-treat-strip-leading-blank-lines (t, integer)
+@item gnus-treat-strip-leading-blank-lines (t, first, integer)
@item gnus-treat-strip-multiple-blank-lines (t, integer)
@item gnus-treat-strip-pem (t, last, integer)
@item gnus-treat-strip-trailing-blank-lines (t, last, integer)
@@ -11403,6 +11796,7 @@ is controlled by @code{gnus-body-boundary-delimiter}.
@item gnus-treat-play-sounds
@vindex gnus-treat-translate
@item gnus-treat-translate
+@item gnus-treat-ansi-sequences (t)
@vindex gnus-treat-x-pgp-sig
@item gnus-treat-x-pgp-sig (head)
@@ -11615,7 +12009,8 @@ This is the delimiter mentioned above. By default, it is @samp{^L}
@item gnus-use-idna
This variable controls whether Gnus performs IDNA decoding of
internationalized domain names inside @samp{From}, @samp{To} and
-@samp{Cc} headers. This requires
+@samp{Cc} headers. @xref{IDNA, ,IDNA,message, The Message Manual},
+for how to compose such messages. This requires
@uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
variable is only enabled if you have installed it.
@@ -11873,6 +12268,10 @@ you're in, you could say something like the following:
Modify to suit your needs.
+@vindex gnus-message-highlight-citation
+If @code{gnus-message-highlight-citation} is t, different levels of
+citations are highlighted like in Gnus article buffers also in message
+mode buffers.
@node Archived Messages
@section Archived Messages
@@ -11891,7 +12290,8 @@ Group Commands}).
@vindex gnus-message-archive-method
@code{gnus-message-archive-method} says what virtual server Gnus is to
-use to store sent messages. The default is:
+use to store sent messages. The default is @code{"archive"}, and when
+actually being used it is expanded into:
@lisp
(nnfolder "archive"
@@ -11901,6 +12301,22 @@ use to store sent messages. The default is:
(nnfolder-inhibit-expiry t))
@end lisp
+@quotation
+@vindex gnus-update-message-archive-method
+Note: a server like this is saved in the @file{~/.newsrc.eld} file first
+so that it may be used as a real method of the server which is named
+@code{"archive"} (that is, for the case where
+@code{gnus-message-archive-method} is set to @code{"archive"}) ever
+since. If it once has been saved, it will never be updated by default
+even if you change the value of @code{gnus-message-archive-method}
+afterward. Therefore, the server @code{"archive"} doesn't necessarily
+mean the @code{nnfolder} server like this at all times. If you want the
+saved method to reflect always the value of
+@code{gnus-message-archive-method}, set the
+@code{gnus-update-message-archive-method} variable to a non-@code{nil}
+value. The default value of this variable is @code{nil}.
+@end quotation
+
You can, however, use any mail select method (@code{nnml},
@code{nnmbox}, etc.). @code{nnfolder} is a quite likable select method
for doing this sort of thing, though. If you don't like the default
@@ -12104,6 +12520,9 @@ name can be one of:
@item @code{body}
@end itemize
+Note that the @code{signature-file} attribute honors the variable
+@code{message-signature-directory}.
+
The attribute name can also be a string or a symbol. In that case,
this will be used as a header name, and the value will be inserted in
the headers of the article; if the value is @code{nil}, the header
@@ -12535,6 +12954,15 @@ Request that the server regenerate all its data structures
(@code{gnus-server-regenerate-server}). This can be useful if you have
a mail back end that has gotten out of sync.
+@item z
+@kindex z (Server)
+@findex gnus-server-compact-server
+
+Compact all groups in the server under point
+(@code{gnus-server-compact-server}). Currently implemented only in
+nnml (@pxref{Mail Spool}). This removes gaps between article numbers,
+hence getting a correct total article count.
+
@end table
@@ -12616,7 +13044,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
@@ -13006,9 +13446,9 @@ that doesn't seem to work.
It is possible to customize how the connection to the nntp server will
be opened. If you specify an @code{nntp-open-connection-function}
parameter, Gnus will use that function to establish the connection.
-Six pre-made functions are supplied. These functions can be grouped in
-two categories: direct connection functions (four pre-made), and
-indirect ones (two pre-made).
+Seven pre-made functions are supplied. These functions can be grouped
+in two categories: direct connection functions (four pre-made), and
+indirect ones (three pre-made).
@item nntp-never-echoes-commands
@vindex nntp-never-echoes-commands
@@ -13049,6 +13489,7 @@ INN versions 2.3.0 and later, for instance.
* Direct Functions:: Connecting directly to the server.
* Indirect Functions:: Connecting indirectly to the server.
* Common Variables:: Understood by several connection functions.
+* NNTP marks:: Storing marks for @acronym{NNTP} servers.
@end menu
@@ -13158,6 +13599,41 @@ the telnet command requires a pseudo-tty allocation on an intermediate
host.
@end table
+Note that you may want to change the value for @code{nntp-end-of-line}
+to @samp{\n} (@pxref{Common Variables}).
+
+@item nntp-open-via-rlogin-and-netcat
+@findex nntp-open-via-rlogin-and-netcat
+Does essentially the same, but uses
+@uref{http://netcat.sourceforge.net/, netcat} instead of @samp{telnet}
+to connect to the real @acronym{NNTP} server from the intermediate host.
+
+@code{nntp-open-via-rlogin-and-netcat}-specific variables:
+
+@table @code
+@item nntp-via-netcat-command
+@vindex nntp-via-netcat-command
+Command used to connect to the real @acronym{NNTP} server from the
+intermediate host. The default is @samp{nc}. You can also use other
+programs like @uref{http://www.imasy.or.jp/~gotoh/ssh/connect.html,
+connect} instead.
+
+@item nntp-via-netcat-switches
+@vindex nntp-via-netcat-switches
+List of strings to be used as the switches to the
+@code{nntp-via-telnet-command} command. The default is @code{nil}.
+
+@item nntp-via-rlogin-command
+@vindex nntp-via-rlogin-command
+Command used to log in on the intermediate host. The default is
+@samp{rsh}, but @samp{ssh} is a popular alternative.
+
+@item nntp-via-rlogin-command-switches
+@vindex nntp-via-rlogin-command-switches
+List of strings to be used as the switches to
+@code{nntp-via-rlogin-command}. The default is @code{nil}.
+@end table
+
@item nntp-open-via-telnet-and-telnet
@findex nntp-open-via-telnet-and-telnet
Does essentially the same, but uses @samp{telnet} instead of
@@ -13193,6 +13669,8 @@ is @samp{bash\\|\$ *\r?$\\|> *\r?}.
@end table
+Note that you may want to change the value for @code{nntp-end-of-line}
+to @samp{\n} (@pxref{Common Variables}).
@end table
@@ -13247,7 +13725,7 @@ not work with named ports.
@vindex nntp-end-of-line
String to use as end-of-line marker when talking to the @acronym{NNTP}
server. This is @samp{\r\n} by default, but should be @samp{\n} when
-using a non native connection function.
+using a non native telnet connection function.
@item nntp-telnet-command
@vindex nntp-telnet-command
@@ -13263,6 +13741,52 @@ is @samp{("-8")}.
@end table
+@node NNTP marks
+@subsubsection NNTP marks
+@cindex storing NNTP marks
+
+Gnus stores marks (@pxref{Marking Articles}) for @acronym{NNTP}
+servers in marks files. A marks file records what marks you have set
+in a group and each file is specific to the corresponding server.
+Marks files are stored in @file{~/News/marks}
+(@code{nntp-marks-directory}) under a classic hierarchy resembling
+that of a news server, for example marks for the group
+@samp{gmane.discuss} on the news.gmane.org server will be stored in
+the file @file{~/News/marks/news.gmane.org/gmane/discuss/.marks}.
+
+Marks files are useful because you can copy the @file{~/News/marks}
+directory (using rsync, scp or whatever) to another Gnus installation,
+and it will realize what articles you have read and marked. The data
+in @file{~/News/marks} has priority over the same data in
+@file{~/.newsrc.eld}.
+
+Note that marks files are very much server-specific: Gnus remembers
+the article numbers so if you don't use the same servers on both
+installations things are most likely to break (most @acronym{NNTP}
+servers do not use the same article numbers as any other server).
+However, if you use servers A, B, C on one installation and servers A,
+D, E on the other, you can sync the marks files for A and then you'll
+get synchronization for that server between the two installations.
+
+Using @acronym{NNTP} marks can possibly incur a performance penalty so
+if Gnus feels sluggish, try setting the @code{nntp-marks-is-evil}
+variable to @code{t}. Marks will then be stored in @file{~/.newsrc.eld}.
+
+Related variables:
+
+@table @code
+
+@item nntp-marks-is-evil
+@vindex nntp-marks-is-evil
+If non-@code{nil}, this back end will ignore any marks files. The
+default is @code{nil}.
+
+@item nntp-marks-directory
+@vindex nntp-marks-directory
+The directory where marks for nntp groups will be stored.
+
+@end table
+
@node News Spool
@subsection News Spool
@@ -13926,7 +14450,9 @@ mapped into the @code{imap-shell-program} variable. This should be a
ssh %s imapd
@end example
-The valid format specifier characters are:
+Make sure nothing is interfering with the output of the program, e.g.,
+don't forget to redirect the error output to the void. The valid format
+specifier characters are:
@table @samp
@item s
@@ -14342,7 +14868,7 @@ body of the messages:
The buffer is narrowed to the message in question when @var{function}
is run. That's why @code{(widen)} needs to be called after
@code{save-excursion} and @code{save-restriction} in the example
-above. Also note that with the nnimap backend, message bodies will
+above. Also note that with the nnimap back end, message bodies will
not be downloaded by default. You need to set
@code{nnimap-split-download-body} to @code{t} to do that
(@pxref{Splitting in IMAP}).
@@ -14956,12 +15482,16 @@ This can also be done non-destructively with
@findex nnmail-remove-tabs
Translate all @samp{TAB} characters into @samp{SPACE} characters.
-@item nnmail-fix-eudora-headers
-@findex nnmail-fix-eudora-headers
+@item nnmail-ignore-broken-references
+@findex nnmail-ignore-broken-references
+@c @findex nnmail-fix-eudora-headers
@cindex Eudora
-Eudora produces broken @code{References} headers, but OK
-@code{In-Reply-To} headers. This function will get rid of the
-@code{References} headers.
+@cindex Pegasus
+Some mail user agents (e.g. Eudora and Pegasus) produce broken
+@code{References} headers, but correct @code{In-Reply-To} headers. This
+function will get rid of the @code{References} header if the headers
+contain a line matching the regular expression
+@code{nnmail-broken-references-mailers}.
@end table
@@ -15186,7 +15716,7 @@ When the marks file is used (which it is by default), @code{nnml}
servers have the property that you may backup them using @code{tar} or
similar, and later be able to restore them into Gnus (by adding the
proper @code{nnml} server) and have all your marks be preserved. Marks
-for a group is usually stored in the @code{.marks} file (but see
+for a group are usually stored in the @code{.marks} file (but see
@code{nnml-marks-file-name}) within each @code{nnml} group's directory.
Individual @code{nnml} groups are also possible to backup, use @kbd{G m}
to restore the group (after restoring the backup into the nnml
@@ -15245,7 +15775,18 @@ The name of the @dfn{marks} files. The default is @file{.marks}.
@item nnml-use-compressed-files
@vindex nnml-use-compressed-files
If non-@code{nil}, @code{nnml} will allow using compressed message
-files.
+files. This requires @code{auto-compression-mode} to be enabled
+(@pxref{Compressed Files, ,Compressed Files, emacs, The Emacs Manual}).
+If the value of @code{nnml-use-compressed-files} is a string, it is used
+as the file extension specifying the compression program. You can set it
+to @samp{.bz2} if your Emacs supports it. A value of @code{t} is
+equivalent to @samp{.gz}.
+
+@item nnml-compressed-files-size-threshold
+@vindex nnml-compressed-files-size-threshold
+Default size threshold for compressed message files. Message files with
+bodies larger than that many characters will be automatically compressed
+if @code{nnml-use-compressed-files} is non-@code{nil}.
@end table
@@ -15958,7 +16499,7 @@ group as read.
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'être} is to
+providers if they were to do this---their @emph{raison d'@^etre} 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.
@@ -16238,6 +16779,15 @@ data files. The default is the value of
@code{mm-universal-coding-system} (which defaults to @code{emacs-mule}
in Emacs or @code{escape-quoted} in XEmacs).
+@item nnrss-ignore-article-fields
+@vindex nnrss-ignore-article-fields
+Some feeds update constantly article fields during their publications,
+e.g. to indicate the number of comments. However, if there is
+a difference between the local article and the distant one, the latter
+is considered to be new. To avoid this and discard some fields, set this
+variable to the list of fields to be ignored. The default is
+@code{'(slash:comments)}.
+
@item nnrss-use-local
@vindex nnrss-use-local
@findex nnrss-generate-download-script
@@ -16275,7 +16825,7 @@ summary buffer.
@lisp
(require 'browse-url)
-(defun browse-nnrss-url( arg )
+(defun browse-nnrss-url (arg)
(interactive "p")
(let ((url (assq nnrss-url-field
(mail-header-extra
@@ -16529,8 +17079,10 @@ to OpenSSL/SSLeay.
@vindex imap-shell-program
@vindex imap-shell-host
-For @acronym{IMAP} connections using the @code{shell} stream, the variable
-@code{imap-shell-program} specify what program to call.
+For @acronym{IMAP} connections using the @code{shell} stream, the
+variable @code{imap-shell-program} specify what program to call. Make
+sure nothing is interfering with the output of the program, e.g., don't
+forget to redirect the error output to the void.
@item nnimap-authenticator
@vindex nnimap-authenticator
@@ -16709,6 +17261,30 @@ messages, you start cursing Gnus for being so slow. On the other hand,
if you get a lot of email within a week, setting this variable will
cause a lot of network traffic between Gnus and the IMAP server.
+@item nnimap-logout-timeout
+@vindex nnimap-logout-timeout
+
+There is a case where a connection to a @acronym{IMAP} server is unable
+to close, when connecting to the server via a certain kind of network,
+e.g. @acronym{VPN}. In that case, it will be observed that a connection
+between Emacs and the local network looks alive even if the server has
+closed a connection for some reason (typically, a timeout).
+Consequently, Emacs continues waiting for a response from the server for
+the @code{LOGOUT} command that Emacs sent, or hangs in other words. If
+you are in such a network, setting this variable to a number of seconds
+will be helpful. If it is set, a hung connection will be closed
+forcibly, after this number of seconds from the time Emacs sends the
+@code{LOGOUT} command. It should not be too small value but too large
+value will be inconvenient too. Perhaps the value 1.0 will be a good
+candidate but it might be worth trying some other values.
+
+Example server specification:
+
+@lisp
+(nnimap "mail.server.com"
+ (nnimap-logout-timeout 1.0))
+@end lisp
+
@end table
@menu
@@ -18350,7 +18926,8 @@ functionality up to the newsreader makes sense if you're the only person
reading news on a machine.
Setting up Gnus as an ``offline'' newsreader is quite simple. In
-fact, you don't even have to configure anything.
+fact, you don't have to configure anything as the agent is now enabled
+by default (@pxref{Agent Variables, gnus-agent}).
Of course, to use it as such, you have to learn a few new commands.
@@ -18362,6 +18939,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.
@@ -18526,55 +19104,46 @@ listed below.
@cindex Agent Parameters
@table @code
-@item gnus-agent-cat-name
-The name of the category.
-
-@item gnus-agent-cat-groups
+@item agent-groups
The list of groups that are in this category.
-@item gnus-agent-cat-predicate
+@item agent-predicate
A predicate which (generally) gives a rough outline of which articles
are eligible for downloading; and
-@item gnus-agent-cat-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.)
-@item gnus-agent-cat-enable-expiration
+@item agent-enable-expiration
a boolean indicating whether the agent should expire old articles in
this group. Most groups should be expired to conserve disk space. In
fact, its probably safe to say that the gnus.* hierarchy contains the
only groups that should not be expired.
-@item gnus-agent-cat-days-until-old
+@item agent-days-until-old
an integer indicating the number of days that the agent should wait
before deciding that a read article is safe to expire.
-@item gnus-agent-cat-low-score
+@item agent-low-score
an integer that overrides the value of @code{gnus-agent-low-score}.
-@item gnus-agent-cat-high-score
+@item agent-high-score
an integer that overrides the value of @code{gnus-agent-high-score}.
-@item gnus-agent-cat-length-when-short
+@item agent-short-article
an integer that overrides the value of
@code{gnus-agent-short-article}.
-@item gnus-agent-cat-length-when-long
+@item agent-long-article
an integer that overrides the value of @code{gnus-agent-long-article}.
-@c @item gnus-agent-cat-disable-undownloaded-faces
-@c a symbol indicating whether the summary buffer should @emph{not} display
-@c undownloaded articles using the gnus-summary-*-undownloaded-face
-@c faces. The symbol nil will enable the use of undownloaded faces while
-@c all other symbols disable them.
-
-@item gnus-agent-cat-enable-undownloaded-faces
+@item agent-enable-undownloaded-faces
a symbol indicating whether the summary buffer should display
-undownloaded articles using the gnus-summary-*-undownloaded-face
-faces. The symbol nil will disable the use of undownloaded faces while
-all other symbols enable them.
+undownloaded articles using the @code{gnus-summary-*-undownloaded-face}
+faces. Any symbol other than @code{nil} will enable the use of
+undownloaded faces.
@end table
The name of a category can not be changed once the category has been
@@ -19079,9 +19648,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)
@@ -19157,21 +19726,28 @@ 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 @code{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 @code{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}).
+downloaded articles so the normal faces always appear. For those
+users using the agent to improve online performance by caching the NOV
+database (most users since 5.10.2), the undownloaded faces may appear
+to be an absolutely horrible idea. The issue being that, since none
+of their articles have been fetched into the Agent, all of the
+normal faces will be obscured by the undownloaded faces.
+
+If you would like to use the undownloaded faces, you must enable the
+undownloaded faces by setting the @code{agent-enable-undownloaded-faces}
+group parameter to @code{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}).
+
+The one problem common to all users using the agent is how quickly it
+can consume disk space. If you using the agent on many groups, it is
+even more difficult to effectively recover disk space. One solution
+is the @samp{%F} format available in @code{gnus-group-line-format}.
+This format will display the actual disk space used by articles
+fetched into both the agent and cache. By knowing which groups use
+the most space, users know where to focus their efforts when ``agent
+expiring'' articles.
@node Agent as Cache
@subsection Agent as Cache
@@ -19267,23 +19843,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
-
-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.
+@node Agent and flags
+@subsection Agent and flags
-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
@@ -19297,6 +19869,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:
@@ -19310,34 +19899,43 @@ 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
-When Gnus is unplugged, all outgoing messages (both mail and news) are
-stored in the draft group ``queue'' (@pxref{Drafts}). You can view
-them there after posting, and edit them at will.
+By default, when Gnus is unplugged, all outgoing messages (both mail
+and news) are stored in the draft group ``queue'' (@pxref{Drafts}).
+You can view them there after posting, and edit them at will.
-When Gnus is plugged again, you can send the messages either from the
-draft group with the special commands available there, or you can use
-the @kbd{J S} command in the group buffer to send all the sendable
-messages in the draft group.
+You can control the circumstances under which outgoing mail is queued
+(see @code{gnus-agent-queue-mail}, @pxref{Agent Variables}). Outgoing
+news is always queued when Gnus is unplugged, and never otherwise.
+You can send the messages either from the draft group with the special
+commands available there, or you can use the @kbd{J S} command in the
+group buffer to send all the sendable messages in the draft group.
+Posting news will only work when Gnus is plugged, but you can send
+mail at any time.
+If sending mail while unplugged does not work for you and you worry
+about hitting @kbd{J S} by accident when unplugged, you can have Gnus
+ask you to confirm your action (see
+@code{gnus-agent-prompt-send-queue}, @pxref{Agent Variables}).
@node Agent Variables
@subsection Agent Variables
@table @code
+@item gnus-agent
+@vindex gnus-agent
+Is the agent enabled? The default is @code{t}. When first enabled,
+the agent will use @code{gnus-agent-auto-agentize-methods} to
+automatically mark some back ends as agentized. You may change which
+back ends are agentized using the agent commands in the server buffer.
+
+To enter the server buffer, use the @kbd{^}
+(@code{gnus-group-enter-server-mode}) command in the group buffer.
+
+
@item gnus-agent-directory
@vindex gnus-agent-directory
Where the Gnus Agent will store its files. The default is
@@ -19384,6 +19982,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
@@ -19432,13 +20038,26 @@ have not been fetched), @code{always-undownloaded} (maneuvering always
ignores articles that have not been fetched), @code{unfetched}
(maneuvering ignores articles whose headers have not been fetched).
+@item gnus-agent-queue-mail
+@vindex gnus-agent-queue-mail
+When @code{gnus-agent-queue-mail} is @code{always}, Gnus will always
+queue mail rather than sending it straight away. When @code{t}, Gnus
+will queue mail when unplugged only. When @code{nil}, never queue
+mail. The default is @code{t}.
+
+@item gnus-agent-prompt-send-queue
+@vindex gnus-agent-prompt-send-queue
+When @code{gnus-agent-prompt-send-queue} is non-@code{nil} Gnus will
+prompt you to confirm that you really wish to proceed if you hit
+@kbd{J S} while unplugged. The default is @code{nil}.
+
@item gnus-agent-auto-agentize-methods
@vindex gnus-agent-auto-agentize-methods
If you have never used the Agent before (or more technically, if
@file{~/News/agent/lib/servers} does not exist), Gnus will
automatically agentize a few servers for you. This variable control
-which backends should be auto-agentized. It is typically only useful
-to agentize remote backends. The auto-agentizing has the same effect
+which back ends should be auto-agentized. It is typically only useful
+to agentize remote back ends. The auto-agentizing has the same effect
as running @kbd{J a} on the servers (@pxref{Server Agent Commands}).
If the file exist, you must manage the servers manually by adding or
removing them, this variable is only applicable the first time you
@@ -19578,7 +20197,6 @@ silently to help keep the sizes of the score files down.
* Global Score Files:: Earth-spanning, ear-splitting score files.
* Kill Files:: They are still here, but they can be ignored.
* Converting Kill Files:: Translating kill files to score files.
-* GroupLens:: Getting predictions on what you like to read.
* Advanced Scoring:: Using logical expressions to build score rules.
* Score Decays:: It can be useful to let scores wither away.
@end menu
@@ -19849,6 +20467,12 @@ There aren't many of these as yet, I'm afraid.
@table @kbd
+@item W e
+@kindex W e (Group)
+@findex gnus-score-edit-all-score
+Edit the apply-to-all-groups all.SCORE file. You will be popped into
+a @code{gnus-score-mode} buffer (@pxref{Score File Editing}).
+
@item W f
@kindex W f (Group)
@findex gnus-score-flush-cache
@@ -20453,6 +21077,11 @@ The adaptive score entries will be put into a file where the name is the
group name with @code{gnus-adaptive-file-suffix} appended. The default
is @file{ADAPT}.
+@vindex gnus-adaptive-pretty-print
+Adaptive score files can get huge and are not meant to be edited by
+human hands. If @code{gnus-adaptive-pretty-print} is @code{nil} (the
+deafult) those files will not be written in a human readable way.
+
@vindex gnus-score-exact-adapt-limit
When doing adaptive scoring, substring or fuzzy matching would probably
give you the best results in most cases. However, if the header one
@@ -20705,6 +21334,13 @@ so: @kbd{I e s p To RET <your name> RET}.
See? Simple.
+@vindex gnus-inhibit-slow-scoring
+You can inhibit scoring the 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
+inhibited for all groups.
+
@node Scoring Tips
@section Scoring Tips
@@ -20967,205 +21603,6 @@ hand. Or just let them be as they are. Gnus will still use them as
before.
-@node GroupLens
-@section GroupLens
-@cindex GroupLens
-
-@sc{Note:} Unfortunately the GroupLens system seems to have shut down,
-so this section is mostly of historical interest.
-
-@uref{http://www.cs.umn.edu/Research/GroupLens/, GroupLens} is a
-collaborative filtering system that helps you work together with other
-people to find the quality news articles out of the huge volume of
-news articles generated every day.
-
-To accomplish this the GroupLens system combines your opinions about
-articles you have already read with the opinions of others who have done
-likewise and gives you a personalized prediction for each unread news
-article. Think of GroupLens as a matchmaker. GroupLens watches how you
-rate articles, and finds other people that rate articles the same way.
-Once it has found some people you agree with it tells you, in the form
-of a prediction, what they thought of the article. You can use this
-prediction to help you decide whether or not you want to read the
-article.
-
-@menu
-* Using GroupLens:: How to make Gnus use GroupLens.
-* Rating Articles:: Letting GroupLens know how you rate articles.
-* Displaying Predictions:: Displaying predictions given by GroupLens.
-* GroupLens Variables:: Customizing GroupLens.
-@end menu
-
-
-@node Using GroupLens
-@subsection Using GroupLens
-
-To use GroupLens you must register a pseudonym with your local
-@uref{http://www.cs.umn.edu/Research/GroupLens/bbb.html, Better Bit
-Bureau (BBB)} is the only better bit in town at the moment.
-
-Once you have registered you'll need to set a couple of variables.
-
-@table @code
-
-@item gnus-use-grouplens
-@vindex gnus-use-grouplens
-Setting this variable to a non-@code{nil} value will make Gnus hook into
-all the relevant GroupLens functions.
-
-@item grouplens-pseudonym
-@vindex grouplens-pseudonym
-This variable should be set to the pseudonym you got when registering
-with the Better Bit Bureau.
-
-@item grouplens-newsgroups
-@vindex grouplens-newsgroups
-A list of groups that you want to get GroupLens predictions for.
-
-@end table
-
-That's the minimum of what you need to get up and running with GroupLens.
-Once you've registered, GroupLens will start giving you scores for
-articles based on the average of what other people think. But, to get
-the real benefit of GroupLens you need to start rating articles
-yourself. Then the scores GroupLens gives you will be personalized for
-you, based on how the people you usually agree with have already rated.
-
-
-@node Rating Articles
-@subsection Rating Articles
-
-In GroupLens, an article is rated on a scale from 1 to 5, inclusive.
-Where 1 means something like this article is a waste of bandwidth and 5
-means that the article was really good. The basic question to ask
-yourself is, ``on a scale from 1 to 5 would I like to see more articles
-like this one?''
-
-There are four ways to enter a rating for an article in GroupLens.
-
-@table @kbd
-
-@item r
-@kindex r (GroupLens)
-@findex bbb-summary-rate-article
-This function will prompt you for a rating on a scale of one to five.
-
-@item k
-@kindex k (GroupLens)
-@findex grouplens-score-thread
-This function will prompt you for a rating, and rate all the articles in
-the thread. This is really useful for some of those long running giant
-threads in rec.humor.
-
-@end table
-
-The next two commands, @kbd{n} and @kbd{,} take a numerical prefix to be
-the score of the article you're reading.
-
-@table @kbd
-
-@item 1-5 n
-@kindex n (GroupLens)
-@findex grouplens-next-unread-article
-Rate the article and go to the next unread article.
-
-@item 1-5 ,
-@kindex , (GroupLens)
-@findex grouplens-best-unread-article
-Rate the article and go to the next unread article with the highest score.
-
-@end table
-
-If you want to give the current article a score of 4 and then go to the
-next article, just type @kbd{4 n}.
-
-
-@node Displaying Predictions
-@subsection Displaying Predictions
-
-GroupLens makes a prediction for you about how much you will like a
-news article. The predictions from GroupLens are on a scale from 1 to
-5, where 1 is the worst and 5 is the best. You can use the predictions
-from GroupLens in one of three ways controlled by the variable
-@code{gnus-grouplens-override-scoring}.
-
-@vindex gnus-grouplens-override-scoring
-There are three ways to display predictions in grouplens. You may
-choose to have the GroupLens scores contribute to, or override the
-regular Gnus scoring mechanism. override is the default; however, some
-people prefer to see the Gnus scores plus the grouplens scores. To get
-the separate scoring behavior you need to set
-@code{gnus-grouplens-override-scoring} to @code{'separate}. To have the
-GroupLens predictions combined with the grouplens scores set it to
-@code{'override} and to combine the scores set
-@code{gnus-grouplens-override-scoring} to @code{'combine}. When you use
-the combine option you will also want to set the values for
-@code{grouplens-prediction-offset} and
-@code{grouplens-score-scale-factor}.
-
-@vindex grouplens-prediction-display
-In either case, GroupLens gives you a few choices for how you would like
-to see your predictions displayed. The display of predictions is
-controlled by the @code{grouplens-prediction-display} variable.
-
-The following are valid values for that variable.
-
-@table @code
-@item prediction-spot
-The higher the prediction, the further to the right an @samp{*} is
-displayed.
-
-@item confidence-interval
-A numeric confidence interval.
-
-@item prediction-bar
-The higher the prediction, the longer the bar.
-
-@item confidence-bar
-Numerical confidence.
-
-@item confidence-spot
-The spot gets bigger with more confidence.
-
-@item prediction-num
-Plain-old numeric value.
-
-@item confidence-plus-minus
-Prediction +/- confidence.
-
-@end table
-
-
-@node GroupLens Variables
-@subsection GroupLens Variables
-
-@table @code
-
-@item gnus-summary-grouplens-line-format
-The summary line format used in GroupLens-enhanced summary buffers. It
-accepts the same specs as the normal summary line format (@pxref{Summary
-Buffer Lines}). The default is @samp{%U%R%z%l%I%(%[%4L: %-23,23n%]%)
-%s\n}.
-
-@item grouplens-bbb-host
-Host running the bbbd server. @samp{grouplens.cs.umn.edu} is the
-default.
-
-@item grouplens-bbb-port
-Port of the host running the bbbd server. The default is 9000.
-
-@item grouplens-score-offset
-Offset the prediction by this value. In other words, subtract the
-prediction value by this number to arrive at the effective score. The
-default is 0.
-
-@item grouplens-score-scale-factor
-This variable allows the user to magnify the effect of GroupLens scores.
-The scale factor is applied after the offset. The default is 1.
-
-@end table
-
-
@node Advanced Scoring
@section Advanced Scoring
@@ -21366,9 +21803,12 @@ Gnus provides a mechanism for decaying scores to help with this problem.
When score files are loaded and @code{gnus-decay-scores} is
non-@code{nil}, Gnus will run the score files through the decaying
mechanism thereby lowering the scores of all non-permanent score rules.
-The decay itself if performed by the @code{gnus-decay-score-function}
-function, which is @code{gnus-decay-score} by default. Here's the
-definition of that function:
+If @code{gnus-decay-scores} is a regexp, only score files matching this
+regexp are treated. E.g. you may set it to @samp{\\.ADAPT\\'} if only
+@emph{adaptive} score files should be decayed. The decay itself if
+performed by the @code{gnus-decay-score-function} function, which is
+@code{gnus-decay-score} by default. Here's the definition of that
+function:
@lisp
(defun gnus-decay-score (score)
@@ -21423,6 +21863,8 @@ four days, Gnus will decay the scores four times, for instance.
@include sieve.texi
@chapter PGG
@include pgg.texi
+@chapter SASL
+@include sasl.texi
@end iflatex
@end iftex
@@ -22805,6 +23247,32 @@ Face and variable:
Face to show X-Face. The colors from this face are used as the
foreground and background colors of the displayed X-Faces. The
default colors are black and white.
+
+@item gnus-face-properties-alist
+@vindex gnus-face-properties-alist
+Alist of image types and properties applied to Face (@pxref{Face}) and
+X-Face images. The default value is @code{((pbm . (:face gnus-x-face))
+(png . nil))} for Emacs or @code{((xface . (:face gnus-x-face)))} for
+XEmacs. Here are examples:
+
+@lisp
+;; Specify the altitude of Face and X-Face images in the From header.
+(setq gnus-face-properties-alist
+ '((pbm . (:face gnus-x-face :ascent 80))
+ (png . (:ascent 80))))
+
+;; Show Face and X-Face images as pressed buttons.
+(setq gnus-face-properties-alist
+ '((pbm . (:face gnus-x-face :relief -2))
+ (png . (:relief -2))))
+@end lisp
+
+@pxref{Image Descriptors, ,Image Descriptors, elisp, The Emacs Lisp
+Reference Manual} for the valid properties for various image types.
+Currently, @code{pbm} is used for X-Face images and @code{png} is used
+for Face images in Emacs. Only the @code{:face} property is effective
+on the @code{xface} image type in XEmacs if it is built with the
+@samp{libcompface} library.
@end table
If you use posting styles, you can use an @code{x-face-file} entry in
@@ -22871,6 +23339,9 @@ The contents of a @code{Face} header must be a base64 encoded PNG image.
See @uref{http://quimby.gnus.org/circus/face/} for the precise
specifications.
+The @code{gnus-face-properties-alist} variable affects the appearance of
+displayed Face images. @xref{X-Face}.
+
Viewing an @code{Face} header requires an Emacs that is able to display
PNG images.
@c Maybe add this:
@@ -22994,6 +23465,11 @@ To enable displaying picons, simply make sure that
@code{gnus-picon-databases} points to the directory containing the
Picons databases.
+@vindex gnus-picon-style
+The variable @code{gnus-picon-style} controls how picons are displayed.
+If @code{inline}, the textual representation is replaced. If
+@code{right}, picons are added right to the textual representation.
+
The following variables offer control over where things are located.
@table @code
@@ -23360,7 +23836,7 @@ call the external tools during splitting. Example fancy split method:
"spam"))))
@end lisp
-Note that with the nnimap backend, message bodies will not be
+Note that with the nnimap back end, message bodies will not be
downloaded by default. You need to set
@code{nnimap-split-download-body} to @code{t} to do that
(@pxref{Splitting in IMAP}).
@@ -23383,10 +23859,10 @@ spam. And here is the nifty function:
@cindex hashcash
A novel technique to fight spam is to require senders to do something
-costly for each message they send. This has the obvious drawback that
-you cannot rely on everyone in the world using this technique,
-since it is not part of the Internet standards, but it may be useful
-in smaller communities.
+costly and demonstrably unique for each message they send. This has
+the obvious drawback that you cannot rely on everyone in the world
+using this technique, since it is not part of the Internet standards,
+but it may be useful in smaller communities.
While the tools in the previous section work well in practice, they
work only because the tools are constantly maintained and updated as
@@ -23402,24 +23878,20 @@ one of them separately.
@cindex X-Hashcash
The ``something costly'' is to burn CPU time, more specifically to
compute a hash collision up to a certain number of bits. The
-resulting hashcash cookie is inserted in a @samp{X-Hashcash:}
-header. For more details, and for the external application
-@code{hashcash} you need to install to use this feature, see
-@uref{http://www.cypherspace.org/~adam/hashcash/}. Even more
-information can be found at @uref{http://www.camram.org/}.
+resulting hashcash cookie is inserted in a @samp{X-Hashcash:} header.
+For more details, and for the external application @code{hashcash} you
+need to install to use this feature, see
+@uref{http://www.hashcash.org/}. Even more information can be found
+at @uref{http://www.camram.org/}.
-If you wish to call hashcash for each message you send, say something
-like:
+If you wish to generate hashcash for each message you send, you can
+customize @code{message-generate-hashcash} (@pxref{Mail Headers, ,Mail
+Headers,message, The Message Manual}), as in:
@lisp
-(require 'hashcash)
-(add-hook 'message-send-hook 'mail-add-payment)
+(setq message-generate-hashcash t)
@end lisp
-The @file{hashcash.el} library can be found in the Gnus development
-contrib directory or at
-@uref{http://users.actrix.gen.nz/mycroft/hashcash.el}.
-
You will need to set up some additional variables as well:
@table @code
@@ -23427,8 +23899,8 @@ You will need to set up some additional variables as well:
@item hashcash-default-payment
@vindex hashcash-default-payment
This variable indicates the default number of bits the hash collision
-should consist of. By default this is 0, meaning nothing will be
-done. Suggested useful values include 17 to 29.
+should consist of. By default this is 20. Suggested useful values
+include 17 to 29.
@item hashcash-payment-alist
@vindex hashcash-payment-alist
@@ -23440,16 +23912,23 @@ that is needed. It can also contain @samp{(@var{addr} @var{string}
@var{amount})} cells, where the @var{string} is the string to use
(normally the email address or newsgroup name is used).
-@item hashcash
-@vindex hashcash
-Where the @code{hashcash} binary is installed.
+@item hashcash-path
+@vindex hashcash-path
+Where the @code{hashcash} binary is installed. This variable should
+be automatically set by @code{executable-find}, but if it's @code{nil}
+(usually because the @code{hashcash} binary is not in your path)
+you'll get a warning when you check hashcash payments and an error
+when you generate hashcash payments.
@end table
-Currently there is no built in functionality in Gnus to verify
-hashcash cookies, it is expected that this is performed by your hand
-customized mail filtering scripts. Improvements in this area would be
-a useful contribution, however.
+Gnus can verify hashcash cookies, although this can also be done by
+hand customized mail filtering scripts. To verify a hashcash cookie
+in a message, use the @code{mail-check-payment} function in the
+@code{hashcash.el} library. You can also use the @code{spam.el}
+package with the @code{spam-use-hashcash} back end to validate hashcash
+cookies in incoming mail and filter mail accordingly (@pxref{Anti-spam
+Hashcash Payments}).
@node Spam Package
@section Spam Package
@@ -23481,6 +23960,9 @@ name used throughout this manual to indicate non-spam messages.)
You must read this section to understand how the Spam package works.
Do not skip, speed-read, or glance through this section.
+Make sure you read the section on the @code{spam.el} sequence of
+events. See @xref{Extending the Spam package}.
+
@cindex spam-initialize
@vindex spam-use-stat
To use the Spam package, you @strong{must} first run the function
@@ -23836,7 +24318,7 @@ parameter is not set, ham articles are left in place. If the
@code{spam-mark-ham-unread-before-move-from-spam-group} parameter is
set, the ham articles are marked as unread before being moved.
-If ham can not be moved---because of a read-only backend such as
+If ham can not be moved---because of a read-only back end such as
@acronym{NNTP}, for example, it will be copied.
Note that you can use multiples destinations per group or regular
@@ -23873,7 +24355,7 @@ articles are only expired. The group name is fully qualified, meaning
that if you see @samp{nntp:servername} before the group name in the
group buffer then you need it here as well.
-If spam can not be moved---because of a read-only backend such as
+If spam can not be moved---because of a read-only back end such as
@acronym{NNTP}, for example, it will be copied.
Note that you can use multiples destinations per group or regular
@@ -23992,7 +24474,7 @@ From Ted Zlatanov <tzz@@lifelogs.com>.
@end example
-@subsubheading Using @file{spam.el} on an IMAP server with a statistical filter on the server
+@subsubheading Using @code{spam.el} on an IMAP server with a statistical filter on the server
From Reiner Steib <reiner.steib@@gmx.de>.
My provider has set up bogofilter (in combination with @acronym{DCC}) on
@@ -24046,7 +24528,7 @@ an excellent tool for filtering those unwanted mails for me.)
In my ham folders, I just hit @kbd{S x}
(@code{gnus-summary-mark-as-spam}) whenever I see an unrecognized spam
mail (false negative). On group exit, those messages are moved to
-@samp{training.ham}.
+@samp{training.spam}.
@end itemize
@subsubheading Reporting spam articles in Gmane groups with @code{spam-report.el}
@@ -24086,6 +24568,7 @@ Processors}).
* Blackholes::
* Regular Expressions Header Matching::
* Bogofilter::
+* SpamAssassin back end::
* ifile spam filtering::
* Spam Statistics Filtering::
* SpamOracle::
@@ -24138,7 +24621,7 @@ spam-marked articles will be added to the blacklist.
Instead of the obsolete
@code{gnus-group-spam-exit-processor-blacklist}, it is recommended
-that you use @code{'(spam spam-use-blacklist)}. Everything will work
+that you use @code{(spam spam-use-blacklist)}. Everything will work
the same way, we promise.
@end defvar
@@ -24150,14 +24633,13 @@ customizing the group parameters or the
@code{gnus-spam-process-newsgroups} variable. When this symbol is
added to a group's @code{spam-process} parameter, the senders of
ham-marked articles in @emph{ham} groups will be added to the
-whitelist. Note that this ham processor has no effect in @emph{spam}
-or @emph{unclassified} groups.
+whitelist.
@emph{WARNING}
Instead of the obsolete
@code{gnus-group-ham-exit-processor-whitelist}, it is recommended
-that you use @code{'(ham spam-use-whitelist)}. Everything will work
+that you use @code{(ham spam-use-whitelist)}. Everything will work
the same way, we promise.
@end defvar
@@ -24207,6 +24689,12 @@ unless the sender is in the BBDB. Use with care. Only sender
addresses in the BBDB will be allowed through; all others will be
classified as spammers.
+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
+will be exclusive.
+
@end defvar
@defvar gnus-group-ham-exit-processor-BBDB
@@ -24216,14 +24704,13 @@ customizing the group parameters or the
@code{gnus-spam-process-newsgroups} variable. When this symbol is
added to a group's @code{spam-process} parameter, the senders of
ham-marked articles in @emph{ham} groups will be added to the
-BBDB. Note that this ham processor has no effect in @emph{spam}
-or @emph{unclassified} groups.
+BBDB.
@emph{WARNING}
Instead of the obsolete
@code{gnus-group-ham-exit-processor-BBDB}, it is recommended
-that you use @code{'(ham spam-use-BBDB)}. Everything will work
+that you use @code{(ham spam-use-BBDB)}. Everything will work
the same way, we promise.
@end defvar
@@ -24250,7 +24737,7 @@ Gmane can be found at @uref{http://gmane.org}.
Instead of the obsolete
@code{gnus-group-spam-exit-processor-report-gmane}, it is recommended
-that you use @code{'(spam spam-use-gmane)}. Everything will work the
+that you use @code{(spam spam-use-gmane)}. Everything will work the
same way, we promise.
@end defvar
@@ -24261,8 +24748,15 @@ This variable is @code{t} by default. Set it to @code{nil} if you are
running your own news server, for instance, and the local article
numbers don't correspond to the Gmane article numbers. When
@code{spam-report-gmane-use-article-number} is @code{nil},
-@code{spam-report.el} will use the @code{X-Report-Spam} header that
-Gmane provides.
+@code{spam-report.el} will fetch the number from the article headers.
+
+@end defvar
+
+@defvar spam-report-user-mail-address
+
+Mail address exposed in the User-Agent spam reports to Gmane. It allows
+the Gmane administrators to contact you in case of misreports. The
+default is @code{user-mail-address}.
@end defvar
@@ -24276,12 +24770,10 @@ Gmane provides.
Similar to @code{spam-use-whitelist} (@pxref{Blacklists and
Whitelists}), but uses hashcash tokens for whitelisting messages
-instead of the sender address. You must have the @code{hashcash.el}
-package loaded for @code{spam-use-hashcash} to work properly.
-Messages without a hashcash payment token will be sent to the next
-spam-split rule. This is an explicit filter, meaning that unless a
-hashcash token is found, the messages are not assumed to be spam or
-ham.
+instead of the sender address. Messages without a hashcash payment
+token will be sent to the next spam-split rule. This is an explicit
+filter, meaning that unless a hashcash token is found, the messages
+are not assumed to be spam or ham.
@end defvar
@@ -24301,7 +24793,7 @@ list is fairly comprehensive, but make sure to let us know if it
contains outdated servers.
The blackhole check uses the @code{dig.el} package, but you can tell
-@file{spam.el} to use @code{dns.el} instead for better performance if
+@code{spam.el} to use @code{dns.el} instead for better performance if
you set @code{spam-use-dig} to @code{nil}. It is not recommended at
this time to set @code{spam-use-dig} to @code{nil} despite the
possible performance improvements, because some users may be unable to
@@ -24428,7 +24920,7 @@ will be added to the Bogofilter spam database.
Instead of the obsolete
@code{gnus-group-spam-exit-processor-bogofilter}, it is recommended
-that you use @code{'(spam spam-use-bogofilter)}. Everything will work
+that you use @code{(spam spam-use-bogofilter)}. Everything will work
the same way, we promise.
@end defvar
@@ -24438,14 +24930,13 @@ customizing the group parameters or the
@code{gnus-spam-process-newsgroups} variable. When this symbol is
added to a group's @code{spam-process} parameter, the ham-marked
articles in @emph{ham} groups will be added to the Bogofilter database
-of non-spam messages. Note that this ham processor has no effect in
-@emph{spam} or @emph{unclassified} groups.
+of non-spam messages.
@emph{WARNING}
Instead of the obsolete
@code{gnus-group-ham-exit-processor-bogofilter}, it is recommended
-that you use @code{'(ham spam-use-bogofilter)}. Everything will work
+that you use @code{(ham spam-use-bogofilter)}. Everything will work
the same way, we promise.
@end defvar
@@ -24464,6 +24955,59 @@ variables to indicate to spam-split that Bogofilter should either be
used, or has already been used on the article. The 0.9.2.1 version of
Bogofilter was used to test this functionality.
+@node SpamAssassin back end
+@subsubsection SpamAssassin back end
+@cindex spam filtering
+@cindex spamassassin, spam filtering
+@cindex spam
+
+@defvar spam-use-spamassassin
+
+Set this variable if you want @code{spam-split} to use SpamAssassin.
+
+SpamAssassin assigns a score to each article based on a set of rules
+and tests, including a Bayesian filter. The Bayesian filter can be
+trained by associating the @samp{$} mark for spam articles. The
+spam score can be viewed by using the command @kbd{S t} in summary
+mode.
+
+If you set this variable, each article will be processed by
+SpamAssassin when @code{spam-split} is called. If your mail is
+preprocessed by SpamAssassin, and you want to just use the
+SpamAssassin headers, set @code{spam-use-spamassassin-headers}
+instead.
+
+You should not enable this if you use
+@code{spam-use-spamassassin-headers}.
+
+@end defvar
+
+@defvar spam-use-spamassassin-headers
+
+Set this variable if your mail is preprocessed by SpamAssassin and
+want @code{spam-split} to split based on the SpamAssassin headers.
+
+You should not enable this if you use @code{spam-use-spamassassin}.
+
+@end defvar
+
+@defvar spam-spamassassin-program
+
+This variable points to the SpamAssassin executable. If you have
+@code{spamd} running, you can set this variable to the @code{spamc}
+executable for faster processing. See the SpamAssassin documentation
+for more information on @code{spamd}/@code{spamc}.
+
+@end defvar
+
+SpamAssassin is a powerful and flexible spam filter that uses a wide
+variety of tests to identify spam. A ham and a spam processors are
+provided, plus the @code{spam-use-spamassassin} and
+@code{spam-use-spamassassin-headers} variables to indicate to
+spam-split that SpamAssassin should be either used, or has already
+been used on the article. The 2.63 version of SpamAssassin was used
+to test this functionality.
+
@node ifile spam filtering
@subsubsection ifile spam filtering
@cindex spam filtering
@@ -24533,7 +25077,7 @@ articles will be added to the spam-stat database of spam messages.
Instead of the obsolete
@code{gnus-group-spam-exit-processor-stat}, it is recommended
-that you use @code{'(spam spam-use-stat)}. Everything will work
+that you use @code{(spam spam-use-stat)}. Everything will work
the same way, we promise.
@end defvar
@@ -24543,18 +25087,17 @@ customizing the group parameters or the
@code{gnus-spam-process-newsgroups} variable. When this symbol is
added to a group's @code{spam-process} parameter, the ham-marked
articles in @emph{ham} groups will be added to the spam-stat database
-of non-spam messages. Note that this ham processor has no effect in
-@emph{spam} or @emph{unclassified} groups.
+of non-spam messages.
@emph{WARNING}
Instead of the obsolete
@code{gnus-group-ham-exit-processor-stat}, it is recommended
-that you use @code{'(ham spam-use-stat)}. Everything will work
+that you use @code{(ham spam-use-stat)}. Everything will work
the same way, we promise.
@end defvar
-This enables @file{spam.el} to cooperate with @file{spam-stat.el}.
+This enables @code{spam.el} to cooperate with @file{spam-stat.el}.
@file{spam-stat.el} provides an internal (Lisp-only) spam database,
which unlike ifile or Bogofilter does not require external programs.
A spam and a ham processor, and the @code{spam-use-stat} variable for
@@ -24583,7 +25126,7 @@ The easiest method is to make @file{spam.el} (@pxref{Spam Package})
call SpamOracle.
@vindex spam-use-spamoracle
-To enable SpamOracle usage by @file{spam.el}, set the variable
+To enable SpamOracle usage by @code{spam.el}, set the variable
@code{spam-use-spamoracle} to @code{t} and configure the
@code{nnmail-split-fancy} or @code{nnimap-split-fancy}. @xref{Spam
Package}. In this example the @samp{INBOX} of an nnimap server is
@@ -24641,7 +25184,7 @@ sent to SpamOracle as spam samples.
Instead of the obsolete
@code{gnus-group-spam-exit-processor-spamoracle}, it is recommended
-that you use @code{'(spam spam-use-spamoracle)}. Everything will work
+that you use @code{(spam spam-use-spamoracle)}. Everything will work
the same way, we promise.
@end defvar
@@ -24651,14 +25194,13 @@ customizing the group parameter or the
@code{gnus-spam-process-newsgroups} variable. When this symbol is added
to a group's @code{spam-process} parameter, the ham-marked articles in
@emph{ham} groups will be sent to the SpamOracle as samples of ham
-messages. Note that this ham processor has no effect in @emph{spam} or
-@emph{unclassified} groups.
+messages.
@emph{WARNING}
Instead of the obsolete
@code{gnus-group-ham-exit-processor-spamoracle}, it is recommended
-that you use @code{'(ham spam-use-spamoracle)}. Everything will work
+that you use @code{(ham spam-use-spamoracle)}. Everything will work
the same way, we promise.
@end defvar
@@ -24696,45 +25238,22 @@ Code
"True if blackbox should be used.")
@end lisp
-Add
-@lisp
-(spam-use-blackbox . spam-check-blackbox)
-@end lisp
-to @code{spam-list-of-checks}.
-
-Add
-@lisp
-(gnus-group-ham-exit-processor-blackbox ham spam-use-blackbox)
-(gnus-group-spam-exit-processor-blackbox spam spam-use-blackbox)
-@end lisp
-
-to @code{spam-list-of-processors}.
-
-Add
-@lisp
-(spam-use-blackbox spam-blackbox-register-routine
- nil
- spam-blackbox-unregister-routine
- nil)
-@end lisp
+Write @code{spam-check-blackbox} if Blackbox can check incoming mail.
-to @code{spam-registration-functions}. Write the register/unregister
-routines using the bogofilter register/unregister routines as a
-start, or other register/unregister routines more appropriate to
-Blackbox.
+Write @code{spam-blackbox-register-routine} and
+@code{spam-blackbox-unregister-routine} using the bogofilter
+register/unregister routines as a start, or other restister/unregister
+routines more appropriate to Blackbox, if Blackbox can
+register/unregister spam and ham.
@item
Functionality
-Write the @code{spam-check-blackbox} function. It should return
-@samp{nil} or @code{spam-split-group}, observing the other
-conventions. See the existing @code{spam-check-*} functions for
-examples of what you can do, and stick to the template unless you
-fully understand the reasons why you aren't.
-
-Make sure to add @code{spam-use-blackbox} to
-@code{spam-list-of-statistical-checks} if Blackbox is a statistical
-mail analyzer that needs the full message body to operate.
+The @code{spam-check-blackbox} function should return @samp{nil} or
+@code{spam-split-group}, observing the other conventions. See the
+existing @code{spam-check-*} functions for examples of what you can
+do, and stick to the template unless you fully understand the reasons
+why you aren't.
@end enumerate
@@ -24749,8 +25268,8 @@ Note you don't have to provide a spam or a ham processor. Only
provide them if Blackbox supports spam or ham processing.
Also, ham and spam processors are being phased out as single
-variables. Instead the form @code{'(spam spam-use-blackbox)} or
-@code{'(ham spam-use-blackbox)} is favored. For now, spam/ham
+variables. Instead the form @code{(spam spam-use-blackbox)} or
+@code{(ham spam-use-blackbox)} is favored. For now, spam/ham
processor variables are still around but they won't be for long.
@lisp
@@ -24781,7 +25300,64 @@ Add
(variable-item spam-use-blackbox)
@end lisp
to the @code{spam-autodetect-methods} group parameter in
-@code{gnus.el}.
+@code{gnus.el} if Blackbox can check incoming mail for spam contents.
+
+Finally, use the appropriate @code{spam-install-*-backend} function in
+@code{spam.el}. Here are the available functions.
+
+
+@enumerate
+
+@item
+@code{spam-install-backend-alias}
+
+This function will simply install an alias for a back end that does
+everything like the original back end. It is currently only used to
+make @code{spam-use-BBDB-exclusive} act like @code{spam-use-BBDB}.
+
+@item
+@code{spam-install-nocheck-backend}
+
+This function installs a back end that has no check function, but can
+register/unregister ham or spam. The @code{spam-use-gmane} back end is
+such a back end.
+
+@item
+@code{spam-install-checkonly-backend}
+
+This function will install a back end that can only check incoming mail
+for spam contents. It can't register or unregister messages.
+@code{spam-use-blackholes} and @code{spam-use-hashcash} are such
+back ends.
+
+@item
+@code{spam-install-statistical-checkonly-backend}
+
+This function installs a statistical back end (one which requires the
+full body of a message to check it) that can only check incoming mail
+for contents. @code{spam-use-regex-body} is such a filter.
+
+@item
+@code{spam-install-statistical-backend}
+
+This function install a statistical back end with incoming checks and
+registration/unregistration routines. @code{spam-use-bogofilter} is
+set up this way.
+
+@item
+@code{spam-install-backend}
+
+This is the most normal back end installation, where a back end that can
+check and register/unregister messages is set up without statistical
+abilities. The @code{spam-use-BBDB} is such a back end.
+
+@item
+@code{spam-install-mover-backend}
+
+Mover back ends are internal to @code{spam.el} and specifically move
+articles around when the summary is exited. You will very probably
+never install such a back end.
+@end enumerate
@end enumerate
@@ -25140,6 +25716,17 @@ shut up, but will flash so many messages it will make your head swim.
This variable works the same way as @code{gnus-verbose}, but it applies
to the Gnus back ends instead of Gnus proper.
+@item gnus-add-timestamp-to-message
+@vindex gnus-add-timestamp-to-message
+This variable controls whether to add timestamps to messages that are
+controlled by @code{gnus-verbose} and @code{gnus-verbose-backends} and
+are issued. The default value is @code{nil} which means never to add
+timestamp. If it is @code{log}, add timestamps to only the messages
+that go into the @samp{*Messages*} buffer (in XEmacs, it is the
+@w{@samp{ *Message-Log*}} buffer). If it is neither @code{nil} nor
+@code{log}, add timestamps not only to log messages but also to the ones
+displayed in the echo area.
+
@item nnheader-max-head-length
@vindex nnheader-max-head-length
When the back ends read straight heads of articles, they all try to read
@@ -25661,8 +26248,7 @@ Wes Hardaker---@file{gnus-picon.el} and the manual section on
Kim-Minh Kaplan---further work on the picon code.
@item
-Brad Miller---@file{gnus-gl.el} and the GroupLens manual section
-(@pxref{GroupLens}).
+Brad Miller---@file{gnus-gl.el} and the GroupLens manual section.
@item
Sudish Joseph---innumerable bug fixes.
@@ -25703,7 +26289,7 @@ David Moore---rewrite of @file{nnvirtual.el} and many other things.
Kevin Davidson---came up with the name @dfn{ding}, so blame him.
@item
-François Pinard---many, many interesting and thorough bug reports, as
+Fran@,{c}ois Pinard---many, many interesting and thorough bug reports, as
well as autoconf support.
@end itemize
@@ -25720,7 +26306,7 @@ Kevin Greiner,
Jesper Harder,
Paul Jarc,
Simon Josefsson,
-David Kågedal,
+David K@aa{}gedal,
Richard Pieri,
Fabrice Popineau,
Daniel Quinlan,
@@ -25805,12 +26391,13 @@ Yoshiki Hayashi, @c Hayashi
P. E. Jareth Hein,
Hisashige Kenji, @c Hisashige
Scott Hofmann,
+Tassilo Horn,
Marc Horowitz,
Gunnar Horrigmo,
Richard Hoskins,
Brad Howes,
Miguel de Icaza,
-François Felix Ingrand,
+Fran@,{c}ois Felix Ingrand,
Tatsuya Ichikawa, @c Ichikawa
Ishikawa Ichiro, @c Ishikawa
Lee Iverson,
@@ -25950,6 +26537,7 @@ actually are people who are using Gnus. Who'd'a thunk it!
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
* Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11.
+* No Gnus:: Very punny.
@end menu
These lists are, of course, just @emph{short} overviews of the
@@ -26109,7 +26697,7 @@ Partial thread regeneration now happens when articles are
referred.
@item
-Gnus can make use of GroupLens predictions (@pxref{GroupLens}).
+Gnus can make use of GroupLens predictions.
@item
Picons (personal icons) can be displayed under XEmacs (@pxref{Picons}).
@@ -26758,7 +27346,7 @@ Gnus is now able to take out spam from your mail and news streams
using a wide variety of programs and filter rules. Among the supported
methods are RBL blocklists, bogofilter and white/blacklists. Hooks
for easy use of external packages such as SpamAssassin and Hashcash
-are also new. @xref{Thwarting Email Spam}.
+are also new. @ref{Thwarting Email Spam} and @ref{Spam Package}.
@c FIXME: @xref{Spam Package}?. Should this be under Misc?
@item
@@ -27325,6 +27913,15 @@ A new command which starts Gnus offline in slave mode.
@end itemize
+@node No Gnus
+@subsubsection No Gnus
+@cindex No Gnus
+
+New features in No Gnus:
+@c FIXME: Gnus 5.12?
+
+@include gnus-news.texi
+
@iftex
@page
@@ -27826,8 +28423,11 @@ Gnus will work.
@item
Try doing an @kbd{M-x gnus-version}. If you get something that looks
-like @samp{Gnus v5.10.6} you have the right files loaded. Otherwise
-you have some old @file{.el} files lying around. Delete these.
+like @c
+@samp{Gnus v5.13} @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.
@item
Read the help group (@kbd{G h} in the group buffer) for a
@@ -28416,7 +29016,9 @@ A Gnus group info (@pxref{Group Info}) is handed to the back end for
alterations. This comes in handy if the back end really carries all
the information (as is the case with virtual and imap groups). This
function should destructively alter the info to suit its needs, and
-should return a non-@code{nil} value.
+should return a non-@code{nil} value (exceptionally,
+@code{nntp-request-update-info} always returns @code{nil} not to waste
+the network resources).
There should be no result data from this function.
diff --git a/doc/misc/makefile.w32-in b/doc/misc/makefile.w32-in
index 60c1efcde44..4d8d44765d4 100644
--- a/doc/misc/makefile.w32-in
+++ b/doc/misc/makefile.w32-in
@@ -42,7 +42,8 @@ INFO_TARGETS = $(infodir)/ccmode \
$(infodir)/woman $(infodir)/eshell $(infodir)/org \
$(infodir)/url $(infodir)/speedbar $(infodir)/tramp \
$(infodir)/ses $(infodir)/smtpmail $(infodir)/flymake \
- $(infodir)/newsticker $(infodir)/rcirc $(infodir)/erc
+ $(infodir)/newsticker $(infodir)/rcirc $(infodir)/erc \
+ $(infodir)/remember
DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \
ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \
gnus.dvi message.dvi sieve.dvi pgg.dvi mh-e.dvi \
@@ -50,7 +51,7 @@ DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \
ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \
pcl-cvs.dvi woman.dvi eshell.dvi org.dvi url.dvi \
speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi flymake.dvi \
- newsticker.dvi rcirc.dvi erc.dvi
+ newsticker.dvi rcirc.dvi erc.dvi remember.dvi
INFOSOURCES = info.texi
# The following rule does not work with all versions of `make'.
@@ -172,6 +173,11 @@ $(infodir)/reftex: reftex.texi
reftex.dvi: reftex.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi
+$(infodir)/remember: remember.texi
+ $(MAKEINFO) remember.texi
+remember.dvi: remember.texi
+ $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi
+
$(infodir)/sc: sc.texi
$(MAKEINFO) sc.texi
sc.dvi: sc.texi
@@ -297,7 +303,8 @@ clean: mostlyclean
$(infodir)/url* $(infodir)/org* \
$(infodir)/flymake* $(infodir)/newsticker* \
$(infodir)/sieve* $(infodir)/pgg* \
- $(infodir)/erc* $(infodir)/rcirc*
+ $(infodir)/erc* $(infodir)/rcirc* \
+ $(infodir)/remember*
distclean: clean
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 828af92fc0c..fab5aaf173a 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -71,14 +71,14 @@ Message mode buffers.
@c Adjust ../Makefile.in if you change the following lines:
Message is distributed with Gnus. The Gnus distribution
@c
-corresponding to this manual is Gnus v5.11.
+corresponding to this manual is Gnus v5.13
@node Interface
@chapter Interface
-When a program (or a person) wants to respond to a message -- reply,
-follow up, forward, cancel -- the program (or person) should just put
+When a program (or a person) wants to respond to a message---reply,
+follow up, forward, cancel---the program (or person) should just put
point in the buffer where the message is and call the required command.
@code{Message} will then pop up a new @code{message} mode buffer with
appropriate headers filled out, and the user can edit the message before
@@ -179,7 +179,8 @@ but you can change the behavior to suit your needs by fiddling with the
@vindex message-dont-reply-to-names
Addresses that match the @code{message-dont-reply-to-names} regular
-expression will be removed from the @code{Cc} header.
+expression (or list of regular expressions) will be removed from the
+@code{Cc} header. A value of @code{nil} means exclude your name only.
@vindex message-wide-reply-confirm-recipients
If @code{message-wide-reply-confirm-recipients} is non-@code{nil} you
@@ -257,7 +258,7 @@ removed before popping up the new message buffer. The default is@*
^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-Complaints-To:\\|@*
Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|@*
^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|@*
-^X-Payment:}.
+^X-Payment:\\|^Approved:}.
@@ -797,14 +798,18 @@ Insert the message headers (@code{message-insert-headers}).
@item C-c M-m
@kindex C-c M-m
@findex message-mark-inserted-region
-Mark some region in the current article with enclosing tags.
-See @code{message-mark-insert-begin} and @code{message-mark-insert-end}.
+Mark some region in the current article with enclosing tags. See
+@code{message-mark-insert-begin} and @code{message-mark-insert-end}.
+When called with a prefix argument, use slrn style verbatim marks
+(@samp{#v+} and @samp{#v-}).
@item C-c M-f
@kindex C-c M-f
@findex message-mark-insert-file
Insert a file in the current article with enclosing tags.
See @code{message-mark-insert-begin} and @code{message-mark-insert-end}.
+When called with a prefix argument, use slrn style verbatim marks
+(@samp{#v+} and @samp{#v-}).
@end table
@@ -1159,6 +1164,11 @@ The text is killed and replaced with the contents of the variable
@code{message-elide-ellipsis}. The default value is to use an ellipsis
(@samp{[...]}).
+@item C-c M-k
+@kindex C-c M-k
+@findex message-kill-address
+Kill the address under point.
+
@item C-c C-z
@kindex C-c C-z
@findex message-kill-to-signature
@@ -1244,11 +1254,13 @@ Kill the message buffer and exit (@code{message-kill-buffer}).
@section Mail Aliases
@cindex mail aliases
@cindex aliases
+@cindex completion
+@cindex ecomplete
@vindex message-mail-alias-type
The @code{message-mail-alias-type} variable controls what type of mail
-alias expansion to use. Currently only one form is supported---Message
-uses @code{mailabbrev} to handle mail aliases. If this variable is
+alias expansion to use. Currently two forms are supported:
+@code{mailabbrev} and @code{ecomplete}. If this variable is
@code{nil}, no mail alias expansion will be performed.
@code{mailabbrev} works by parsing the @file{/etc/mailrc} and
@@ -1266,6 +1278,14 @@ on) headers and press @kbd{SPC} to expand the alias.
No expansion will be performed upon sending of the message---all
expansions have to be done explicitly.
+If you're using @code{ecomplete}, all addresses from @code{To} and
+@code{Cc} headers will automatically be put into the
+@file{~/.ecompleterc} file. When you enter text in the @code{To} and
+@code{Cc} headers, @code{ecomplete} will check out the values stored
+there and ``electrically'' say what completions are possible. To
+choose one of these completions, use the @kbd{M-n} command to move
+down to the list. Use @kbd{M-n} and @kbd{M-p} to move down and up the
+list, and @kbd{RET} to choose a completion.
@node Spelling
@section Spelling
@@ -1334,7 +1354,7 @@ installed.
@section Message Headers
Message is quite aggressive on the message generation front. It has to
-be -- it's a combined news and mail agent. To be able to send combined
+be---it's a combined news and mail agent. To be able to send combined
messages, it has to generate all headers itself (instead of letting the
mail/news system do it) to ensure that mail and news copies of messages
look sufficiently similar.
@@ -1373,7 +1393,7 @@ values:
@table @code
@item nil
-Just the address -- @samp{king@@grassland.com}.
+Just the address---@samp{king@@grassland.com}.
@item parens
@samp{king@@grassland.com (Elvis Parsley)}.
@@ -1494,6 +1514,9 @@ hidden when composing a message.
'(not "From" "Subject" "To" "Cc" "Newsgroups"))
@end lisp
+Headers are hidden using narrowing, you can use @kbd{M-x widen} to
+expose them in the buffer.
+
@item message-header-synonyms
@vindex message-header-synonyms
A list of lists of header synonyms. E.g., if this list contains a
@@ -1525,6 +1548,13 @@ Regexp of headers to be removed before mailing. The default is@*
This string is inserted at the end of the headers in all message
buffers that are initialized as mail.
+@item message-generate-hashcash
+@vindex message-generate-hashcash
+Variable that indicates whether @samp{X-Hashcash} headers
+should be computed for the message. @xref{Hashcash, ,Hashcash,gnus,
+The Gnus Manual}. If @code{opportunistic}, only generate the headers
+when it doesn't lead to the user having to wait.
+
@end table
@@ -1541,10 +1571,10 @@ buffers that are initialized as mail.
@findex smtpmail-send-it
@findex feedmail-send-it
Function used to send the current buffer as mail. The default is
-@code{message-send-mail-with-sendmail}. Other valid values include
+@code{message-send-mail-with-sendmail}, or @code{smtpmail-send-it}
+according to the system. Other valid values include
@code{message-send-mail-with-mh}, @code{message-send-mail-with-qmail},
-@code{message-smtpmail-send-it}, @code{smtpmail-send-it} and
-@code{feedmail-send-it}.
+@code{message-smtpmail-send-it} and @code{feedmail-send-it}.
@item message-mh-deletable-headers
@vindex message-mh-deletable-headers
@@ -1859,6 +1889,9 @@ that look like:
Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:
@end example
+@c FIXME: Add `message-insert-formated-citation-line' and
+@c `message-citation-line-format'
+
Point will be at the beginning of the body of the message when this
function is called.
@@ -1873,21 +1906,29 @@ Article Highlighting, gnus, The Gnus Manual}, for details.
@cindex yanking
@cindex quoting
When you are replying to or following up an article, you normally want
-to quote the person you are answering. Inserting quoted text is done
-by @dfn{yanking}, and each line you yank will have
-@code{message-yank-prefix} prepended to it (except for quoted and
-empty lines which uses @code{message-yank-cited-prefix}). The default
-is @samp{> }.
+to quote the person you are answering. Inserting quoted text is done by
+@dfn{yanking}, and each line you yank will have
+@code{message-yank-prefix} prepended to it (except for quoted lines
+which use @code{message-yank-cited-prefix} and empty lines which use
+@code{message-yank-empty-prefix}). The default is @samp{> }.
@item message-yank-cited-prefix
@vindex message-yank-cited-prefix
@cindex yanking
@cindex cited
@cindex quoting
-When yanking text from an article which contains no text or already
-cited text, each line will be prefixed with the contents of this
-variable. The default is @samp{>}. See also
-@code{message-yank-prefix}.
+When yanking text from an article which contains already cited text,
+each line will be prefixed with the contents of this variable. The
+default is @samp{>}. See also @code{message-yank-prefix}.
+
+@item message-yank-empty-prefix
+@vindex message-yank-empty-prefix
+@cindex yanking
+@cindex quoting
+When yanking text from an article, each empty line will be prefixed with
+the contents of this variable. The default is @samp{>}. You can set
+this variable to an empty string to split the cited text into paragraphs
+automatically. See also @code{message-yank-prefix}.
@item message-indentation-spaces
@vindex message-indentation-spaces
@@ -1932,8 +1973,18 @@ If this variable is @code{nil}, no signature will be inserted at all.
@item message-signature-file
@vindex message-signature-file
File containing the signature to be inserted at the end of the buffer.
+If a path is specified, the value of
+@code{message-signature-directory} is ignored, even if set.
The default is @file{~/.signature}.
+@item message-signature-directory
+@vindex message-signature-directory
+Name of directory containing signature files. Comes in handy if you
+have many such files, handled via Gnus posting styles for instance.
+If @code{nil} (the default), @code{message-signature-file} is expected
+to specify the directory if needed.
+
+
@item message-signature-insert-empty-line
@vindex message-signature-insert-empty-line
If @code{t} (the default value) an empty line is inserted before the
@@ -1968,6 +2019,13 @@ Emacsen.) @xref{Charset Translation, , Charset Translation, emacs-mime,
Emacs MIME Manual}, for details on the @sc{mule}-to-@acronym{MIME}
translation process.
+@item message-fill-column
+@vindex message-fill-column
+@cindex auto-fill
+Local value for the column beyond which automatic line-wrapping should
+happen for message buffers. If non-nil (the default), also turn on
+auto-fill in message buffers.
+
@item message-signature-separator
@vindex message-signature-separator
Regexp matching the signature separator. It is @samp{^-- *$} by
@@ -2057,6 +2115,12 @@ Hook run when canceling news articles.
@vindex message-mode-syntax-table
Syntax table used in message mode buffers.
+@item message-cite-articles-with-x-no-archive
+@vindex message-cite-articles-with-x-no-archive
+If non-@code{nil}, don't strip quoted text from articles that have
+@samp{X-No-Archive} set. Even if this variable isn't set, you can
+undo the stripping by hitting the @code{undo} keystroke.
+
@item message-strip-special-text-properties
@vindex message-strip-special-text-properties
Emacs has a number of special text properties which can break message
@@ -2089,7 +2153,7 @@ the buffer where the message is.
@item function
A function to be called if @var{predicate} returns non-@code{nil}.
-@var{function} is called with one parameter -- the prefix.
+@var{function} is called with one parameter---the prefix.
@end table
The default is:
diff --git a/doc/misc/pgg.texi b/doc/misc/pgg.texi
index ca29e2184e5..3a171297740 100644
--- a/doc/misc/pgg.texi
+++ b/doc/misc/pgg.texi
@@ -345,11 +345,11 @@ singleton object wrapped with the luna object system.
Since PGG was designed for accessing and developing PGP functionality,
the architecture had to be designed not just for interoperability but
also for extensiblity. In this chapter we explore the architecture
-while finding out how to write the PGG backend.
+while finding out how to write the PGG back end.
@menu
* Initializing::
-* Backend methods::
+* Back end methods::
* Getting output::
@end menu
@@ -373,12 +373,12 @@ variable @code{pgg-scheme-gpg-instance} and will be reused from now on.
@end lisp
The name of the function must follow the
-regulation---@code{pgg-make-scheme-} follows the backend name.
+regulation---@code{pgg-make-scheme-} follows the back end name.
-@node Backend methods
-@section Backend methods
+@node Back end methods
+@section Back end methods
-In each backend, these methods must be present. The output of these
+In each back end, these methods must be present. The output of these
methods is stored in special buffers (@ref{Getting output}), so that
these methods must tell the status of the execution.
@@ -435,7 +435,7 @@ On success, it returns @code{t}, otherwise @code{nil}.
@node Getting output
@section Getting output
-The output of the backend methods (@ref{Backend methods}) is stored in
+The output of the back end methods (@ref{Back end methods}) is stored in
special buffers, so that these methods must tell the status of the
execution.
diff --git a/doc/misc/remember.texi b/doc/misc/remember.texi
new file mode 100644
index 00000000000..41d1777bf5a
--- /dev/null
+++ b/doc/misc/remember.texi
@@ -0,0 +1,406 @@
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename ../../info/remember
+@settitle Remember Manual
+@c %**end of header
+
+@dircategory Emacs
+@direntry
+* Remember: (remember). Simple information manager for Emacs
+@end direntry
+
+@syncodeindex fn cp
+
+@copying
+This manual is for Remember Mode, version 1.9
+
+Copyright @copyright{} 2001, 2004, 2005, 2007 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.2
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+Texts. A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end copying
+
+@titlepage
+@title Guide to Remember Mode
+@subtitle a simple information manager
+@subtitle for Emacs and XEmacs
+
+@c The following two commands
+@c start the copyright page.
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+@end titlepage
+
+@c So the toc is printed at the start
+@contents
+
+@ifnottex
+@node Top, Preface, (dir), (dir)
+@comment node-name, next, previous, up
+@top Remember
+
+@insertcopying
+@end ifnottex
+
+@menu
+* Preface:: About the documentation.
+* Introduction:: What is Remember Mode?
+* Installation:: How to install Remember.
+* Implementation:: How Remember came into existence.
+* Quick Start:: Get started using Remember.
+* Function Reference:: Interactive functions in remember.el.
+* Keystrokes:: Keystrokes bound in Remember Mode.
+* Backends:: Backends for saving notes.
+* GNU Free Documentation License:: The license for this documentation.
+* Concept Index:: Search for terms.
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+Backends
+
+* Text File:: Saving to a text file.
+* Diary:: Saving to a Diary file.
+* Mailbox:: Saving to a mailbox.
+* Org:: Saving to an Org Mode file.
+
+@end detailmenu
+@end menu
+
+@node Preface, Introduction, Top, Top
+@comment node-name, next, previous, up
+@chapter Preface
+
+This document describes remember-el, which was written by John Wiegley,
+was once maintained by Sacha Chua, and is now maintained by the Emacs
+developers.
+
+This document is a work in progress, and your contribution will be
+greatly appreciated.
+
+@node Introduction, Installation, Preface, Top
+@comment node-name, next, previous, up
+@chapter Introduction
+
+Todo lists, schedules, phone databases... everything we use databases
+for is really just a way to extend the power of our memory, to be able
+to remember what our conscious mind may not currently have access to.
+
+There are many different databases out there---and good ones---which
+this mode is not trying to replace. Rather, it's how that data gets
+there that's the question. Most of the time, we just want to say
+"Remember so-and-so's phone number, or that I have to buy dinner for the
+cats tonight." That's the FACT. How it's stored is really the
+computer's problem. But at this point in time, it's most definitely
+also the user's problem, and sometimes so laboriously so that people
+just let data slip, rather than expend the effort to record it.
+
+``Remember'' is a mode for remembering data. It uses whatever
+back-end is appropriate to record and correlate the data, but its main
+intention is to allow you to express as @emph{little} structure as
+possible up front. If you later want to express more powerful
+relationships between your data, or state assumptions that were at
+first too implicit to be recognized, you can ``study'' the data later
+and rearrange it. But the initial ``just remember this'' impulse
+should be as close to simply throwing the data at Emacs as possible.
+
+Have you ever noticed that having a laptop to write on doesn't
+@emph{actually} increase the amount of quality material that you turn
+out, in the long run? Perhaps it's because the time we save
+electronically in one way, we're losing electronically in another; the
+tool should never dominate one's focus. As the mystic Faridu'd-Din
+`Attar wrote: ``Be occupied as little as possible with things of the
+outer world but much with things of the inner world; then right action
+will overcome inaction.''
+
+If Emacs could become a more intelligent data store, where brainstorming
+would focus on the @emph{ideas} involved---rather than the structuring
+and format of those ideas, or having to stop your current flow of work
+in order to record them---it would map much more closely to how the mind
+(well, at least mine) works, and hence would eliminate that very
+manual-ness which computers from the very beginning have been championed
+as being able to reduce.
+
+@node Installation, Implementation, Introduction, Top
+@comment node-name, next, previous, up
+@chapter Installation
+
+Installing Remember Mode is as simple as adding the following lines to
+your Emacs configuration file (usually @file{~/.emacs.d/init.el} or
+@file{~/.emacs}).
+
+@lisp
+(add-to-list 'load-path "/path/to/remember")
+(require 'remember)
+@end lisp
+
+@node Implementation, Quick Start, Installation, Top
+@comment node-name, next, previous, up
+@chapter Implementation
+
+Hyperbole, as a data presentation tool, always struck me as being very
+powerful, but it seemed to require a lot of ``front-end'' work before
+that data was really available. The problem with BBDB, or keeping up
+a Bibl-mode file, is that you have to use different functions to
+record the data, and it always takes time to stop what you're doing,
+format the data in the manner expected by that particular data
+interface, and then resume your work.
+
+With ``remember'', you just hit @kbd{M-x remember} (you'd probably
+want to bind this to an easily accessible keystroke, like @kbd{C-x
+M-r}), slam in your text however you like, and then hit @kbd{C-c C-c}.
+It will file the data away for later retrieval, and possibly indexing.
+
+Indexing is to data what ``studying'' is in the real world. What you do
+when you study (or lucubrate, for some of us) is to realize certain
+relationships implicit in the data, so that you can make use of those
+relationships. Expressing that a certain quote you remembered was a
+literary quote, and that you want the ability to pull up all quotes of a
+literary nature, is what studying does. This is a more labor intensive
+task than the original remembering of the data, and it's typical in real
+life to set aside a special period of time for doing this work.
+
+``Remember'' works in the same way. When you enter data, either by
+typing it into a buffer, or using the contents of the selected region,
+it will store that data---unindexed, uninterpreted---in a data pool.
+It will also try to remember as much context information as possible
+(any text properties that were set, where you copied it from, when,
+how, etc). Later, you can walk through your accumulated set of data
+(both organized, and unorganized) and easily begin moving things
+around, and making annotations that will express the full meaning of
+that data, as far as you know it.
+
+Obviously this latter stage is more user-interface intensive, and it
+would be nice if ``remember'' could do it as elegantly as possible,
+rather than requiring a billion keystrokes to reorganize your
+hierarchy. Well, as the future arrives, hopefully experience and user
+feedback will help to make this as intuitive a tool as possible.
+
+@node Quick Start, Function Reference, Implementation, Top
+@comment node-name, next, previous, up
+@chapter Quick Start
+
+@itemize
+
+@item
+Load @file{remember.el}.
+
+@item
+Type @kbd{M-x remember}. The @samp{*Remember*} buffer should be
+displayed.
+
+@item
+Type in what you want to remember. The first line will be treated as
+the headline, and the rest of the buffer will contain the body of the
+note.
+
+@item
+Type @kbd{C-c C-c} (@code{remember-finalize}) to save the note and close
+the @samp{*Remember*} buffer.
+@end itemize
+
+By default, @code{remember-finalize} saves the note in @file{~/.notes}.
+You can edit it now to see the remembered and timestamped note. You
+can edit this file however you want. New entries will always be added
+to the end.
+
+To remember a region of text, use the universal prefix. @kbd{C-u M-x
+remember} displays a @samp{*Remember*} buffer with the region as the
+initial contents.
+
+As a simple beginning, you can start by using the Text File backend,
+keeping your @file{~/.notes} file in outline-mode format, with a final
+entry called @samp{* Raw data}. Remembered data will be added to the
+end of the file. Every so often, you can move the data that gets
+appended there into other files, or reorganize your document.
+
+You can also store remembered data in other backends.
+(@pxref{Backends})
+
+Here is one way to map the remember functions in your @file{.emacs} to
+very accessible keystrokes facilities using the mode:
+
+@lisp
+(autoload 'remember ``remember'' nil t)
+(autoload 'remember-region ``remember'' nil t)
+
+(define-key global-map (kbd "<f9> r") 'remember)
+(define-key global-map (kbd "<f9> R") 'remember-region)
+@end lisp
+
+By default, remember uses the first annotation returned by
+@code{remember-annotation-functions}. To include all of the annotations,
+set @code{remember-run-all-annotation-functions-flag} to non-nil.
+
+@defopt remember-run-all-annotation-functions-flag
+Non-nil means use all annotations returned by
+@code{remember-annotation-functions}.
+@end defopt
+
+You can write custom functions that use a different set of
+remember-annotation-functions. For example:
+
+@lisp
+(defun my/remember-with-filename ()
+ "Always use the filename."
+ (interactive)
+ (let ((remember-annotation-functions '(buffer-file-name)))
+ (call-interactively 'remember)))
+@end lisp
+
+@node Function Reference, Keystrokes, Quick Start, Top
+@comment node-name, next, previous, up
+@chapter Function Reference
+
+@file{remember.el} defines the following interactive functions:
+
+@defun remember initial
+Remember an arbitrary piece of data. With a prefix, it will use the
+region as @var{initial}.
+@end defun
+
+@defun remember-region beg end
+If called from within the remember buffer, @var{beg} and @var{end} are
+ignored, and the entire buffer will be remembered. If called from any
+other buffer, that region, plus any context information specific to
+that region, will be remembered.
+@end defun
+
+@defun remember-clipboard
+Remember the contents of the current clipboard. This is most useful
+for remembering things from Netscape or other X Windows applications.
+@end defun
+
+@defun remember-finalize
+Remember the contents of the current buffer.
+@end defun
+
+@defun remember-mode
+This enters the major mode for output from @command{remember}. This
+buffer is used to collect data that you want remember. Just hit
+@kbd{C-c C-c} when you're done entering, and it will go ahead and file
+the data for latter retrieval, and possible indexing.
+@end defun
+
+@node Keystrokes, Backends, Function Reference, Top
+@comment node-name, next, previous, up
+@chapter Keystroke Reference
+
+@file{remember.el} defines the following keybindings by default:
+
+@table @kbd
+
+@item C-c C-c (`remember-finalize')
+Remember the contents of the current buffer.
+
+@item C-c C-k (`remember-destroy')
+Destroy the current *Remember* buffer.
+
+@item C-x C-s (`remember-finalize')
+Remember the contents of the current buffer.
+
+@end table
+
+@node Backends, GNU Free Documentation License, Keystrokes, Top
+@comment node-name, next, previous, up
+@chapter Backends
+
+You can save remembered notes to a variety of backends.
+
+@menu
+* Text File:: Saving to a text file.
+* Diary:: Saving to a Diary file.
+* Mailbox:: Saving to a mailbox.
+* Org:: Saving to an Org Mode file.
+@end menu
+
+@node Text File, Diary, Backends, Backends
+@comment node-name, next, previous, up
+@section Saving to a Text File
+@cindex text file, saving to
+
+@subheading Insinuation
+
+@lisp
+(setq remember-handler-functions '(remember-append-to-file))
+@end lisp
+
+@subheading Options
+
+@defopt remember-data-file
+The file in which to store unprocessed data.
+@end defopt
+
+@defopt remember-leader-text
+The text used to begin each remember item.
+@end defopt
+
+@node Diary, Mailbox, Text File, Backends
+@comment node-name, next, previous, up
+@section Saving to a Diary file
+@cindex diary, integration
+
+@subheading Insinuation
+
+@lisp
+(require 'remember-diary)
+(add-to-list 'remember-handler-functions 'remember-diary-extract-entries)
+@end lisp
+
+@subheading Options
+
+@defopt remember-diary-file
+File for extracted diary entries.
+@end defopt
+
+@node Mailbox, Org, Diary, Backends
+@comment node-name, next, previous, up
+@section Saving to a Mailbox
+@cindex mailbox, saving to
+
+@subheading Insinuation
+
+@lisp
+(add-to-list 'remember-handler-functions 'remember-store-in-mailbox)
+@end lisp
+
+@subheading Options
+
+@defopt remember-mailbox
+The file in which to store remember data as mail.
+@end defopt
+
+@defopt remember-default-priority
+The default priority for remembered mail messages.
+@end defopt
+
+@node Org, , Mailbox, Backends
+@comment node-name, next, previous, up
+@section Saving to an Org Mode file
+@cindex org mode, integration
+
+For instructions on how to integrate Remember with Org Mode,
+consult @ref{Remember, , , org}.
+
+@node GNU Free Documentation License, Concept Index, Backends, Top
+@appendix GNU Free Documentation License
+@include doclicense.texi
+
+@node Concept Index, , GNU Free Documentation License, Top
+@comment node-name, next, previous, up
+@unnumbered Index
+
+@printindex cp
+
+@bye
+
+@ignore
+ arch-tag: 5b980db0-20cc-4167-b845-52dc11d53b9f
+@end ignore
diff --git a/doc/misc/sasl.texi b/doc/misc/sasl.texi
new file mode 100644
index 00000000000..9cd465abb26
--- /dev/null
+++ b/doc/misc/sasl.texi
@@ -0,0 +1,270 @@
+\input texinfo @c -*-texinfo-*-
+
+@setfilename sasl.info
+
+@set VERSION 0.2
+
+@dircategory Emacs
+@direntry
+* SASL: (sasl). The Emacs SASL library.
+@end direntry
+
+@settitle Emacs SASL Library @value{VERSION}
+
+@ifinfo
+This file describes the Emacs SASL library.
+
+Copyright @copyright{} 2004, 2005, 2006 Free Software Foundation, Inc.
+Copyright @copyright{} 2000 Daiki Ueno.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts. A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+@end ifinfo
+
+@tex
+
+@titlepage
+@title Emacs SASL Library
+
+@author by Daiki Ueno
+@page
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 2000 Daiki Ueno.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts. A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+@end titlepage
+@page
+
+@end tex
+
+@node Top
+@top Emacs SASL
+This manual describes the Emacs SASL library.
+
+A common interface to share several authentication mechanisms between
+applications using different protocols.
+
+@menu
+* Overview:: What Emacs SASL library is.
+* How to use:: Adding authentication support to your applications.
+* Data types::
+* Back end drivers:: Writing your own drivers.
+* Index::
+* Function Index::
+* Variable Index::
+@end menu
+
+@node Overview
+@chapter Overview
+
+@sc{sasl} is short for @dfn{Simple Authentication and Security Layer}.
+This standard is documented in RFC2222. It provides a simple method for
+adding authentication support to various application protocols.
+
+The toplevel interface of this library is inspired by Java @sc{sasl}
+Application Program Interface. It defines an abstraction over a series
+of authentication mechanism drivers (@ref{Back end drivers}).
+
+Back end drivers are designed to be close as possible to the
+authentication mechanism. You can access the additional configuration
+information anywhere from the implementation.
+
+@node How to use
+@chapter How to use
+
+(Not yet written).
+
+To use Emacs SASL library, please evaluate following expression at the
+beginning of your application program.
+
+@lisp
+(require 'sasl)
+@end lisp
+
+If you want to check existence of sasl.el at runtime, instead you
+can list autoload settings for functions you want.
+
+@node Data types
+@chapter Data types
+
+There are three data types to be used for carrying a negotiated
+security layer---a mechanism, a client parameter and an authentication
+step.
+
+@menu
+* Mechanisms::
+* Clients::
+* Steps::
+@end menu
+
+@node Mechanisms
+@section Mechanisms
+
+A mechanism (@code{sasl-mechanism} object) is a schema of the @sc{sasl}
+authentication mechanism driver.
+
+@defvar sasl-mechanisms
+A list of mechanism names.
+@end defvar
+
+@defun sasl-find-mechanism mechanisms
+
+Retrieve an apropriate mechanism.
+This function compares @var{mechanisms} and @code{sasl-mechanisms} then
+returns apropriate @code{sasl-mechanism} object.
+
+@example
+(let ((sasl-mechanisms '("CRAM-MD5" "DIGEST-MD5")))
+ (setq mechanism (sasl-find-mechanism server-supported-mechanisms)))
+@end example
+
+@end defun
+
+@defun sasl-mechanism-name mechanism
+Return name of mechanism, a string.
+@end defun
+
+If you want to write an authentication mechanism driver (@ref{Back end
+drivers}), use @code{sasl-make-mechanism} and modify
+@code{sasl-mechanisms} and @code{sasl-mechanism-alist} correctly.
+
+@defun sasl-make-mechanism name steps
+Allocate a @code{sasl-mechanism} object.
+This function takes two parameters---name of the mechanism, and a list
+of authentication functions.
+
+@example
+(defconst sasl-anonymous-steps
+ '(identity ;no initial response
+ sasl-anonymous-response))
+
+(put 'sasl-anonymous 'sasl-mechanism
+ (sasl-make-mechanism "ANONYMOUS" sasl-anonymous-steps))
+@end example
+
+@end defun
+
+@node Clients
+@section Clients
+
+A client (@code{sasl-client} object) initialized with four
+parameters---a mechanism, a user name, name of the service and name of
+the server.
+
+@defun sasl-make-client mechanism name service server
+Prepare a @code{sasl-client} object.
+@end defun
+
+@defun sasl-client-mechanism client
+Return the mechanism (@code{sasl-mechanism} object) of client.
+@end defun
+
+@defun sasl-client-name client
+Return the authorization name of client, a string.
+@end defun
+
+@defun sasl-client-service client
+Return the service name of client, a string.
+@end defun
+
+@defun sasl-client-server client
+Return the server name of client, a string.
+@end defun
+
+If you want to specify additional configuration properties, please use
+@code{sasl-client-set-property}.
+
+@defun sasl-client-set-property client property value
+Add the given property/value to client.
+@end defun
+
+@defun sasl-client-property client property
+Return the value of the property of client.
+@end defun
+
+@defun sasl-client-set-properties client plist
+Destructively set the properties of client.
+The second argument is the new property list.
+@end defun
+
+@defun sasl-client-properties client
+Return the whole property list of client configuration.
+@end defun
+
+@node Steps
+@section Steps
+
+A step (@code{sasl-step} object) is an abstraction of authentication
+``step'' which holds the response value and the next entry point for the
+authentication process (the latter is not accessible).
+
+@defun sasl-step-data step
+Return the data which @var{step} holds, a string.
+@end defun
+
+@defun sasl-step-set-data step data
+Store @var{data} string to @var{step}.
+@end defun
+
+To get the initial response, you should call the function
+@code{sasl-next-step} with the second argument @code{nil}.
+
+@example
+(setq name (sasl-mechanism-name mechanism))
+@end example
+
+At this point we could send the command which starts a SASL
+authentication protocol exchange. For example,
+
+@example
+(process-send-string
+ process
+ (if (sasl-step-data step) ;initial response
+ (format "AUTH %s %s\r\n" name (base64-encode-string (sasl-step-data step) t))
+ (format "AUTH %s\r\n" name)))
+@end example
+
+To go on with the authentication process, all you have to do is call
+@code{sasl-next-step} consecutively.
+
+@defun sasl-next-step client step
+Perform the authentication step.
+At the first time @var{step} should be set to @code{nil}.
+@end defun
+
+@node Back end drivers
+@chapter Back end drivers
+
+(Not yet written).
+
+@node Index
+@chapter Index
+@printindex cp
+
+@node Function Index
+@chapter Function Index
+@printindex fn
+
+@node Variable Index
+@chapter Variable Index
+@printindex vr
+
+@summarycontents
+@contents
+@bye
+
+@c End:
+
+@ignore
+ arch-tag: dc9650be-a953-40bf-bc55-24fe5f19d875
+@end ignore
diff --git a/doc/misc/sieve.texi b/doc/misc/sieve.texi
index af2132e4997..9c31f77f4d8 100644
--- a/doc/misc/sieve.texi
+++ b/doc/misc/sieve.texi
@@ -236,9 +236,9 @@ if address "sender" "owner-w3-beta@@xemacs.org" @{
@}
@end example
-A few mailing lists do not use the @samp{Sender:} header, but does
-contain some unique identifier in some other header. The following is
-not a complete script, it assumes that @code{fileinto} has already been
+A few mailing lists do not use the @samp{Sender:} header, but has a
+unique identifier in some other header. The following is not a
+complete script, it assumes that @code{fileinto} has already been
required.
@example
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 2e37c2206c9..591122640fe 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -260,6 +260,9 @@ box, one of the more common uses of the package. This allows
relatively secure access to machines, especially if @command{ftp}
access is disabled.
+Under Windows, @value{tramp} is integrated with the PuTTY package,
+using the @command{plink} program.
+
The majority of activity carried out by @value{tramp} requires only that
the remote login is possible and is carried out at the terminal. In
order to access remote files @value{tramp} needs to transfer their content
@@ -269,9 +272,9 @@ to the local machine temporarily.
The details are easy to select, depending on your needs and the
machines in question.
-The fastest transfer methods (for large files) rely on a remote file
-transfer package such as @command{rcp}, @command{scp} or
-@command{rsync}.
+The fastest transfer methods for large files rely on a remote file
+transfer package such as @command{rcp}, @command{scp}, @command{rsync}
+or (under Windows) @command{pscp}.
If the remote copy methods are not suitable for you, @value{tramp} also
supports the use of encoded transfers directly through the shell.
@@ -279,15 +282,6 @@ This requires that the @command{mimencode} or @command{uuencode} tools
are available on the remote machine. These methods are generally
faster for small files.
-Within these limitations, @value{tramp} is quite powerful. It is worth
-noting that, as of the time of writing, it is far from a polished
-end-user product. For a while yet you should expect to run into rough
-edges and problems with the code now and then.
-
-It is finished enough that the developers use it for day to day work but
-the installation and setup can be a little difficult to master, as can
-the terminology.
-
@value{tramp} is still under active development and any problems you encounter,
trivial or major, should be reported to the @value{tramp} developers.
@xref{Bug Reports}.
@@ -1594,6 +1588,20 @@ exiting @value{emacsname}. You can simply remove this file if
Using such persistent information can be disabled by setting
@code{tramp-persistency-file-name} to @code{nil}.
+Once consequence of reusing connection related information is that
+@var{tramp} needs to distinguish hosts. If you, for example, run a
+local @code{sshd} on port 3001, which tunnels @command{ssh} to another
+host, you could access both @file{@trampfn{ssh, , localhost,}} and
+@file{@trampfn{ssh, , localhost#3001,}}. @var{tramp} would use the
+same host related information (like paths, Perl variants, etc) for
+both connections, although the information is valid only for one of
+them.
+
+In order to avoid trouble, you must use another host name for one of
+the connections, like introducing a @option{Host} section in
+@file{~/.ssh/config} (@pxref{Frequently Asked Questions}) or applying
+multiple hops (@pxref{Multi-hops}).
+
@node Remote Programs
@section How @value{tramp} finds and uses programs on the remote machine.
@@ -2651,22 +2659,43 @@ remote host.
@lisp
(defadvice tramp-handle-write-region
(after tramp-write-beep-advice activate)
- " make tramp beep after writing a file."
- (interactive)
- (beep))
+ "Make tramp beep after writing a file."
+ (interactive)
+ (beep))
(defadvice tramp-handle-do-copy-or-rename-file
(after tramp-copy-beep-advice activate)
- " make tramp beep after copying a file."
- (interactive)
- (beep))
+ "Make tramp beep after copying a file."
+ (interactive)
+ (beep))
(defadvice tramp-handle-insert-file-contents
- (after tramp-copy-beep-advice activate)
- " make tramp beep after copying a file."
- (interactive)
- (beep))
+ (after tramp-insert-beep-advice activate)
+ "Make tramp beep after inserting a file."
+ (interactive)
+ (beep))
+@end lisp
+
+
+@ifset emacs
+@item
+I'ld like to get a Visual Warning when working in a sudo:ed context
+
+When you are working with @samp{root} privileges, it might be useful
+to get an indication in the buffer's modeline. The following code,
+tested with @value{emacsname} 22.1, does the job. You should put it
+into your @file{~/.emacs}:
+
+@lisp
+(defun my-mode-line-function ()
+ (when (string-match "^/su\\(do\\)?:" default-directory)
+ (setq mode-line-format
+ (format-mode-line mode-line-format 'font-lock-warning-face))))
+
+(add-hook 'find-file-hooks 'my-mode-line-function)
+(add-hook 'dired-mode-hook 'my-mode-line-function)
@end lisp
+@end ifset
@ifset emacs
@@ -2800,7 +2829,7 @@ Host xy
The file name left to type would be @kbd{C-x C-f @trampfn{ssh, , xy,
/opt/news/etc}}. Depending on files in your directories, it is even
-possible to complete the hostname with @kbd{C-x C-f
+possible to complete the host name with @kbd{C-x C-f
@value{prefix}ssh@value{postfixhop}x @key{TAB}}.
@item Use environment variables:
diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
index 35f0722406e..49b2976472e 100644
--- a/doc/misc/widget.texi
+++ b/doc/misc/widget.texi
@@ -142,19 +142,6 @@ extended to use the GUI features. This means that your code using the
widget library will also use the new graphic features automatically.
@end enumerate
-In order to minimize the code that is loaded by users who do not
-create any widgets, the code has been split in two files:
-
-@cindex widget library, files
-@table @file
-@item widget.el
-This will declare the user variables, define the function
-@code{define-widget}, and autoload the function @code{widget-create}.
-@item wid-edit.el
-Everything else is here, there is no reason to load it explicitly, as
-it will be autoloaded when needed.
-@end table
-
@node User Interface, Programming Example, Introduction, Top
@comment node-name, next, previous, up
@section User Interface