# HG changeset patch # User Miles Bader # Date 1167492882 0 # Node ID 21f28d10d73a2f2dfe2d65faa5e9b0fe6dd3daa6 # Parent c0112a92bceb12f65b9496fd96bd773a606ded82 Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 179-183) - Update from CVS 2006-12-25 Daiki Ueno * lisp/pgg-def.el (pgg-passphrase-coding-system): Default to nil instead of locale-coding-system. * lisp/pgg-gpg.el (pgg-gpg-process-region): Encode passphrase with eol-type LF. 2006-12-29 Jouni K. Sepp,Ad(Bnen * lisp/gnus/nnimap.el (nnimap-expunge-search-string): Mention nnimap-search-uids-not-since-is-evil in docstring. 2006-12-28 Reiner Steib * lisp/gnus/spam.el: Revert to make-obsolete-variable because define-obsolete-variable-alias is not supported in Emacs 21. 2006-12-28 Daiki Ueno * lisp/gnus/gnus-sum.el (gnus-summary-next-article): Make sure we are in the summary buffer. 2006-12-27 Reiner Steib * lisp/gnus/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 * lisp/gnus/message.el (message-make-fqdn): Fix comment. (message-bogus-system-names): Add ".local". * lisp/gnus/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. * lisp/gnus/gnus-art.el (gnus-treat-display-x-face, gnus-treat-display-face) (gnus-treat-display-smileys): Simplify using gnus-image-type-available-p. * lisp/gnus/gnus-ems.el (gnus-image-type-available-p): Use display-images-p if available. 2006-12-22 Katsumi Yamaoka * lisp/gnus/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-29 Reiner Steib * man/gnus.texi (Customizing Articles): Add index entries for all gnus-treat-* variables. 2006-12-29 Jouni K. Sepp,Ad(Bnen * man/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 * man/gnus.texi (ifile spam filtering): Rename spam-ifile-database-path to spam-ifile-database. 2006-12-26 Reiner Steib * man/gnus.texi (Spam Package Configuration Examples): Don't encourage to rebind C-s. 2006-12-26 Jouni K. Sepp,Ad(Bnen * man/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. Revision: emacs@sv.gnu.org/emacs--devo--0--patch-576 diff -r c0112a92bceb -r 21f28d10d73a lisp/ChangeLog --- a/lisp/ChangeLog Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/ChangeLog Sat Dec 30 15:34:42 2006 +0000 @@ -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 + + * 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 * progmodes/sql.el (sql-mode-abbrev-table): Corrected initialization. diff -r c0112a92bceb -r 21f28d10d73a lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/ChangeLog Sat Dec 30 15:34:42 2006 +0000 @@ -1,3 +1,53 @@ +2006-12-29 Jouni K. Sepp,Ad(Bnen + + * nnimap.el (nnimap-expunge-search-string): Mention + nnimap-search-uids-not-since-is-evil in docstring. + +2006-12-28 Reiner Steib + + * spam.el: Revert to make-obsolete-variable because + define-obsolete-variable-alias is not supported in Emacs 21. + +2006-12-28 Daiki Ueno + + * gnus-sum.el (gnus-summary-next-article): Make sure we are in the + summary buffer. + +2006-12-27 Reiner Steib + + * 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 + + * 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 + + * 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 * 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 (tiny change) +2006-12-04 Jouni K. Sepp,Ad(Bnen * 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 (tiny change) +2005-10-27 Jouni K. Sepp,Ad(Bnen * nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable. (nnimap-request-expire-articles): Use it to avoid sending 'UID diff -r c0112a92bceb -r 21f28d10d73a lisp/gnus/gnus-art.el --- a/lisp/gnus/gnus-art.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/gnus-art.el Sat Dec 30 15:34:42 2006 +0000 @@ -1325,12 +1325,11 @@ (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 @@ (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 @@ :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 -r c0112a92bceb -r 21f28d10d73a lisp/gnus/gnus-ems.el --- a/lisp/gnus/gnus-ems.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/gnus-ems.el Sat Dec 30 15:34:42 2006 +0000 @@ -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 -r c0112a92bceb -r 21f28d10d73a lisp/gnus/gnus-sum.el --- a/lisp/gnus/gnus-sum.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/gnus-sum.el Sat Dec 30 15:34:42 2006 +0000 @@ -7333,6 +7333,9 @@ 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 -r c0112a92bceb -r 21f28d10d73a lisp/gnus/message.el --- a/lisp/gnus/message.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/message.el Sat Dec 30 15:34:42 2006 +0000 @@ -1579,7 +1579,7 @@ (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 @@ (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 -r c0112a92bceb -r 21f28d10d73a lisp/gnus/nnimap.el --- a/lisp/gnus/nnimap.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/nnimap.el Sat Dec 30 15:34:42 2006 +0000 @@ -375,7 +375,10 @@ 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 -r c0112a92bceb -r 21f28d10d73a lisp/gnus/nnrss.el --- a/lisp/gnus/nnrss.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/nnrss.el Sat Dec 30 15:34:42 2006 +0000 @@ -418,8 +418,10 @@ (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 -r c0112a92bceb -r 21f28d10d73a lisp/gnus/spam.el --- a/lisp/gnus/spam.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/gnus/spam.el Sat Dec 30 15:34:42 2006 +0000 @@ -351,14 +351,18 @@ "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 @@ "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 @@ :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 @@ :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 @@ ;;; 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 @@ (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 @@ (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 @@ (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 @@ (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 -r c0112a92bceb -r 21f28d10d73a lisp/pgg-def.el --- a/lisp/pgg-def.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/pgg-def.el Sat Dec 30 15:34:42 2006 +0000 @@ -71,9 +71,7 @@ :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 -r c0112a92bceb -r 21f28d10d73a lisp/pgg-gpg.el --- a/lisp/pgg-gpg.el Sat Dec 30 15:23:38 2006 +0000 +++ b/lisp/pgg-gpg.el Sat Dec 30 15:34:42 2006 +0000 @@ -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 -r c0112a92bceb -r 21f28d10d73a man/ChangeLog --- a/man/ChangeLog Sat Dec 30 15:23:38 2006 +0000 +++ b/man/ChangeLog Sat Dec 30 15:34:42 2006 +0000 @@ -1,3 +1,32 @@ +2006-12-29 Reiner Steib + + * gnus.texi (Customizing Articles): Add index entries for all + gnus-treat-* variables. + +2006-12-29 Jouni K. Sepp,Ad(Bnen + + * 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 + + * gnus.texi (ifile spam filtering): Rename spam-ifile-database-path to + spam-ifile-database. + +2006-12-26 Reiner Steib + + * gnus.texi (Spam Package Configuration Examples): Don't encourage to + rebind C-s. + +2006-12-26 Jouni K. Sepp,Ad(Bnen + + * 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 * msdog.texi (Windows Keyboard): Mention widespread Windows bindings, diff -r c0112a92bceb -r 21f28d10d73a man/gnus.texi --- a/man/gnus.texi Sat Dec 30 15:23:38 2006 +0000 +++ b/man/gnus.texi Sat Dec 30 15:34:42 2006 +0000 @@ -2810,6 +2810,7 @@ @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 @@ @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 @@ @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 @@ @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 @@ @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 @@ @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 @@ @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 @@ 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 @@ @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 @@ @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 @@ @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 @@ 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 @@ 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 @@ @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 @@ 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 @@ @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 @@ (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 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.