* wl-summary.el (wl-summary-delete-cache): Fixed.
[elisp/wanderlust.git] / elmo / elmo-map.el
index 6b74027..b3e4612 100644 (file)
@@ -78,7 +78,7 @@
                                                    strategy
                                                    &optional
                                                    section
-                                                   outbuf unseen)
+                                                   unseen)
   "")
 
 (luna-define-generic elmo-map-folder-list-unreads (folder)
@@ -87,6 +87,9 @@
 (luna-define-generic elmo-map-folder-list-importants (folder)
   "")
 
+(luna-define-method elmo-map-folder-list-importants ((folder elmo-map-folder))
+  t)
+
 (luna-define-generic elmo-map-folder-delete-messages (folder locations)
   "")
 
                      (elmo-map-folder-location-alist-internal folder))))
        (cons (elmo-max-of-list numbers)
              (length numbers)))
-    ;; No save.
-    (elmo-folder-close-internal folder)))
+    ;; Don't close after status.
+    (unless (elmo-folder-reserve-status-p folder)
+      (elmo-folder-close-internal folder))))
 
 (defun elmo-map-message-number (folder location)
   "Return number of the message in the FOLDER with LOCATION."
                         (elmo-map-folder-location-hash-internal
                          folder)))
                  location-alist))
-      (elmo-clear-hash-val (concat "#" (int-to-string (car pair)))
-                          (elmo-map-folder-location-hash-internal
-                           folder))
-      (elmo-clear-hash-val location
-                          (elmo-map-folder-location-hash-internal
-                           folder)))
+      (when pair
+       (elmo-clear-hash-val (concat "#" (int-to-string (car pair)))
+                            (elmo-map-folder-location-hash-internal
+                             folder))
+       (elmo-clear-hash-val location
+                            (elmo-map-folder-location-hash-internal
+                             folder))))
     (setq i (elmo-map-folder-number-max-internal folder))
     (dolist (location new-locs)
       (setq i (1+ i))
   (elmo-map-folder-location-setup
    folder 
    (elmo-msgdb-location-load (elmo-folder-msgdb-path folder)))
-  (elmo-map-folder-update-locations
-   folder
-   (elmo-map-folder-list-message-locations folder)))
+  (if (elmo-folder-plugged-p folder)
+      (elmo-map-folder-update-locations
+       folder
+       (elmo-map-folder-list-message-locations folder))))
 
 (luna-define-method elmo-folder-commit :after ((folder elmo-map-folder))
   (when (elmo-folder-persistent-p folder)
    folder
    (elmo-map-folder-numbers-to-locations folder numbers)))
 
-(luna-define-method elmo-message-fetch ((folder elmo-map-folder) number
-                                       strategy section outbuf unread)
+(luna-define-method elmo-message-fetch-internal ((folder elmo-map-folder)
+                                                number strategy
+                                                &optional section unread)
   (elmo-map-message-fetch
    folder
    (elmo-map-message-location folder number)
-   strategy section outbuf unread))
+   strategy section unread))
 
 (luna-define-method elmo-folder-list-unreads-internal
   ((folder elmo-map-folder) unread-marks &optional mark-alist)
 
 (luna-define-method elmo-folder-list-importants-internal
   ((folder elmo-map-folder) important-mark)
-  (elmo-map-folder-locations-to-numbers
-   folder
-   (elmo-map-folder-list-importants folder)))
+  (let ((locations (elmo-map-folder-list-importants folder)))
+    (if (listp locations)
+       (elmo-map-folder-locations-to-numbers folder locations)
+      t)))
 
 (luna-define-method elmo-folder-delete-messages ((folder elmo-map-folder)
                                                 numbers)