(eval-and-compile
(luna-define-class elsp-spamfilter (elsp-generic)
- (good-corpus bad-corpus))
+ (good-corpus bad-corpus modified))
(luna-define-internal-accessors 'elsp-spamfilter))
(luna-define-method initialize-instance :around ((processor elsp-spamfilter)
(elsp-spamfilter-set-bad-corpus-internal processor spamf-bad-corpus)
processor))
+(luna-define-method elmo-spam-modified-p ((processor elsp-spamfilter))
+ (elsp-spamfilter-modified-internal processor))
+
(luna-define-method elmo-spam-save-status ((processor elsp-spamfilter))
(spamf-save-corpus-to-file
elmo-spam-spamfilter-corpus-filename
(elsp-spamfilter-good-corpus-internal processor)
- (elsp-spamfilter-bad-corpus-internal processor)))
+ (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 (current-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-good-buffer
- (current-buffer)
- (elsp-spamfilter-good-corpus-internal processor))))
+ (elsp-spamfilter-decode-buffer buffer)
+ (elsp-spamfilter-register-buffer-internal processor (current-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-spam-buffer
- (current-buffer)
- (elsp-spamfilter-bad-corpus-internal processor))))
+ (elsp-spamfilter-decode-buffer buffer)
+ (elsp-spamfilter-register-buffer-internal processor (current-buffer) nil)))
(require 'product)
(product-provide (provide 'elsp-spamfilter) (require 'elmo-version))