(elmo-passwd-alist-clear): Shred password before clear.
[elisp/wanderlust.git] / wl / wl-refile.el
index c8b5f53..6a294ad 100644 (file)
        (setq wl-refile-alist
              (elmo-object-load
               (expand-file-name wl-refile-alist-file-name
-                                elmo-msgdb-dir) elmo-mime-charset)))
+                                elmo-msgdb-directory) 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)))
+                                elmo-msgdb-directory) 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))))
+                                elmo-msgdb-directory) elmo-mime-charset))))
       (setq flist (cdr flist)))))
 
 (defun wl-refile-alist-save ()
@@ -77,7 +77,7 @@
 (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)
+  (elmo-object-save (expand-file-name file-name elmo-msgdb-directory)
                    alist elmo-mime-charset))
 
 (defun wl-refile-learn (entity dst)
@@ -89,8 +89,8 @@
                     (downcase (wl-address-header-extract-address entity))))
                  (wl-parse-addresses
                   (concat
-                   (elmo-msgdb-overview-entity-get-to entity) ","
-                   (elmo-msgdb-overview-entity-get-cc entity)))))
+                   (elmo-message-entity-field entity 'to) ","
+                   (elmo-message-entity-field entity 'cc)))))
     (while tocc-list
       (if (wl-string-member
           (car tocc-list)
           (setq from
                 (downcase
                  (wl-address-header-extract-address
-                  (elmo-msgdb-overview-entity-get-from
-                   entity)))))
+                  (elmo-message-entity-field entity 'from)))))
          (setq key from))
       (if (or wl-refile-msgid-alist
              (memq 'wl-refile-guess-by-msgid
                                  wl-refile-alist)))))
 
 (defun wl-refile-msgid-learn (entity dst)
-  (let ((key (elmo-msgdb-overview-entity-get-id entity))
+  (let ((key (elmo-message-entity-field entity 'message-id))
        hit)
     (setq dst (elmo-string dst))
     (if key
                                            wl-refile-msgid-alist))))))
 
 (defun wl-refile-subject-learn (entity dst)
-  (let ((subject (wl-summary-subject-filter-func-internal
-                 (elmo-msgdb-overview-entity-get-subject entity)))
+  (let ((subject (funcall wl-summary-subject-filter-function
+                         (elmo-message-entity-field entity 'subject 'decode)))
        hit)
     (setq dst (elmo-string dst))
     (if (and subject (not (string= subject "")))
 (elmo-define-obsolete-variable 'wl-refile-guess-func-list
                               'wl-refile-guess-functions)
 
-(defun wl-refile-guess (entity)
-  (let ((flist wl-refile-guess-functions) guess)
+(defun wl-refile-guess (entity &optional functions)
+  (let ((flist (or functions wl-refile-guess-functions))
+       guess)
     (while flist
       (if (setq guess (funcall (car flist) entity))
          (setq flist nil)
@@ -199,15 +199,7 @@ If RULE does not match ENTITY, returns nil."
 
 (defun wl-refile-get-field-value (entity field)
   "Get FIELD value from ENTITY."
-  (let ((field (downcase field))
-       (fixed-fields '("from" "subject" "to" "cc")))
-    (if (member field fixed-fields)
-       (funcall (symbol-function
-                 (intern (concat
-                          "elmo-msgdb-overview-entity-get-"
-                          field)))
-                entity)
-      (elmo-msgdb-overview-entity-get-extra-field entity field))))
+  (elmo-message-entity-field entity (intern (downcase field)) 'decode))
 
 (defun wl-refile-guess-by-rule (entity)
   (let ((rules wl-refile-rule-alist)
@@ -225,8 +217,8 @@ If RULE does not match ENTITY, returns nil."
                    (downcase (wl-address-header-extract-address entity))))
                 (wl-parse-addresses
                  (concat
-                  (elmo-msgdb-overview-entity-get-to entity) ","
-                  (elmo-msgdb-overview-entity-get-cc entity)))))
+                  (elmo-message-entity-field entity 'to) ","
+                  (elmo-message-entity-field entity 'cc)))))
        ret-val)
     (setq tocc-list (elmo-list-delete
                     (or wl-user-mail-address-list
@@ -247,19 +239,19 @@ If RULE does not match ENTITY, returns nil."
 (defun wl-refile-guess-by-from (entity)
   (let ((from
         (downcase (wl-address-header-extract-address
-                   (elmo-msgdb-overview-entity-get-from entity)))))
+                   (elmo-message-entity-field entity 'from)))))
     ;; search from alist
     (or (cdr (assoc from wl-refile-alist))
        (format "%s/%s" wl-refile-default-from-folder
                (wl-refile-get-account-part-from-address from)))))
 
 (defun wl-refile-guess-by-msgid (entity)
-  (cdr (assoc (elmo-msgdb-overview-entity-get-references entity)
+  (cdr (assoc (elmo-message-entity-field entity 'references)
              wl-refile-msgid-alist)))
 
 (defun wl-refile-guess-by-subject (entity)
-  (cdr (assoc (wl-summary-subject-filter-func-internal
-              (elmo-msgdb-overview-entity-get-subject entity))
+  (cdr (assoc (funcall wl-summary-subject-filter-function
+                      (elmo-message-entity-field entity 'subject 'decode))
              wl-refile-subject-alist)))
 
 (require 'product)