(eval-and-compile
(luna-define-class elmo-flag-folder (elmo-localdir-folder)
- (flag minfo minfo-hash))
+ (flag minfo minfo-hash max-number))
(luna-define-internal-accessors 'elmo-flag-folder))
(luna-define-method elmo-folder-initialize ((folder
(elmo-localdir-folder-set-directory-internal
folder
msgdb-path)
+ (if (file-exists-p (expand-file-name "max" msgdb-path))
+ (elmo-flag-folder-set-max-number-internal
+ folder
+ (elmo-object-load (expand-file-name "max" msgdb-path))))
(if (file-exists-p (expand-file-name ".minfo" msgdb-path))
(elmo-flag-folder-set-minfo-internal
folder
elmo-flag-folder))
(elmo-object-save
(expand-file-name ".minfo" (elmo-folder-msgdb-path folder))
- (elmo-flag-folder-minfo-internal folder)))
+ (elmo-flag-folder-minfo-internal folder))
+ (if (elmo-flag-folder-max-number-internal folder)
+ (elmo-object-save
+ (expand-file-name "max" (elmo-folder-msgdb-path folder))
+ (elmo-flag-folder-max-number-internal folder))))
(luna-define-method elmo-folder-list-subfolders ((folder elmo-flag-folder)
&optional one-level)
FLAG is the symbol of the flag."
(when (elmo-global-flag-p flag)
(let ((flag-folder (elmo-flag-get-folder flag))
- result entity)
+ result number)
(dolist (elem (elmo-flag-folder-minfo-internal flag-folder))
- (if (setq entity (elmo-message-entity folder (nth 1 elem)))
- (setq result (cons (elmo-message-entity-number entity)
- result))))
+ (if (setq number (elmo-message-number folder (nth 1 elem)))
+ (setq result (cons number result))))
result)))
;;;
(elmo-flag-folder-minfo-hash-internal
flag-folder)))
;; Append new element.
+ (elmo-flag-folder-set-max-number-internal
+ flag-folder
+ (+ (or (elmo-flag-folder-max-number-internal flag-folder)
+ ;; This is the first time.
+ (car (elmo-folder-status flag-folder)))
+ 1))
(setq new-file
(expand-file-name
(int-to-string
- (setq new-number (1+ (car (elmo-folder-status flag-folder)))))
+ (setq new-number
+ (elmo-flag-folder-max-number-internal flag-folder)))
(elmo-localdir-folder-directory-internal flag-folder)))
(with-temp-buffer
(setq cache (and message-id (elmo-file-cache-get message-id)))