- (let* ((processor (elmo-spam-processor))
- (folder wl-summary-buffer-elmo-folder)
- (domain (wl-spam-domain (elmo-folder-name-internal folder)))
- spam-list good-list total)
- (unless (eq domain 'ignore)
- (dolist (info mark-list)
- (case (wl-spam-domain (nth 2 info))
- (spam
- (setq spam-list (cons (car info) spam-list)))
- (good
- (setq good-list (cons (car info) good-list)))))
- (case domain
- (spam (setq spam-list nil))
- (good (setq good-list nil)))
- (when (or spam-list good-list)
- (when spam-list
- (setq total (length spam-list))
- (message "Registering spam...")
- (elmo-with-progress-display (> total elmo-display-progress-threshold)
- (elmo-spam-register total "Registering spam...")
- (elmo-spam-register-spam-messages processor folder spam-list
- (eq domain 'good)))
- (message "Registering spam...done"))
- (when good-list
- (setq total (length good-list))
- (message "Registering good...")
- (elmo-with-progress-display (> total elmo-display-progress-threshold)
- (elmo-spam-register total "Registering good...")
- (elmo-spam-register-good-messages processor folder good-list
- (eq domain 'spam)))
- (message "Registering good...done"))))
+ (let ((folder wl-summary-buffer-elmo-folder)
+ spam-list good-list)
+ (dolist (info mark-list)
+ (case (wl-spam-domain (nth 2 info))
+ (spam
+ (setq spam-list (cons (car info) spam-list)))
+ (good
+ (setq good-list (cons (car info) good-list)))))
+ (wl-spam-apply-partitions
+ folder
+ (wl-filter-associations '(undecided good)
+ (wl-spam-split-numbers folder spam-list))
+ (lambda (folder numbers domain)
+ (elmo-spam-register-spam-messages (elmo-spam-processor)
+ folder numbers
+ (eq domain 'good)))
+ "Registering spam")
+ (wl-spam-apply-partitions
+ folder
+ (wl-filter-associations '(undecided spam)
+ (wl-spam-split-numbers folder good-list))
+ (lambda (folder numbers domain)
+ (elmo-spam-register-good-messages (elmo-spam-processor)
+ folder numbers
+ (eq domain 'spam)))
+ "Registering good")