- (setq wl-refile-alist
- (elmo-object-load
- (expand-file-name wl-refile-alist-file-name
- elmo-msgdb-dir)))
- (setq wl-refile-msgid-alist
- (elmo-object-load
- (expand-file-name wl-refile-msgid-alist-file-name
- elmo-msgdb-dir))))
-
-(defun wl-refile-alist-save (file-name alist)
- (save-excursion
- (let ((filename (expand-file-name file-name
- elmo-msgdb-dir))
- (tmp-buffer (get-buffer-create " *wl-refile-alist-tmp*")))
- (set-buffer tmp-buffer)
- (erase-buffer)
- (if (> (length alist) wl-refile-alist-max-length)
- (setcdr (nthcdr (1- wl-refile-alist-max-length) alist) nil))
- (prin1 alist tmp-buffer)
- (princ "\n" tmp-buffer)
- (if (file-writable-p filename)
- (write-region (point-min) (point-max)
- filename nil 'no-msg)
- (message (format "%s is not writable." filename)))
- (kill-buffer tmp-buffer))))
+ (let ((flist wl-refile-guess-func-list))
+ (while flist
+ (cond
+ ((eq (car flist) 'wl-refile-guess-by-history)
+ (setq wl-refile-alist
+ (elmo-object-load
+ (expand-file-name wl-refile-alist-file-name
+ elmo-msgdb-dir) elmo-mime-charset)))
+ ((eq (car flist) 'wl-refile-guess-by-msgid)
+ (setq wl-refile-msgid-alist
+ (elmo-object-load
+ (expand-file-name wl-refile-msgid-alist-file-name
+ elmo-msgdb-dir) elmo-mime-charset)))
+ ((eq (car flist) 'wl-refile-guess-by-subject)
+ (setq wl-refile-subject-alist
+ (elmo-object-load
+ (expand-file-name wl-refile-subject-alist-file-name
+ elmo-msgdb-dir) elmo-mime-charset))))
+ (setq flist (cdr flist)))))
+
+(defun wl-refile-alist-save ()
+ (if wl-refile-alist
+ (wl-refile-alist-save-file
+ wl-refile-alist-file-name wl-refile-alist))
+ (if wl-refile-msgid-alist
+ (wl-refile-alist-save-file
+ wl-refile-msgid-alist-file-name wl-refile-msgid-alist))
+ (if wl-refile-subject-alist
+ (wl-refile-alist-save-file
+ wl-refile-subject-alist-file-name wl-refile-subject-alist)))
+
+(defun wl-refile-alist-save-file (file-name alist)
+ (if (> (length alist) wl-refile-alist-max-length)
+ (setcdr (nthcdr (1- wl-refile-alist-max-length) alist) nil))
+ (elmo-object-save (expand-file-name file-name elmo-msgdb-dir)
+ alist elmo-mime-charset))