X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-file.el;h=572528a934e4d347fa47c7ceb301f2c6d3f153b2;hb=refs%2Fheads%2Fmaster;hp=fd8e6b6eccc9afba29b80aee3675a09b1937c294;hpb=ad0a6e748835962a529d450a55c16baa8d11dbd5;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-file.el b/elmo/elmo-file.el index fd8e6b6..572528a 100644 --- a/elmo/elmo-file.el +++ b/elmo/elmo-file.el @@ -28,6 +28,8 @@ ;;; Code: ;; +(eval-when-compile (require 'cl)) + (require 'elmo) (require 'elmo-map) (require 'mime-edit) @@ -64,7 +66,8 @@ :group 'elmo) (eval-and-compile - (luna-define-class elmo-file-folder (elmo-map-folder) (file-path)) + (luna-define-class elmo-file-folder (elmo-map-folder elmo-file-tag) + (file-path)) (luna-define-internal-accessors 'elmo-file-folder)) (luna-define-method elmo-folder-initialize ((folder @@ -140,23 +143,14 @@ (luna-define-method elmo-folder-msgdb-create ((folder elmo-file-folder) numlist flag-table) (let ((new-msgdb (elmo-make-msgdb)) - entity mark i percent num) - (setq num (length numlist)) - (setq i 0) - (message "Creating msgdb...") - (while numlist - (setq entity - (elmo-file-msgdb-create-entity new-msgdb folder (car numlist))) - (when entity - (elmo-msgdb-append-entity new-msgdb entity '(new unread))) - (when (> num elmo-display-progress-threshold) - (setq i (1+ i)) - (setq percent (/ (* i 100) num)) - (elmo-display-progress - 'elmo-folder-msgdb-create "Creating msgdb..." - percent)) - (setq numlist (cdr numlist))) - (message "Creating msgdb...done") + entity) + (elmo-with-progress-display (elmo-folder-msgdb-create (length numlist)) + "Creating msgdb" + (dolist (number numlist) + (setq entity (elmo-file-msgdb-create-entity new-msgdb folder number)) + (when entity + (elmo-msgdb-append-entity new-msgdb entity '(new unread))) + (elmo-progress-notify 'elmo-folder-msgdb-create))) new-msgdb)) (luna-define-method elmo-folder-message-file-p ((folder elmo-file-folder)) @@ -182,13 +176,14 @@ &optional start-number) (let ((temp-dir (elmo-folder-make-temporary-directory folder)) - (cur-number (if start-number 0))) + (cur-number (or start-number 0))) (dolist (number numbers) (elmo-copy-file (elmo-message-file-name folder number) (expand-file-name - (int-to-string (if start-number (incf cur-number) number)) - temp-dir))) + (number-to-string (if start-number cur-number number)) + temp-dir)) + (incf cur-number)) temp-dir)) (luna-define-method elmo-map-message-fetch ((folder elmo-file-folder)