X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-localdir.el;h=780031bd8e2a9885300357de620bf21deaced075;hb=fb40159a1fc3d4fb1400f8fe3befb1056bc75b8c;hp=0a759907b949d6ce74b2021dce00a053c00deefc;hpb=76d29ada5aaadf0eb05c8e9d157abd6638808cde;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-localdir.el b/elmo/elmo-localdir.el index 0a75990..780031b 100644 --- a/elmo/elmo-localdir.el +++ b/elmo/elmo-localdir.el @@ -168,11 +168,13 @@ num message-id)) (if (setq gmark (or (elmo-msgdb-global-mark-get message-id) - (elmo-msgdb-mark - (elmo-flag-table-get flag-table message-id) - (elmo-file-cache-status - (elmo-file-cache-get message-id)) - 'new))) + (unless (eq 'read (elmo-flag-table-get + flag-table message-id)) + (elmo-msgdb-mark + (elmo-flag-table-get flag-table message-id) + (elmo-file-cache-status + (elmo-file-cache-get message-id)) + 'new)))) (setq mark-alist (elmo-msgdb-mark-append mark-alist @@ -227,15 +229,30 @@ src-folder numbers &optional same-number) (if (elmo-folder-message-file-p src-folder) (let ((dir (elmo-localdir-folder-directory-internal folder)) + (table (elmo-flag-table-load (elmo-folder-msgdb-path folder))) (succeeds numbers) - (next-num (1+ (car (elmo-folder-status folder))))) + (next-num (1+ (car (elmo-folder-status folder)))) + mark flag) (while numbers + (setq mark (elmo-message-mark src-folder (car numbers)) + flag (cond + ((null mark) nil) + ((member mark (elmo-msgdb-answered-marks)) + 'answered) + ;; + ((not (member mark (elmo-msgdb-unread-marks))) + 'read))) (elmo-copy-file (elmo-message-file-name src-folder (car numbers)) (expand-file-name (int-to-string (if same-number (car numbers) next-num)) dir)) + (elmo-flag-table-set table + (elmo-message-field + src-folder (car numbers) + 'message-id) + flag) (elmo-progress-notify 'elmo-folder-move-messages) (if (and (setq numbers (cdr numbers)) (not same-number)) @@ -244,6 +261,8 @@ ;; MDA is running. (1+ (car (elmo-folder-status folder))) (1+ next-num))))) + (when (elmo-folder-persistent-p folder) + (elmo-flag-table-save (elmo-folder-msgdb-path folder) table)) succeeds) (luna-call-next-method)))