(elmo-message-field): Define.
[elisp/wanderlust.git] / elmo / elmo-maildir.el
index e88906d..fd41839 100644 (file)
@@ -406,17 +406,15 @@ file name for maildir directories."
          (as-binary-output-file
           (write-region (point-min) (point-max) filename nil 'no-msg))
          ;; add link from new.
-         (elmo-add-name-to-file
+         ;; Some filesystem (like AFS) does not have hard-link.
+         ;; So we use elmo-copy-file instead of elmo-add-name-to-file here.
+         (elmo-copy-file
           filename
           (expand-file-name
            (concat "new/" (file-name-nondirectory filename))
            basedir))
-         (let* ((path (elmo-folder-msgdb-path folder))
-                (table (elmo-flag-table-load path))
-                (msgid (std11-field-body "message-id")))
-           (when msgid
-             (elmo-flag-table-set table msgid flags)
-             (elmo-flag-table-save path table)))
+         (elmo-folder-preserve-flags
+          folder (elmo-msgdb-get-message-id-from-buffer) flags)
          t)
       ;; If an error occured, return nil.
       (error))))
@@ -455,7 +453,7 @@ file name for maildir directories."
   (if (elmo-folder-message-file-p src-folder)
       (let ((src-msgdb-exists (not (zerop (elmo-folder-length src-folder))))
            (dir (elmo-maildir-folder-directory-internal folder))
-           (table (elmo-flag-table-load (elmo-folder-msgdb-path folder)))
+           (table (elmo-folder-flag-table folder))
            (succeeds numbers)
            filename flags id)
        (dolist (number numbers)
@@ -464,7 +462,9 @@ file name for maildir directories."
          (elmo-copy-file
           (elmo-message-file-name src-folder number)
           filename)
-         (elmo-add-name-to-file
+         ;; Some filesystem (like AFS) does not have hard-link.
+         ;; So we use elmo-copy-file instead of elmo-add-name-to-file here.
+         (elmo-copy-file
           filename
           (expand-file-name
            (concat "new/" (file-name-nondirectory filename))
@@ -476,7 +476,7 @@ file name for maildir directories."
            (elmo-flag-table-set table id flags))
          (elmo-progress-notify 'elmo-folder-move-messages))
        (when (elmo-folder-persistent-p folder)
-         (elmo-flag-table-save (elmo-folder-msgdb-path folder) table))
+         (elmo-folder-close-flag-table folder))
        succeeds)
     (luna-call-next-method)))
 
@@ -488,7 +488,8 @@ file name for maildir directories."
       (if (and file
               (file-writable-p file)
               (not (file-directory-p file)))
-         (delete-file file)))))
+         (delete-file file))))
+  t)
 
 (luna-define-method elmo-map-message-fetch ((folder elmo-maildir-folder)
                                            location strategy