aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorKenichi Handa2010-09-27 14:42:43 +0900
committerKenichi Handa2010-09-27 14:42:43 +0900
commitb3253cd4b4bcbe1ab4ad1fdc98b30c33af70332c (patch)
tree4d55005558f96dfb44bfcd746098ed0882aff2d0 /doc
parent4be9765d4bad14d68cdfee2a2c6afe1001d9516a (diff)
parente5fa38990bca723fc3ef1d0ede792e8ff84b84f7 (diff)
downloademacs-b3253cd4b4bcbe1ab4ad1fdc98b30c33af70332c.tar.gz
emacs-b3253cd4b4bcbe1ab4ad1fdc98b30c33af70332c.zip
merge trunk
Diffstat (limited to 'doc')
-rw-r--r--doc/lispintro/ChangeLog6
-rw-r--r--doc/lispintro/cons-1.eps9
-rw-r--r--doc/lispintro/cons-2.eps9
-rw-r--r--doc/lispintro/cons-2a.eps9
-rw-r--r--doc/lispintro/cons-3.eps9
-rw-r--r--doc/lispintro/cons-4.eps9
-rw-r--r--doc/lispintro/cons-5.eps9
-rw-r--r--doc/lispintro/lambda-1.eps9
-rw-r--r--doc/lispintro/lambda-2.eps9
-rw-r--r--doc/lispintro/lambda-3.eps9
-rw-r--r--doc/man/ChangeLog4
-rw-r--r--doc/man/etags.12
-rw-r--r--doc/misc/ChangeLog57
-rw-r--r--doc/misc/gnus-news.texi24
-rw-r--r--doc/misc/gnus.texi1234
-rw-r--r--doc/misc/message.texi8
-rw-r--r--doc/misc/url.texi24
-rw-r--r--doc/misc/woman.texi4
18 files changed, 377 insertions, 1067 deletions
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index 1ab06891961..ff227a1f119 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,9 @@
12010-09-21 Glenn Morris <rgm@gnu.org>
2
3 * cons-1.eps, cons-2.eps, cons-2a.eps, cons-3.eps, cons-4.eps:
4 * cons-5.eps, lambda-1.eps, lambda-2.eps, lambda-3.eps:
5 Add first line EPSF magic comment. (Bug#7064)
6
12010-06-23 Glenn Morris <rgm@gnu.org> 72010-06-23 Glenn Morris <rgm@gnu.org>
2 8
3 * emacs-lisp-intro.texi: Untabify. 9 * emacs-lisp-intro.texi: Untabify.
diff --git a/doc/lispintro/cons-1.eps b/doc/lispintro/cons-1.eps
index fbae699e21b..42c350139da 100644
--- a/doc/lispintro/cons-1.eps
+++ b/doc/lispintro/cons-1.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 35 711 289 757 2%%BoundingBox: 35 711 289 757
3%%Title: cons-cell-diagram1 3%%Title: cons-cell-diagram1
4%%CreationDate: Wed Mar 8 14:26:58 1995 4%%CreationDate: Wed Mar 8 14:26:58 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/cons-2.eps b/doc/lispintro/cons-2.eps
index 703a842e046..8ae9d8a9190 100644
--- a/doc/lispintro/cons-2.eps
+++ b/doc/lispintro/cons-2.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 15 712 321 775 2%%BoundingBox: 15 712 321 775
3%%Title: cons-cell-diagram2 3%%Title: cons-cell-diagram2
4%%CreationDate: Wed Mar 8 14:26:39 1995 4%%CreationDate: Wed Mar 8 14:26:39 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/cons-2a.eps b/doc/lispintro/cons-2a.eps
index 4d2ae666590..916417adf9c 100644
--- a/doc/lispintro/cons-2a.eps
+++ b/doc/lispintro/cons-2a.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 15 702 300 767 2%%BoundingBox: 15 702 300 767
3%%Title: cons-cell-diagram2a 3%%Title: cons-cell-diagram2a
4%%CreationDate: Tue Mar 14 15:09:30 1995 4%%CreationDate: Tue Mar 14 15:09:30 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/cons-3.eps b/doc/lispintro/cons-3.eps
index b1aa60c1c99..f6fddf0a32a 100644
--- a/doc/lispintro/cons-3.eps
+++ b/doc/lispintro/cons-3.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: -1 691 324 757 2%%BoundingBox: -1 691 324 757
3%%Title: cons-cell-diagram3 3%%Title: cons-cell-diagram3
4%%CreationDate: Wed Mar 8 14:25:41 1995 4%%CreationDate: Wed Mar 8 14:25:41 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/cons-4.eps b/doc/lispintro/cons-4.eps
index c61b47bcbce..77389632dfd 100644
--- a/doc/lispintro/cons-4.eps
+++ b/doc/lispintro/cons-4.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 6 681 355 758 2%%BoundingBox: 6 681 355 758
3%%Title: cons-cell-diagram4 3%%Title: cons-cell-diagram4
4%%CreationDate: Wed Mar 8 14:25:06 1995 4%%CreationDate: Wed Mar 8 14:25:06 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/cons-5.eps b/doc/lispintro/cons-5.eps
index 87c7f645b5e..67423d5354e 100644
--- a/doc/lispintro/cons-5.eps
+++ b/doc/lispintro/cons-5.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 15 680 305 764 2%%BoundingBox: 15 680 305 764
3%%Title: cons-cell-diagram5 3%%Title: cons-cell-diagram5
4%%CreationDate: Wed Mar 8 14:27:28 1995 4%%CreationDate: Wed Mar 8 14:27:28 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/lambda-1.eps b/doc/lispintro/lambda-1.eps
index f48bdf20ff7..3510c40e005 100644
--- a/doc/lispintro/lambda-1.eps
+++ b/doc/lispintro/lambda-1.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 33 710 173 759 2%%BoundingBox: 33 710 173 759
3%%Title: lambda-diagram1 3%%Title: lambda-diagram1
4%%CreationDate: Wed Mar 8 14:31:53 1995 4%%CreationDate: Wed Mar 8 14:31:53 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/lambda-2.eps b/doc/lispintro/lambda-2.eps
index 923d09657b8..f60c2b56ad3 100644
--- a/doc/lispintro/lambda-2.eps
+++ b/doc/lispintro/lambda-2.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 33 730 240 777 2%%BoundingBox: 33 730 240 777
3%%Title: lambda-diagram2 3%%Title: lambda-diagram2
4%%CreationDate: Wed Mar 8 14:33:09 1995 4%%CreationDate: Wed Mar 8 14:33:09 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/lispintro/lambda-3.eps b/doc/lispintro/lambda-3.eps
index be7c0538e32..67c55093e7f 100644
--- a/doc/lispintro/lambda-3.eps
+++ b/doc/lispintro/lambda-3.eps
@@ -1,14 +1,11 @@
1%! 1%!PS-Adobe-3.0 EPSF-3.0
2%%BoundingBox: 33 728 211 777 2%%BoundingBox: 33 728 211 777
3%%Title: lambda-diagram3 3%%Title: lambda-diagram3
4%%CreationDate: Wed Mar 8 14:33:49 1995 4%%CreationDate: Wed Mar 8 14:33:49 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9 6
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
11% Free Software Foundation, Inc. 8% 2008, 2009, 2010 Free Software Foundation, Inc.
12% 9%
13% This file is part of GNU Emacs. 10% This file is part of GNU Emacs.
14% 11%
diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog
index 47f059e7d3c..4688c27f9b5 100644
--- a/doc/man/ChangeLog
+++ b/doc/man/ChangeLog
@@ -1,3 +1,7 @@
12010-09-25 Ulrich Mueller <ulm@gentoo.org>
2
3 * etags.1: xz compression is now supported.
4
12010-08-26 Sven Joachim <svenjoac@gmx.de> 52010-08-26 Sven Joachim <svenjoac@gmx.de>
2 6
3 * emacs.1: Mention "maximized" value for the "fullscreen" X resource. 7 * emacs.1: Mention "maximized" value for the "fullscreen" X resource.
diff --git a/doc/man/etags.1 b/doc/man/etags.1
index 7b515807782..cddf7295595 100644
--- a/doc/man/etags.1
+++ b/doc/man/etags.1
@@ -62,7 +62,7 @@ Files specified with absolute file names will be recorded
62with absolute file names. Files generated from a source file\-\-like 62with absolute file names. Files generated from a source file\-\-like
63a C file generated from a source Cweb file\-\-will be recorded with 63a C file generated from a source Cweb file\-\-will be recorded with
64the name of the source file. 64the name of the source file.
65Compressed files are supported using gzip and bzip2. 65Compressed files are supported using gzip, bzip2, and xz.
66The programs recognize the language used in an input file based on its 66The programs recognize the language used in an input file based on its
67file name and contents. The \fB\-\-language\fP switch can be used to force 67file name and contents. The \fB\-\-language\fP switch can be used to force
68parsing of the file names following the switch according to the given 68parsing of the file names following the switch according to the given
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 3e723cd8c83..2cdc071f73d 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,60 @@
12010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * gnus-news.texi: Mention nnimap-inbox.
4
5 * gnus.texi (Picons): Document gnus-picon-inhibit-top-level-domains.
6
72010-09-26 Julien Danjou <julien@danjou.info>
8
9 * gnus.texi (Oort Gnus): Remove mention of ssl.el
10
112010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
12
13 * gnus.texi (Security): Remove gpg.el mention.
14
152010-09-26 Andreas Seltenreich <seltenreich@gmx.de>
16
17 * gnus.texi (Browse Foreign Server): New variable
18 gnus-browse-subscribe-newsgroup-method.
19
20 * gnus-news.texi: Mention it.
21
222010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
23
24 * gnus.texi (NoCeM): Removed.
25 (Startup Variables): No jingle.
26
272010-09-25 Ulrich Mueller <ulm@gentoo.org>
28
29 * woman.texi (Interface Options): xz compression is now supported.
30
312010-09-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
32
33 * gnus.texi (Article Commands): Document gnus-fetch-partial-articles.
34 (Unavailable Servers): Document gnus-server-copy-server.
35 (Using IMAP): Document the new nnimap.
36
372010-09-25 Julien Danjou <julien@danjou.info>
38
39 * gnus.texi (Customizing Articles): Remove gnus-treat-translate
40
412010-09-24 Glenn Morris <rgm@gnu.org>
42
43 * url.texi (Disk Caching): Tweak previous change.
44
452010-09-24 Julien Danjou <julien@danjou.info>
46
47 * url.texi (Disk Caching): Mention url-cache-expire-time,
48 url-cache-expired, and url-fetch-from-cache.
49
502010-09-24 Julien Danjou <julien@danjou.info>
51
52 * gnus.texi: Add Gravatars.
53
542010-09-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
55
56 * gnus.texi (Startup Variables): Mention gnus-use-backend-marks.
57
12010-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org> 582010-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 59
3 * gnus.texi (Expunging mailboxes): Update name of the expunging 60 * gnus.texi (Expunging mailboxes): Update name of the expunging
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
index 8aa28dd89c8..028539a7fb4 100644
--- a/doc/misc/gnus-news.texi
+++ b/doc/misc/gnus-news.texi
@@ -68,8 +68,10 @@ remove-installed-shadows}.
68 68
69@item New version of @code{nnimap} 69@item New version of @code{nnimap}
70 70
71@code{nnimap} has been reimplemented in a mostly-compatible way. 71@code{nnimap} has been reimplemented in a mostly-compatible way. See
72@c Mention any incompatibilities. 72the Gnus manual for a description of the new interface. In
73particular, @code{nnimap-inbox} and the client side split method has
74changed.
73 75
74@item Gnus includes the Emacs Lisp @acronym{SASL} library. 76@item Gnus includes the Emacs Lisp @acronym{SASL} library.
75 77
@@ -103,6 +105,12 @@ EasyPG is included in Emacs 23 and available separately as well.
103@c ************************ 105@c ************************
104 106
105@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
106@item 114@item
107Old intermediate incoming mail files (@file{Incoming*}) are deleted 115Old intermediate incoming mail files (@file{Incoming*}) are deleted
108after a couple of days, not immediately. @xref{Mail Source 116after a couple of days, not immediately. @xref{Mail Source
@@ -246,6 +254,16 @@ of the "Whomever writes:" line. You need to set
246@code{message-insert-formatted-citation-line} as well. 254@code{message-insert-formatted-citation-line} as well.
247@end itemize 255@end itemize
248 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
249@item Changes in back ends 267@item Changes in back ends
250 268
251@itemize @bullet 269@itemize @bullet
@@ -336,6 +354,8 @@ be unchanged except that the marks will be removed when copying or
336moving articles to a group that has not turned auto-expire on. 354moving articles to a group that has not turned auto-expire on.
337@xref{Expiring Mail}. 355@xref{Expiring Mail}.
338 356
357@item NoCeM support has been removed.
358
339@end itemize 359@end itemize
340 360
341@end itemize 361@end itemize
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 52c8bb642f0..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
@@ -10105,18 +10071,6 @@ string is invalid.
10105An alist of @code{(RATE . REGEXP)} pairs used by the function 10071An alist of @code{(RATE . REGEXP)} pairs used by the function
10106@code{gnus-button-mid-or-mail-heuristic}. 10072@code{gnus-button-mid-or-mail-heuristic}.
10107 10073
10108@c Stuff related to gnus-button-tex-level
10109
10110@item gnus-button-ctan-handler
10111@findex gnus-button-ctan-handler
10112The function to use for displaying CTAN links. It must take one
10113argument, the string naming the URL.
10114
10115@item gnus-ctan-url
10116@vindex gnus-ctan-url
10117Top directory of a CTAN (Comprehensive TeX Archive Network) archive used
10118by @code{gnus-button-ctan-handler}.
10119
10120@c Misc stuff 10074@c Misc stuff
10121 10075
10122@item gnus-article-button-face 10076@item gnus-article-button-face
@@ -10189,14 +10143,6 @@ Related variables and functions include
10189@code{gnus-button-mid-or-mail-heuristic}, and 10143@code{gnus-button-mid-or-mail-heuristic}, and
10190@code{gnus-button-mid-or-mail-heuristic-alist}. 10144@code{gnus-button-mid-or-mail-heuristic-alist}.
10191 10145
10192@item gnus-button-tex-level
10193@vindex gnus-button-tex-level
10194Controls the display of references to @TeX{} or LaTeX stuff, e.g. for CTAN
10195URLs. See the variables @code{gnus-ctan-url},
10196@code{gnus-button-ctan-handler},
10197@code{gnus-button-ctan-directory-regexp}, and
10198@code{gnus-button-handle-ctan-bogus-regexp}.
10199
10200@end table 10146@end table
10201 10147
10202 10148
@@ -10294,6 +10240,7 @@ preferred format automatically.
10294@cindex picons 10240@cindex picons
10295@cindex x-face 10241@cindex x-face
10296@cindex smileys 10242@cindex smileys
10243@cindex gravatars
10297 10244
10298These commands add various frivolous display gimmicks to the article 10245These commands add various frivolous display gimmicks to the article
10299buffer in Emacs versions that support them. 10246buffer in Emacs versions that support them.
@@ -10310,6 +10257,9 @@ their messages with (@pxref{Smileys}).
10310Picons, 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
10311try to match the headers to what you have (@pxref{Picons}). 10258try to match the headers to what you have (@pxref{Picons}).
10312 10259
10260Gravatars reside on-line and are fetched from
10261@uref{http://www.gravatar.com/} (@pxref{Gravatars}).
10262
10313All these functions are toggles---if the elements already exist, 10263All these functions are toggles---if the elements already exist,
10314they'll be removed. 10264they'll be removed.
10315 10265
@@ -10348,6 +10298,17 @@ Piconify all mail headers (i. e., @code{Cc}, @code{To})
10348Piconify all news headers (i. e., @code{Newsgroups} and 10298Piconify all news headers (i. e., @code{Newsgroups} and
10349@code{Followup-To}) (@code{gnus-treat-newsgroups-picon}). 10299@code{Followup-To}) (@code{gnus-treat-newsgroups-picon}).
10350 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
10351@item W D D 10312@item W D D
10352@kindex W D D (Summary) 10313@kindex W D D (Summary)
10353@findex gnus-article-remove-images 10314@findex gnus-article-remove-images
@@ -10833,6 +10794,16 @@ Generate and print a PostScript image of the article buffer
10833be run just before printing the buffer. An alternative way to print 10794be run just before printing the buffer. An alternative way to print
10834article is to use Muttprint (@pxref{Saving Articles}). 10795article is to use Muttprint (@pxref{Saving Articles}).
10835 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
10836@end table 10807@end table
10837 10808
10838 10809
@@ -11556,18 +11527,6 @@ sieve.
11556 11527
11557@table @kbd 11528@table @kbd
11558 11529
11559@item H f
11560@kindex H f (Summary)
11561@findex gnus-summary-fetch-faq
11562@vindex gnus-group-faq-directory
11563Try to fetch the @acronym{FAQ} (list of frequently asked questions)
11564for the current group (@code{gnus-summary-fetch-faq}). Gnus will try
11565to get the @acronym{FAQ} from @code{gnus-group-faq-directory}, which
11566is usually a directory on a remote machine. This variable can also be
11567a list of directories. In that case, giving a prefix to this command
11568will allow you to choose between the various sites. @code{ange-ftp}
11569or @code{efs} will probably be used for fetching the file.
11570
11571@item H d 11530@item H d
11572@kindex H d (Summary) 11531@kindex H d (Summary)
11573@findex gnus-summary-describe-group 11532@findex gnus-summary-describe-group
@@ -11893,8 +11852,7 @@ read the same article more than once. Unless, of course, somebody has
11893posted it to several groups separately. Posting the same article to 11852posted it to several groups separately. Posting the same article to
11894several groups (not cross-posting) is called @dfn{spamming}, and you are 11853several groups (not cross-posting) is called @dfn{spamming}, and you are
11895by 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
11896heinous crime. You may want to try NoCeM handling to filter out spam 11855heinous crime.
11897(@pxref{NoCeM}).
11898 11856
11899Remember: Cross-posting is kinda ok, but posting the same article 11857Remember: Cross-posting is kinda ok, but posting the same article
11900separately to several groups is not. Massive cross-posting (aka. 11858separately to several groups is not. Massive cross-posting (aka.
@@ -12025,7 +11983,7 @@ To handle @acronym{PGP} and @acronym{PGP/MIME} messages, you have to
12025install an OpenPGP implementation such as GnuPG. The Lisp interface 11983install an OpenPGP implementation such as GnuPG. The Lisp interface
12026to GnuPG included with Emacs is called EasyPG (@pxref{Top, ,EasyPG, 11984to GnuPG included with Emacs is called EasyPG (@pxref{Top, ,EasyPG,
12027epa, EasyPG Assistant user's manual}), but PGG (@pxref{Top, ,PGG, pgg, 11985epa, EasyPG Assistant user's manual}), but PGG (@pxref{Top, ,PGG, pgg,
12028PGG Manual}), Mailcrypt, and gpg.el are also supported. 11986PGG Manual}), and Mailcrypt are also supported.
12029 11987
12030@item 11988@item
12031To 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
@@ -12064,7 +12022,7 @@ public-key matching the @samp{From:} header as the recipient;
12064@vindex mml1991-use 12022@vindex mml1991-use
12065Symbol indicating elisp interface to OpenPGP implementation for 12023Symbol indicating elisp interface to OpenPGP implementation for
12066@acronym{PGP} messages. The default is @code{epg}, but @code{pgg}, 12024@acronym{PGP} messages. The default is @code{epg}, but @code{pgg},
12067@code{mailcrypt}, and @code{gpg} are also supported although 12025and @code{mailcrypt} are also supported although
12068deprecated. By default, Gnus uses the first available interface in 12026deprecated. By default, Gnus uses the first available interface in
12069this order. 12027this order.
12070 12028
@@ -12072,7 +12030,7 @@ this order.
12072@vindex mml2015-use 12030@vindex mml2015-use
12073Symbol indicating elisp interface to OpenPGP implementation for 12031Symbol indicating elisp interface to OpenPGP implementation for
12074@acronym{PGP/MIME} messages. The default is @code{epg}, but 12032@acronym{PGP/MIME} messages. The default is @code{epg}, but
12075@code{pgg}, @code{mailcrypt}, and @code{gpg} are also supported 12033@code{pgg}, and @code{mailcrypt} are also supported
12076although deprecated. By default, Gnus uses the first available 12034although deprecated. By default, Gnus uses the first available
12077interface in this order. 12035interface in this order.
12078 12036
@@ -12626,6 +12584,8 @@ controlling variable is a predicate list, as described above.
12626@vindex gnus-treat-from-picon 12584@vindex gnus-treat-from-picon
12627@vindex gnus-treat-mail-picon 12585@vindex gnus-treat-mail-picon
12628@vindex gnus-treat-newsgroups-picon 12586@vindex gnus-treat-newsgroups-picon
12587@vindex gnus-treat-from-gravatar
12588@vindex gnus-treat-mail-gravatar
12629@vindex gnus-treat-display-smileys 12589@vindex gnus-treat-display-smileys
12630@vindex gnus-treat-body-boundary 12590@vindex gnus-treat-body-boundary
12631@vindex gnus-treat-display-x-face 12591@vindex gnus-treat-display-x-face
@@ -12644,7 +12604,6 @@ controlling variable is a predicate list, as described above.
12644@vindex gnus-treat-highlight-headers 12604@vindex gnus-treat-highlight-headers
12645@vindex gnus-treat-highlight-signature 12605@vindex gnus-treat-highlight-signature
12646@vindex gnus-treat-play-sounds 12606@vindex gnus-treat-play-sounds
12647@vindex gnus-treat-translate
12648@vindex gnus-treat-x-pgp-sig 12607@vindex gnus-treat-x-pgp-sig
12649@vindex gnus-treat-unfold-headers 12608@vindex gnus-treat-unfold-headers
12650@vindex gnus-treat-fold-headers 12609@vindex gnus-treat-fold-headers
@@ -12692,6 +12651,11 @@ possible but those listed are probably sufficient for most people.
12692 12651
12693@xref{Picons}. 12652@xref{Picons}.
12694 12653
12654@item gnus-treat-from-gravatar (head)
12655@item gnus-treat-mail-gravatar (head)
12656
12657@xref{Gravatars}.
12658
12695@item gnus-treat-display-smileys (t, integer) 12659@item gnus-treat-display-smileys (t, integer)
12696 12660
12697@item gnus-treat-body-boundary (head) 12661@item gnus-treat-body-boundary (head)
@@ -12746,8 +12710,6 @@ is controlled by @code{gnus-body-boundary-delimiter}.
12746 12710
12747@vindex gnus-treat-play-sounds 12711@vindex gnus-treat-play-sounds
12748@item gnus-treat-play-sounds 12712@item gnus-treat-play-sounds
12749@vindex gnus-treat-translate
12750@item gnus-treat-translate
12751@item gnus-treat-ansi-sequences (t) 12713@item gnus-treat-ansi-sequences (t)
12752@vindex gnus-treat-x-pgp-sig 12714@vindex gnus-treat-x-pgp-sig
12753@item gnus-treat-x-pgp-sig (head) 12715@item gnus-treat-x-pgp-sig (head)
@@ -13738,9 +13700,9 @@ The different methods all have their peculiarities, of course.
13738@menu 13700@menu
13739* Server Buffer:: Making and editing virtual servers. 13701* Server Buffer:: Making and editing virtual servers.
13740* Getting News:: Reading USENET news with Gnus. 13702* Getting News:: Reading USENET news with Gnus.
13703* Using @acronym{IMAP}:: Reading mail from @acronym{IMAP}.
13741* Getting Mail:: Reading your personal mail with Gnus. 13704* Getting Mail:: Reading your personal mail with Gnus.
13742* Browsing the Web:: Getting messages from a plethora of Web sources. 13705* Browsing the Web:: Getting messages from a plethora of Web sources.
13743* IMAP:: Using Gnus as a @acronym{IMAP} client.
13744* Other Sources:: Reading directories, files. 13706* Other Sources:: Reading directories, files.
13745* Combined Groups:: Combining groups into one group. 13707* Combined Groups:: Combining groups into one group.
13746* Email Based Diary:: Using mails to manage diary events in Gnus. 13708* Email Based Diary:: Using mails to manage diary events in Gnus.
@@ -14153,6 +14115,14 @@ Close the connections to all servers in the buffer
14153Remove all marks to whether Gnus was denied connection from any servers 14115Remove all marks to whether Gnus was denied connection from any servers
14154(@code{gnus-server-remove-denials}). 14116(@code{gnus-server-remove-denials}).
14155 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
14156@item L 14126@item L
14157@kindex L (Server) 14127@kindex L (Server)
14158@findex gnus-server-offline-server 14128@findex gnus-server-offline-server
@@ -14817,6 +14787,121 @@ there.
14817@end table 14787@end table
14818 14788
14819 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
14820@node Getting Mail 14905@node Getting Mail
14821@section Getting Mail 14906@section Getting Mail
14822@cindex reading mail 14907@cindex reading mail
@@ -15375,10 +15460,7 @@ Get mail from a @acronym{IMAP} server. If you don't want to use
15375@acronym{IMAP} as intended, as a network mail reading protocol (ie 15460@acronym{IMAP} as intended, as a network mail reading protocol (ie
15376with 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
15377to a @acronym{POP} server and fetches articles from a given 15462to a @acronym{POP} server and fetches articles from a given
15378@acronym{IMAP} mailbox. @xref{IMAP}, for more information. 15463@acronym{IMAP} mailbox. @xref{Using @acronym{IMAP}}, for more information.
15379
15380Note that for the Kerberos, GSSAPI, @acronym{TLS}/@acronym{SSL} and STARTTLS support you
15381may need external programs and libraries, @xref{IMAP}.
15382 15464
15383Keywords: 15465Keywords:
15384 15466
@@ -15847,7 +15929,7 @@ after @code{save-excursion} and @code{save-restriction} in the example
15847above. Also note that with the nnimap backend, message bodies will 15929above. Also note that with the nnimap backend, message bodies will
15848not be downloaded by default. You need to set 15930not be downloaded by default. You need to set
15849@code{nnimap-split-download-body} to @code{t} to do that 15931@code{nnimap-split-download-body} to @code{t} to do that
15850(@pxref{Splitting in IMAP}). 15932(@pxref{Client-Side @acronym{IMAP} Splitting}).
15851 15933
15852@item (! @var{func} @var{split}) 15934@item (! @var{func} @var{split})
15853If 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
@@ -16611,6 +16693,7 @@ Spool}).
16611@end menu 16693@end menu
16612 16694
16613 16695
16696
16614@node Unix Mail Box 16697@node Unix Mail Box
16615@subsubsection Unix Mail Box 16698@subsubsection Unix Mail Box
16616@cindex nnmbox 16699@cindex nnmbox
@@ -17736,739 +17819,6 @@ Put that in your @file{.emacs} file, and hitting links in W3-rendered
17736follow the link. 17819follow the link.
17737 17820
17738 17821
17739@node IMAP
17740@section IMAP
17741@cindex nnimap
17742@cindex @acronym{IMAP}
17743
17744@acronym{IMAP} is a network protocol for reading mail (or news, or @dots{}),
17745think of it as a modernized @acronym{NNTP}. Connecting to a @acronym{IMAP}
17746server is much similar to connecting to a news server, you just
17747specify the network address of the server.
17748
17749@acronym{IMAP} has two properties. First, @acronym{IMAP} can do
17750everything that @acronym{POP} can, it can hence be viewed as a
17751@acronym{POP++}. Secondly, @acronym{IMAP} is a mail storage protocol,
17752similar to @acronym{NNTP} being a news storage protocol---however,
17753@acronym{IMAP} offers more features than @acronym{NNTP} because news
17754is more or less read-only whereas mail is read-write.
17755
17756If you want to use @acronym{IMAP} as a @acronym{POP++}, use an imap
17757entry in @code{mail-sources}. With this, Gnus will fetch mails from
17758the @acronym{IMAP} server and store them on the local disk. This is
17759not the usage described in this section---@xref{Mail Sources}.
17760
17761If you want to use @acronym{IMAP} as a mail storage protocol, use an nnimap
17762entry in @code{gnus-secondary-select-methods}. With this, Gnus will
17763manipulate mails stored on the @acronym{IMAP} server. This is the kind of
17764usage explained in this section.
17765
17766A server configuration in @file{~/.gnus.el} with a few @acronym{IMAP}
17767servers might look something like the following. (Note that for
17768@acronym{TLS}/@acronym{SSL}, you need external programs and libraries,
17769see below.)
17770
17771@lisp
17772(setq gnus-secondary-select-methods
17773 '((nnimap "simpleserver") ; @r{no special configuration}
17774 ; @r{perhaps a ssh port forwarded server:}
17775 (nnimap "dolk"
17776 (nnimap-address "localhost")
17777 (nnimap-server-port 1430))
17778 ; @r{a UW server running on localhost}
17779 (nnimap "barbar"
17780 (nnimap-server-port 143)
17781 (nnimap-address "localhost")
17782 (nnimap-list-pattern ("INBOX" "mail/*")))
17783 ; @r{anonymous public cyrus server:}
17784 (nnimap "cyrus.andrew.cmu.edu"
17785 (nnimap-authenticator anonymous)
17786 (nnimap-list-pattern "archive.*")
17787 (nnimap-stream network))
17788 ; @r{a ssl server on a non-standard port:}
17789 (nnimap "vic20"
17790 (nnimap-address "vic20.somewhere.com")
17791 (nnimap-server-port 9930)
17792 (nnimap-stream ssl))))
17793@end lisp
17794
17795After defining the new server, you can subscribe to groups on the
17796server using normal Gnus commands such as @kbd{U} in the Group Buffer
17797(@pxref{Subscription Commands}) or via the Server Buffer
17798(@pxref{Server Buffer}).
17799
17800The following variables can be used to create a virtual @code{nnimap}
17801server:
17802
17803@table @code
17804
17805@item nnimap-address
17806@vindex nnimap-address
17807
17808The address of the remote @acronym{IMAP} server. Defaults to the virtual
17809server name if not specified.
17810
17811@item nnimap-server-port
17812@vindex nnimap-server-port
17813Port on server to contact. Defaults to port 143, or 993 for @acronym{TLS}/@acronym{SSL}.
17814
17815Note that this should be an integer, example server specification:
17816
17817@lisp
17818(nnimap "mail.server.com"
17819 (nnimap-server-port 4711))
17820@end lisp
17821
17822@item nnimap-list-pattern
17823@vindex nnimap-list-pattern
17824String or list of strings of mailboxes to limit available groups to.
17825This is used when the server has very many mailboxes and you're only
17826interested in a few---some servers export your home directory via
17827@acronym{IMAP}, you'll probably want to limit the mailboxes to those in
17828@file{~/Mail/*} then.
17829
17830The string can also be a cons of REFERENCE and the string as above, what
17831REFERENCE is used for is server specific, but on the University of
17832Washington server it's a directory that will be concatenated with the
17833mailbox.
17834
17835Example server specification:
17836
17837@lisp
17838(nnimap "mail.server.com"
17839 (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*"
17840 ("~friend/Mail/" . "list/*"))))
17841@end lisp
17842
17843@item nnimap-stream
17844@vindex nnimap-stream
17845The type of stream used to connect to your server. By default, nnimap
17846will detect and automatically use all of the below, with the exception
17847of @acronym{TLS}/@acronym{SSL}. (@acronym{IMAP} over
17848@acronym{TLS}/@acronym{SSL} is being replaced by STARTTLS, which can
17849be automatically detected, but it's not widely deployed yet.)
17850
17851Example server specification:
17852
17853@lisp
17854(nnimap "mail.server.com"
17855 (nnimap-stream ssl))
17856@end lisp
17857
17858Please note that the value of @code{nnimap-stream} is a symbol!
17859
17860@itemize @bullet
17861@item
17862@dfn{gssapi:} Connect with GSSAPI (usually Kerberos 5). Requires the
17863@samp{gsasl} or @samp{imtest} program.
17864@item
17865@dfn{kerberos4:} Connect with Kerberos 4. Requires the @samp{imtest} program.
17866@item
17867@dfn{starttls:} Connect via the STARTTLS extension (similar to
17868@acronym{TLS}/@acronym{SSL}). Requires the external library @samp{starttls.el} and program
17869@samp{starttls}.
17870@item
17871@dfn{tls:} Connect through @acronym{TLS}. Requires GNUTLS (the program
17872@samp{gnutls-cli}).
17873@item
17874@dfn{ssl:} Connect through @acronym{SSL}. Requires OpenSSL (the program
17875@samp{openssl}) or SSLeay (@samp{s_client}).
17876@item
17877@dfn{shell:} Use a shell command to start @acronym{IMAP} connection.
17878@item
17879@dfn{network:} Plain, TCP/IP network connection.
17880@end itemize
17881
17882@vindex imap-kerberos4-program
17883The @samp{imtest} program is shipped with Cyrus IMAPD. If you're
17884using @samp{imtest} from Cyrus IMAPD < 2.0.14 (which includes version
178851.5.x and 1.6.x) you need to frob @code{imap-process-connection-type}
17886to make @code{imap.el} use a pty instead of a pipe when communicating
17887with @samp{imtest}. You will then suffer from a line length
17888restrictions on @acronym{IMAP} commands, which might make Gnus seem to hang
17889indefinitely if you have many articles in a mailbox. The variable
17890@code{imap-kerberos4-program} contain parameters to pass to the imtest
17891program.
17892
17893For @acronym{TLS} connection, the @code{gnutls-cli} program from GNUTLS is
17894needed. It is available from
17895@uref{http://www.gnu.org/software/gnutls/}.
17896
17897@vindex imap-gssapi-program
17898This parameter specifies a list of command lines that invoke a GSSAPI
17899authenticated @acronym{IMAP} stream in a subshell. They are tried
17900sequentially until a connection is made, or the list has been
17901exhausted. By default, @samp{gsasl} from GNU SASL, available from
17902@uref{http://www.gnu.org/software/gsasl/}, and the @samp{imtest}
17903program from Cyrus IMAPD (see @code{imap-kerberos4-program}), are
17904tried.
17905
17906@vindex imap-ssl-program
17907For @acronym{SSL} connections, the OpenSSL program is available from
17908@uref{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay,
17909and nnimap support it too---although the most recent versions of
17910SSLeay, 0.9.x, are known to have serious bugs making it
17911useless. Earlier versions, especially 0.8.x, of SSLeay are known to
17912work. The variable @code{imap-ssl-program} contain parameters to pass
17913to OpenSSL/SSLeay.
17914
17915@vindex imap-shell-program
17916@vindex imap-shell-host
17917For @acronym{IMAP} connections using the @code{shell} stream, the
17918variable @code{imap-shell-program} specify what program to call. Make
17919sure nothing is interfering with the output of the program, e.g., don't
17920forget to redirect the error output to the void.
17921
17922@item nnimap-authenticator
17923@vindex nnimap-authenticator
17924
17925The authenticator used to connect to the server. By default, nnimap
17926will use the most secure authenticator your server is capable of.
17927
17928Example server specification:
17929
17930@lisp
17931(nnimap "mail.server.com"
17932 (nnimap-authenticator anonymous))
17933@end lisp
17934
17935Please note that the value of @code{nnimap-authenticator} is a symbol!
17936
17937@itemize @bullet
17938@item
17939@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Requires
17940external program @code{gsasl} or @code{imtest}.
17941@item
17942@dfn{kerberos4:} Kerberos 4 authentication. Requires external program
17943@code{imtest}.
17944@item
17945@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Requires
17946external library @code{digest-md5.el}.
17947@item
17948@dfn{cram-md5:} Encrypted username/password via CRAM-MD5.
17949@item
17950@dfn{login:} Plain-text username/password via LOGIN.
17951@item
17952@dfn{anonymous:} Login as ``anonymous'', supplying your email address as password.
17953@end itemize
17954
17955@item nnimap-expunge-on-close
17956@cindex expunging
17957@vindex nnimap-expunge-on-close
17958Unlike Parmenides the @acronym{IMAP} designers have decided things that
17959don't exist actually do exist. More specifically, @acronym{IMAP} has
17960this concept of marking articles @code{Deleted} which doesn't actually
17961delete them, and this (marking them @code{Deleted}, that is) is what
17962nnimap does when you delete an article in Gnus (with @kbd{B DEL} or
17963similar).
17964
17965Since the articles aren't really removed when we mark them with the
17966@code{Deleted} flag we'll need a way to actually delete them. Feel like
17967running in circles yet?
17968
17969Traditionally, nnimap has removed all articles marked as @code{Deleted}
17970when closing a mailbox but this is now configurable by this server
17971variable.
17972
17973The possible options are:
17974
17975@table @code
17976
17977@item always
17978The default behavior, delete all articles marked as ``Deleted'' when
17979closing a mailbox.
17980@item never
17981Never actually delete articles. Currently there is no way of showing
17982the articles marked for deletion in nnimap, but other @acronym{IMAP} clients
17983may allow you to do this. If you ever want to run the EXPUNGE command
17984manually, @xref{Expunging mailboxes}.
17985@item ask
17986When closing mailboxes, nnimap will ask if you wish to expunge deleted
17987articles or not.
17988
17989@end table
17990
17991@item nnimap-importantize-dormant
17992@vindex nnimap-importantize-dormant
17993
17994If non-@code{nil} (the default), marks dormant articles as ticked (as
17995well), for other @acronym{IMAP} clients. Within Gnus, dormant articles will
17996naturally still (only) be marked as dormant. This is to make dormant
17997articles stand out, just like ticked articles, in other @acronym{IMAP}
17998clients. (In other words, Gnus has two ``Tick'' marks and @acronym{IMAP}
17999has only one.)
18000
18001Probably the only reason for frobbing this would be if you're trying
18002enable per-user persistent dormant flags, using something like:
18003
18004@lisp
18005(setcdr (assq 'dormant nnimap-mark-to-flag-alist)
18006 (format "gnus-dormant-%s" (user-login-name)))
18007(setcdr (assq 'dormant nnimap-mark-to-predicate-alist)
18008 (format "KEYWORD gnus-dormant-%s" (user-login-name)))
18009@end lisp
18010
18011In this case, you would not want the per-user dormant flag showing up
18012as ticked for other users.
18013
18014@item nnimap-expunge-search-string
18015@cindex expunging
18016@vindex nnimap-expunge-search-string
18017@cindex expiring @acronym{IMAP} mail
18018
18019This variable contain the @acronym{IMAP} search command sent to server when
18020searching for articles eligible for expiring. The default is
18021@code{"UID %s NOT SINCE %s"}, where the first @code{%s} is replaced by
18022UID set and the second @code{%s} is replaced by a date.
18023
18024Probably the only useful value to change this to is
18025@code{"UID %s NOT SENTSINCE %s"}, which makes nnimap use the Date: in
18026messages instead of the internal article date. See section 6.4.4 of
18027RFC 2060 for more information on valid strings.
18028
18029However, if @code{nnimap-search-uids-not-since-is-evil}
18030is true, this variable has no effect since the search logic
18031is reversed, as described below.
18032
18033@item nnimap-authinfo-file
18034@vindex nnimap-authinfo-file
18035
18036A file containing credentials used to log in on servers. The format is
18037(almost) the same as the @code{ftp} @file{~/.netrc} file. See the
18038variable @code{nntp-authinfo-file} for exact syntax; also see
18039@ref{NNTP}. An example of an .authinfo line for an IMAP server, is:
18040
18041@example
18042machine students.uio.no login larsi password geheimnis port imap
18043@end example
18044
18045Note that it should be @code{port imap}, or @code{port 143}, if you
18046use a @code{nnimap-stream} of @code{tls} or @code{ssl}, even if the
18047actual port number used is port 993 for secured IMAP. For
18048convenience, Gnus will accept @code{port imaps} as a synonym of
18049@code{port imap}.
18050
18051@item nnimap-need-unselect-to-notice-new-mail
18052@vindex nnimap-need-unselect-to-notice-new-mail
18053
18054Unselect mailboxes before looking for new mail in them. Some servers
18055seem to need this under some circumstances; it was reported that
18056Courier 1.7.1 did.
18057
18058@item nnimap-nov-is-evil
18059@vindex nnimap-nov-is-evil
18060@cindex Courier @acronym{IMAP} server
18061@cindex @acronym{NOV}
18062
18063Never generate or use a local @acronym{NOV} database. Defaults to the
18064value of @code{gnus-agent}.
18065
18066Using a @acronym{NOV} database usually makes header fetching much
18067faster, but it uses the @code{UID SEARCH UID} command, which is very
18068slow on some servers (notably some versions of Courier). Since the Gnus
18069Agent caches the information in the @acronym{NOV} database without using
18070the slow command, this variable defaults to true if the Agent is in use,
18071and false otherwise.
18072
18073@item nnimap-search-uids-not-since-is-evil
18074@vindex nnimap-search-uids-not-since-is-evil
18075@cindex Courier @acronym{IMAP} server
18076@cindex expiring @acronym{IMAP} mail
18077
18078Avoid the @code{UID SEARCH UID @var{message numbers} NOT SINCE
18079@var{date}} command, which is slow on some @acronym{IMAP} servers
18080(notably, some versions of Courier). Instead, use @code{UID SEARCH SINCE
18081@var{date}} and prune the list of expirable articles within Gnus.
18082
18083When Gnus expires your mail (@pxref{Expiring Mail}), it starts with a
18084list of expirable articles and asks the IMAP server questions like ``Of
18085these articles, which ones are older than a week?'' While this seems
18086like a perfectly reasonable question, some IMAP servers take a long time
18087to answer it, since they seemingly go looking into every old article to
18088see if it is one of the expirable ones. Curiously, the question ``Of
18089@emph{all} articles, which ones are newer than a week?'' seems to be
18090much faster to answer, so setting this variable causes Gnus to ask this
18091question and figure out the answer to the real question itself.
18092
18093This problem can really sneak up on you: when you first configure Gnus,
18094everything works fine, but once you accumulate a couple thousand
18095messages, you start cursing Gnus for being so slow. On the other hand,
18096if you get a lot of email within a week, setting this variable will
18097cause a lot of network traffic between Gnus and the IMAP server.
18098
18099@item nnimap-logout-timeout
18100@vindex nnimap-logout-timeout
18101
18102There is a case where a connection to a @acronym{IMAP} server is unable
18103to close, when connecting to the server via a certain kind of network,
18104e.g. @acronym{VPN}. In that case, it will be observed that a connection
18105between Emacs and the local network looks alive even if the server has
18106closed a connection for some reason (typically, a timeout).
18107Consequently, Emacs continues waiting for a response from the server for
18108the @code{LOGOUT} command that Emacs sent, or hangs in other words. If
18109you are in such a network, setting this variable to a number of seconds
18110will be helpful. If it is set, a hung connection will be closed
18111forcibly, after this number of seconds from the time Emacs sends the
18112@code{LOGOUT} command. It should not be too small value but too large
18113value will be inconvenient too. Perhaps the value 1.0 will be a good
18114candidate but it might be worth trying some other values.
18115
18116Example server specification:
18117
18118@lisp
18119(nnimap "mail.server.com"
18120 (nnimap-logout-timeout 1.0))
18121@end lisp
18122
18123@end table
18124
18125@menu
18126* Splitting in IMAP:: Splitting mail with nnimap.
18127* Expiring in IMAP:: Expiring mail with nnimap.
18128* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox.
18129* Expunging mailboxes:: Equivalent of a ``compress mailbox'' button.
18130* A note on namespaces:: How to (not) use @acronym{IMAP} namespace in Gnus.
18131* Debugging IMAP:: What to do when things don't work.
18132@end menu
18133
18134
18135
18136@node Splitting in IMAP
18137@subsection Splitting in IMAP
18138@cindex splitting imap mail
18139
18140Splitting is something Gnus users have loved and used for years, and now
18141the rest of the world is catching up. Yeah, dream on, not many
18142@acronym{IMAP} servers have server side splitting and those that have
18143splitting seem to use some non-standard protocol. This means that
18144@acronym{IMAP} support for Gnus has to do its own splitting.
18145
18146And it does.
18147
18148(Incidentally, people seem to have been dreaming on, and Sieve has
18149gaining a market share and is supported by several IMAP servers.
18150Fortunately, Gnus support it too, @xref{Sieve Commands}.)
18151
18152Here are the variables of interest:
18153
18154@table @code
18155
18156@item nnimap-split-crosspost
18157@cindex splitting, crosspost
18158@cindex crosspost
18159@vindex nnimap-split-crosspost
18160
18161If non-@code{nil}, do crossposting if several split methods match the
18162mail. If @code{nil}, the first match in @code{nnimap-split-rule}
18163found will be used.
18164
18165Nnmail equivalent: @code{nnmail-crosspost}.
18166
18167@item nnimap-split-inbox
18168@cindex splitting, inbox
18169@cindex inbox
18170@vindex nnimap-split-inbox
18171
18172A string or a list of strings that gives the name(s) of @acronym{IMAP}
18173mailboxes to split from. Defaults to @code{nil}, which means that
18174splitting is disabled!
18175
18176@lisp
18177(setq nnimap-split-inbox
18178 '("INBOX" ("~/friend/Mail" . "lists/*") "lists.imap"))
18179@end lisp
18180
18181No nnmail equivalent.
18182
18183@item nnimap-split-rule
18184@cindex splitting, rules
18185@vindex nnimap-split-rule
18186
18187New mail found in @code{nnimap-split-inbox} will be split according to
18188this variable.
18189
18190This variable contains a list of lists, where the first element in the
18191sublist gives the name of the @acronym{IMAP} mailbox to move articles
18192matching the regexp in the second element in the sublist. Got that?
18193Neither did I, we need examples.
18194
18195@lisp
18196(setq nnimap-split-rule
18197 '(("INBOX.nnimap"
18198 "^Sender: owner-nnimap@@vic20.globalcom.se")
18199 ("INBOX.junk" "^Subject:.*MAKE MONEY")
18200 ("INBOX.private" "")))
18201@end lisp
18202
18203This will put all articles from the nnimap mailing list into mailbox
18204INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line
18205into INBOX.junk and everything else in INBOX.private.
18206
18207The first string may contain @samp{\\1} forms, like the ones used by
18208replace-match to insert sub-expressions from the matched text. For
18209instance:
18210
18211@lisp
18212("INBOX.lists.\\1" "^Sender: owner-\\([a-z-]+\\)@@")
18213@end lisp
18214
18215The first element can also be the symbol @code{junk} to indicate that
18216matching messages should simply be deleted. Use with care.
18217
18218The second element can also be a function. In that case, it will be
18219called with the first element of the rule as the argument, in a buffer
18220containing the headers of the article. It should return a
18221non-@code{nil} value if it thinks that the mail belongs in that group.
18222
18223Nnmail users might recollect that the last regexp had to be empty to
18224match all articles (like in the example above). This is not required in
18225nnimap. Articles not matching any of the regexps will not be moved out
18226of your inbox. (This might affect performance if you keep lots of
18227unread articles in your inbox, since the splitting code would go over
18228them every time you fetch new mail.)
18229
18230These rules are processed from the beginning of the alist toward the
18231end. The first rule to make a match will ``win'', unless you have
18232crossposting enabled. In that case, all matching rules will ``win''.
18233
18234This variable can also have a function as its value, the function will
18235be called with the headers narrowed and should return a group where it
18236thinks the article should be split to. See @code{nnimap-split-fancy}.
18237
18238The splitting code tries to create mailboxes if it needs to.
18239
18240To allow for different split rules on different virtual servers, and
18241even different split rules in different inboxes on the same server,
18242the syntax of this variable have been extended along the lines of:
18243
18244@lisp
18245(setq nnimap-split-rule
18246 '(("my1server" (".*" (("ding" "ding@@gnus.org")
18247 ("junk" "From:.*Simon"))))
18248 ("my2server" ("INBOX" nnimap-split-fancy))
18249 ("my[34]server" (".*" (("private" "To:.*Simon")
18250 ("junk" my-junk-func))))))
18251@end lisp
18252
18253The virtual server name is in fact a regexp, so that the same rules
18254may apply to several servers. In the example, the servers
18255@code{my3server} and @code{my4server} both use the same rules.
18256Similarly, the inbox string is also a regexp. The actual splitting
18257rules are as before, either a function, or a list with group/regexp or
18258group/function elements.
18259
18260Nnmail equivalent: @code{nnmail-split-methods}.
18261
18262@item nnimap-split-predicate
18263@cindex splitting
18264@vindex nnimap-split-predicate
18265
18266Mail matching this predicate in @code{nnimap-split-inbox} will be
18267split, it is a string and the default is @samp{UNSEEN UNDELETED}.
18268
18269This might be useful if you use another @acronym{IMAP} client to read mail in
18270your inbox but would like Gnus to split all articles in the inbox
18271regardless of readedness. Then you might change this to
18272@samp{UNDELETED}.
18273
18274@item nnimap-split-fancy
18275@cindex splitting, fancy
18276@findex nnimap-split-fancy
18277@vindex nnimap-split-fancy
18278
18279It's possible to set @code{nnimap-split-rule} to
18280@code{nnmail-split-fancy} if you want to use fancy
18281splitting. @xref{Fancy Mail Splitting}.
18282
18283However, to be able to have different fancy split rules for nnmail and
18284nnimap back ends you can set @code{nnimap-split-rule} to
18285@code{nnimap-split-fancy} and define the nnimap specific fancy split
18286rule in @code{nnimap-split-fancy}.
18287
18288Example:
18289
18290@lisp
18291(setq nnimap-split-rule 'nnimap-split-fancy
18292 nnimap-split-fancy ...)
18293@end lisp
18294
18295Nnmail equivalent: @code{nnmail-split-fancy}.
18296
18297@item nnimap-split-download-body
18298@findex nnimap-split-download-body
18299@vindex nnimap-split-download-body
18300
18301Set to non-@code{nil} to download entire articles during splitting.
18302This is generally not required, and will slow things down
18303considerably. You may need it if you want to use an advanced
18304splitting function that analyzes the body to split the article.
18305
18306@end table
18307
18308@node Expiring in IMAP
18309@subsection Expiring in IMAP
18310@cindex expiring @acronym{IMAP} mail
18311
18312Even though @code{nnimap} is not a proper @code{nnmail} derived back
18313end, it supports most features in regular expiring (@pxref{Expiring
18314Mail}). Unlike splitting in @acronym{IMAP} (@pxref{Splitting in
18315IMAP}) it does not clone the @code{nnmail} variables (i.e., creating
18316@var{nnimap-expiry-wait}) but reuse the @code{nnmail} variables. What
18317follows below are the variables used by the @code{nnimap} expiry
18318process.
18319
18320A note on how the expire mark is stored on the @acronym{IMAP} server is
18321appropriate here as well. The expire mark is translated into a
18322@code{imap} client specific mark, @code{gnus-expire}, and stored on the
18323message. This means that likely only Gnus will understand and treat
18324the @code{gnus-expire} mark properly, although other clients may allow
18325you to view client specific flags on the message. It also means that
18326your server must support permanent storage of client specific flags on
18327messages. Most do, fortunately.
18328
18329If expiring @acronym{IMAP} mail seems very slow, try setting the server
18330variable @code{nnimap-search-uids-not-since-is-evil}.
18331
18332@table @code
18333
18334@item nnmail-expiry-wait
18335@item nnmail-expiry-wait-function
18336
18337These variables are fully supported. The expire value can be a
18338number, the symbol @code{immediate} or @code{never}.
18339
18340@item nnmail-expiry-target
18341
18342This variable is supported, and internally implemented by calling the
18343@code{nnmail} functions that handle this. It contains an optimization
18344that if the destination is a @acronym{IMAP} group on the same server, the
18345article is copied instead of appended (that is, uploaded again).
18346
18347@end table
18348
18349@node Editing IMAP ACLs
18350@subsection Editing IMAP ACLs
18351@cindex editing imap acls
18352@cindex Access Control Lists
18353@cindex Editing @acronym{IMAP} ACLs
18354@kindex G l (Group)
18355@findex gnus-group-nnimap-edit-acl
18356
18357ACL stands for Access Control List. ACLs are used in @acronym{IMAP} for
18358limiting (or enabling) other users access to your mail boxes. Not all
18359@acronym{IMAP} servers support this, this function will give an error if it
18360doesn't.
18361
18362To edit an ACL for a mailbox, type @kbd{G l}
18363(@code{gnus-group-edit-nnimap-acl}) and you'll be presented with an ACL
18364editing window with detailed instructions.
18365
18366Some possible uses:
18367
18368@itemize @bullet
18369@item
18370Giving ``anyone'' the ``lrs'' rights (lookup, read, keep seen/unseen flags)
18371on your mailing list mailboxes enables other users on the same server to
18372follow the list without subscribing to it.
18373@item
18374At least with the Cyrus server, you are required to give the user
18375``anyone'' posting ("p") capabilities to have ``plussing'' work (that is,
18376mail sent to user+mailbox@@domain ending up in the @acronym{IMAP} mailbox
18377INBOX.mailbox).
18378@end itemize
18379
18380@node Expunging mailboxes
18381@subsection Expunging mailboxes
18382@cindex expunging
18383
18384@cindex expunge
18385@cindex manual expunging
18386@kindex G x (Group)
18387@findex gnus-group-expunge-group
18388
18389If you're using the @code{never} setting of @code{nnimap-expunge-on-close},
18390you may want the option of expunging all deleted articles in a mailbox
18391manually. This is exactly what @kbd{G x} does.
18392
18393Currently there is no way of showing deleted articles, you can just
18394delete them.
18395
18396@node A note on namespaces
18397@subsection A note on namespaces
18398@cindex IMAP namespace
18399@cindex namespaces
18400
18401The @acronym{IMAP} protocol has a concept called namespaces, described
18402by the following text in the RFC2060:
18403
18404@display
184055.1.2. Mailbox Namespace Naming Convention
18406
18407 By convention, the first hierarchical element of any mailbox name
18408 which begins with "#" identifies the "namespace" of the remainder of
18409 the name. This makes it possible to disambiguate between different
18410 types of mailbox stores, each of which have their own namespaces.
18411
18412 For example, implementations which offer access to USENET
18413 newsgroups MAY use the "#news" namespace to partition the USENET
18414 newsgroup namespace from that of other mailboxes. Thus, the
18415 comp.mail.misc newsgroup would have an mailbox name of
18416 "#news.comp.mail.misc", and the name "comp.mail.misc" could refer
18417 to a different object (e.g. a user's private mailbox).
18418@end display
18419
18420While there is nothing in this text that warrants concern for the
18421@acronym{IMAP} implementation in Gnus, some servers use namespace
18422prefixes in a way that does not work with how Gnus uses mailbox names.
18423
18424Specifically, University of Washington's @acronym{IMAP} server uses
18425mailbox names like @code{#driver.mbx/read-mail} which are valid only
18426in the @sc{create} and @sc{append} commands. After the mailbox is
18427created (or a messages is appended to a mailbox), it must be accessed
18428without the namespace prefix, i.e. @code{read-mail}. Since Gnus do
18429not make it possible for the user to guarantee that user entered
18430mailbox names will only be used with the CREATE and APPEND commands,
18431you should simply not use the namespace prefixed mailbox names in
18432Gnus.
18433
18434See the UoW IMAPD documentation for the @code{#driver.*/} prefix
18435for more information on how to use the prefixes. They are a power
18436tool and should be used only if you are sure what the effects are.
18437
18438@node Debugging IMAP
18439@subsection Debugging IMAP
18440@cindex IMAP debugging
18441@cindex protocol dump (IMAP)
18442
18443@acronym{IMAP} is a complex protocol, more so than @acronym{NNTP} or
18444@acronym{POP3}. Implementation bugs are not unlikely, and we do our
18445best to fix them right away. If you encounter odd behavior, chances
18446are that either the server or Gnus is buggy.
18447
18448If you are familiar with network protocols in general, you will
18449probably be able to extract some clues from the protocol dump of the
18450exchanges between Gnus and the server. Even if you are not familiar
18451with network protocols, when you include the protocol dump in
18452@acronym{IMAP}-related bug reports you are helping us with data
18453critical to solving the problem. Therefore, we strongly encourage you
18454to include the protocol dump when reporting IMAP bugs in Gnus.
18455
18456
18457@vindex imap-log
18458Because the protocol dump, when enabled, generates lots of data, it is
18459disabled by default. You can enable it by setting @code{imap-log} as
18460follows:
18461
18462@lisp
18463(setq imap-log t)
18464@end lisp
18465
18466This instructs the @code{imap.el} package to log any exchanges with
18467the server. The log is stored in the buffer @samp{*imap-log*}. Look
18468for error messages, which sometimes are tagged with the keyword
18469@code{BAD}---but when submitting a bug, make sure to include all the
18470data.
18471
18472@node Other Sources 17822@node Other Sources
18473@section Other Sources 17823@section Other Sources
18474 17824
@@ -22381,7 +21731,6 @@ four days, Gnus will decay the scores four times, for instance.
22381* Highlighting and Menus:: Making buffers look all nice and cozy. 21731* Highlighting and Menus:: Making buffers look all nice and cozy.
22382* Buttons:: Get tendinitis in ten easy steps! 21732* Buttons:: Get tendinitis in ten easy steps!
22383* Daemons:: Gnus can do things behind your back. 21733* Daemons:: Gnus can do things behind your back.
22384* NoCeM:: How to avoid spam and other fatty foods.
22385* Undo:: Some actions can be undone. 21734* Undo:: Some actions can be undone.
22386* Predicate Specifiers:: Specifying predicates. 21735* Predicate Specifiers:: Specifying predicates.
22387* Moderation:: What to do if you're a moderator. 21736* Moderation:: What to do if you're a moderator.
@@ -23400,13 +22749,12 @@ your @file{~/.gnus.el} file:
23400(gnus-demon-add-handler 'gnus-demon-close-connections 30 t) 22749(gnus-demon-add-handler 'gnus-demon-close-connections 30 t)
23401@end lisp 22750@end lisp
23402 22751
23403@findex gnus-demon-add-nocem
23404@findex gnus-demon-add-scanmail 22752@findex gnus-demon-add-scanmail
23405@findex gnus-demon-add-rescan 22753@findex gnus-demon-add-rescan
23406@findex gnus-demon-add-scan-timestamps 22754@findex gnus-demon-add-scan-timestamps
23407@findex gnus-demon-add-disconnection 22755@findex gnus-demon-add-disconnection
23408Some ready-made functions to do this have been created: 22756Some ready-made functions to do this have been created:
23409@code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection}, 22757@code{gnus-demon-add-disconnection},
23410@code{gnus-demon-add-nntp-close-connection}, 22758@code{gnus-demon-add-nntp-close-connection},
23411@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
23412@code{gnus-demon-add-scanmail}. Just put those functions in your 22760@code{gnus-demon-add-scanmail}. Just put those functions in your
@@ -23425,152 +22773,6 @@ is a sure-fire way of getting booted off any respectable system. So
23425behave. 22773behave.
23426 22774
23427 22775
23428@node NoCeM
23429@section NoCeM
23430@cindex nocem
23431@cindex spam
23432
23433@dfn{Spamming} is posting the same article lots and lots of times.
23434Spamming is bad. Spamming is evil.
23435
23436Spamming is usually canceled within a day or so by various anti-spamming
23437agencies. These agencies usually also send out @dfn{NoCeM} messages.
23438NoCeM is pronounced ``no see-'em'', and means what the name
23439implies---these are messages that make the offending articles, like, go
23440away.
23441
23442What use are these NoCeM messages if the articles are canceled anyway?
23443Some sites do not honor cancel messages and some sites just honor cancels
23444from a select few people. Then you may wish to make use of the NoCeM
23445messages, which are distributed in the newsgroups
23446@samp{news.lists.filters}, @samp{alt.nocem.misc}, etc.
23447
23448Gnus can read and parse the messages in this group automatically, and
23449this will make spam disappear.
23450
23451There are some variables to customize, of course:
23452
23453@table @code
23454@item gnus-use-nocem
23455@vindex gnus-use-nocem
23456Set this variable to @code{t} to set the ball rolling. It is @code{nil}
23457by default.
23458
23459You can also set this variable to a positive number as a group level.
23460In that case, Gnus scans NoCeM messages when checking new news if this
23461value is not exceeding a group level that you specify as the prefix
23462argument to some commands, e.g. @code{gnus},
23463@code{gnus-group-get-new-news}, etc. Otherwise, Gnus does not scan
23464NoCeM messages if you specify a group level that is smaller than this
23465value to those commands. For example, if you use 1 or 2 on the mail
23466groups and the levels on the news groups remain the default, 3 is the
23467best choice.
23468
23469@item gnus-nocem-groups
23470@vindex gnus-nocem-groups
23471Gnus will look for NoCeM messages in the groups in this list. The
23472default is
23473@lisp
23474("news.lists.filters" "alt.nocem.misc")
23475@end lisp
23476
23477@item gnus-nocem-issuers
23478@vindex gnus-nocem-issuers
23479There are many people issuing NoCeM messages. This list says what
23480people you want to listen to. The default is:
23481
23482@lisp
23483("Adri Verhoef"
23484 "alba-nocem@@albasani.net"
23485 "bleachbot@@httrack.com"
23486 "news@@arcor-online.net"
23487 "news@@uni-berlin.de"
23488 "nocem@@arcor.de"
23489 "pgpmoose@@killfile.org"
23490 "xjsppl@@gmx.de")
23491@end lisp
23492
23493Known despammers that you can put in this list are listed at@*
23494@uref{http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html}.
23495
23496You do not have to heed NoCeM messages from all these people---just the
23497ones you want to listen to. You also don't have to accept all NoCeM
23498messages from the people you like. Each NoCeM message has a @dfn{type}
23499header that gives the message a (more or less, usually less) rigorous
23500definition. Common types are @samp{spam}, @samp{spew}, @samp{mmf},
23501@samp{binary}, and @samp{troll}. To specify this, you have to use
23502@code{(@var{issuer} @var{conditions} @dots{})} elements in the list.
23503Each condition is either a string (which is a regexp that matches types
23504you want to use) or a list on the form @code{(not @var{string})}, where
23505@var{string} is a regexp that matches types you don't want to use.
23506
23507For instance, if you want all NoCeM messages from Chris Lewis except his
23508@samp{troll} messages, you'd say:
23509
23510@lisp
23511("clewis@@ferret.ocunix.on.ca" ".*" (not "troll"))
23512@end lisp
23513
23514On the other hand, if you just want nothing but his @samp{spam} and
23515@samp{spew} messages, you'd say:
23516
23517@lisp
23518("clewis@@ferret.ocunix.on.ca" (not ".*") "spew" "spam")
23519@end lisp
23520
23521The specs are applied left-to-right.
23522
23523
23524@item gnus-nocem-verifyer
23525@vindex gnus-nocem-verifyer
23526@findex gnus-nocem-epg-verify
23527@findex pgg-verify
23528This should be a function for verifying that the NoCeM issuer is who she
23529says she is. This variable defaults to @code{gnus-nocem-epg-verify} if
23530EasyPG is available, otherwise defaults to @code{pgg-verify}. The
23531function should return non-@code{nil} if the verification is successful,
23532otherwise (including the case the NoCeM message was not signed) should
23533return @code{nil}. If this is too slow and you don't care for
23534verification (which may be dangerous), you can set this variable to
23535@code{nil}.
23536
23537Formerly the default was @code{mc-verify}, which is a Mailcrypt
23538function. While you can still use it, you can change it into
23539@code{gnus-nocem-epg-verify} or @code{pgg-verify} running with GnuPG if
23540you are willing to add the @acronym{PGP} public keys to GnuPG's keyring.
23541
23542@item gnus-nocem-directory
23543@vindex gnus-nocem-directory
23544This is where Gnus will store its NoCeM cache files. The default is@*
23545@file{~/News/NoCeM/}.
23546
23547@item gnus-nocem-expiry-wait
23548@vindex gnus-nocem-expiry-wait
23549The number of days before removing old NoCeM entries from the cache.
23550The default is 15. If you make it shorter Gnus will be faster, but you
23551might then see old spam.
23552
23553@item gnus-nocem-check-from
23554@vindex gnus-nocem-check-from
23555Non-@code{nil} means check for valid issuers in message bodies.
23556Otherwise don't bother fetching articles unless their author matches a
23557valid issuer; that is much faster if you are selective about the
23558issuers.
23559
23560@item gnus-nocem-check-article-limit
23561@vindex gnus-nocem-check-article-limit
23562If non-@code{nil}, the maximum number of articles to check in any NoCeM
23563group. @code{nil} means no restriction. NoCeM groups can be huge and
23564very slow to process.
23565
23566@end table
23567
23568Using NoCeM could potentially be a memory hog. If you have many living
23569(i. e., subscribed or unsubscribed groups), your Emacs process will grow
23570big. If this is a problem, you should kill off all (or most) of your
23571unsubscribed groups (@pxref{Subscription Commands}).
23572
23573
23574@node Undo 22776@node Undo
23575@section Undo 22777@section Undo
23576@cindex undo 22778@cindex undo
@@ -23704,6 +22906,7 @@ stuff, so Gnus has taken advantage of that.
23704* Face:: Display a funkier, teensier colored image. 22906* Face:: Display a funkier, teensier colored image.
23705* 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.
23706* 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.
23707* XVarious:: Other XEmacsy Gnusey variables. 22910* XVarious:: Other XEmacsy Gnusey variables.
23708@end menu 22911@end menu
23709 22912
@@ -24030,8 +23233,56 @@ want to add @samp{"unknown"} to this list.
24030Ordered list of suffixes on picon file names to try. Defaults to 23233Ordered list of suffixes on picon file names to try. Defaults to
24031@code{("xpm" "gif" "xbm")} minus those not built-in your Emacs. 23234@code{("xpm" "gif" "xbm")} minus those not built-in your Emacs.
24032 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
24033@end table 23242@end table
24034 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
23273@end table
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
24035 23286
24036@node XVarious 23287@node XVarious
24037@subsection Various XEmacs Variables 23288@subsection Various XEmacs Variables
@@ -24367,7 +23618,7 @@ call the external tools during splitting. Example fancy split method:
24367Note that with the nnimap back end, message bodies will not be 23618Note that with the nnimap back end, message bodies will not be
24368downloaded by default. You need to set 23619downloaded by default. You need to set
24369@code{nnimap-split-download-body} to @code{t} to do that 23620@code{nnimap-split-download-body} to @code{t} to do that
24370(@pxref{Splitting in IMAP}). 23621(@pxref{Client-Side @acronym{IMAP} Splitting}).
24371 23622
24372That 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
24373might 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
@@ -24649,14 +23900,14 @@ the value @samp{spam} means @samp{nnimap+your-server:spam}. The value
24649@vindex nnimap-split-download-body 23900@vindex nnimap-split-download-body
24650Note for IMAP users: if you use the @code{spam-check-bogofilter}, 23901Note for IMAP users: if you use the @code{spam-check-bogofilter},
24651@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,
24652you should also set the variable @code{nnimap-split-download-body} 23903you should also set the variable @code{nnimap-split-download-body} to
24653to @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''
24654``scan'' the full message body. By default, the nnimap back end only 23905the full message body. By default, the nnimap back end only retrieves
24655retrieves the message headers; @code{nnimap-split-download-body} tells 23906the message headers; @code{nnimap-split-download-body} tells it to
24656it 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
24657default because it will slow @acronym{IMAP} down, and that is not an 23908because it will slow @acronym{IMAP} down, and that is not an
24658appropriate decision to make on behalf of the user. @xref{Splitting 23909appropriate decision to make on behalf of the user. @xref{Client-Side
24659in IMAP}. 23910@acronym{IMAP} Splitting}.
24660 23911
24661You 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}
24662to use, by setting the @code{spam-use-*} variables. @xref{Spam Back 23913to use, by setting the @code{spam-use-*} variables. @xref{Spam Back
@@ -27573,13 +26824,6 @@ Mail can be re-scanned by a daemonic process (@pxref{Daemons}).
27573@end iftex 26824@end iftex
27574 26825
27575@item 26826@item
27576Gnus can make use of NoCeM files to weed out spam (@pxref{NoCeM}).
27577
27578@lisp
27579(setq gnus-use-nocem t)
27580@end lisp
27581
27582@item
27583Groups can be made permanently visible (@pxref{Listing Groups}). 26827Groups can be made permanently visible (@pxref{Listing Groups}).
27584 26828
27585@lisp 26829@lisp
@@ -28095,9 +27339,7 @@ The revised Gnus @acronym{FAQ} is included in the manual,
28095@acronym{TLS} wrapper shipped with Gnus 27339@acronym{TLS} wrapper shipped with Gnus
28096 27340
28097@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and 27341@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and
28098@acronym{NNTP} via @file{tls.el} and GNUTLS. The old 27342@acronym{NNTP} via @file{tls.el} and GNUTLS.
28099@acronym{TLS}/@acronym{SSL} support via (external third party)
28100@file{ssl.el} and OpenSSL still works.
28101 27343
28102@item 27344@item
28103Improved anti-spam features. 27345Improved anti-spam features.
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/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