X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-map.el;h=6391cf413a21b1532b224916a5ef5cc69c004b83;hb=19fc67ac0af88f991fb148b5d0bd1d7127348630;hp=b3e46124a9d664ede85ad2bc45e6ac355c584540;hpb=8b003dd16e3d4a1f0d29b5fcd0f57a2ee294f967;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-map.el b/elmo/elmo-map.el index b3e4612..6391cf4 100644 --- a/elmo/elmo-map.el +++ b/elmo/elmo-map.el @@ -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 @@ -28,7 +28,7 @@ ;; should inherit this folder. ;;; Code: -;; +;; (require 'elmo) (require 'elmo-msgdb) @@ -95,15 +95,19 @@ (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." @@ -244,6 +248,15 @@ 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)))