* wl-vars.el (wl-summary-print-argument-within-window): New variable.
[elisp/wanderlust.git] / elmo / elmo-localdir.el
index 4ed3d22..7deaf26 100644 (file)
   ((folder elmo-localdir-folder)
    src-folder numbers &optional same-number)
   (if (elmo-folder-message-file-p src-folder)
-      (let ((dir (elmo-localdir-folder-directory-internal folder))
+      (let ((src-msgdb-exists (not (zerop (elmo-folder-length src-folder))))
+           (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))))
            mark flag id)
        (while numbers
-         (setq mark (elmo-message-mark src-folder (car numbers))
+         (setq mark (and src-msgdb-exists
+                         (elmo-message-mark src-folder (car numbers)))
                flag (cond
-                     ((null mark) nil)
+                     ((null mark) 'read)
                      ((member mark (elmo-msgdb-answered-marks))
                       'answered)
                      ;;
            (int-to-string
             (if same-number (car numbers) next-num))
            dir))
-         ;; src folder's msgdb is loaded.
-         (when (setq id (elmo-message-field src-folder (car numbers)
-                                            'message-id))
+         ;; save flag-table only when src folder's msgdb is loaded.
+         (when (setq id (and src-msgdb-exists
+                             (elmo-message-field src-folder (car numbers)
+                                                 'message-id)))
            (elmo-flag-table-set table id flag))
          (elmo-progress-notify 'elmo-folder-move-messages)
          (if (and (setq numbers (cdr numbers))