- (setq failure nil)
- (condition-case nil
- (progn
- (setq target-folder (elmo-make-folder fname))
- (unless (elmo-folder-exists-p target-folder)
- (when
- (and
- (elmo-folder-creatable-p
- target-folder)
- (y-or-n-p
- (format
- "Folder %s does not exist, Create it? "
- fname)))
- (elmo-folder-create target-folder)))
- (elmo-folder-open-internal target-folder)
- (elmo-folder-append-buffer target-folder 'unread)
- (elmo-folder-close-internal target-folder))
- (error (setq failure t)
- (incf fcount)))
- (unless failure
+ (setq failure nil
+ delete-substance nil
+ record-log nil
+ log-string nil)
+ (cond
+ ((stringp action)
+ (condition-case nil
+ (progn
+ (setq target-folder (elmo-make-folder action))
+ (unless (elmo-folder-exists-p target-folder)
+ (when
+ (and
+ (elmo-folder-creatable-p target-folder)
+ (y-or-n-p
+ (format
+ "Folder %s does not exist, Create it? "
+ action)))
+ (elmo-folder-create target-folder)))
+ (elmo-folder-open-internal target-folder)
+ (elmo-folder-append-buffer target-folder 'unread)
+ (elmo-folder-close-internal target-folder))
+ (error (setq failure t)
+ (incf fcount)))
+ (setq record-log t
+ delete-substance
+ (not (or failure
+ (eq (nth 2 rule) 'continue))))
+ (incf count))
+ ((eq action 'delete)
+ (setq record-log t
+ delete-substance t))
+ ((eq action 'noop)
+ ;; do nothing
+ )
+ ((functionp action)
+ (funcall action))
+ (t
+ (error "Wrong action specified in elmo-split-rule")))
+ (when delete-substance