summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/gnus/ChangeLog54
-rw-r--r--lisp/gnus/gnus-art.el23
-rw-r--r--lisp/gnus/gnus-ems.el5
-rw-r--r--lisp/gnus/gnus-sum.el3
-rw-r--r--lisp/gnus/message.el4
-rw-r--r--lisp/gnus/nnimap.el5
-rw-r--r--lisp/gnus/nnrss.el6
-rw-r--r--lisp/gnus/spam.el42
-rw-r--r--lisp/pgg-def.el4
-rw-r--r--lisp/pgg-gpg.el6
-rw-r--r--man/ChangeLog29
-rw-r--r--man/gnus.texi112
13 files changed, 248 insertions, 52 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d592f1624f3..63c4c579cc7 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -121,6 +121,13 @@
* textmodes/fill.el (fill-paragraph): Check for a minibuffer
rather than for being in a minibuffer window.
+2006-12-25 Daiki Ueno <ueno@unixuser.org>
+
+ * pgg-def.el (pgg-passphrase-coding-system): Default to nil instead of
+ locale-coding-system.
+ * pgg-gpg.el (pgg-gpg-process-region): Encode passphrase with eol-type
+ LF.
+
2006-12-25 Michael R. Mauger <mmaug@yahoo.com>
* progmodes/sql.el (sql-mode-abbrev-table): Corrected initialization.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 317fe617c9f..d7716e8d950 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,53 @@
+2006-12-29 Jouni K. Sepp,Ad(Bnen <jks@iki.fi>
+
+ * nnimap.el (nnimap-expunge-search-string): Mention
+ nnimap-search-uids-not-since-is-evil in docstring.
+
+2006-12-28 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * spam.el: Revert to make-obsolete-variable because
+ define-obsolete-variable-alias is not supported in Emacs 21.
+
+2006-12-28 Daiki Ueno <ueno@unixuser.org>
+
+ * gnus-sum.el (gnus-summary-next-article): Make sure we are in the
+ summary buffer.
+
+2006-12-27 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * spam.el (spam-ifile-path, spam-ifile-database-path)
+ (spam-bogofilter-path): Use define-obsolete-variable-alias instead of
+ make-obsolete-variable.
+
+2006-12-26 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * message.el (message-make-fqdn): Fix comment.
+ (message-bogus-system-names): Add ".local".
+
+ * spam.el (spam-ifile-path, spam-ifile-program)
+ (spam-ifile-database-path, spam-ifile-database)
+ (spam-bogofilter-path, spam-bogofilter-program): Rename variables.
+ Don't use "path" inappropriately.
+ (spam-spamoracle-database, spam-get-ifile-database-parameter): Fix doc
+ strings.
+ (spam-check-ifile, spam-ifile-register-with-ifile)
+ (spam-check-bogofilter, spam-bogofilter-register-with-bogofilter): Use
+ new variable names.
+
+ * gnus-art.el (gnus-treat-display-x-face, gnus-treat-display-face)
+ (gnus-treat-display-smileys): Simplify using
+ gnus-image-type-available-p.
+
+ * gnus-ems.el (gnus-image-type-available-p): Use display-images-p if
+ available.
+
+2006-12-22 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * nnrss.el (nnrss-fetch): Replace buffer's contents with the decoded
+ one after turning on the buffer's multibyteness instead of decoding
+ them directly in the unibyte buffer that causes unexpected conversion
+ in Emacs 23 (unicode).
+
2006-12-20 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-group.el (gnus-group-tool-bar-gnome): Exchange connect and
@@ -25,7 +75,7 @@
* gnus-sum.el (gnus-sort-threads, gnus-summary-limit-children):
Use `max' to avoid the value of `max-lisp-eval-depth' decreasing.
-2006-12-04 Jouni K. Sepp,Ad(Bnen <jks@iki.fi> (tiny change)
+2006-12-04 Jouni K. Sepp,Ad(Bnen <jks@iki.fi>
* mm-url.el (mm-url-predefined-programs): Call curl with correct
options.
@@ -1654,7 +1704,7 @@
whitespace removed in revision 7.8. Use concatenated string to
protect trailing whitespace.
-2005-10-27 Jouni K Seppanen <jks@iki.fi> (tiny change)
+2005-10-27 Jouni K. Sepp,Ad(Bnen <jks@iki.fi>
* nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable.
(nnimap-request-expire-articles): Use it to avoid sending 'UID
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index cdb3c8950cc..9160f6f5002 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1325,12 +1325,11 @@ See Info node `(gnus)Customizing Articles' for details."
(defcustom gnus-treat-display-x-face
(and (not noninteractive)
- (or (and (fboundp 'image-type-available-p)
- (image-type-available-p 'xbm)
- (string-match "^0x" (shell-command-to-string "uncompface"))
- (executable-find "icontopbm"))
- (and (featurep 'xemacs)
- (featurep 'xface)))
+ (gnus-image-type-available-p 'xbm)
+ (if (featurep 'xemacs)
+ (featurep 'xface)
+ (and (string-match "^0x" (shell-command-to-string "uncompface"))
+ (executable-find "icontopbm")))
'head)
"Display X-Face headers.
Valid values are nil, t, `head', `last', an integer or a predicate.
@@ -1362,10 +1361,7 @@ See Info node `(gnus)Customizing Articles' and Info node
(defcustom gnus-treat-display-face
(and (not noninteractive)
- (or (and (fboundp 'image-type-available-p)
- (image-type-available-p 'png))
- (and (featurep 'xemacs)
- (featurep 'png)))
+ (gnus-image-type-available-p 'png)
'head)
"Display Face headers.
Valid values are nil, t, `head', `last', an integer or a predicate.
@@ -1378,12 +1374,7 @@ See Info node `(gnus)Customizing Articles' and Info node
:type gnus-article-treat-head-custom)
(put 'gnus-treat-display-face 'highlight t)
-(defcustom gnus-treat-display-smileys
- (if (or (and (featurep 'xemacs)
- (featurep 'xpm))
- (and (fboundp 'image-type-available-p)
- (image-type-available-p 'pbm)))
- t nil)
+(defcustom gnus-treat-display-smileys (gnus-image-type-available-p 'xpm)
"Display smileys.
Valid values are nil, t, `head', `last', an integer or a predicate.
See Info node `(gnus)Customizing Articles' and Info node
diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el
index 44f84237a4b..73bcf09f360 100644
--- a/lisp/gnus/gnus-ems.el
+++ b/lisp/gnus/gnus-ems.el
@@ -211,7 +211,10 @@
(defun gnus-image-type-available-p (type)
(and (fboundp 'image-type-available-p)
- (image-type-available-p type)))
+ (image-type-available-p type)
+ (if (fboundp 'display-images-p)
+ (display-images-p)
+ t)))
(defun gnus-create-image (file &optional type data-p &rest props)
(let ((face (plist-get props :face)))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 29e0067bf9b..2ac6ee0c3c7 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -7333,6 +7333,9 @@ If UNREAD, only unread articles are selected.
If SUBJECT, only articles with SUBJECT are selected.
If BACKWARD, the previous article is selected instead of the next."
(interactive "P")
+ ;; Make sure we are in the summary buffer.
+ (unless (eq major-mode 'gnus-summary-mode)
+ (set-buffer gnus-summary-buffer))
(cond
;; Is there such an article?
((and (gnus-summary-search-forward unread subject backward)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index a3d0298ce0e..f7d876c120f 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1579,7 +1579,7 @@ functionality to work."
(defvar message-send-mail-real-function nil
"Internal send mail function.")
-(defvar message-bogus-system-names "^localhost\\."
+(defvar message-bogus-system-names "^localhost\\.\\|\\.local$"
"The regexp of bogus system names.")
(defcustom message-valid-fqdn-regexp
@@ -5000,8 +5000,8 @@ give as trustworthy answer as possible."
(stringp message-user-fqdn)
(string-match message-valid-fqdn-regexp message-user-fqdn)
(not (string-match message-bogus-system-names message-user-fqdn)))
+ ;; `message-user-fqdn' seems to be valid
message-user-fqdn)
- ;; `message-user-fqdn' seems to be valid
((and (string-match message-valid-fqdn-regexp system-name)
(not (string-match message-bogus-system-names system-name)))
;; `system-name' returned the right result.
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index bada9da6891..5c0777531c5 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -375,7 +375,10 @@ and the second %s is replaced by a date criterium.
One useful (and perhaps the only useful) value to change this to would
be `UID %s NOT SENTSINCE %s' to make nnimap use the Date: header
instead of the internal date of messages. See section 6.4.4 of RFC
-2060 for more information on valid strings.")
+2060 for more information on valid strings.
+
+However, if `nnimap-search-uids-not-since-is-evil' is true, this
+variable has no effect since the search logic is reversed.")
(defvoo nnimap-importantize-dormant t
"If non-nil, mark \"dormant\" articles as \"ticked\" for other IMAP clients.
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 318560179f5..f21fd74d138 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -418,8 +418,10 @@ otherwise return nil."
(nnheader-remove-cr-followed-by-lf)
;; Decode text according to the encoding attribute.
(when (setq cs (nnrss-get-encoding))
- (mm-decode-coding-region (point-min) (point-max) cs)
- (mm-enable-multibyte))
+ (insert (prog1
+ (mm-decode-coding-string (buffer-string) cs)
+ (erase-buffer)
+ (mm-enable-multibyte))))
(goto-char (point-min))
;; Because xml-parse-region can't deal with anything that isn't
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
index 047035536f2..589b2b0a619 100644
--- a/lisp/gnus/spam.el
+++ b/lisp/gnus/spam.el
@@ -351,14 +351,18 @@ All unmarked article in such group receive the spam mark on group entry."
"Spam ifile configuration."
:group 'spam)
-(defcustom spam-ifile-path (executable-find "ifile")
- "File path of the ifile executable program."
+(make-obsolete-variable 'spam-ifile-path 'spam-ifile-program)
+;; "22.1" ;; Gnus 5.10.9
+(defcustom spam-ifile-program (executable-find "ifile")
+ "Name of the ifile program."
:type '(choice (file :tag "Location of ifile")
(const :tag "ifile is not installed"))
:group 'spam-ifile)
-(defcustom spam-ifile-database-path nil
- "File path of the ifile database."
+(make-obsolete-variable 'spam-ifile-database-path 'spam-ifile-database)
+;; "22.1" ;; Gnus 5.10.9
+(defcustom spam-ifile-database nil
+ "File name of the ifile database."
:type '(choice (file :tag "Location of the ifile database")
(const :tag "Use the default"))
:group 'spam-ifile)
@@ -386,8 +390,10 @@ your main source of newsgroup names."
"Spam bogofilter configuration."
:group 'spam)
-(defcustom spam-bogofilter-path (executable-find "bogofilter")
- "File path of the Bogofilter executable program."
+(make-obsolete-variable 'spam-bogofilter-path 'spam-bogofilter-program)
+;; "22.1" ;; Gnus 5.10.9
+(defcustom spam-bogofilter-program (executable-find "bogofilter")
+ "Name of the Bogofilter program."
:type '(choice (file :tag "Location of bogofilter")
(const :tag "Bogofilter is not installed"))
:group 'spam-bogofilter)
@@ -423,7 +429,8 @@ your main source of newsgroup names."
:group 'spam-bogofilter)
(defcustom spam-bogofilter-database-directory nil
- "Directory path of the Bogofilter databases."
+ "Location of the Bogofilter database.
+When nil, use the default location."
:type '(choice (directory
:tag "Location of the Bogofilter database directory")
(const :tag "Use the default"))
@@ -434,8 +441,8 @@ your main source of newsgroup names."
:group 'spam)
(defcustom spam-spamoracle-database nil
- "Location of spamoracle database file. When nil, use the default
-spamoracle database."
+ "Location of spamoracle database file.
+When nil, use the default spamoracle database."
:type '(choice (directory :tag "Location of spamoracle database file.")
(const :tag "Use the default"))
:group 'spam-spamoracle)
@@ -1370,11 +1377,12 @@ functions")
;;; check the ifile backend; return nil if the mail was NOT classified
;;; as spam
+
(defun spam-get-ifile-database-parameter ()
- "Get the command-line parameter for ifile's database from
- spam-ifile-database-path."
- (if spam-ifile-database-path
- (format "--db-file=%s" spam-ifile-database-path)
+ "Return the command-line parameter for ifile's database.
+See `spam-ifile-database'."
+ (if spam-ifile-database
+ (format "--db-file=%s" spam-ifile-database)
nil))
(defun spam-check-ifile ()
@@ -1390,7 +1398,7 @@ functions")
(save-excursion
(set-buffer article-buffer-name)
(apply 'call-process-region
- (point-min) (point-max) spam-ifile-path
+ (point-min) (point-max) spam-ifile-program
nil temp-buffer-name nil "-c"
(if db-param `(,db-param "-q") `("-q"))))
;; check the return now (we're back in the temp buffer)
@@ -1418,7 +1426,7 @@ Uses `gnus-newsgroup-name' if category is nil (for ham registration)."
(when (stringp article-string)
(insert article-string))))
(apply 'call-process-region
- (point-min) (point-max) spam-ifile-path
+ (point-min) (point-max) spam-ifile-program
nil nil nil
add-or-delete-option category
(if db `(,db "-h") `("-h"))))))
@@ -1702,7 +1710,7 @@ REMOVE not nil, remove the ADDRESSES."
(set-buffer article-buffer-name)
(apply 'call-process-region
(point-min) (point-max)
- spam-bogofilter-path
+ spam-bogofilter-program
nil temp-buffer-name nil
(if db `("-d" ,db "-v") `("-v"))))
(setq return (spam-check-bogofilter-headers score))))
@@ -1728,7 +1736,7 @@ REMOVE not nil, remove the ADDRESSES."
(apply 'call-process-region
(point-min) (point-max)
- spam-bogofilter-path
+ spam-bogofilter-program
nil nil nil switch
(if db `("-d" ,db "-v") `("-v"))))))))
diff --git a/lisp/pgg-def.el b/lisp/pgg-def.el
index 790b6bd1e6b..95f0d7658f6 100644
--- a/lisp/pgg-def.el
+++ b/lisp/pgg-def.el
@@ -71,9 +71,7 @@ Whether the passphrase is cached at all is controlled by
:group 'pgg
:type 'integer)
-(defcustom pgg-passphrase-coding-system
- (if (boundp 'locale-coding-system)
- locale-coding-system)
+(defcustom pgg-passphrase-coding-system nil
"Coding system to encode passphrase."
:group 'pgg
:type 'coding-system)
diff --git a/lisp/pgg-gpg.el b/lisp/pgg-gpg.el
index 95c3e5e5996..514be51a6a3 100644
--- a/lisp/pgg-gpg.el
+++ b/lisp/pgg-gpg.el
@@ -94,8 +94,10 @@
(if pgg-passphrase-coding-system
(progn
(setq encoded-passphrase-with-new-line
- (encode-coding-string passphrase-with-newline
- pgg-passphrase-coding-system))
+ (encode-coding-string
+ passphrase-with-newline
+ (coding-system-change-eol-conversion
+ pgg-passphrase-coding-system 'unix)))
(pgg-clear-string passphrase-with-newline))
(setq encoded-passphrase-with-new-line passphrase-with-newline
passphrase-with-newline nil))
diff --git a/man/ChangeLog b/man/ChangeLog
index b5a46bcc40d..b4daf4f0973 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,32 @@
+2006-12-29 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Customizing Articles): Add index entries for all
+ gnus-treat-* variables.
+
+2006-12-29 Jouni K. Sepp,Ad(Bnen <jks@iki.fi>
+
+ * gnus.texi (IMAP): Fix incorrect explanation of
+ nnimap-search-uids-not-since-is-evil in documentation for
+ nnimap-expunge-search-string.
+
+2006-12-27 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (ifile spam filtering): Rename spam-ifile-database-path to
+ spam-ifile-database.
+
+2006-12-26 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Spam Package Configuration Examples): Don't encourage to
+ rebind C-s.
+
+2006-12-26 Jouni K. Sepp,Ad(Bnen <jks@iki.fi>
+
+ * gnus.texi (Group Parameters, Group Maintenance, Topic Commands)
+ (Mail Group Commands, Expiring Mail, IMAP): Add index entries for
+ "expiring mail".
+ (IMAP): Document nnimap-search-uids-not-since-is-evil and
+ nnimap-nov-is-evil.
+
2006-12-27 Eli Zaretskii <eliz@gnu.org>
* msdog.texi (Windows Keyboard): Mention widespread Windows bindings,
diff --git a/man/gnus.texi b/man/gnus.texi
index 7a83ea66a97..ea959671c06 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -2810,6 +2810,7 @@ doesn't accept articles.
@item auto-expire
@cindex auto-expire
+@cindex expiring mail
If the group parameter has an element that looks like @code{(auto-expire
. t)}, all articles read will be marked as expirable. For an
alternative approach, @pxref{Expiring Mail}.
@@ -2818,6 +2819,7 @@ See also @code{gnus-auto-expirable-newsgroups}.
@item total-expire
@cindex total-expire
+@cindex expiring mail
If the group parameter has an element that looks like
@code{(total-expire . t)}, all read articles will be put through the
expiry process, even if they are not marked as expirable. Use with
@@ -3407,6 +3409,7 @@ zombies.
@item C-c C-x
@kindex C-c C-x (Group)
@findex gnus-group-expire-articles
+@cindex expiring mail
Run all expirable articles in the current group through the expiry
process (if any) (@code{gnus-group-expire-articles}). That is, delete
all expirable articles in the group that have been around for a while.
@@ -3415,6 +3418,7 @@ all expirable articles in the group that have been around for a while.
@item C-c C-M-x
@kindex C-c C-M-x (Group)
@findex gnus-group-expire-all-groups
+@cindex expiring mail
Run all expirable articles in all groups through the expiry process
(@code{gnus-group-expire-all-groups}).
@@ -3775,6 +3779,7 @@ sub-topics unless given a prefix.
@item C-c C-x
@kindex C-c C-x (Topic)
@findex gnus-topic-expire-articles
+@cindex expiring mail
Run all expirable articles in the current group or topic through the
expiry process (if any)
(@code{gnus-topic-expire-articles}). (@pxref{Expiring Mail}).
@@ -10060,6 +10065,7 @@ process/prefix convention (@pxref{Process/Prefix}).
@item B e
@kindex B e (Summary)
@findex gnus-summary-expire-articles
+@cindex expiring mail
Run all expirable articles in the current group through the expiry
process (@code{gnus-summary-expire-articles}). That is, delete all
expirable articles in the group that have been around for a while.
@@ -10068,6 +10074,7 @@ expirable articles in the group that have been around for a while.
@item B C-M-e
@kindex B C-M-e (Summary)
@findex gnus-summary-expire-articles-now
+@cindex expiring mail
Delete all the expirable articles in the group
(@code{gnus-summary-expire-articles-now}). This means that @strong{all}
articles eligible for expiry in the current group will
@@ -11216,42 +11223,66 @@ group. Values in parenthesis are suggested sensible values. Others are
possible but those listed are probably sufficient for most people.
@table @code
+@vindex gnus-treat-buttonize
@item gnus-treat-buttonize (t, integer)
+@vindex gnus-treat-buttonize-head
@item gnus-treat-buttonize-head (head)
@xref{Article Buttons}.
+@vindex gnus-treat-capitalize-sentences
@item gnus-treat-capitalize-sentences (t, integer)
+@vindex gnus-treat-overstrike
@item gnus-treat-overstrike (t, integer)
+@vindex gnus-treat-strip-cr
@item gnus-treat-strip-cr (t, integer)
+@vindex gnus-treat-strip-headers-in-body
@item gnus-treat-strip-headers-in-body (t, integer)
+@vindex gnus-treat-strip-leading-blank-lines
@item gnus-treat-strip-leading-blank-lines (t, integer)
+@vindex gnus-treat-strip-multiple-blank-lines
@item gnus-treat-strip-multiple-blank-lines (t, integer)
+@vindex gnus-treat-strip-pem
@item gnus-treat-strip-pem (t, last, integer)
+@vindex gnus-treat-strip-trailing-blank-lines
@item gnus-treat-strip-trailing-blank-lines (t, last, integer)
+@vindex gnus-treat-unsplit-urls
@item gnus-treat-unsplit-urls (t, integer)
+@vindex gnus-treat-wash-html
@item gnus-treat-wash-html (t, integer)
@xref{Article Washing}.
+@vindex gnus-treat-date-english
@item gnus-treat-date-english (head)
+@vindex gnus-treat-date-iso8601
@item gnus-treat-date-iso8601 (head)
+@vindex gnus-treat-date-lapsed
@item gnus-treat-date-lapsed (head)
+@vindex gnus-treat-date-local
@item gnus-treat-date-local (head)
+@vindex gnus-treat-date-original
@item gnus-treat-date-original (head)
+@vindex gnus-treat-date-user-defined
@item gnus-treat-date-user-defined (head)
+@vindex gnus-treat-date-ut
@item gnus-treat-date-ut (head)
@xref{Article Date}.
+@vindex gnus-treat-from-picon
@item gnus-treat-from-picon (head)
+@vindex gnus-treat-mail-picon
@item gnus-treat-mail-picon (head)
+@vindex gnus-treat-newsgroups-picon
@item gnus-treat-newsgroups-picon (head)
@xref{Picons}.
+@vindex gnus-treat-display-smileys
@item gnus-treat-display-smileys (t, integer)
+@vindex gnus-treat-body-boundary
@item gnus-treat-body-boundary (head)
@vindex gnus-body-boundary-delimiter
@@ -11260,40 +11291,62 @@ is controlled by @code{gnus-body-boundary-delimiter}.
@xref{Smileys}.
+@vindex gnus-treat-display-x-face
@item gnus-treat-display-x-face (head)
@xref{X-Face}.
+@vindex gnus-treat-display-face
@item gnus-treat-display-face (head)
@xref{Face}.
+@vindex gnus-treat-emphasize
@item gnus-treat-emphasize (t, head, integer)
+@vindex gnus-treat-fill-article
@item gnus-treat-fill-article (t, integer)
+@vindex gnus-treat-fill-long-lines
@item gnus-treat-fill-long-lines (t, integer)
+@vindex gnus-treat-hide-boring-headers
@item gnus-treat-hide-boring-headers (head)
+@vindex gnus-treat-hide-citation
@item gnus-treat-hide-citation (t, integer)
+@vindex gnus-treat-hide-citation-maybe
@item gnus-treat-hide-citation-maybe (t, integer)
+@vindex gnus-treat-hide-headers
@item gnus-treat-hide-headers (head)
+@vindex gnus-treat-hide-signature
@item gnus-treat-hide-signature (t, last)
+@vindex gnus-treat-strip-banner
@item gnus-treat-strip-banner (t, last)
+@vindex gnus-treat-strip-list-identifiers
@item gnus-treat-strip-list-identifiers (head)
@xref{Article Hiding}.
+@vindex gnus-treat-highlight-citation
@item gnus-treat-highlight-citation (t, integer)
+@vindex gnus-treat-highlight-headers
@item gnus-treat-highlight-headers (head)
+@vindex gnus-treat-highlight-signature
@item gnus-treat-highlight-signature (t, last, integer)
@xref{Article Highlighting}.
+@vindex gnus-treat-play-sounds
@item gnus-treat-play-sounds
+@vindex gnus-treat-translate
@item gnus-treat-translate
+@vindex gnus-treat-x-pgp-sig
@item gnus-treat-x-pgp-sig (head)
+@vindex gnus-treat-unfold-headers
@item gnus-treat-unfold-headers (head)
+@vindex gnus-treat-fold-headers
@item gnus-treat-fold-headers (head)
+@vindex gnus-treat-fold-newsgroups
@item gnus-treat-fold-newsgroups (head)
+@vindex gnus-treat-leading-whitespace
@item gnus-treat-leading-whitespace (head)
@xref{Article Header}.
@@ -14511,6 +14564,7 @@ using the new mail back end.
@node Expiring Mail
@subsection Expiring Mail
@cindex article expiry
+@cindex expiring mail
Traditional mail readers have a tendency to remove mail articles when
you mark them as read, in some way. Gnus takes a fundamentally
@@ -16454,6 +16508,7 @@ as ticked for other users.
@item nnimap-expunge-search-string
@cindex expunging
@vindex nnimap-expunge-search-string
+@cindex expiring @acronym{IMAP} mail
This variable contain the @acronym{IMAP} search command sent to server when
searching for articles eligible for expiring. The default is
@@ -16465,6 +16520,10 @@ Probably the only useful value to change this to is
messages instead of the internal article date. See section 6.4.4 of
RFC 2060 for more information on valid strings.
+However, if @code{nnimap-search-uids-not-since-is-evil}
+is true, this variable has no effect since the search logic
+is reversed, as described below.
+
@item nnimap-authinfo-file
@vindex nnimap-authinfo-file
@@ -16490,6 +16549,47 @@ Unselect mailboxes before looking for new mail in them. Some servers
seem to need this under some circumstances; it was reported that
Courier 1.7.1 did.
+@item nnimap-nov-is-evil
+@vindex nnimap-nov-is-evil
+@cindex Courier @acronym{IMAP} server
+@cindex @acronym{NOV}
+
+Never generate or use a local @acronym{NOV} database. Defaults to the
+value of @code{gnus-agent}.
+
+Using a @acronym{NOV} database usually makes header fetching much
+faster, but it uses the @code{UID SEARCH UID} command, which is very
+slow on some servers (notably some versions of Courier). Since the Gnus
+Agent caches the information in the @acronym{NOV} database without using
+the slow command, this variable defaults to true if the Agent is in use,
+and false otherwise.
+
+@item nnimap-search-uids-not-since-is-evil
+@vindex nnimap-search-uids-not-since-is-evil
+@cindex Courier @acronym{IMAP} server
+@cindex expiring @acronym{IMAP} mail
+
+Avoid the @code{UID SEARCH UID @var{message numbers} NOT SINCE
+@var{date}} command, which is slow on some @acronym{IMAP} servers
+(notably, some versions of Courier). Instead, use @code{UID SEARCH SINCE
+@var{date}} and prune the list of expirable articles within Gnus.
+
+When Gnus expires your mail (@pxref{Expiring Mail}), it starts with a
+list of expirable articles and asks the IMAP server questions like ``Of
+these articles, which ones are older than a week?'' While this seems
+like a perfectly reasonable question, some IMAP servers take a long time
+to answer it, since they seemingly go looking into every old article to
+see if it is one of the expirable ones. Curiously, the question ``Of
+@emph{all} articles, which ones are newer than a week?'' seems to be
+much faster to answer, so setting this variable causes Gnus to ask this
+question and figure out the answer to the real question itself.
+
+This problem can really sneak up on you: when you first configure Gnus,
+everything works fine, but once you accumulate a couple thousand
+messages, you start cursing Gnus for being so slow. On the other hand,
+if you get a lot of email within a week, setting this variable will
+cause a lot of network traffic between Gnus and the IMAP server.
+
@end table
@menu
@@ -16677,7 +16777,7 @@ splitting function that analyzes the body to split the article.
@node Expiring in IMAP
@subsection Expiring in IMAP
-@cindex expiring imap mail
+@cindex expiring @acronym{IMAP} mail
Even though @code{nnimap} is not a proper @code{nnmail} derived back
end, it supports most features in regular expiring (@pxref{Expiring
@@ -16696,6 +16796,9 @@ you to view client specific flags on the message. It also means that
your server must support permanent storage of client specific flags on
messages. Most do, fortunately.
+If expiring @acronym{IMAP} mail seems very slow, try setting the server
+variable @code{nnimap-search-uids-not-since-is-evil}.
+
@table @code
@item nnmail-expiry-wait
@@ -18605,7 +18708,7 @@ sense if you are using a nntp or nnimap back end.
@findex gnus-agent-expire-group
@cindex agent expiry
@cindex Gnus agent expiry
-@cindex expiry
+@cindex expiry, in Gnus agent
The Agent back end, @code{nnagent}, doesn't handle expiry. Well, at
least it doesn't handle it like other back ends. Instead, there are
@@ -23324,9 +23427,6 @@ From Ted Zlatanov <tzz@@lifelogs.com>.
(gnus-registry-initialize)
(spam-initialize)
-;; @r{I like @kbd{C-s} for marking spam}
-(define-key gnus-summary-mode-map "\C-s" 'gnus-summary-mark-as-spam)
-
(setq
spam-log-to-registry t ; @r{for spam autodetection}
spam-use-BBDB t
@@ -23898,7 +23998,7 @@ The actual string used is irrelevant, but you probably want to leave
the default value of @samp{spam}.
@end defvar
-@defvar spam-ifile-database-path
+@defvar spam-ifile-database
This is the filename for the ifile database. It is not specified by
default, so ifile will use its own default database name.