change Changelog
[elisp/wanderlust.git] / elmo / elmo-map.el
index b3e4612..6391cf4 100644 (file)
@@ -1,4 +1,4 @@
-;;; elmo-map.el -- A ELMO folder class with message number mapping.
+;;; elmo-map.el --- A ELMO folder class with message number mapping.
 
 ;; Copyright (C) 2000 Yuuichi Teranishi <teranisi@gohome.org>
 
@@ -28,7 +28,7 @@
 ;; should inherit this folder.
 
 ;;; Code:
-;; 
+;;
 (require 'elmo)
 (require 'elmo-msgdb)
 
 
 (luna-define-method elmo-folder-status ((folder elmo-map-folder))
   (elmo-folder-open-internal folder)
-  (prog1
-      (let ((numbers (mapcar
-                     'car
-                     (elmo-map-folder-location-alist-internal folder))))
+  (elmo-folder-set-killed-list-internal
+   folder
+   (elmo-msgdb-killed-list-load (elmo-folder-msgdb-path folder)))
+  (let ((numbers (mapcar
+                 'car
+                 (elmo-map-folder-location-alist-internal folder))))
+    (setq numbers (elmo-living-messages numbers (elmo-folder-killed-list-internal folder)))
+    (prog1
        (cons (elmo-max-of-list numbers)
-             (length numbers)))
-    ;; Don't close after status.
-    (unless (elmo-folder-reserve-status-p folder)
-      (elmo-folder-close-internal folder))))
+             (length numbers))
+      ;; 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."
    folder
    (elmo-map-folder-list-message-locations folder)))
 
+(luna-define-method elmo-folder-clear :around ((folder elmo-map-folder)
+                                              &optional keep-killed)
+  (unless keep-killed
+    (elmo-map-folder-set-number-max-internal folder 0)
+    (elmo-map-folder-set-location-alist-internal folder nil)
+    ;; clear hashtable.
+    (elmo-map-folder-set-location-hash-internal folder (elmo-make-hash)))
+  (luna-call-next-method))
+
 (luna-define-method elmo-folder-list-messages-internal
   ((folder elmo-map-folder) &optional nohide)
   (mapcar 'car (elmo-map-folder-location-alist-internal folder)))