-;;; 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>
;; 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)))