]> code.delx.au - gnu-emacs/commitdiff
mh-junk.el (mh-spamassassin-blacklist, mh-spamassassin-whitelist):
authorStephen Gildea <gildea@stop.mail-abuse.org>
Sat, 11 Nov 2006 20:20:28 +0000 (20:20 +0000)
committerStephen Gildea <gildea@stop.mail-abuse.org>
Sat, 11 Nov 2006 20:20:28 +0000 (20:20 +0000)
use mh-junk-background consistently in call-process calls.

(mh-bogofilter-blacklist, mh-bogofilter-whitelist,
mh-spamprobe-blacklist, mh-spamprobe-whitelist): use
with-current-buffer so the right thing happens if
mh-junk-background is t.  (closes SF #1594802).

mh-e.el (mh-junk-background): document that On value is 0;
t may be used for debugging.

lisp/mh-e/ChangeLog
lisp/mh-e/mh-e.el
lisp/mh-e/mh-junk.el

index bbf770c04cbce35e3f20faccfbd3354a57a0dd1c..8c36e3dcbf1817a2f1aab540d6d34951874f6a12 100644 (file)
@@ -1,3 +1,16 @@
+2006-11-11  Stephen Gildea  <gildea@stop.mail-abuse.org>
+
+       * mh-junk.el (mh-spamassassin-blacklist, mh-spamassassin-whitelist): 
+       use mh-junk-background consistently in call-process calls.
+
+       * (mh-bogofilter-blacklist, mh-bogofilter-whitelist,
+       mh-spamprobe-blacklist, mh-spamprobe-whitelist): use
+       with-current-buffer so the right thing happens if
+       mh-junk-background is t.  (closes SF #1594802).
+
+       * mh-e.el (mh-junk-background): document that On value is 0;
+       t may be used for debugging.
+       
 2006-11-10  Andreas Schwab  <schwab@suse.de>
 
        * mh-e.el (mh-draft-folder): Avoid starting sentence with "nil".
index 74f62c5c20eb972b6a2465367ddbebfecd4eb5a9..e8078e2154fe2e0936246e7ecc72b7663da9b1db 100644 (file)
@@ -1690,7 +1690,9 @@ The function is always called with SYMBOL bound to
 By default, the programs are run in the foreground, but this can
 be slow when junking large numbers of messages. If you have
 enough memory or don't junk that many messages at the same time,
-you might try turning on this option."
+you might try turning on this option (that is, setting its value to 0).
+If the value is t, the programs' output is saved in the MH-E log buffer;
+this may be useful for debugging."
   :type '(choice (const :tag "Off" nil)
                  (const :tag "On" 0))
   :group 'mh-junk
index 67f267d672f8995dbfbd4fb34dd7d86529450aa2..68ab072d7e396cc0c1ef125d8105b63451c37b4d 100644 (file)
@@ -195,30 +195,33 @@ done by adding the following to your crontab:
   (let ((current-folder mh-current-folder)
         (msg-file (mh-msg-filename msg mh-current-folder))
         (sender))
-    (save-excursion
-      (message "Reporting message %d..." msg)
-      (mh-truncate-log-buffer)
-      (call-process mh-spamassassin-executable msg-file mh-log-buffer nil
+    (message "Reporting message %d..." msg)
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-spamassassin-executable msg-file mh-junk-background nil
                     ;;"--report" "--remove-from-whitelist"
                     "-r" "-R")          ; spamassassin V2.20
-      (when mh-sa-learn-executable
-          (message "Recategorizing this message as spam...")
-          (call-process mh-sa-learn-executable msg-file mh-log-buffer nil
-                        "--single" "--spam" "--local" "--no-rebuild"))
-      (message "Blacklisting message %d..." msg)
-      (set-buffer (get-buffer-create mh-temp-buffer))
+    (when mh-sa-learn-executable
+      (message "Recategorizing message %d as spam..." msg)
+      (mh-truncate-log-buffer)
+      (call-process mh-sa-learn-executable msg-file mh-junk-background nil
+                    "--single" "--spam" "--local" "--no-rebuild")))
+    (message "Blacklisting sender of message %d..." msg)
+    (with-current-buffer (get-buffer-create mh-temp-buffer)
       (erase-buffer)
       (call-process (expand-file-name mh-scan-prog mh-progs)
-                    nil mh-junk-background nil
-                    (format "%s" msg) current-folder
+                    nil t nil
+                    (format "%d" msg) current-folder
                     "-format" "%<(mymbox{from})%|%(addr{from})%>")
       (goto-char (point-min))
       (if (search-forward-regexp "^\\(.+\\)$" nil t)
           (progn
             (setq sender (match-string 0))
             (mh-spamassassin-add-rule "blacklist_from" sender)
-            (message "Blacklisting message %d...done" msg))
-        (message "Blacklisting message %d...not done (from my address)" msg)))))
+            (message "Blacklisting sender of message %d...done" msg))
+        (message "Blacklisting sender of message %d...not done (from my address)" msg)))))
 
 ;;;###mh-autoload
 (defun mh-spamassassin-whitelist (msg)
@@ -234,28 +237,31 @@ See `mh-spamassassin-blacklist' for more information."
   (let ((msg-file (mh-msg-filename msg mh-current-folder))
         (show-buffer (get-buffer mh-show-buffer))
         from)
-    (save-excursion
-      (set-buffer (get-buffer-create mh-temp-buffer))
+    (with-current-buffer (get-buffer-create mh-temp-buffer)
       (erase-buffer)
-      (message "Removing spamassassin markup from message...")
-      (call-process mh-spamassassin-executable msg-file mh-temp-buffer nil
+      (message "Removing spamassassin markup from message %d..." msg)
+      (call-process mh-spamassassin-executable msg-file t nil
                     ;; "--remove-markup"
                     "-d")               ; spamassassin V2.20
       (if show-buffer
           (kill-buffer show-buffer))
       (write-file msg-file)
       (when mh-sa-learn-executable
-        (message "Recategorizing this message as ham...")
-        (call-process mh-sa-learn-executable msg-file mh-temp-buffer nil
-                      "--single" "--ham" "--local" "--no-rebuild"))
-      (message "Whitelisting message %d..." msg)
+        (message "Recategorizing message %d as ham..." msg)
+        (mh-truncate-log-buffer)
+        ;; Put call-process output in log buffer if we are saving it
+        ;; (this happens if mh-junk-background is t).
+        (with-current-buffer mh-log-buffer
+          (call-process mh-sa-learn-executable msg-file mh-junk-background nil
+                        "--single" "--ham" "--local" "--no-rebuild")))
+      (message "Whitelisting sender of message %d..." msg)
       (setq from
             (car (mh-funcall-if-exists
                   ietf-drums-parse-address (mh-get-header-field "From:"))))
       (kill-buffer nil)
       (unless (or (null from) (equal from ""))
         (mh-spamassassin-add-rule "whitelist_from" from))
-      (message "Whitelisting message %d...done" msg))))
+      (message "Whitelisting sender of message %d...done" msg))))
 
 (defun mh-spamassassin-add-rule (rule body)
   "Add a new rule to \"~/.spamassassin/user_prefs\".
@@ -375,8 +381,12 @@ The \"Bogofilter tuning HOWTO\" describes how you can fine-tune Bogofilter."
   (unless mh-bogofilter-executable
     (error "Unable to find the bogofilter executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-bogofilter-executable msg-file mh-junk-background
-                  nil "-s")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-bogofilter-executable msg-file mh-junk-background
+                    nil "-s"))))
 
 ;;;###mh-autoload
 (defun mh-bogofilter-whitelist (msg)
@@ -386,8 +396,12 @@ See `mh-bogofilter-blacklist' for more information."
   (unless mh-bogofilter-executable
     (error "Unable to find the bogofilter executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-bogofilter-executable msg-file mh-junk-background
-                  nil "-n")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-bogofilter-executable msg-file mh-junk-background
+                    nil "-n"))))
 
 \f
 
@@ -423,8 +437,12 @@ update SpamProbe's training."
   (unless mh-spamprobe-executable
     (error "Unable to find the spamprobe executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-spamprobe-executable msg-file mh-junk-background
-                  nil "spam")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-spamprobe-executable msg-file mh-junk-background
+                    nil "spam"))))
 
 ;;;###mh-autoload
 (defun mh-spamprobe-whitelist (msg)
@@ -434,8 +452,12 @@ See `mh-spamprobe-blacklist' for more information."
   (unless mh-spamprobe-executable
     (error "Unable to find the spamprobe executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-spamprobe-executable msg-file mh-junk-background
-                  nil "good")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-spamprobe-executable msg-file mh-junk-background
+                    nil "good"))))
 
 (provide 'mh-junk)