(elmo-message-field): Define.
[elisp/wanderlust.git] / elmo / elmo-sendlog.el
index c8cbbc4..f0ce85b 100644 (file)
                                              numbers flag-table)
   (let ((i 0)
        (len (length numbers))
-       overview number-alist mark-alist entity message-id
-       num mark)
+       (new-msgdb (elmo-make-msgdb))
+       entity message-id flags)
     (message "Creating msgdb...")
     (while numbers
       (setq entity
-           (elmo-msgdb-create-overview-entity-from-file
-            (car numbers) (elmo-message-file-name folder (car numbers))))
+           (elmo-msgdb-create-message-entity-from-file
+            (elmo-msgdb-message-entity-handler new-msgdb) (car numbers)
+            (elmo-message-file-name folder (car numbers))))
       (if (null entity)
          (elmo-folder-set-killed-list-internal
           folder
           (nconc
            (elmo-folder-killed-list-internal folder)
            (list (car numbers))))
-       (setq num (elmo-msgdb-overview-entity-get-number entity))
-       (setq overview
-             (elmo-msgdb-append-element
-              overview entity))
-       (setq message-id (elmo-msgdb-overview-entity-get-id entity))
-       (setq number-alist
-             (elmo-msgdb-number-add number-alist
-                                    num
-                                    message-id))
-       (if (setq mark (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)))
-           (setq mark-alist
-                 (elmo-msgdb-mark-append
-                  mark-alist
-                  num mark)))
-       (when (> len elmo-display-progress-threshold)
-         (setq i (1+ i))
-         (elmo-display-progress
-          'elmo-sendlog-folder-msgdb-create "Creating msgdb..."
-          (/ (* i 100) len))))
+       (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
+        'elmo-sendlog-folder-msgdb-create "Creating msgdb..."
+        (/ (* i 100) len)))
       (setq numbers (cdr numbers)))
     (message "Creating msgdb...done")
-    (list overview number-alist mark-alist)))
+    new-msgdb))
 
 (luna-define-method elmo-message-fetch-with-cache-process
   ((folder elmo-sendlog-folder) number strategy &optional section unseen)
 
 (luna-define-method elmo-folder-delete-messages ((folder elmo-sendlog-folder)
                                                 numbers)
-  (let ((killed-list (elmo-folder-killed-list-internal folder)))
-    (dolist (number numbers)
-      (setq killed-list
-           (elmo-msgdb-set-as-killed killed-list number)))
-    (elmo-folder-set-killed-list-internal folder killed-list))
+  (elmo-folder-kill-messages folder numbers)
   t)
 
 (luna-define-method elmo-message-file-p ((folder elmo-sendlog-folder) number)
   t)
 
+(luna-define-method elmo-folder-have-subfolder-p ((folder elmo-sendlog-folder))
+  nil)
+
 (require 'product)
 (product-provide (provide 'elmo-sendlog) (require 'elmo-version))