aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorStefan Monnier2010-09-30 01:28:20 +0200
committerStefan Monnier2010-09-30 01:28:20 +0200
commita01a7932080e8a6e7bc8472c58cefabcc2c37df3 (patch)
tree94b28b19c8f1536e76ffe7d5826811b74a79e3a5 /doc/misc
parentcc390e46c7ba95b76ea133d98fd386214cd01709 (diff)
parent6b0f7311f16646e0de2045b2410e20921901c616 (diff)
downloademacs-a01a7932080e8a6e7bc8472c58cefabcc2c37df3.tar.gz
emacs-a01a7932080e8a6e7bc8472c58cefabcc2c37df3.zip
Merge from trunk
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/ChangeLog81
-rw-r--r--doc/misc/Makefile.in4
-rw-r--r--doc/misc/ediff.texi3
-rw-r--r--doc/misc/emacs-mime.texi18
-rw-r--r--doc/misc/epa.texi25
-rw-r--r--doc/misc/gnus-news.texi36
-rw-r--r--doc/misc/gnus.texi1242
-rw-r--r--doc/misc/message.texi8
-rw-r--r--doc/misc/tramp.texi21
-rw-r--r--doc/misc/url.texi24
-rw-r--r--doc/misc/woman.texi4
11 files changed, 415 insertions, 1051 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 29cf98e3330..8584e4c26b5 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,84 @@
12010-09-29 Daiki Ueno <ueno@unixuser.org>
2
3 * epa.texi (Bug Reports): New section.
4
52010-09-29 Glenn Morris <rgm@gnu.org>
6
7 * Makefile.in (top_srcdir): Remove unused variable.
8
92010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
10
11 * gnus-news.texi: Mention nnimap-inbox.
12
13 * gnus.texi (Picons): Document gnus-picon-inhibit-top-level-domains.
14
152010-09-26 Julien Danjou <julien@danjou.info>
16
17 * gnus.texi (Oort Gnus): Remove mention of ssl.el
18
192010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
20
21 * gnus.texi (Security): Remove gpg.el mention.
22
232010-09-26 Andreas Seltenreich <seltenreich@gmx.de>
24
25 * gnus.texi (Browse Foreign Server): New variable
26 gnus-browse-subscribe-newsgroup-method.
27
28 * gnus-news.texi: Mention it.
29
302010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
31
32 * gnus.texi (NoCeM): Removed.
33 (Startup Variables): No jingle.
34
352010-09-25 Ulrich Mueller <ulm@gentoo.org>
36
37 * woman.texi (Interface Options): xz compression is now supported.
38
392010-09-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
40
41 * gnus.texi (Article Commands): Document gnus-fetch-partial-articles.
42 (Unavailable Servers): Document gnus-server-copy-server.
43 (Using IMAP): Document the new nnimap.
44
452010-09-25 Julien Danjou <julien@danjou.info>
46
47 * gnus.texi (Customizing Articles): Remove gnus-treat-translate
48
492010-09-24 Glenn Morris <rgm@gnu.org>
50
51 * url.texi (Disk Caching): Tweak previous change.
52
532010-09-24 Julien Danjou <julien@danjou.info>
54
55 * url.texi (Disk Caching): Mention url-cache-expire-time,
56 url-cache-expired, and url-fetch-from-cache.
57
582010-09-24 Julien Danjou <julien@danjou.info>
59
60 * gnus.texi: Add Gravatars.
61
622010-09-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
63
64 * gnus.texi (Startup Variables): Mention gnus-use-backend-marks.
65
662010-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
67
68 * gnus.texi (Expunging mailboxes): Update name of the expunging
69 command.
70
712010-09-20 Katsumi Yamaoka <yamaoka@jpl.org>
72
73 * emacs-mime.texi (rfc2047): Update description for
74 rfc2047-encode-parameter.
75
762010-09-13 Michael Albinus <michael.albinus@gmx.de>
77
78 * tramp.texi (Inline methods): Remove "ssh1_old", "ssh2_old" and
79 "fish" methods.
80 (External methods): Remove "scp1_old" and "scp2_old" methods.
81
12010-09-09 Michael Albinus <michael.albinus@gmx.de> 822010-09-09 Michael Albinus <michael.albinus@gmx.de>
2 83
3 * tramp.texi: Remove Japanese manual. Fix typo. 84 * tramp.texi: Remove Japanese manual. Fix typo.
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 18d9d9a6377..063b40975bf 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -1,7 +1,8 @@
1#### Makefile for documentation other than the Emacs manual. 1#### Makefile for documentation other than the Emacs manual.
2 2
3# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
4# 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4# 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.
5 6
6# This file is part of GNU Emacs. 7# This file is part of GNU Emacs.
7 8
@@ -23,7 +24,6 @@
23# subdirectory of the source tree. This is 24# subdirectory of the source tree. This is
24# set by the configure script's `--srcdir' option. 25# set by the configure script's `--srcdir' option.
25srcdir=@srcdir@ 26srcdir=@srcdir@
26top_srcdir=@top_srcdir@
27 27
28# Tell make where to find source files; this is needed for the makefiles. 28# Tell make where to find source files; this is needed for the makefiles.
29VPATH=@srcdir@ 29VPATH=@srcdir@
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index 451d6d0a5ff..4259fccb390 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -1986,7 +1986,8 @@ If it is @code{combined} then the region in buffer C will look like
1986this: 1986this:
1987 1987
1988@comment Use @set to avoid triggering merge conflict detectors like CVS. 1988@comment Use @set to avoid triggering merge conflict detectors like CVS.
1989@set seven-left 1989@set seven-left <<<<<<<
1990@set seven-right >>>>>>>
1990@example 1991@example
1991@value{seven-left} variant A 1992@value{seven-left} variant A
1992the difference region from buffer A 1993the difference region from buffer A
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 3e996e945fb..2a0e8569266 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -1469,21 +1469,9 @@ Decode a string and return the results.
1469 1469
1470@item rfc2047-encode-parameter 1470@item rfc2047-encode-parameter
1471@findex rfc2047-encode-parameter 1471@findex rfc2047-encode-parameter
1472Encode a parameter in the RFC2047-like style. This is a replacement for 1472Encode a parameter in the RFC2047-like style. This is a substitution
1473the @code{rfc2231-encode-string} function. @xref{rfc2231}. 1473for the @code{rfc2231-encode-string} function, that is the standard but
1474 1474many mailers don't support it. @xref{rfc2231}.
1475When attaching files as @acronym{MIME} parts, we should use the RFC2231
1476encoding to specify the file names containing non-@acronym{ASCII}
1477characters. However, many mail softwares don't support it in practice
1478and recipients won't be able to extract files with correct names.
1479Instead, the RFC2047-like encoding is acceptable generally. This
1480function provides the very RFC2047-like encoding, resigning to such a
1481regrettable trend. To use it, put the following line in your
1482@file{~/.gnus.el} file:
1483
1484@lisp
1485(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter)
1486@end lisp
1487 1475
1488@end table 1476@end table
1489 1477
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index f9c48b1588a..36f74415974 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -65,7 +65,8 @@ called EasyPG Library.
65@menu 65@menu
66* Overview:: 66* Overview::
67* Quick start:: 67* Quick start::
68* Commands:: 68* Commands::
69* Bug Reports::
69@end menu 70@end menu
70 71
71@node Overview 72@node Overview
@@ -398,6 +399,28 @@ If non-@code{nil}, disable auto-saving when opening an encrypted file.
398The default value is @code{t}. 399The default value is @code{t}.
399@end defvar 400@end defvar
400 401
402@node Bug Reports
403@chapter Bug Reports
404
405Bugs and problems with EasyPG Assistant are actively worked on by the
406Emacs development team. Feature requests and suggestions are also
407more than welcome. Use @kbd{M-x report-emacs-bug}, @pxref{Bugs, ,
408Bugs, emacs, Reporting Bugs}.
409
410When submitting a bug report, please try to describe in excruciating
411detail the steps required to reproduce the problem. Also try to
412collect necessary information to fix the bug, such as:
413
414@itemize @bullet
415@item the GnuPG version. Send the output of @samp{gpg --version}.
416@item the GnuPG configuration. Send the contents of @file{~/.gnupg/gpg.conf}.
417@end itemize
418
419Before reporting the bug, you should set @code{epg-debug} in the
420@file{~/.emacs} file and repeat the bug. Then, include the contents
421of the @samp{ *epg-debug*} buffer. Note that the first letter of the
422buffer name is a whitespace.
423
401@bye 424@bye
402 425
403@c End: 426@c End:
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
index e820ceae4a8..028539a7fb4 100644
--- a/doc/misc/gnus-news.texi
+++ b/doc/misc/gnus-news.texi
@@ -18,6 +18,17 @@
18 18
19@itemize @bullet 19@itemize @bullet
20 20
21@item Supported Emacs versions
22The following Emacs versions are supported by No Gnus:
23@itemize @bullet
24
25@item Emacs 22 and up
26@item XEmacs 21.4
27@item XEmacs 21.5
28@item SXEmacs
29
30@end itemize
31
21@item Installation changes 32@item Installation changes
22 33
23@itemize @bullet 34@itemize @bullet
@@ -55,6 +66,13 @@ remove-installed-shadows}.
55 66
56@itemize @bullet 67@itemize @bullet
57 68
69@item New version of @code{nnimap}
70
71@code{nnimap} has been reimplemented in a mostly-compatible way. See
72the Gnus manual for a description of the new interface. In
73particular, @code{nnimap-inbox} and the client side split method has
74changed.
75
58@item Gnus includes the Emacs Lisp @acronym{SASL} library. 76@item Gnus includes the Emacs Lisp @acronym{SASL} library.
59 77
60This provides a clean @acronym{API} to @acronym{SASL} mechanisms from 78This provides a clean @acronym{API} to @acronym{SASL} mechanisms from
@@ -87,6 +105,12 @@ EasyPG is included in Emacs 23 and available separately as well.
87@c ************************ 105@c ************************
88 106
89@itemize @bullet 107@itemize @bullet
108
109@item
110Symbols like @code{gcc-self} now has the same presedence rules in
111@code{gnus-parameters} as other ``real'' variables: The last match
112wins instead of the first match.
113
90@item 114@item
91Old intermediate incoming mail files (@file{Incoming*}) are deleted 115Old intermediate incoming mail files (@file{Incoming*}) are deleted
92after a couple of days, not immediately. @xref{Mail Source 116after a couple of days, not immediately. @xref{Mail Source
@@ -230,6 +254,16 @@ of the "Whomever writes:" line. You need to set
230@code{message-insert-formatted-citation-line} as well. 254@code{message-insert-formatted-citation-line} as well.
231@end itemize 255@end itemize
232 256
257@item Changes in Browse Server mode
258
259@itemize @bullet
260@item Gnus' sophisticated subscription methods are now available in
261Browse Server buffers as well using the variable
262@code{gnus-browse-subscribe-newsgroup-method}.
263
264@end itemize
265
266
233@item Changes in back ends 267@item Changes in back ends
234 268
235@itemize @bullet 269@itemize @bullet
@@ -320,6 +354,8 @@ be unchanged except that the marks will be removed when copying or
320moving articles to a group that has not turned auto-expire on. 354moving articles to a group that has not turned auto-expire on.
321@xref{Expiring Mail}. 355@xref{Expiring Mail}.
322 356
357@item NoCeM support has been removed.
358
323@end itemize 359@end itemize
324 360
325@end itemize 361@end itemize
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 7248897f05b..c1acf7e0d8a 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -589,7 +589,7 @@ Article Treatment
589* Article Buttons:: Click on URLs, Message-IDs, addresses and the like. 589* Article Buttons:: Click on URLs, Message-IDs, addresses and the like.
590* Article Button Levels:: Controlling appearance of buttons. 590* Article Button Levels:: Controlling appearance of buttons.
591* Article Date:: Grumble, UT! 591* Article Date:: Grumble, UT!
592* Article Display:: Display various stuff---X-Face, Picons, Smileys 592* Article Display:: Display various stuff---X-Face, Picons, Smileys, Gravatars
593* Article Signature:: What is a signature? 593* Article Signature:: What is a signature?
594* Article Miscellanea:: Various other stuff. 594* Article Miscellanea:: Various other stuff.
595 595
@@ -629,9 +629,9 @@ Select Methods
629 629
630* Server Buffer:: Making and editing virtual servers. 630* Server Buffer:: Making and editing virtual servers.
631* Getting News:: Reading USENET news with Gnus. 631* Getting News:: Reading USENET news with Gnus.
632* Using @acronym{IMAP}:: Reading mail from @acronym{IMAP}.
632* Getting Mail:: Reading your personal mail with Gnus. 633* Getting Mail:: Reading your personal mail with Gnus.
633* Browsing the Web:: Getting messages from a plethora of Web sources. 634* Browsing the Web:: Getting messages from a plethora of Web sources.
634* IMAP:: Using Gnus as a @acronym{IMAP} client.
635* Other Sources:: Reading directories, files. 635* Other Sources:: Reading directories, files.
636* Combined Groups:: Combining groups into one group. 636* Combined Groups:: Combining groups into one group.
637* Email Based Diary:: Using mails to manage diary events in Gnus. 637* Email Based Diary:: Using mails to manage diary events in Gnus.
@@ -698,15 +698,6 @@ Browsing the Web
698* RSS:: Reading RDF site summary. 698* RSS:: Reading RDF site summary.
699* Customizing W3:: Doing stuff to Emacs/W3 from Gnus. 699* Customizing W3:: Doing stuff to Emacs/W3 from Gnus.
700 700
701@acronym{IMAP}
702
703* Splitting in IMAP:: Splitting mail with nnimap.
704* Expiring in IMAP:: Expiring mail with nnimap.
705* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox.
706* Expunging mailboxes:: Equivalent of a ``compress mailbox'' button.
707* A note on namespaces:: How to (not) use @acronym{IMAP} namespace in Gnus.
708* Debugging IMAP:: What to do when things don't work.
709
710Other Sources 701Other Sources
711 702
712* Directory Groups:: You can read a directory as if it was a newsgroup. 703* Directory Groups:: You can read a directory as if it was a newsgroup.
@@ -808,7 +799,6 @@ Various
808* Highlighting and Menus:: Making buffers look all nice and cozy. 799* Highlighting and Menus:: Making buffers look all nice and cozy.
809* Buttons:: Get tendinitis in ten easy steps! 800* Buttons:: Get tendinitis in ten easy steps!
810* Daemons:: Gnus can do things behind your back. 801* Daemons:: Gnus can do things behind your back.
811* NoCeM:: How to avoid spam and other fatty foods.
812* Undo:: Some actions can be undone. 802* Undo:: Some actions can be undone.
813* Predicate Specifiers:: Specifying predicates. 803* Predicate Specifiers:: Specifying predicates.
814* Moderation:: What to do if you're a moderator. 804* Moderation:: What to do if you're a moderator.
@@ -1637,14 +1627,11 @@ of doing your job. Note that this variable is used before
1637@vindex gnus-no-groups-message 1627@vindex gnus-no-groups-message
1638Message displayed by Gnus when no groups are available. 1628Message displayed by Gnus when no groups are available.
1639 1629
1640@item gnus-play-startup-jingle 1630@item gnus-use-backend-marks
1641@vindex gnus-play-startup-jingle 1631@vindex gnus-use-backend-marks
1642If non-@code{nil}, play the Gnus jingle at startup. 1632If non-@code{nil}, Gnus will store article marks both in the
1643 1633@file{.newsrc.eld} file and in the backends. This will slow down
1644@item gnus-startup-jingle 1634group operation some.
1645@vindex gnus-startup-jingle
1646Jingle to be played if the above variable is non-@code{nil}. The
1647default is @samp{Tuxedomoon.Jingle4.au}.
1648 1635
1649@end table 1636@end table
1650 1637
@@ -1996,8 +1983,7 @@ functions for snarfing info on the group.
1996@vindex gnus-group-update-hook 1983@vindex gnus-group-update-hook
1997@findex gnus-group-highlight-line 1984@findex gnus-group-highlight-line
1998@code{gnus-group-update-hook} is called when a group line is changed. 1985@code{gnus-group-update-hook} is called when a group line is changed.
1999It will not be called when @code{gnus-visual} is @code{nil}. This hook 1986It will not be called when @code{gnus-visual} is @code{nil}.
2000calls @code{gnus-group-highlight-line} by default.
2001 1987
2002 1988
2003@node Group Maneuvering 1989@node Group Maneuvering
@@ -2611,18 +2597,6 @@ for a directory name (@code{gnus-group-make-directory-group}).
2611@findex gnus-group-make-help-group 2597@findex gnus-group-make-help-group
2612Make the Gnus help group (@code{gnus-group-make-help-group}). 2598Make the Gnus help group (@code{gnus-group-make-help-group}).
2613 2599
2614@item G a
2615@kindex G a (Group)
2616@cindex (ding) archive
2617@cindex archive group
2618@findex gnus-group-make-archive-group
2619@vindex gnus-group-archive-directory
2620@vindex gnus-group-recent-archive-directory
2621Make a Gnus archive group (@code{gnus-group-make-archive-group}). By
2622default a group pointing to the most recent articles will be created
2623(@code{gnus-group-recent-archive-directory}), but given a prefix, a full
2624group will be created from @code{gnus-group-archive-directory}.
2625
2626@item G D 2600@item G D
2627@kindex G D (Group) 2601@kindex G D (Group)
2628@findex gnus-group-enter-directory 2602@findex gnus-group-enter-directory
@@ -3624,8 +3598,12 @@ Enter the current group (@code{gnus-browse-select-group}).
3624@item u 3598@item u
3625@kindex u (Browse) 3599@kindex u (Browse)
3626@findex gnus-browse-unsubscribe-current-group 3600@findex gnus-browse-unsubscribe-current-group
3601@vindex gnus-browse-subscribe-newsgroup-method
3627Unsubscribe to the current group, or, as will be the case here, 3602Unsubscribe to the current group, or, as will be the case here,
3628subscribe to it (@code{gnus-browse-unsubscribe-current-group}). 3603subscribe to it (@code{gnus-browse-unsubscribe-current-group}). You
3604can affect the way the new group is entered into the Group buffer
3605using the variable @code{gnus-browse-subscribe-newsgroup-method}. See
3606@pxref{Subscription Methods} for available options.
3629 3607
3630@item l 3608@item l
3631@itemx q 3609@itemx q
@@ -5217,19 +5195,6 @@ used for fetching the file.
5217If fetching from the first site is unsuccessful, Gnus will attempt to go 5195If fetching from the first site is unsuccessful, Gnus will attempt to go
5218through @code{gnus-group-faq-directory} and try to open them one by one. 5196through @code{gnus-group-faq-directory} and try to open them one by one.
5219 5197
5220@item H c
5221@kindex H c (Group)
5222@findex gnus-group-fetch-charter
5223@vindex gnus-group-charter-alist
5224@cindex charter
5225Try to open the charter for the current group in a web browser
5226(@code{gnus-group-fetch-charter}). Query for a group if given a
5227prefix argument.
5228
5229Gnus will use @code{gnus-group-charter-alist} to find the location of
5230the charter. If no location is known, Gnus will fetch the control
5231messages for the group, which in some cases includes the charter.
5232
5233@item H C 5198@item H C
5234@kindex H C (Group) 5199@kindex H C (Group)
5235@findex gnus-group-fetch-control 5200@findex gnus-group-fetch-control
@@ -9250,7 +9215,8 @@ these articles easier.
9250* Article Buttons:: Click on URLs, Message-IDs, addresses and the like. 9215* Article Buttons:: Click on URLs, Message-IDs, addresses and the like.
9251* Article Button Levels:: Controlling appearance of buttons. 9216* Article Button Levels:: Controlling appearance of buttons.
9252* Article Date:: Grumble, UT! 9217* Article Date:: Grumble, UT!
9253* Article Display:: Display various stuff---X-Face, Picons, Smileys 9218* Article Display:: Display various stuff:
9219 X-Face, Picons, Gravatars, Smileys.
9254* Article Signature:: What is a signature? 9220* Article Signature:: What is a signature?
9255* Article Miscellanea:: Various other stuff. 9221* Article Miscellanea:: Various other stuff.
9256@end menu 9222@end menu
@@ -9838,6 +9804,9 @@ Customization, emacs-mime, The Emacs MIME Manual}) to convert the
9838can use include: 9804can use include:
9839 9805
9840@table @code 9806@table @code
9807@item gnus-article-html
9808Use Gnus rendered based on w3m.
9809
9841@item w3 9810@item w3
9842Use Emacs/W3. 9811Use Emacs/W3.
9843 9812
@@ -10102,18 +10071,6 @@ string is invalid.
10102An alist of @code{(RATE . REGEXP)} pairs used by the function 10071An alist of @code{(RATE . REGEXP)} pairs used by the function
10103@code{gnus-button-mid-or-mail-heuristic}. 10072@code{gnus-button-mid-or-mail-heuristic}.
10104 10073
10105@c Stuff related to gnus-button-tex-level
10106
10107@item gnus-button-ctan-handler
10108@findex gnus-button-ctan-handler
10109The function to use for displaying CTAN links. It must take one
10110argument, the string naming the URL.
10111
10112@item gnus-ctan-url
10113@vindex gnus-ctan-url
10114Top directory of a CTAN (Comprehensive TeX Archive Network) archive used
10115by @code{gnus-button-ctan-handler}.
10116
10117@c Misc stuff 10074@c Misc stuff
10118 10075
10119@item gnus-article-button-face 10076@item gnus-article-button-face
@@ -10186,14 +10143,6 @@ Related variables and functions include
10186@code{gnus-button-mid-or-mail-heuristic}, and 10143@code{gnus-button-mid-or-mail-heuristic}, and
10187@code{gnus-button-mid-or-mail-heuristic-alist}. 10144@code{gnus-button-mid-or-mail-heuristic-alist}.
10188 10145
10189@item gnus-button-tex-level
10190@vindex gnus-button-tex-level
10191Controls the display of references to @TeX{} or LaTeX stuff, e.g. for CTAN
10192URLs. See the variables @code{gnus-ctan-url},
10193@code{gnus-button-ctan-handler},
10194@code{gnus-button-ctan-directory-regexp}, and
10195@code{gnus-button-handle-ctan-bogus-regexp}.
10196
10197@end table 10146@end table
10198 10147
10199 10148
@@ -10291,6 +10240,7 @@ preferred format automatically.
10291@cindex picons 10240@cindex picons
10292@cindex x-face 10241@cindex x-face
10293@cindex smileys 10242@cindex smileys
10243@cindex gravatars
10294 10244
10295These commands add various frivolous display gimmicks to the article 10245These commands add various frivolous display gimmicks to the article
10296buffer in Emacs versions that support them. 10246buffer in Emacs versions that support them.
@@ -10307,6 +10257,9 @@ their messages with (@pxref{Smileys}).
10307Picons, on the other hand, reside on your own system, and Gnus will 10257Picons, on the other hand, reside on your own system, and Gnus will
10308try to match the headers to what you have (@pxref{Picons}). 10258try to match the headers to what you have (@pxref{Picons}).
10309 10259
10260Gravatars reside on-line and are fetched from
10261@uref{http://www.gravatar.com/} (@pxref{Gravatars}).
10262
10310All these functions are toggles---if the elements already exist, 10263All these functions are toggles---if the elements already exist,
10311they'll be removed. 10264they'll be removed.
10312 10265
@@ -10345,6 +10298,17 @@ Piconify all mail headers (i. e., @code{Cc}, @code{To})
10345Piconify all news headers (i. e., @code{Newsgroups} and 10298Piconify all news headers (i. e., @code{Newsgroups} and
10346@code{Followup-To}) (@code{gnus-treat-newsgroups-picon}). 10299@code{Followup-To}) (@code{gnus-treat-newsgroups-picon}).
10347 10300
10301@item W D g
10302@kindex W D g (Summary)
10303@findex gnus-treat-from-gravatar
10304Gravatarify the @code{From} header (@code{gnus-treat-from-gravatar}).
10305
10306@item W D h
10307@kindex W D h (Summary)
10308@findex gnus-treat-mail-gravatar
10309Gravatarify all mail headers (i. e., @code{Cc}, @code{To})
10310(@code{gnus-treat-from-gravatar}).
10311
10348@item W D D 10312@item W D D
10349@kindex W D D (Summary) 10313@kindex W D D (Summary)
10350@findex gnus-article-remove-images 10314@findex gnus-article-remove-images
@@ -10830,6 +10794,16 @@ Generate and print a PostScript image of the article buffer
10830be run just before printing the buffer. An alternative way to print 10794be run just before printing the buffer. An alternative way to print
10831article is to use Muttprint (@pxref{Saving Articles}). 10795article is to use Muttprint (@pxref{Saving Articles}).
10832 10796
10797@item A C
10798@vindex gnus-fetch-partial-articles
10799@findex gnus-summary-show-complete-article
10800If @code{gnus-fetch-partial-articles} is non-@code{nil}, Gnus will
10801fetch partial articles, if the backend it fetches them from supports
10802it. Currently only @code{nnimap} does. If you're looking at a
10803partial article, and want to see the complete article instead, then
10804the @kbd{A C} command (@code{gnus-summary-show-complete-article}) will
10805do so.
10806
10833@end table 10807@end table
10834 10808
10835 10809
@@ -11553,18 +11527,6 @@ sieve.
11553 11527
11554@table @kbd 11528@table @kbd
11555 11529
11556@item H f
11557@kindex H f (Summary)
11558@findex gnus-summary-fetch-faq
11559@vindex gnus-group-faq-directory
11560Try to fetch the @acronym{FAQ} (list of frequently asked questions)
11561for the current group (@code{gnus-summary-fetch-faq}). Gnus will try
11562to get the @acronym{FAQ} from @code{gnus-group-faq-directory}, which
11563is usually a directory on a remote machine. This variable can also be
11564a list of directories. In that case, giving a prefix to this command
11565will allow you to choose between the various sites. @code{ange-ftp}
11566or @code{efs} will probably be used for fetching the file.
11567
11568@item H d 11530@item H d
11569@kindex H d (Summary) 11531@kindex H d (Summary)
11570@findex gnus-summary-describe-group 11532@findex gnus-summary-describe-group
@@ -11890,8 +11852,7 @@ read the same article more than once. Unless, of course, somebody has
11890posted it to several groups separately. Posting the same article to 11852posted it to several groups separately. Posting the same article to
11891several groups (not cross-posting) is called @dfn{spamming}, and you are 11853several groups (not cross-posting) is called @dfn{spamming}, and you are
11892by law required to send nasty-grams to anyone who perpetrates such a 11854by law required to send nasty-grams to anyone who perpetrates such a
11893heinous crime. You may want to try NoCeM handling to filter out spam 11855heinous crime.
11894(@pxref{NoCeM}).
11895 11856
11896Remember: Cross-posting is kinda ok, but posting the same article 11857Remember: Cross-posting is kinda ok, but posting the same article
11897separately to several groups is not. Massive cross-posting (aka. 11858separately to several groups is not. Massive cross-posting (aka.
@@ -12022,7 +11983,7 @@ To handle @acronym{PGP} and @acronym{PGP/MIME} messages, you have to
12022install an OpenPGP implementation such as GnuPG. The Lisp interface 11983install an OpenPGP implementation such as GnuPG. The Lisp interface
12023to GnuPG included with Emacs is called EasyPG (@pxref{Top, ,EasyPG, 11984to GnuPG included with Emacs is called EasyPG (@pxref{Top, ,EasyPG,
12024epa, EasyPG Assistant user's manual}), but PGG (@pxref{Top, ,PGG, pgg, 11985epa, EasyPG Assistant user's manual}), but PGG (@pxref{Top, ,PGG, pgg,
12025PGG Manual}), Mailcrypt, and gpg.el are also supported. 11986PGG Manual}), and Mailcrypt are also supported.
12026 11987
12027@item 11988@item
12028To handle @acronym{S/MIME} message, you need to install OpenSSL. OpenSSL 0.9.6 11989To handle @acronym{S/MIME} message, you need to install OpenSSL. OpenSSL 0.9.6
@@ -12061,7 +12022,7 @@ public-key matching the @samp{From:} header as the recipient;
12061@vindex mml1991-use 12022@vindex mml1991-use
12062Symbol indicating elisp interface to OpenPGP implementation for 12023Symbol indicating elisp interface to OpenPGP implementation for
12063@acronym{PGP} messages. The default is @code{epg}, but @code{pgg}, 12024@acronym{PGP} messages. The default is @code{epg}, but @code{pgg},
12064@code{mailcrypt}, and @code{gpg} are also supported although 12025and @code{mailcrypt} are also supported although
12065deprecated. By default, Gnus uses the first available interface in 12026deprecated. By default, Gnus uses the first available interface in
12066this order. 12027this order.
12067 12028
@@ -12069,7 +12030,7 @@ this order.
12069@vindex mml2015-use 12030@vindex mml2015-use
12070Symbol indicating elisp interface to OpenPGP implementation for 12031Symbol indicating elisp interface to OpenPGP implementation for
12071@acronym{PGP/MIME} messages. The default is @code{epg}, but 12032@acronym{PGP/MIME} messages. The default is @code{epg}, but
12072@code{pgg}, @code{mailcrypt}, and @code{gpg} are also supported 12033@code{pgg}, and @code{mailcrypt} are also supported
12073although deprecated. By default, Gnus uses the first available 12034although deprecated. By default, Gnus uses the first available
12074interface in this order. 12035interface in this order.
12075 12036
@@ -12623,6 +12584,8 @@ controlling variable is a predicate list, as described above.
12623@vindex gnus-treat-from-picon 12584@vindex gnus-treat-from-picon
12624@vindex gnus-treat-mail-picon 12585@vindex gnus-treat-mail-picon
12625@vindex gnus-treat-newsgroups-picon 12586@vindex gnus-treat-newsgroups-picon
12587@vindex gnus-treat-from-gravatar
12588@vindex gnus-treat-mail-gravatar
12626@vindex gnus-treat-display-smileys 12589@vindex gnus-treat-display-smileys
12627@vindex gnus-treat-body-boundary 12590@vindex gnus-treat-body-boundary
12628@vindex gnus-treat-display-x-face 12591@vindex gnus-treat-display-x-face
@@ -12641,7 +12604,6 @@ controlling variable is a predicate list, as described above.
12641@vindex gnus-treat-highlight-headers 12604@vindex gnus-treat-highlight-headers
12642@vindex gnus-treat-highlight-signature 12605@vindex gnus-treat-highlight-signature
12643@vindex gnus-treat-play-sounds 12606@vindex gnus-treat-play-sounds
12644@vindex gnus-treat-translate
12645@vindex gnus-treat-x-pgp-sig 12607@vindex gnus-treat-x-pgp-sig
12646@vindex gnus-treat-unfold-headers 12608@vindex gnus-treat-unfold-headers
12647@vindex gnus-treat-fold-headers 12609@vindex gnus-treat-fold-headers
@@ -12689,6 +12651,11 @@ possible but those listed are probably sufficient for most people.
12689 12651
12690@xref{Picons}. 12652@xref{Picons}.
12691 12653
12654@item gnus-treat-from-gravatar (head)
12655@item gnus-treat-mail-gravatar (head)
12656
12657@xref{Gravatars}.
12658
12692@item gnus-treat-display-smileys (t, integer) 12659@item gnus-treat-display-smileys (t, integer)
12693 12660
12694@item gnus-treat-body-boundary (head) 12661@item gnus-treat-body-boundary (head)
@@ -12743,8 +12710,6 @@ is controlled by @code{gnus-body-boundary-delimiter}.
12743 12710
12744@vindex gnus-treat-play-sounds 12711@vindex gnus-treat-play-sounds
12745@item gnus-treat-play-sounds 12712@item gnus-treat-play-sounds
12746@vindex gnus-treat-translate
12747@item gnus-treat-translate
12748@item gnus-treat-ansi-sequences (t) 12713@item gnus-treat-ansi-sequences (t)
12749@vindex gnus-treat-x-pgp-sig 12714@vindex gnus-treat-x-pgp-sig
12750@item gnus-treat-x-pgp-sig (head) 12715@item gnus-treat-x-pgp-sig (head)
@@ -13735,9 +13700,9 @@ The different methods all have their peculiarities, of course.
13735@menu 13700@menu
13736* Server Buffer:: Making and editing virtual servers. 13701* Server Buffer:: Making and editing virtual servers.
13737* Getting News:: Reading USENET news with Gnus. 13702* Getting News:: Reading USENET news with Gnus.
13703* Using @acronym{IMAP}:: Reading mail from @acronym{IMAP}.
13738* Getting Mail:: Reading your personal mail with Gnus. 13704* Getting Mail:: Reading your personal mail with Gnus.
13739* Browsing the Web:: Getting messages from a plethora of Web sources. 13705* Browsing the Web:: Getting messages from a plethora of Web sources.
13740* IMAP:: Using Gnus as a @acronym{IMAP} client.
13741* Other Sources:: Reading directories, files. 13706* Other Sources:: Reading directories, files.
13742* Combined Groups:: Combining groups into one group. 13707* Combined Groups:: Combining groups into one group.
13743* Email Based Diary:: Using mails to manage diary events in Gnus. 13708* Email Based Diary:: Using mails to manage diary events in Gnus.
@@ -14150,6 +14115,14 @@ Close the connections to all servers in the buffer
14150Remove all marks to whether Gnus was denied connection from any servers 14115Remove all marks to whether Gnus was denied connection from any servers
14151(@code{gnus-server-remove-denials}). 14116(@code{gnus-server-remove-denials}).
14152 14117
14118@item c
14119@kindex c (Server)
14120@findex gnus-server-copy-server
14121Copy a server and give it a new name
14122(@code{gnus-server-copy-server}). This can be useful if you have a
14123complex method definition, and want to use the same definition towards
14124a different (physical) server.
14125
14153@item L 14126@item L
14154@kindex L (Server) 14127@kindex L (Server)
14155@findex gnus-server-offline-server 14128@findex gnus-server-offline-server
@@ -14814,6 +14787,121 @@ there.
14814@end table 14787@end table
14815 14788
14816 14789
14790@node Using @acronym{IMAP}
14791@section Using @acronym{IMAP}
14792@cindex imap
14793
14794The most popular mail backend is probably @code{nnimap}, which
14795provides access to @acronym{IMAP} servers. @acronym{IMAP} servers
14796store mail remotely, so the client doesn't store anything locally.
14797This means that it's a convenient choice when you're reading your mail
14798from different locations, or with different user agents.
14799
14800@menu
14801* Connecting to an @acronym{IMAP} Server:: Getting started with @acronym{IMAP}.
14802* Customizing the @acronym{IMAP} Connection:: Variables for @acronym{IMAP} connection.
14803* Client-Side @acronym{IMAP} Splitting:: Put mail in the correct mail box.
14804@end menu
14805
14806
14807@node Connecting to an @acronym{IMAP} Server
14808@subsection Connecting to an @acronym{IMAP} Server
14809
14810Connecting to an @acronym{IMAP} can be very easy. Type @kbd{B} in the
14811group buffer, or (if your primary interest is reading email), say
14812something like:
14813
14814@example
14815(setq gnus-select-method
14816 '(nnimap "imap.gmail.com"))
14817@end example
14818
14819You'll be prompted for a user name and password. If you grow tired of
14820that, then add the following to your @file{~/.authinfo} file:
14821
14822@example
14823machine imap.gmail.com login <username> password <password> port imap
14824@end example
14825
14826That should basically be it for most users.
14827
14828
14829@node Customizing the @acronym{IMAP} Connection
14830@subsection Customizing the @acronym{IMAP} Connection
14831
14832Here's an example method that's more complex:
14833
14834@example
14835(nnimap "imap.gmail.com"
14836 (nnimap-inbox "INBOX")
14837 (nnimap-split-methods ,nnmail-split-methods)
14838 (nnimap-expunge t)
14839 (nnimap-stream 'ssl)
14840 (nnir-search-engine imap)
14841 (nnimap-expunge-inbox t))
14842@end example
14843
14844@table @code
14845@item nnimap-address
14846The address of the server, like @samp{imap.gmail.com}.
14847
14848@item nnimap-server-port
14849If the server uses a non-standard port, that can be specified here. A
14850typical port would be @samp{imap} or @samp{imaps}.
14851
14852@item nnimap-stream
14853How @code{nnimap} should connect to the server. Possible values are:
14854
14855@table @code
14856@item ssl
14857This is the default, and this uses standard
14858@acronym{TLS}/@acronym{SSL} connection.
14859
14860@item network
14861Non-encrypted and unsafe straight socket connection.
14862
14863@item starttls
14864Encrypted @acronym{STARTTLS} over the normal @acronym{IMAP} port.
14865
14866@item shell
14867If you need to tunnel via other systems to connect to the server, you
14868can use this option, and customize @code{nnimap-shell-program} to be
14869what you need.
14870
14871@end table
14872
14873@item nnimap-authenticator
14874Some @acronym{IMAP} servers allow anonymous logins. In that case,
14875this should be set to @code{anonymous}.
14876
14877@item nnimap-streaming
14878Virtually all @code{IMAP} server support fast streaming of data. If
14879you have problems connecting to the server, try setting this to @code{nil}.
14880
14881@end table
14882
14883
14884@node Client-Side @acronym{IMAP} Splitting
14885@subsection Client-Side @acronym{IMAP} Splitting
14886
14887Many people prefer to do the sorting/splitting of mail into their mail
14888boxes on the @acronym{IMAP} server. That way they don't have to
14889download the mail they're not all that interested in.
14890
14891If you do want to do client-side mail splitting, then the following
14892variables are relevant:
14893
14894@table @code
14895@item nnimap-inbox
14896This is the @acronym{IMAP} mail box that will be scanned for new mail.
14897
14898@item nnimap-split-methods
14899Uses the same syntax as @code{nnmail-split-methods} (@pxref{Splitting
14900Mail}).
14901
14902@end table
14903
14904
14817@node Getting Mail 14905@node Getting Mail
14818@section Getting Mail 14906@section Getting Mail
14819@cindex reading mail 14907@cindex reading mail
@@ -15372,10 +15460,7 @@ Get mail from a @acronym{IMAP} server. If you don't want to use
15372@acronym{IMAP} as intended, as a network mail reading protocol (ie 15460@acronym{IMAP} as intended, as a network mail reading protocol (ie
15373with nnimap), for some reason or other, Gnus let you treat it similar 15461with nnimap), for some reason or other, Gnus let you treat it similar
15374to a @acronym{POP} server and fetches articles from a given 15462to a @acronym{POP} server and fetches articles from a given
15375@acronym{IMAP} mailbox. @xref{IMAP}, for more information. 15463@acronym{IMAP} mailbox. @xref{Using @acronym{IMAP}}, for more information.
15376
15377Note that for the Kerberos, GSSAPI, @acronym{TLS}/@acronym{SSL} and STARTTLS support you
15378may need external programs and libraries, @xref{IMAP}.
15379 15464
15380Keywords: 15465Keywords:
15381 15466
@@ -15844,7 +15929,7 @@ after @code{save-excursion} and @code{save-restriction} in the example
15844above. Also note that with the nnimap backend, message bodies will 15929above. Also note that with the nnimap backend, message bodies will
15845not be downloaded by default. You need to set 15930not be downloaded by default. You need to set
15846@code{nnimap-split-download-body} to @code{t} to do that 15931@code{nnimap-split-download-body} to @code{t} to do that
15847(@pxref{Splitting in IMAP}). 15932(@pxref{Client-Side @acronym{IMAP} Splitting}).
15848 15933
15849@item (! @var{func} @var{split}) 15934@item (! @var{func} @var{split})
15850If the split is a list, and the first element is @code{!}, then 15935If the split is a list, and the first element is @code{!}, then
@@ -16608,6 +16693,7 @@ Spool}).
16608@end menu 16693@end menu
16609 16694
16610 16695
16696
16611@node Unix Mail Box 16697@node Unix Mail Box
16612@subsubsection Unix Mail Box 16698@subsubsection Unix Mail Box
16613@cindex nnmbox 16699@cindex nnmbox
@@ -17733,739 +17819,6 @@ Put that in your @file{.emacs} file, and hitting links in W3-rendered
17733follow the link. 17819follow the link.
17734 17820
17735 17821
17736@node IMAP
17737@section IMAP
17738@cindex nnimap
17739@cindex @acronym{IMAP}
17740
17741@acronym{IMAP} is a network protocol for reading mail (or news, or @dots{}),
17742think of it as a modernized @acronym{NNTP}. Connecting to a @acronym{IMAP}
17743server is much similar to connecting to a news server, you just
17744specify the network address of the server.
17745
17746@acronym{IMAP} has two properties. First, @acronym{IMAP} can do
17747everything that @acronym{POP} can, it can hence be viewed as a
17748@acronym{POP++}. Secondly, @acronym{IMAP} is a mail storage protocol,
17749similar to @acronym{NNTP} being a news storage protocol---however,
17750@acronym{IMAP} offers more features than @acronym{NNTP} because news
17751is more or less read-only whereas mail is read-write.
17752
17753If you want to use @acronym{IMAP} as a @acronym{POP++}, use an imap
17754entry in @code{mail-sources}. With this, Gnus will fetch mails from
17755the @acronym{IMAP} server and store them on the local disk. This is
17756not the usage described in this section---@xref{Mail Sources}.
17757
17758If you want to use @acronym{IMAP} as a mail storage protocol, use an nnimap
17759entry in @code{gnus-secondary-select-methods}. With this, Gnus will
17760manipulate mails stored on the @acronym{IMAP} server. This is the kind of
17761usage explained in this section.
17762
17763A server configuration in @file{~/.gnus.el} with a few @acronym{IMAP}
17764servers might look something like the following. (Note that for
17765@acronym{TLS}/@acronym{SSL}, you need external programs and libraries,
17766see below.)
17767
17768@lisp
17769(setq gnus-secondary-select-methods
17770 '((nnimap "simpleserver") ; @r{no special configuration}
17771 ; @r{perhaps a ssh port forwarded server:}
17772 (nnimap "dolk"
17773 (nnimap-address "localhost")
17774 (nnimap-server-port 1430))
17775 ; @r{a UW server running on localhost}
17776 (nnimap "barbar"
17777 (nnimap-server-port 143)
17778 (nnimap-address "localhost")
17779 (nnimap-list-pattern ("INBOX" "mail/*")))
17780 ; @r{anonymous public cyrus server:}
17781 (nnimap "cyrus.andrew.cmu.edu"
17782 (nnimap-authenticator anonymous)
17783 (nnimap-list-pattern "archive.*")
17784 (nnimap-stream network))
17785 ; @r{a ssl server on a non-standard port:}
17786 (nnimap "vic20"
17787 (nnimap-address "vic20.somewhere.com")
17788 (nnimap-server-port 9930)
17789 (nnimap-stream ssl))))
17790@end lisp
17791
17792After defining the new server, you can subscribe to groups on the
17793server using normal Gnus commands such as @kbd{U} in the Group Buffer
17794(@pxref{Subscription Commands}) or via the Server Buffer
17795(@pxref{Server Buffer}).
17796
17797The following variables can be used to create a virtual @code{nnimap}
17798server:
17799
17800@table @code
17801
17802@item nnimap-address
17803@vindex nnimap-address
17804
17805The address of the remote @acronym{IMAP} server. Defaults to the virtual
17806server name if not specified.
17807
17808@item nnimap-server-port
17809@vindex nnimap-server-port
17810Port on server to contact. Defaults to port 143, or 993 for @acronym{TLS}/@acronym{SSL}.
17811
17812Note that this should be an integer, example server specification:
17813
17814@lisp
17815(nnimap "mail.server.com"
17816 (nnimap-server-port 4711))
17817@end lisp
17818
17819@item nnimap-list-pattern
17820@vindex nnimap-list-pattern
17821String or list of strings of mailboxes to limit available groups to.
17822This is used when the server has very many mailboxes and you're only
17823interested in a few---some servers export your home directory via
17824@acronym{IMAP}, you'll probably want to limit the mailboxes to those in
17825@file{~/Mail/*} then.
17826
17827The string can also be a cons of REFERENCE and the string as above, what
17828REFERENCE is used for is server specific, but on the University of
17829Washington server it's a directory that will be concatenated with the
17830mailbox.
17831
17832Example server specification:
17833
17834@lisp
17835(nnimap "mail.server.com"
17836 (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*"
17837 ("~friend/Mail/" . "list/*"))))
17838@end lisp
17839
17840@item nnimap-stream
17841@vindex nnimap-stream
17842The type of stream used to connect to your server. By default, nnimap
17843will detect and automatically use all of the below, with the exception
17844of @acronym{TLS}/@acronym{SSL}. (@acronym{IMAP} over
17845@acronym{TLS}/@acronym{SSL} is being replaced by STARTTLS, which can
17846be automatically detected, but it's not widely deployed yet.)
17847
17848Example server specification:
17849
17850@lisp
17851(nnimap "mail.server.com"
17852 (nnimap-stream ssl))
17853@end lisp
17854
17855Please note that the value of @code{nnimap-stream} is a symbol!
17856
17857@itemize @bullet
17858@item
17859@dfn{gssapi:} Connect with GSSAPI (usually Kerberos 5). Requires the
17860@samp{gsasl} or @samp{imtest} program.
17861@item
17862@dfn{kerberos4:} Connect with Kerberos 4. Requires the @samp{imtest} program.
17863@item
17864@dfn{starttls:} Connect via the STARTTLS extension (similar to
17865@acronym{TLS}/@acronym{SSL}). Requires the external library @samp{starttls.el} and program
17866@samp{starttls}.
17867@item
17868@dfn{tls:} Connect through @acronym{TLS}. Requires GNUTLS (the program
17869@samp{gnutls-cli}).
17870@item
17871@dfn{ssl:} Connect through @acronym{SSL}. Requires OpenSSL (the program
17872@samp{openssl}) or SSLeay (@samp{s_client}).
17873@item
17874@dfn{shell:} Use a shell command to start @acronym{IMAP} connection.
17875@item
17876@dfn{network:} Plain, TCP/IP network connection.
17877@end itemize
17878
17879@vindex imap-kerberos4-program
17880The @samp{imtest} program is shipped with Cyrus IMAPD. If you're
17881using @samp{imtest} from Cyrus IMAPD < 2.0.14 (which includes version
178821.5.x and 1.6.x) you need to frob @code{imap-process-connection-type}
17883to make @code{imap.el} use a pty instead of a pipe when communicating
17884with @samp{imtest}. You will then suffer from a line length
17885restrictions on @acronym{IMAP} commands, which might make Gnus seem to hang
17886indefinitely if you have many articles in a mailbox. The variable
17887@code{imap-kerberos4-program} contain parameters to pass to the imtest
17888program.
17889
17890For @acronym{TLS} connection, the @code{gnutls-cli} program from GNUTLS is
17891needed. It is available from
17892@uref{http://www.gnu.org/software/gnutls/}.
17893
17894@vindex imap-gssapi-program
17895This parameter specifies a list of command lines that invoke a GSSAPI
17896authenticated @acronym{IMAP} stream in a subshell. They are tried
17897sequentially until a connection is made, or the list has been
17898exhausted. By default, @samp{gsasl} from GNU SASL, available from
17899@uref{http://www.gnu.org/software/gsasl/}, and the @samp{imtest}
17900program from Cyrus IMAPD (see @code{imap-kerberos4-program}), are
17901tried.
17902
17903@vindex imap-ssl-program
17904For @acronym{SSL} connections, the OpenSSL program is available from
17905@uref{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay,
17906and nnimap support it too---although the most recent versions of
17907SSLeay, 0.9.x, are known to have serious bugs making it
17908useless. Earlier versions, especially 0.8.x, of SSLeay are known to
17909work. The variable @code{imap-ssl-program} contain parameters to pass
17910to OpenSSL/SSLeay.
17911
17912@vindex imap-shell-program
17913@vindex imap-shell-host
17914For @acronym{IMAP} connections using the @code{shell} stream, the
17915variable @code{imap-shell-program} specify what program to call. Make
17916sure nothing is interfering with the output of the program, e.g., don't
17917forget to redirect the error output to the void.
17918
17919@item nnimap-authenticator
17920@vindex nnimap-authenticator
17921
17922The authenticator used to connect to the server. By default, nnimap
17923will use the most secure authenticator your server is capable of.
17924
17925Example server specification:
17926
17927@lisp
17928(nnimap "mail.server.com"
17929 (nnimap-authenticator anonymous))
17930@end lisp
17931
17932Please note that the value of @code{nnimap-authenticator} is a symbol!
17933
17934@itemize @bullet
17935@item
17936@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Requires
17937external program @code{gsasl} or @code{imtest}.
17938@item
17939@dfn{kerberos4:} Kerberos 4 authentication. Requires external program
17940@code{imtest}.
17941@item
17942@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Requires
17943external library @code{digest-md5.el}.
17944@item
17945@dfn{cram-md5:} Encrypted username/password via CRAM-MD5.
17946@item
17947@dfn{login:} Plain-text username/password via LOGIN.
17948@item
17949@dfn{anonymous:} Login as ``anonymous'', supplying your email address as password.
17950@end itemize
17951
17952@item nnimap-expunge-on-close
17953@cindex expunging
17954@vindex nnimap-expunge-on-close
17955Unlike Parmenides the @acronym{IMAP} designers have decided things that
17956don't exist actually do exist. More specifically, @acronym{IMAP} has
17957this concept of marking articles @code{Deleted} which doesn't actually
17958delete them, and this (marking them @code{Deleted}, that is) is what
17959nnimap does when you delete an article in Gnus (with @kbd{B DEL} or
17960similar).
17961
17962Since the articles aren't really removed when we mark them with the
17963@code{Deleted} flag we'll need a way to actually delete them. Feel like
17964running in circles yet?
17965
17966Traditionally, nnimap has removed all articles marked as @code{Deleted}
17967when closing a mailbox but this is now configurable by this server
17968variable.
17969
17970The possible options are:
17971
17972@table @code
17973
17974@item always
17975The default behavior, delete all articles marked as ``Deleted'' when
17976closing a mailbox.
17977@item never
17978Never actually delete articles. Currently there is no way of showing
17979the articles marked for deletion in nnimap, but other @acronym{IMAP} clients
17980may allow you to do this. If you ever want to run the EXPUNGE command
17981manually, @xref{Expunging mailboxes}.
17982@item ask
17983When closing mailboxes, nnimap will ask if you wish to expunge deleted
17984articles or not.
17985
17986@end table
17987
17988@item nnimap-importantize-dormant
17989@vindex nnimap-importantize-dormant
17990
17991If non-@code{nil} (the default), marks dormant articles as ticked (as
17992well), for other @acronym{IMAP} clients. Within Gnus, dormant articles will
17993naturally still (only) be marked as dormant. This is to make dormant
17994articles stand out, just like ticked articles, in other @acronym{IMAP}
17995clients. (In other words, Gnus has two ``Tick'' marks and @acronym{IMAP}
17996has only one.)
17997
17998Probably the only reason for frobbing this would be if you're trying
17999enable per-user persistent dormant flags, using something like:
18000
18001@lisp
18002(setcdr (assq 'dormant nnimap-mark-to-flag-alist)
18003 (format "gnus-dormant-%s" (user-login-name)))
18004(setcdr (assq 'dormant nnimap-mark-to-predicate-alist)
18005 (format "KEYWORD gnus-dormant-%s" (user-login-name)))
18006@end lisp
18007
18008In this case, you would not want the per-user dormant flag showing up
18009as ticked for other users.
18010
18011@item nnimap-expunge-search-string
18012@cindex expunging
18013@vindex nnimap-expunge-search-string
18014@cindex expiring @acronym{IMAP} mail
18015
18016This variable contain the @acronym{IMAP} search command sent to server when
18017searching for articles eligible for expiring. The default is
18018@code{"UID %s NOT SINCE %s"}, where the first @code{%s} is replaced by
18019UID set and the second @code{%s} is replaced by a date.
18020
18021Probably the only useful value to change this to is
18022@code{"UID %s NOT SENTSINCE %s"}, which makes nnimap use the Date: in
18023messages instead of the internal article date. See section 6.4.4 of
18024RFC 2060 for more information on valid strings.
18025
18026However, if @code{nnimap-search-uids-not-since-is-evil}
18027is true, this variable has no effect since the search logic
18028is reversed, as described below.
18029
18030@item nnimap-authinfo-file
18031@vindex nnimap-authinfo-file
18032
18033A file containing credentials used to log in on servers. The format is
18034(almost) the same as the @code{ftp} @file{~/.netrc} file. See the
18035variable @code{nntp-authinfo-file} for exact syntax; also see
18036@ref{NNTP}. An example of an .authinfo line for an IMAP server, is:
18037
18038@example
18039machine students.uio.no login larsi password geheimnis port imap
18040@end example
18041
18042Note that it should be @code{port imap}, or @code{port 143}, if you
18043use a @code{nnimap-stream} of @code{tls} or @code{ssl}, even if the
18044actual port number used is port 993 for secured IMAP. For
18045convenience, Gnus will accept @code{port imaps} as a synonym of
18046@code{port imap}.
18047
18048@item nnimap-need-unselect-to-notice-new-mail
18049@vindex nnimap-need-unselect-to-notice-new-mail
18050
18051Unselect mailboxes before looking for new mail in them. Some servers
18052seem to need this under some circumstances; it was reported that
18053Courier 1.7.1 did.
18054
18055@item nnimap-nov-is-evil
18056@vindex nnimap-nov-is-evil
18057@cindex Courier @acronym{IMAP} server
18058@cindex @acronym{NOV}
18059
18060Never generate or use a local @acronym{NOV} database. Defaults to the
18061value of @code{gnus-agent}.
18062
18063Using a @acronym{NOV} database usually makes header fetching much
18064faster, but it uses the @code{UID SEARCH UID} command, which is very
18065slow on some servers (notably some versions of Courier). Since the Gnus
18066Agent caches the information in the @acronym{NOV} database without using
18067the slow command, this variable defaults to true if the Agent is in use,
18068and false otherwise.
18069
18070@item nnimap-search-uids-not-since-is-evil
18071@vindex nnimap-search-uids-not-since-is-evil
18072@cindex Courier @acronym{IMAP} server
18073@cindex expiring @acronym{IMAP} mail
18074
18075Avoid the @code{UID SEARCH UID @var{message numbers} NOT SINCE
18076@var{date}} command, which is slow on some @acronym{IMAP} servers
18077(notably, some versions of Courier). Instead, use @code{UID SEARCH SINCE
18078@var{date}} and prune the list of expirable articles within Gnus.
18079
18080When Gnus expires your mail (@pxref{Expiring Mail}), it starts with a
18081list of expirable articles and asks the IMAP server questions like ``Of
18082these articles, which ones are older than a week?'' While this seems
18083like a perfectly reasonable question, some IMAP servers take a long time
18084to answer it, since they seemingly go looking into every old article to
18085see if it is one of the expirable ones. Curiously, the question ``Of
18086@emph{all} articles, which ones are newer than a week?'' seems to be
18087much faster to answer, so setting this variable causes Gnus to ask this
18088question and figure out the answer to the real question itself.
18089
18090This problem can really sneak up on you: when you first configure Gnus,
18091everything works fine, but once you accumulate a couple thousand
18092messages, you start cursing Gnus for being so slow. On the other hand,
18093if you get a lot of email within a week, setting this variable will
18094cause a lot of network traffic between Gnus and the IMAP server.
18095
18096@item nnimap-logout-timeout
18097@vindex nnimap-logout-timeout
18098
18099There is a case where a connection to a @acronym{IMAP} server is unable
18100to close, when connecting to the server via a certain kind of network,
18101e.g. @acronym{VPN}. In that case, it will be observed that a connection
18102between Emacs and the local network looks alive even if the server has
18103closed a connection for some reason (typically, a timeout).
18104Consequently, Emacs continues waiting for a response from the server for
18105the @code{LOGOUT} command that Emacs sent, or hangs in other words. If
18106you are in such a network, setting this variable to a number of seconds
18107will be helpful. If it is set, a hung connection will be closed
18108forcibly, after this number of seconds from the time Emacs sends the
18109@code{LOGOUT} command. It should not be too small value but too large
18110value will be inconvenient too. Perhaps the value 1.0 will be a good
18111candidate but it might be worth trying some other values.
18112
18113Example server specification:
18114
18115@lisp
18116(nnimap "mail.server.com"
18117 (nnimap-logout-timeout 1.0))
18118@end lisp
18119
18120@end table
18121
18122@menu
18123* Splitting in IMAP:: Splitting mail with nnimap.
18124* Expiring in IMAP:: Expiring mail with nnimap.
18125* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox.
18126* Expunging mailboxes:: Equivalent of a ``compress mailbox'' button.
18127* A note on namespaces:: How to (not) use @acronym{IMAP} namespace in Gnus.
18128* Debugging IMAP:: What to do when things don't work.
18129@end menu
18130
18131
18132
18133@node Splitting in IMAP
18134@subsection Splitting in IMAP
18135@cindex splitting imap mail
18136
18137Splitting is something Gnus users have loved and used for years, and now
18138the rest of the world is catching up. Yeah, dream on, not many
18139@acronym{IMAP} servers have server side splitting and those that have
18140splitting seem to use some non-standard protocol. This means that
18141@acronym{IMAP} support for Gnus has to do its own splitting.
18142
18143And it does.
18144
18145(Incidentally, people seem to have been dreaming on, and Sieve has
18146gaining a market share and is supported by several IMAP servers.
18147Fortunately, Gnus support it too, @xref{Sieve Commands}.)
18148
18149Here are the variables of interest:
18150
18151@table @code
18152
18153@item nnimap-split-crosspost
18154@cindex splitting, crosspost
18155@cindex crosspost
18156@vindex nnimap-split-crosspost
18157
18158If non-@code{nil}, do crossposting if several split methods match the
18159mail. If @code{nil}, the first match in @code{nnimap-split-rule}
18160found will be used.
18161
18162Nnmail equivalent: @code{nnmail-crosspost}.
18163
18164@item nnimap-split-inbox
18165@cindex splitting, inbox
18166@cindex inbox
18167@vindex nnimap-split-inbox
18168
18169A string or a list of strings that gives the name(s) of @acronym{IMAP}
18170mailboxes to split from. Defaults to @code{nil}, which means that
18171splitting is disabled!
18172
18173@lisp
18174(setq nnimap-split-inbox
18175 '("INBOX" ("~/friend/Mail" . "lists/*") "lists.imap"))
18176@end lisp
18177
18178No nnmail equivalent.
18179
18180@item nnimap-split-rule
18181@cindex splitting, rules
18182@vindex nnimap-split-rule
18183
18184New mail found in @code{nnimap-split-inbox} will be split according to
18185this variable.
18186
18187This variable contains a list of lists, where the first element in the
18188sublist gives the name of the @acronym{IMAP} mailbox to move articles
18189matching the regexp in the second element in the sublist. Got that?
18190Neither did I, we need examples.
18191
18192@lisp
18193(setq nnimap-split-rule
18194 '(("INBOX.nnimap"
18195 "^Sender: owner-nnimap@@vic20.globalcom.se")
18196 ("INBOX.junk" "^Subject:.*MAKE MONEY")
18197 ("INBOX.private" "")))
18198@end lisp
18199
18200This will put all articles from the nnimap mailing list into mailbox
18201INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line
18202into INBOX.junk and everything else in INBOX.private.
18203
18204The first string may contain @samp{\\1} forms, like the ones used by
18205replace-match to insert sub-expressions from the matched text. For
18206instance:
18207
18208@lisp
18209("INBOX.lists.\\1" "^Sender: owner-\\([a-z-]+\\)@@")
18210@end lisp
18211
18212The first element can also be the symbol @code{junk} to indicate that
18213matching messages should simply be deleted. Use with care.
18214
18215The second element can also be a function. In that case, it will be
18216called with the first element of the rule as the argument, in a buffer
18217containing the headers of the article. It should return a
18218non-@code{nil} value if it thinks that the mail belongs in that group.
18219
18220Nnmail users might recollect that the last regexp had to be empty to
18221match all articles (like in the example above). This is not required in
18222nnimap. Articles not matching any of the regexps will not be moved out
18223of your inbox. (This might affect performance if you keep lots of
18224unread articles in your inbox, since the splitting code would go over
18225them every time you fetch new mail.)
18226
18227These rules are processed from the beginning of the alist toward the
18228end. The first rule to make a match will ``win'', unless you have
18229crossposting enabled. In that case, all matching rules will ``win''.
18230
18231This variable can also have a function as its value, the function will
18232be called with the headers narrowed and should return a group where it
18233thinks the article should be split to. See @code{nnimap-split-fancy}.
18234
18235The splitting code tries to create mailboxes if it needs to.
18236
18237To allow for different split rules on different virtual servers, and
18238even different split rules in different inboxes on the same server,
18239the syntax of this variable have been extended along the lines of:
18240
18241@lisp
18242(setq nnimap-split-rule
18243 '(("my1server" (".*" (("ding" "ding@@gnus.org")
18244 ("junk" "From:.*Simon"))))
18245 ("my2server" ("INBOX" nnimap-split-fancy))
18246 ("my[34]server" (".*" (("private" "To:.*Simon")
18247 ("junk" my-junk-func))))))
18248@end lisp
18249
18250The virtual server name is in fact a regexp, so that the same rules
18251may apply to several servers. In the example, the servers
18252@code{my3server} and @code{my4server} both use the same rules.
18253Similarly, the inbox string is also a regexp. The actual splitting
18254rules are as before, either a function, or a list with group/regexp or
18255group/function elements.
18256
18257Nnmail equivalent: @code{nnmail-split-methods}.
18258
18259@item nnimap-split-predicate
18260@cindex splitting
18261@vindex nnimap-split-predicate
18262
18263Mail matching this predicate in @code{nnimap-split-inbox} will be
18264split, it is a string and the default is @samp{UNSEEN UNDELETED}.
18265
18266This might be useful if you use another @acronym{IMAP} client to read mail in
18267your inbox but would like Gnus to split all articles in the inbox
18268regardless of readedness. Then you might change this to
18269@samp{UNDELETED}.
18270
18271@item nnimap-split-fancy
18272@cindex splitting, fancy
18273@findex nnimap-split-fancy
18274@vindex nnimap-split-fancy
18275
18276It's possible to set @code{nnimap-split-rule} to
18277@code{nnmail-split-fancy} if you want to use fancy
18278splitting. @xref{Fancy Mail Splitting}.
18279
18280However, to be able to have different fancy split rules for nnmail and
18281nnimap back ends you can set @code{nnimap-split-rule} to
18282@code{nnimap-split-fancy} and define the nnimap specific fancy split
18283rule in @code{nnimap-split-fancy}.
18284
18285Example:
18286
18287@lisp
18288(setq nnimap-split-rule 'nnimap-split-fancy
18289 nnimap-split-fancy ...)
18290@end lisp
18291
18292Nnmail equivalent: @code{nnmail-split-fancy}.
18293
18294@item nnimap-split-download-body
18295@findex nnimap-split-download-body
18296@vindex nnimap-split-download-body
18297
18298Set to non-@code{nil} to download entire articles during splitting.
18299This is generally not required, and will slow things down
18300considerably. You may need it if you want to use an advanced
18301splitting function that analyzes the body to split the article.
18302
18303@end table
18304
18305@node Expiring in IMAP
18306@subsection Expiring in IMAP
18307@cindex expiring @acronym{IMAP} mail
18308
18309Even though @code{nnimap} is not a proper @code{nnmail} derived back
18310end, it supports most features in regular expiring (@pxref{Expiring
18311Mail}). Unlike splitting in @acronym{IMAP} (@pxref{Splitting in
18312IMAP}) it does not clone the @code{nnmail} variables (i.e., creating
18313@var{nnimap-expiry-wait}) but reuse the @code{nnmail} variables. What
18314follows below are the variables used by the @code{nnimap} expiry
18315process.
18316
18317A note on how the expire mark is stored on the @acronym{IMAP} server is
18318appropriate here as well. The expire mark is translated into a
18319@code{imap} client specific mark, @code{gnus-expire}, and stored on the
18320message. This means that likely only Gnus will understand and treat
18321the @code{gnus-expire} mark properly, although other clients may allow
18322you to view client specific flags on the message. It also means that
18323your server must support permanent storage of client specific flags on
18324messages. Most do, fortunately.
18325
18326If expiring @acronym{IMAP} mail seems very slow, try setting the server
18327variable @code{nnimap-search-uids-not-since-is-evil}.
18328
18329@table @code
18330
18331@item nnmail-expiry-wait
18332@item nnmail-expiry-wait-function
18333
18334These variables are fully supported. The expire value can be a
18335number, the symbol @code{immediate} or @code{never}.
18336
18337@item nnmail-expiry-target
18338
18339This variable is supported, and internally implemented by calling the
18340@code{nnmail} functions that handle this. It contains an optimization
18341that if the destination is a @acronym{IMAP} group on the same server, the
18342article is copied instead of appended (that is, uploaded again).
18343
18344@end table
18345
18346@node Editing IMAP ACLs
18347@subsection Editing IMAP ACLs
18348@cindex editing imap acls
18349@cindex Access Control Lists
18350@cindex Editing @acronym{IMAP} ACLs
18351@kindex G l (Group)
18352@findex gnus-group-nnimap-edit-acl
18353
18354ACL stands for Access Control List. ACLs are used in @acronym{IMAP} for
18355limiting (or enabling) other users access to your mail boxes. Not all
18356@acronym{IMAP} servers support this, this function will give an error if it
18357doesn't.
18358
18359To edit an ACL for a mailbox, type @kbd{G l}
18360(@code{gnus-group-edit-nnimap-acl}) and you'll be presented with an ACL
18361editing window with detailed instructions.
18362
18363Some possible uses:
18364
18365@itemize @bullet
18366@item
18367Giving ``anyone'' the ``lrs'' rights (lookup, read, keep seen/unseen flags)
18368on your mailing list mailboxes enables other users on the same server to
18369follow the list without subscribing to it.
18370@item
18371At least with the Cyrus server, you are required to give the user
18372``anyone'' posting ("p") capabilities to have ``plussing'' work (that is,
18373mail sent to user+mailbox@@domain ending up in the @acronym{IMAP} mailbox
18374INBOX.mailbox).
18375@end itemize
18376
18377@node Expunging mailboxes
18378@subsection Expunging mailboxes
18379@cindex expunging
18380
18381@cindex expunge
18382@cindex manual expunging
18383@kindex G x (Group)
18384@findex gnus-group-nnimap-expunge
18385
18386If you're using the @code{never} setting of @code{nnimap-expunge-on-close},
18387you may want the option of expunging all deleted articles in a mailbox
18388manually. This is exactly what @kbd{G x} does.
18389
18390Currently there is no way of showing deleted articles, you can just
18391delete them.
18392
18393@node A note on namespaces
18394@subsection A note on namespaces
18395@cindex IMAP namespace
18396@cindex namespaces
18397
18398The @acronym{IMAP} protocol has a concept called namespaces, described
18399by the following text in the RFC2060:
18400
18401@display
184025.1.2. Mailbox Namespace Naming Convention
18403
18404 By convention, the first hierarchical element of any mailbox name
18405 which begins with "#" identifies the "namespace" of the remainder of
18406 the name. This makes it possible to disambiguate between different
18407 types of mailbox stores, each of which have their own namespaces.
18408
18409 For example, implementations which offer access to USENET
18410 newsgroups MAY use the "#news" namespace to partition the USENET
18411 newsgroup namespace from that of other mailboxes. Thus, the
18412 comp.mail.misc newsgroup would have an mailbox name of
18413 "#news.comp.mail.misc", and the name "comp.mail.misc" could refer
18414 to a different object (e.g. a user's private mailbox).
18415@end display
18416
18417While there is nothing in this text that warrants concern for the
18418@acronym{IMAP} implementation in Gnus, some servers use namespace
18419prefixes in a way that does not work with how Gnus uses mailbox names.
18420
18421Specifically, University of Washington's @acronym{IMAP} server uses
18422mailbox names like @code{#driver.mbx/read-mail} which are valid only
18423in the @sc{create} and @sc{append} commands. After the mailbox is
18424created (or a messages is appended to a mailbox), it must be accessed
18425without the namespace prefix, i.e. @code{read-mail}. Since Gnus do
18426not make it possible for the user to guarantee that user entered
18427mailbox names will only be used with the CREATE and APPEND commands,
18428you should simply not use the namespace prefixed mailbox names in
18429Gnus.
18430
18431See the UoW IMAPD documentation for the @code{#driver.*/} prefix
18432for more information on how to use the prefixes. They are a power
18433tool and should be used only if you are sure what the effects are.
18434
18435@node Debugging IMAP
18436@subsection Debugging IMAP
18437@cindex IMAP debugging
18438@cindex protocol dump (IMAP)
18439
18440@acronym{IMAP} is a complex protocol, more so than @acronym{NNTP} or
18441@acronym{POP3}. Implementation bugs are not unlikely, and we do our
18442best to fix them right away. If you encounter odd behavior, chances
18443are that either the server or Gnus is buggy.
18444
18445If you are familiar with network protocols in general, you will
18446probably be able to extract some clues from the protocol dump of the
18447exchanges between Gnus and the server. Even if you are not familiar
18448with network protocols, when you include the protocol dump in
18449@acronym{IMAP}-related bug reports you are helping us with data
18450critical to solving the problem. Therefore, we strongly encourage you
18451to include the protocol dump when reporting IMAP bugs in Gnus.
18452
18453
18454@vindex imap-log
18455Because the protocol dump, when enabled, generates lots of data, it is
18456disabled by default. You can enable it by setting @code{imap-log} as
18457follows:
18458
18459@lisp
18460(setq imap-log t)
18461@end lisp
18462
18463This instructs the @code{imap.el} package to log any exchanges with
18464the server. The log is stored in the buffer @samp{*imap-log*}. Look
18465for error messages, which sometimes are tagged with the keyword
18466@code{BAD}---but when submitting a bug, make sure to include all the
18467data.
18468
18469@node Other Sources 17822@node Other Sources
18470@section Other Sources 17823@section Other Sources
18471 17824
@@ -22378,7 +21731,6 @@ four days, Gnus will decay the scores four times, for instance.
22378* Highlighting and Menus:: Making buffers look all nice and cozy. 21731* Highlighting and Menus:: Making buffers look all nice and cozy.
22379* Buttons:: Get tendinitis in ten easy steps! 21732* Buttons:: Get tendinitis in ten easy steps!
22380* Daemons:: Gnus can do things behind your back. 21733* Daemons:: Gnus can do things behind your back.
22381* NoCeM:: How to avoid spam and other fatty foods.
22382* Undo:: Some actions can be undone. 21734* Undo:: Some actions can be undone.
22383* Predicate Specifiers:: Specifying predicates. 21735* Predicate Specifiers:: Specifying predicates.
22384* Moderation:: What to do if you're a moderator. 21736* Moderation:: What to do if you're a moderator.
@@ -23397,13 +22749,12 @@ your @file{~/.gnus.el} file:
23397(gnus-demon-add-handler 'gnus-demon-close-connections 30 t) 22749(gnus-demon-add-handler 'gnus-demon-close-connections 30 t)
23398@end lisp 22750@end lisp
23399 22751
23400@findex gnus-demon-add-nocem
23401@findex gnus-demon-add-scanmail 22752@findex gnus-demon-add-scanmail
23402@findex gnus-demon-add-rescan 22753@findex gnus-demon-add-rescan
23403@findex gnus-demon-add-scan-timestamps 22754@findex gnus-demon-add-scan-timestamps
23404@findex gnus-demon-add-disconnection 22755@findex gnus-demon-add-disconnection
23405Some ready-made functions to do this have been created: 22756Some ready-made functions to do this have been created:
23406@code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection}, 22757@code{gnus-demon-add-disconnection},
23407@code{gnus-demon-add-nntp-close-connection}, 22758@code{gnus-demon-add-nntp-close-connection},
23408@code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and 22759@code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and
23409@code{gnus-demon-add-scanmail}. Just put those functions in your 22760@code{gnus-demon-add-scanmail}. Just put those functions in your
@@ -23422,152 +22773,6 @@ is a sure-fire way of getting booted off any respectable system. So
23422behave. 22773behave.
23423 22774
23424 22775
23425@node NoCeM
23426@section NoCeM
23427@cindex nocem
23428@cindex spam
23429
23430@dfn{Spamming} is posting the same article lots and lots of times.
23431Spamming is bad. Spamming is evil.
23432
23433Spamming is usually canceled within a day or so by various anti-spamming
23434agencies. These agencies usually also send out @dfn{NoCeM} messages.
23435NoCeM is pronounced ``no see-'em'', and means what the name
23436implies---these are messages that make the offending articles, like, go
23437away.
23438
23439What use are these NoCeM messages if the articles are canceled anyway?
23440Some sites do not honor cancel messages and some sites just honor cancels
23441from a select few people. Then you may wish to make use of the NoCeM
23442messages, which are distributed in the newsgroups
23443@samp{news.lists.filters}, @samp{alt.nocem.misc}, etc.
23444
23445Gnus can read and parse the messages in this group automatically, and
23446this will make spam disappear.
23447
23448There are some variables to customize, of course:
23449
23450@table @code
23451@item gnus-use-nocem
23452@vindex gnus-use-nocem
23453Set this variable to @code{t} to set the ball rolling. It is @code{nil}
23454by default.
23455
23456You can also set this variable to a positive number as a group level.
23457In that case, Gnus scans NoCeM messages when checking new news if this
23458value is not exceeding a group level that you specify as the prefix
23459argument to some commands, e.g. @code{gnus},
23460@code{gnus-group-get-new-news}, etc. Otherwise, Gnus does not scan
23461NoCeM messages if you specify a group level that is smaller than this
23462value to those commands. For example, if you use 1 or 2 on the mail
23463groups and the levels on the news groups remain the default, 3 is the
23464best choice.
23465
23466@item gnus-nocem-groups
23467@vindex gnus-nocem-groups
23468Gnus will look for NoCeM messages in the groups in this list. The
23469default is
23470@lisp
23471("news.lists.filters" "alt.nocem.misc")
23472@end lisp
23473
23474@item gnus-nocem-issuers
23475@vindex gnus-nocem-issuers
23476There are many people issuing NoCeM messages. This list says what
23477people you want to listen to. The default is:
23478
23479@lisp
23480("Adri Verhoef"
23481 "alba-nocem@@albasani.net"
23482 "bleachbot@@httrack.com"
23483 "news@@arcor-online.net"
23484 "news@@uni-berlin.de"
23485 "nocem@@arcor.de"
23486 "pgpmoose@@killfile.org"
23487 "xjsppl@@gmx.de")
23488@end lisp
23489
23490Known despammers that you can put in this list are listed at@*
23491@uref{http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html}.
23492
23493You do not have to heed NoCeM messages from all these people---just the
23494ones you want to listen to. You also don't have to accept all NoCeM
23495messages from the people you like. Each NoCeM message has a @dfn{type}
23496header that gives the message a (more or less, usually less) rigorous
23497definition. Common types are @samp{spam}, @samp{spew}, @samp{mmf},
23498@samp{binary}, and @samp{troll}. To specify this, you have to use
23499@code{(@var{issuer} @var{conditions} @dots{})} elements in the list.
23500Each condition is either a string (which is a regexp that matches types
23501you want to use) or a list on the form @code{(not @var{string})}, where
23502@var{string} is a regexp that matches types you don't want to use.
23503
23504For instance, if you want all NoCeM messages from Chris Lewis except his
23505@samp{troll} messages, you'd say:
23506
23507@lisp
23508("clewis@@ferret.ocunix.on.ca" ".*" (not "troll"))
23509@end lisp
23510
23511On the other hand, if you just want nothing but his @samp{spam} and
23512@samp{spew} messages, you'd say:
23513
23514@lisp
23515("clewis@@ferret.ocunix.on.ca" (not ".*") "spew" "spam")
23516@end lisp
23517
23518The specs are applied left-to-right.
23519
23520
23521@item gnus-nocem-verifyer
23522@vindex gnus-nocem-verifyer
23523@findex gnus-nocem-epg-verify
23524@findex pgg-verify
23525This should be a function for verifying that the NoCeM issuer is who she
23526says she is. This variable defaults to @code{gnus-nocem-epg-verify} if
23527EasyPG is available, otherwise defaults to @code{pgg-verify}. The
23528function should return non-@code{nil} if the verification is successful,
23529otherwise (including the case the NoCeM message was not signed) should
23530return @code{nil}. If this is too slow and you don't care for
23531verification (which may be dangerous), you can set this variable to
23532@code{nil}.
23533
23534Formerly the default was @code{mc-verify}, which is a Mailcrypt
23535function. While you can still use it, you can change it into
23536@code{gnus-nocem-epg-verify} or @code{pgg-verify} running with GnuPG if
23537you are willing to add the @acronym{PGP} public keys to GnuPG's keyring.
23538
23539@item gnus-nocem-directory
23540@vindex gnus-nocem-directory
23541This is where Gnus will store its NoCeM cache files. The default is@*
23542@file{~/News/NoCeM/}.
23543
23544@item gnus-nocem-expiry-wait
23545@vindex gnus-nocem-expiry-wait
23546The number of days before removing old NoCeM entries from the cache.
23547The default is 15. If you make it shorter Gnus will be faster, but you
23548might then see old spam.
23549
23550@item gnus-nocem-check-from
23551@vindex gnus-nocem-check-from
23552Non-@code{nil} means check for valid issuers in message bodies.
23553Otherwise don't bother fetching articles unless their author matches a
23554valid issuer; that is much faster if you are selective about the
23555issuers.
23556
23557@item gnus-nocem-check-article-limit
23558@vindex gnus-nocem-check-article-limit
23559If non-@code{nil}, the maximum number of articles to check in any NoCeM
23560group. @code{nil} means no restriction. NoCeM groups can be huge and
23561very slow to process.
23562
23563@end table
23564
23565Using NoCeM could potentially be a memory hog. If you have many living
23566(i. e., subscribed or unsubscribed groups), your Emacs process will grow
23567big. If this is a problem, you should kill off all (or most) of your
23568unsubscribed groups (@pxref{Subscription Commands}).
23569
23570
23571@node Undo 22776@node Undo
23572@section Undo 22777@section Undo
23573@cindex undo 22778@cindex undo
@@ -23701,6 +22906,7 @@ stuff, so Gnus has taken advantage of that.
23701* Face:: Display a funkier, teensier colored image. 22906* Face:: Display a funkier, teensier colored image.
23702* Smileys:: Show all those happy faces the way they were meant to be shown. 22907* Smileys:: Show all those happy faces the way they were meant to be shown.
23703* Picons:: How to display pictures of what you're reading. 22908* Picons:: How to display pictures of what you're reading.
22909* Gravatars:: Display the avatar of people you read.
23704* XVarious:: Other XEmacsy Gnusey variables. 22910* XVarious:: Other XEmacsy Gnusey variables.
23705@end menu 22911@end menu
23706 22912
@@ -24027,8 +23233,56 @@ want to add @samp{"unknown"} to this list.
24027Ordered list of suffixes on picon file names to try. Defaults to 23233Ordered list of suffixes on picon file names to try. Defaults to
24028@code{("xpm" "gif" "xbm")} minus those not built-in your Emacs. 23234@code{("xpm" "gif" "xbm")} minus those not built-in your Emacs.
24029 23235
23236@item gnus-picon-inhibit-top-level-domains
23237@vindex gnus-picon-inhibit-top-level-domains
23238If non-@code{nil} (which is the default), don't display picons for
23239things like @samp{.net} and @samp{.de}, which aren't usually very
23240interesting.
23241
23242@end table
23243
23244@node Gravatars
23245@subsection Gravatars
23246
23247@iftex
23248@iflatex
23249\include{gravatars}
23250@end iflatex
23251@end iftex
23252
23253A gravatar is an image registered to an e-mail address.
23254
23255You can submit yours on-line at @uref{http://www.gravatar.com}.
23256
23257The following variables offer control over how things are displayed.
23258
23259@table @code
23260
23261@item gnus-gravatar-size
23262@vindex gnus-gravatar-size
23263The size in pixels of gravatars. Gravatars are always square, so one
23264number for the size is enough.
23265
23266@item gnus-gravatar-relief
23267@vindex gnus-gravatar-relief
23268If non-nil, adds a shadow rectangle around the image. The value,
23269relief, specifies the width of the shadow lines, in pixels. If relief
23270is negative, shadows are drawn so that the image appears as a pressed
23271button; otherwise, it appears as an unpressed button.
23272
24030@end table 23273@end table
24031 23274
23275If you want to see them in the From field, set:
23276@lisp
23277(setq gnus-treat-from-gravatar 'head)
23278@end lisp
23279
23280If you want to see them in the Cc and To fields, set:
23281
23282@lisp
23283(setq gnus-treat-mail-gravatar 'head)
23284@end lisp
23285
24032 23286
24033@node XVarious 23287@node XVarious
24034@subsection Various XEmacs Variables 23288@subsection Various XEmacs Variables
@@ -24364,7 +23618,7 @@ call the external tools during splitting. Example fancy split method:
24364Note that with the nnimap back end, message bodies will not be 23618Note that with the nnimap back end, message bodies will not be
24365downloaded by default. You need to set 23619downloaded by default. You need to set
24366@code{nnimap-split-download-body} to @code{t} to do that 23620@code{nnimap-split-download-body} to @code{t} to do that
24367(@pxref{Splitting in IMAP}). 23621(@pxref{Client-Side @acronym{IMAP} Splitting}).
24368 23622
24369That is about it. As some spam is likely to get through anyway, you 23623That is about it. As some spam is likely to get through anyway, you
24370might want to have a nifty function to call when you happen to read 23624might want to have a nifty function to call when you happen to read
@@ -24646,14 +23900,14 @@ the value @samp{spam} means @samp{nnimap+your-server:spam}. The value
24646@vindex nnimap-split-download-body 23900@vindex nnimap-split-download-body
24647Note for IMAP users: if you use the @code{spam-check-bogofilter}, 23901Note for IMAP users: if you use the @code{spam-check-bogofilter},
24648@code{spam-check-ifile}, and @code{spam-check-stat} spam back ends, 23902@code{spam-check-ifile}, and @code{spam-check-stat} spam back ends,
24649you should also set the variable @code{nnimap-split-download-body} 23903you should also set the variable @code{nnimap-split-download-body} to
24650to @code{t}. These spam back ends are most useful when they can 23904@code{t}. These spam back ends are most useful when they can ``scan''
24651``scan'' the full message body. By default, the nnimap back end only 23905the full message body. By default, the nnimap back end only retrieves
24652retrieves the message headers; @code{nnimap-split-download-body} tells 23906the message headers; @code{nnimap-split-download-body} tells it to
24653it to retrieve the message bodies as well. We don't set this by 23907retrieve the message bodies as well. We don't set this by default
24654default because it will slow @acronym{IMAP} down, and that is not an 23908because it will slow @acronym{IMAP} down, and that is not an
24655appropriate decision to make on behalf of the user. @xref{Splitting 23909appropriate decision to make on behalf of the user. @xref{Client-Side
24656in IMAP}. 23910@acronym{IMAP} Splitting}.
24657 23911
24658You have to specify one or more spam back ends for @code{spam-split} 23912You have to specify one or more spam back ends for @code{spam-split}
24659to use, by setting the @code{spam-use-*} variables. @xref{Spam Back 23913to use, by setting the @code{spam-use-*} variables. @xref{Spam Back
@@ -27570,13 +26824,6 @@ Mail can be re-scanned by a daemonic process (@pxref{Daemons}).
27570@end iftex 26824@end iftex
27571 26825
27572@item 26826@item
27573Gnus can make use of NoCeM files to weed out spam (@pxref{NoCeM}).
27574
27575@lisp
27576(setq gnus-use-nocem t)
27577@end lisp
27578
27579@item
27580Groups can be made permanently visible (@pxref{Listing Groups}). 26827Groups can be made permanently visible (@pxref{Listing Groups}).
27581 26828
27582@lisp 26829@lisp
@@ -28092,9 +27339,7 @@ The revised Gnus @acronym{FAQ} is included in the manual,
28092@acronym{TLS} wrapper shipped with Gnus 27339@acronym{TLS} wrapper shipped with Gnus
28093 27340
28094@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and 27341@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and
28095@acronym{NNTP} via @file{tls.el} and GNUTLS. The old 27342@acronym{NNTP} via @file{tls.el} and GNUTLS.
28096@acronym{TLS}/@acronym{SSL} support via (external third party)
28097@file{ssl.el} and OpenSSL still works.
28098 27343
28099@item 27344@item
28100Improved anti-spam features. 27345Improved anti-spam features.
@@ -29672,7 +28917,7 @@ group and article numbers are when fetching articles by
29672on successful article retrieval. 28917on successful article retrieval.
29673 28918
29674 28919
29675@item (nnchoke-request-group GROUP &optional SERVER FAST) 28920@item (nnchoke-request-group GROUP &optional SERVER FAST INFO)
29676 28921
29677Get data on @var{group}. This function also has the side effect of 28922Get data on @var{group}. This function also has the side effect of
29678making @var{group} the current group. 28923making @var{group} the current group.
@@ -29680,6 +28925,9 @@ making @var{group} the current group.
29680If @var{fast}, don't bother to return useful data, just make @var{group} 28925If @var{fast}, don't bother to return useful data, just make @var{group}
29681the current group. 28926the current group.
29682 28927
28928If @var{info}, it allows the backend to update the group info
28929structure.
28930
29683Here's an example of some result data and a definition of the same: 28931Here's an example of some result data and a definition of the same:
29684 28932
29685@example 28933@example
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 6b922476596..ad56520f892 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -1090,11 +1090,11 @@ the passphrase prompt.
1090@subsection Using PGP/MIME 1090@subsection Using PGP/MIME
1091 1091
1092@acronym{PGP/MIME} requires an external OpenPGP implementation, such 1092@acronym{PGP/MIME} requires an external OpenPGP implementation, such
1093as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP 1093as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP
1094implementations such as PGP 2.x and PGP 5.x are also supported. One 1094implementations such as PGP 2.x and PGP 5.x are also supported. One
1095Emacs interface to the PGP implementations, PGG (@pxref{Top, ,PGG, 1095Emacs interface to the PGP implementations, PGG (@pxref{Top, ,PGG,
1096pgg, PGG Manual}), is included, but Mailcrypt and Florian Weimer's 1096pgg, PGG Manual}), is included, but Mailcrypt is also supported.
1097@code{gpg.el} are also supported. @xref{PGP Compatibility}. 1097@xref{PGP Compatibility}.
1098 1098
1099@cindex gpg-agent 1099@cindex gpg-agent
1100Message internally calls GnuPG (the @command{gpg} command) to perform 1100Message internally calls GnuPG (the @command{gpg} command) to perform
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 604130d2606..775e4788de0 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -619,10 +619,6 @@ or 2 to connect to the remote host. (You can also specify in
619@file{~/.ssh/config}, the SSH configuration file, which protocol 619@file{~/.ssh/config}, the SSH configuration file, which protocol
620should be used, and use the regular @option{ssh} method.) 620should be used, and use the regular @option{ssh} method.)
621 621
622Two other variants, @option{ssh1_old} and @option{ssh2_old}, use the
623@command{ssh1} and @command{ssh2} commands explicitly. If you don't
624know what these are, you do not need these options.
625
626All the methods based on @command{ssh} have an additional feature: you 622All the methods based on @command{ssh} have an additional feature: you
627can specify a host name which looks like @file{host#42} (the real host 623can specify a host name which looks like @file{host#42} (the real host
628name, then a hash sign, then a port number). This means to connect to 624name, then a hash sign, then a port number). This means to connect to
@@ -731,19 +727,6 @@ expects PuTTY session names, calling @samp{plink -load @var{session}
731hasn't defined a user name. Different port numbers must be defined in 727hasn't defined a user name. Different port numbers must be defined in
732the session. 728the session.
733 729
734
735@item @option{fish}
736@cindex method fish
737@cindex fish method
738
739This is an experimental implementation of the fish protocol, known from
740the GNU Midnight Commander or the KDE Konqueror. @value{tramp} expects
741the fish server implementation from the KDE kioslave. That means, the
742file @file{~/.fishsrv.pl} is expected to reside on the remote host.
743
744The implementation lacks good performance. The code is offered anyway,
745maybe somebody can improve the performance.
746
747@end table 730@end table
748 731
749 732
@@ -803,10 +786,6 @@ or 2 to connect to the remote host. (You can also specify in
803@file{~/.ssh/config}, the SSH configuration file, which protocol 786@file{~/.ssh/config}, the SSH configuration file, which protocol
804should be used, and use the regular @option{scp} method.) 787should be used, and use the regular @option{scp} method.)
805 788
806Two other variants, @option{scp1_old} and @option{scp2_old}, use the
807@command{ssh1} and @command{ssh2} commands explicitly. If you don't
808know what these are, you do not need these options.
809
810All the @command{ssh} based methods support the @samp{-p} feature 789All the @command{ssh} based methods support the @samp{-p} feature
811where you can specify a port number to connect to in the host name. 790where you can specify a port number to connect to in the host name.
812For example, the host name @file{host#42} tells @value{tramp} to 791For example, the host name @file{host#42} tells @value{tramp} to
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index a6bbf0bd3eb..acb4145f120 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -731,14 +731,6 @@ directory to store the cache files. It defaults to sub-directory
731@file{cache} of @code{url-configuration-directory}. 731@file{cache} of @code{url-configuration-directory}.
732@end defopt 732@end defopt
733 733
734@c Fixme: function v. option, but neither used.
735@c @findex url-cache-expired
736@c @defopt url-cache-expired
737@c This is a function to decide whether or not a cache entry has expired.
738@c It takes two times as it parameters and returns non-@code{nil} if the
739@c second time is ``too old'' when compared with the first time.
740@c @end defopt
741
742@defopt url-cache-creation-function 734@defopt url-cache-creation-function
743The cache relies on a scheme for mapping URLs to files in the cache. 735The cache relies on a scheme for mapping URLs to files in the cache.
744This variable names a function which sets the type of cache to use. 736This variable names a function which sets the type of cache to use.
@@ -768,6 +760,22 @@ more likely to conflict with other files.
768@end smallexample 760@end smallexample
769@end defun 761@end defun
770 762
763@defun url-cache-expired
764This function returns non-nil if a cache entry has expired (or is absent).
765The arguments are a URL and optional expiration delay in seconds
766(default @var{url-cache-expire-time}).
767@end defun
768
769@defopt url-cache-expire-time
770This variable is the default number of seconds to use for the
771expire-time argument of the function @code{url-cache-expired}.
772@end defopt
773
774@defun url-fetch-from-cache
775This function takes a URL as its argument and returns a buffer
776containing the data cached for that URL.
777@end defun
778
771@c Fixme: never actually used currently? 779@c Fixme: never actually used currently?
772@c @defopt url-standalone-mode 780@c @defopt url-standalone-mode
773@c @cindex Relying on cache 781@c @cindex Relying on cache
diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi
index ba772c4b4a1..788c10b87dd 100644
--- a/doc/misc/woman.texi
+++ b/doc/misc/woman.texi
@@ -1121,8 +1121,8 @@ A regular match expression used to match compressed man file extensions
1121for which decompressors are available and handled by auto-compression 1121for which decompressors are available and handled by auto-compression
1122mode. It should begin with @code{\\.} and end with @code{\\'} and 1122mode. It should begin with @code{\\.} and end with @code{\\'} and
1123@emph{must not} be optional. The default value is 1123@emph{must not} be optional. The default value is
1124@code{"\\.\\(g?z\\|bz2\\)\\'"}, which matches the @code{gzip} and 1124@code{"\\.\\(g?z\\|bz2\\|xz\\)\\'"}, which matches the @code{gzip},
1125@code{bzip2} compression extensions. 1125@code{bzip2}, and @code{xz} compression extensions.
1126 1126
1127@emph{Do not change this unless you are sure you know what you are doing!} 1127@emph{Do not change this unless you are sure you know what you are doing!}
1128 1128