Merge from gnus--rel--5.10
authorMiles Bader <miles@gnu.org>
Wed, 27 Dec 2006 05:35:44 +0000 (05:35 +0000)
committerMiles Bader <miles@gnu.org>
Wed, 27 Dec 2006 05:35:44 +0000 (05:35 +0000)
Patches applied:

 * gnus--rel--5.10  (patch 179-180)

   - Update from CVS

2006-12-26  Reiner Steib  <Reiner.Steib@gmx.de>

   * lisp/message.el (message-make-fqdn): Fix comment.
   (message-bogus-system-names): Add ".local".

   * lisp/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-art.el (gnus-treat-display-x-face, gnus-treat-display-face)
   (gnus-treat-display-smileys): Simplify using
   gnus-image-type-available-p.

   * lisp/gnus-ems.el (gnus-image-type-available-p): Use display-images-p if
   available.

   * lisp/gnus-xmas.el (gnus-xmas-image-type-available-p): Use
   `display-images-p' if available.

Revision: emacs@sv.gnu.org/gnus--devo--0--patch-261

lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-ems.el
lisp/gnus-xmas.el
lisp/message.el
lisp/spam.el
texi/ChangeLog
texi/gnus.texi

index 169f96d..9554e95 100644 (file)
        * gnus-cite.el: Enable highlighting of different citation levels in
        message-mode.
 
+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.
+
+       * gnus-xmas.el (gnus-xmas-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-21  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
 
        * message.el (message-generate-hashcash): Fix custom type.
        * 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\e,Ad\e(Bnen  <jks@iki.fi>  (tiny change)
+2006-12-04  Jouni K. Sepp\e,Ad\e(Bnen  <jks@iki.fi>
 
        * mm-url.el (mm-url-predefined-programs): Call curl with correct
        options.
        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 Seppanen  <jks@iki.fi>
 
        * nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable.
        (nnimap-request-expire-articles): Use it to avoid sending 'UID
index be5ce94..0b723bc 100644 (file)
@@ -1409,12 +1409,11 @@ predicate.  See Info node `(gnus)Customizing Articles'."
 
 (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', `first', `last', an integer or a
@@ -1446,10 +1445,7 @@ node `(gnus)X-Face' for details."
 
 (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', `first', `last', an integer or a
@@ -1462,12 +1458,7 @@ node `(gnus)X-Face' for details."
   :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', `first', `last', an integer or a
 predicate.  See Info node `(gnus)Customizing Articles' and Info
index aed735f..a7513ce 100644 (file)
 
 (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)))
index 191eb75..7e0358c 100644 (file)
@@ -873,7 +873,9 @@ XEmacs compatibility workaround."
                      gnus-mailing-list-menu))
 
 (defun gnus-xmas-image-type-available-p (type)
-  (and window-system
+  (and (if (fboundp 'display-images-p)
+          (display-images-p)
+        window-system)
        (featurep (if (eq type 'pbm) 'xbm type))))
 
 (defun gnus-xmas-create-image (file &optional type data-p &rest props)
index 15999e5..c248586 100644 (file)
@@ -1703,7 +1703,7 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'."
 (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
@@ -5297,8 +5297,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.
index d8643a8..27a7632 100644 (file)
@@ -414,17 +414,21 @@ Only meaningful if you enable `spam-use-regex-body'."
   "Spam ifile configuration."
   :group 'spam)
 
-(defcustom spam-ifile-path (executable-find "ifile")
-  "File path of the ifile executable program."
+(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)
+(make-obsolete-variable 'spam-ifile-path 'spam-ifile-program)
+;; "22.1" ;; Gnus 5.10.9
 
-(defcustom spam-ifile-database-path nil
-  "File path of the ifile database."
+(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)
+(make-obsolete-variable 'spam-ifile-database-path 'spam-ifile-database)
+;; "22.1" ;; Gnus 5.10.9
 
 (defcustom spam-ifile-spam-category "spam"
   "Name of the spam ifile category."
@@ -449,11 +453,13 @@ 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."
+(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)
+(make-obsolete-variable 'spam-bogofilter-path 'spam-bogofilter-program)
+;; "22.1" ;; Gnus 5.10.9
 
 (defvar spam-bogofilter-valid 'unknown "Is the bogofilter version valid?")
 
@@ -488,7 +494,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"))
@@ -2144,11 +2151,12 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
 ;;; 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 ()
@@ -2161,7 +2169,7 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
        (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)
@@ -2189,7 +2197,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"))))))
@@ -2496,7 +2504,7 @@ REMOVE not nil, remove the ADDRESSES."
     (setq spam-bogofilter-valid
          (not (string-match "^bogofilter version 0\\.\\([0-9]\\|1[01]\\)\\."
                             (shell-command-to-string 
-                             (format "%s -V" spam-bogofilter-path))))))
+                             (format "%s -V" spam-bogofilter-program))))))
   spam-bogofilter-valid)
   
 (defun spam-check-bogofilter (&optional score)
@@ -2511,7 +2519,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))))
@@ -2539,7 +2547,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")))))))
     (gnus-error 5 "`spam.el' doesn't support obsolete bogofilter versions")))
index 300fbc9..b7cf848 100644 (file)
@@ -4,6 +4,17 @@
 
        * gnus.texi (Mail and Post): Add gnus-message-highlight-citation.
 
+       * gnus.texi (Spam Package Configuration Examples): Don't encourage to
+       rebind C-s.
+
+2006-12-26  Jouni K Seppanen  <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-13  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus.texi (Hiding Headers): Document that `long-to' and `many-to'
index 83daacc..580be91 100644 (file)
@@ -2839,6 +2839,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}.
@@ -2847,6 +2848,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
@@ -3477,6 +3479,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.
@@ -3485,6 +3488,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}).
 
@@ -3845,6 +3849,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}).
@@ -10214,6 +10219,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.
@@ -10222,6 +10228,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
@@ -14803,6 +14810,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
@@ -16761,6 +16769,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
@@ -16772,6 +16781,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, the command is @code{"UID NOT SINCE @var{date}"},
+regardless of this variable.
+
 @item nnimap-authinfo-file
 @vindex nnimap-authinfo-file
 
@@ -16797,6 +16810,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
@@ -16984,7 +17038,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
@@ -17003,6 +17057,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
@@ -19287,7 +19344,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
@@ -23905,9 +23962,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