# HG changeset patch # User Stephen Gildea # Date 1163276428 0 # Node ID 63fc0820b3625891087228cb69c29fd81607332c # Parent 9ebe2e5d00798e1d57d248b98e62f97348173637 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. diff -r 9ebe2e5d0079 -r 63fc0820b362 lisp/mh-e/ChangeLog --- a/lisp/mh-e/ChangeLog Sat Nov 11 16:13:41 2006 +0000 +++ b/lisp/mh-e/ChangeLog Sat Nov 11 20:20:28 2006 +0000 @@ -1,3 +1,16 @@ +2006-11-11 Stephen Gildea + + * 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 * mh-e.el (mh-draft-folder): Avoid starting sentence with "nil". diff -r 9ebe2e5d0079 -r 63fc0820b362 lisp/mh-e/mh-e.el --- a/lisp/mh-e/mh-e.el Sat Nov 11 16:13:41 2006 +0000 +++ b/lisp/mh-e/mh-e.el Sat Nov 11 20:20:28 2006 +0000 @@ -1690,7 +1690,9 @@ 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 diff -r 9ebe2e5d0079 -r 63fc0820b362 lisp/mh-e/mh-junk.el --- a/lisp/mh-e/mh-junk.el Sat Nov 11 16:13:41 2006 +0000 +++ b/lisp/mh-e/mh-junk.el Sat Nov 11 20:20:28 2006 +0000 @@ -195,30 +195,33 @@ (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 @@ (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 @@ (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 @@ (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")))) @@ -423,8 +437,12 @@ (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 @@ (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)