(elmo-folder-set-msgdb-internal (elmo-filter-folder-target-internal
folder) nil)))
-(luna-define-method elmo-folder-set-message-modified ((folder
- elmo-filter-folder)
- modified)
- (if (elmo-filter-folder-require-msgdb-internal folder)
- (elmo-folder-set-message-modified-internal
- (elmo-filter-folder-target-internal folder) modified)
- (elmo-folder-set-message-modified-internal folder modified)))
-
(luna-define-method elmo-folder-commit :around ((folder elmo-filter-folder))
;; Save target msgdb if it is used.
(if (elmo-filter-folder-require-msgdb-internal folder)
(elmo-replace-string-as-filename (elmo-folder-name-internal folder))
(expand-file-name "filter" elmo-msgdb-directory)))
+(luna-define-method elmo-folder-search-requires-msgdb-p ((folder
+ elmo-filter-folder)
+ condition)
+ (elmo-folder-search-requires-msgdb-p
+ (elmo-filter-folder-target-internal folder) condition))
+
(luna-define-method elmo-folder-newsgroups ((folder elmo-filter-folder))
(elmo-folder-newsgroups (elmo-filter-folder-target-internal folder)))
(luna-define-method elmo-folder-get-primitive-list ((folder
elmo-filter-folder))
- (list (elmo-filter-folder-target-internal folder)))
+ (elmo-folder-get-primitive-list (elmo-filter-folder-target-internal folder)))
(luna-define-method elmo-folder-contains-type ((folder elmo-filter-folder)
type)
(if (elmo-filter-folder-require-msgdb-internal folder)
(let* ((target-folder (elmo-filter-folder-target-internal folder))
(len (length numlist))
- (msgdb (elmo-folder-msgdb target-folder))
+ (msgdb (progn
+ (elmo-folder-check target-folder)
+ (elmo-folder-msgdb target-folder)))
(new-msgdb (elmo-make-msgdb))
message-id entity)
(when (> len elmo-display-progress-threshold)
len "Creating msgdb..."))
(unwind-protect
(dolist (number numlist)
- (setq entity (elmo-msgdb-overview-get-entity number msgdb))
+ (setq entity (elmo-msgdb-message-entity msgdb number))
(when entity
(elmo-msgdb-append-entity new-msgdb entity
(elmo-msgdb-flags msgdb number)))
(luna-define-method elmo-folder-search ((folder elmo-filter-folder)
condition &optional numbers)
;; search from messages in this folder
- (elmo-list-filter
- numbers
- (elmo-folder-search (elmo-filter-folder-target-internal folder)
- condition
- (elmo-folder-list-messages folder))))
+ (let ((result (elmo-folder-search
+ (elmo-filter-folder-target-internal folder)
+ condition
+ (elmo-folder-list-messages folder))))
+ (if numbers
+ (elmo-list-filter numbers result)
+ result)))
(luna-define-method elmo-message-use-cache-p ((folder elmo-filter-folder)
number)
(elmo-message-file-name (elmo-filter-folder-target-internal folder)
number))
-(luna-define-method elmo-folder-mark-as-read :around ((folder
+(luna-define-method elmo-folder-flag-as-read :around ((folder
elmo-filter-folder)
numbers
- &optional ignore-flag)
- (elmo-folder-mark-as-read (elmo-filter-folder-target-internal folder)
- numbers ignore-flag)
+ &optional is-local)
+ (elmo-folder-flag-as-read (elmo-filter-folder-target-internal folder)
+ numbers is-local)
(luna-call-next-method))
-(luna-define-method elmo-folder-unmark-read :around ((folder
+(luna-define-method elmo-folder-unflag-read :around ((folder
elmo-filter-folder)
numbers
- &optional ignore-flag)
- (elmo-folder-unmark-read (elmo-filter-folder-target-internal folder)
- numbers ignore-flag)
+ &optional is-local)
+ (elmo-folder-unflag-read (elmo-filter-folder-target-internal folder)
+ numbers is-local)
(luna-call-next-method))
-(luna-define-method elmo-folder-mark-as-important :around ((folder
+(luna-define-method elmo-folder-flag-as-important :around ((folder
elmo-filter-folder)
numbers
&optional
- ignore-flag)
- (elmo-folder-mark-as-important (elmo-filter-folder-target-internal folder)
- numbers ignore-flag)
+ is-local)
+ (elmo-folder-flag-as-important (elmo-filter-folder-target-internal folder)
+ numbers is-local)
(luna-call-next-method))
-(luna-define-method elmo-folder-unmark-important :around ((folder
+(luna-define-method elmo-folder-unflag-important :around ((folder
elmo-filter-folder)
numbers
&optional
- ignore-flag)
- (elmo-folder-unmark-important (elmo-filter-folder-target-internal folder)
- numbers ignore-flag)
+ is-local)
+ (elmo-folder-unflag-important (elmo-filter-folder-target-internal folder)
+ numbers is-local)
(luna-call-next-method))
-(luna-define-method elmo-folder-mark-as-answered :around ((folder
+(luna-define-method elmo-folder-flag-as-answered :around ((folder
elmo-filter-folder)
- numbers)
- (elmo-folder-mark-as-answered (elmo-filter-folder-target-internal folder)
- numbers)
+ numbers
+ &optional
+ is-local)
+ (elmo-folder-flag-as-answered (elmo-filter-folder-target-internal folder)
+ numbers is-local)
(luna-call-next-method))
-(luna-define-method elmo-folder-unmark-answered :around ((folder
+(luna-define-method elmo-folder-unflag-answered :around ((folder
elmo-filter-folder)
- numbers)
- (elmo-folder-unmark-answered (elmo-filter-folder-target-internal folder)
- numbers)
+ numbers
+ &optional
+ is-local)
+ (elmo-folder-unflag-answered (elmo-filter-folder-target-internal folder)
+ numbers is-local)
(luna-call-next-method))
(require 'product)