* wl-template.el (wl-template-select): Reset draft config exec
[elisp/wanderlust.git] / elmo / elmo-file.el
index fd8e6b6..572528a 100644 (file)
@@ -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
 (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))
                                                         &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)