* Version number is increased to 2.11.17.
[elisp/wanderlust.git] / elmo / elmo-localdir.el
index 32e0125..01993db 100644 (file)
       (incf cur-number))
     temp-dir))
 
-(defun elmo-localdir-msgdb-create-entity (dir number)
-  (elmo-msgdb-create-overview-entity-from-file
-   number (expand-file-name (int-to-string number) dir)))
+(defun elmo-localdir-msgdb-create-entity (msgdb dir number)
+  (elmo-msgdb-create-message-entity-from-file
+   msgdb number (expand-file-name (int-to-string number) dir)))
 
 (luna-define-method elmo-folder-msgdb-create ((folder elmo-localdir-folder)
                                              numbers
     (let ((dir (elmo-localdir-folder-directory-internal folder))
          (new-msgdb (elmo-make-msgdb))
          entity message-id
+         flags
          (i 0)
          (len (length numbers)))
       (message "Creating msgdb...")
       (while numbers
        (setq entity
              (elmo-localdir-msgdb-create-entity
-              dir (car numbers)))
+              new-msgdb dir (car numbers)))
        (when entity
-         (setq message-id (elmo-msgdb-overview-entity-get-id entity))
-         (elmo-msgdb-append-entity
-          new-msgdb
-          entity
-          (elmo-flag-table-get flag-table message-id)))
+         (setq message-id (elmo-message-entity-field entity 'message-id)
+               flags (elmo-flag-table-get flag-table message-id))
+         (elmo-global-flags-set flags folder (car numbers) message-id)
+         (elmo-msgdb-append-entity new-msgdb entity flags))
        (when (> len elmo-display-progress-threshold)
          (setq i (1+ i))
          (elmo-display-progress
 (luna-define-method elmo-folder-pack-numbers ((folder elmo-localdir-folder))
   (let* ((dir (elmo-localdir-folder-directory-internal folder))
         (msgdb (elmo-folder-msgdb folder))
-        (new-msgdb (elmo-make-msgdb))
+        (new-msgdb (elmo-make-msgdb (elmo-folder-msgdb-path folder)))
         (numbers (sort (elmo-folder-list-messages
                         folder
                         nil
                        '<))
         (new-number 1)           ; first ordinal position in localdir
         total entity)
-    (elmo-msgdb-set-path new-msgdb (elmo-folder-msgdb-path folder))
     (setq total (length numbers))
     (elmo-with-progress-display (> total elmo-display-progress-threshold)
        (elmo-folder-pack-numbers total "Packing...")
           ;; xxx  nfs,hardlink
           (rename-file (int-to-string old-number)
                        (int-to-string new-number) t))
-         (elmo-msgdb-overview-entity-set-number entity new-number))
+         (elmo-message-entity-set-number entity new-number))
        (elmo-msgdb-append-entity new-msgdb entity
                                  (elmo-msgdb-flags msgdb old-number))
        (setq new-number (1+ new-number))))
                (throw 'found t))
            (setq lock (cdr lock)))))))
 
+(autoload 'elmo-global-flags-set "elmo-flag")
+
 (require 'product)
 (product-provide (provide 'elmo-localdir) (require 'elmo-version))