* elmo.el (elmo-message-fetch-with-cache-process): Don't call
[elisp/wanderlust.git] / elmo / elsp-spamfilter.el
index 0615506..f5a7cd6 100644 (file)
    (elsp-spamfilter-bad-corpus-internal  processor))
   (elsp-spamfilter-set-modified-internal processor nil))
 
-(defun elmo-spam-spamfilter-decode-buffer (buffer)
+(defun elsp-spamfilter-decode-buffer (buffer)
   (mime-display-message
    (mime-open-entity 'elmo-buffer buffer)
    (current-buffer)))
 
+(defsubst elsp-spamfilter-register-buffer-internal (processor buffer spam)
+  (spamf-register-words-buffer
+   (if spam
+       (elsp-spamfilter-bad-corpus-internal processor)
+     (elsp-spamfilter-good-corpus-internal processor))
+   buffer)
+  (elsp-spamfilter-set-modified-internal processor t))
+
 (luna-define-method elmo-spam-buffer-spam-p ((processor elsp-spamfilter)
-                                            buffer)
+                                            buffer &optional register)
   (with-temp-buffer
-    (elmo-spam-spamfilter-decode-buffer buffer)
-    (spamf-spam-buffer-p
-     (current-buffer)
-     (elsp-spamfilter-good-corpus-internal processor)
-     (elsp-spamfilter-bad-corpus-internal  processor))))
+    (elsp-spamfilter-decode-buffer buffer)
+    (let ((spam (spamf-spam-buffer-p
+                (current-buffer)
+                (elsp-spamfilter-good-corpus-internal processor)
+                (elsp-spamfilter-bad-corpus-internal  processor))))
+      (when register
+       (elsp-spamfilter-register-buffer-internal processor buffer spam))
+      spam)))
 
 (luna-define-method elmo-spam-register-spam-buffer ((processor elsp-spamfilter)
-                                                   buffer)
+                                                   buffer &optional restore)
   (with-temp-buffer
-    (elmo-spam-spamfilter-decode-buffer buffer)
-    (spamf-register-spam-buffer
-     (current-buffer)
-     (elsp-spamfilter-bad-corpus-internal  processor))
-    (elsp-spamfilter-set-modified-internal processor t)))
+    (elsp-spamfilter-decode-buffer buffer)
+    (elsp-spamfilter-register-buffer-internal processor buffer t)))
 
 (luna-define-method elmo-spam-register-good-buffer ((processor elsp-spamfilter)
-                                                   buffer)
+                                                   buffer &optional restore)
   (with-temp-buffer
-    (elmo-spam-spamfilter-decode-buffer buffer)
-    (spamf-register-good-buffer
-     (current-buffer)
-     (elsp-spamfilter-good-corpus-internal processor))
-    (elsp-spamfilter-set-modified-internal processor t)))
+    (elsp-spamfilter-decode-buffer buffer)
+    (elsp-spamfilter-register-buffer-internal processor buffer nil)))
 
 (require 'product)
 (product-provide (provide 'elsp-spamfilter) (require 'elmo-version))