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-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".
2006-11-10 Andreas Schwab <schwab@suse.de>
* mh-e.el (mh-draft-folder): Avoid starting sentence with "nil".
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,
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
:type '(choice (const :tag "Off" nil)
(const :tag "On" 0))
:group 'mh-junk
(let ((current-folder mh-current-folder)
(msg-file (mh-msg-filename msg mh-current-folder))
(sender))
(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
;;"--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)
(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)
"-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)
;;;###mh-autoload
(defun mh-spamassassin-whitelist (msg)
(let ((msg-file (mh-msg-filename msg mh-current-folder))
(show-buffer (get-buffer mh-show-buffer))
from)
(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)
- (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
;; "--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))
(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\".
(defun mh-spamassassin-add-rule (rule body)
"Add a new rule to \"~/.spamassassin/user_prefs\".
(unless mh-bogofilter-executable
(error "Unable to find the bogofilter executable"))
(let ((msg-file (mh-msg-filename msg mh-current-folder)))
(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)
;;;###mh-autoload
(defun mh-bogofilter-whitelist (msg)
(unless mh-bogofilter-executable
(error "Unable to find the bogofilter executable"))
(let ((msg-file (mh-msg-filename msg mh-current-folder)))
(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"))))
(unless mh-spamprobe-executable
(error "Unable to find the spamprobe executable"))
(let ((msg-file (mh-msg-filename msg mh-current-folder)))
(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)
;;;###mh-autoload
(defun mh-spamprobe-whitelist (msg)
(unless mh-spamprobe-executable
(error "Unable to find the spamprobe executable"))
(let ((msg-file (mh-msg-filename msg mh-current-folder)))
(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"))))