diff options
-rw-r--r-- | lisp/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/gnus/ChangeLog | 54 | ||||
-rw-r--r-- | lisp/gnus/gnus-art.el | 23 | ||||
-rw-r--r-- | lisp/gnus/gnus-ems.el | 5 | ||||
-rw-r--r-- | lisp/gnus/gnus-sum.el | 3 | ||||
-rw-r--r-- | lisp/gnus/message.el | 4 | ||||
-rw-r--r-- | lisp/gnus/nnimap.el | 5 | ||||
-rw-r--r-- | lisp/gnus/nnrss.el | 6 | ||||
-rw-r--r-- | lisp/gnus/spam.el | 42 | ||||
-rw-r--r-- | lisp/pgg-def.el | 4 | ||||
-rw-r--r-- | lisp/pgg-gpg.el | 6 | ||||
-rw-r--r-- | man/ChangeLog | 29 | ||||
-rw-r--r-- | man/gnus.texi | 112 |
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. |