(elmo-map-message-location folder number)))
(luna-define-method elmo-folder-msgdb-create ((folder elmo-mark-folder)
- numbers new-mark
- already-mark seen-mark
- important-mark
- seen-list)
- (elmo-mark-folder-msgdb-create folder numbers new-mark already-mark
- seen-mark important-mark))
-
-(defun elmo-mark-folder-msgdb-create (folder numbers new-mark already-mark
- seen-mark important-mark)
+ numbers flag-table)
+ (elmo-mark-folder-msgdb-create folder numbers))
+
+(defun elmo-mark-folder-msgdb-create (folder numbers)
(let ((i 0)
(len (length numbers))
- overview number-alist mark-alist entity message-id
- num)
+ (new-msgdb (elmo-make-msgdb))
+ entity message-id)
(message "Creating msgdb...")
(while numbers
(setq entity
(elmo-msgdb-create-overview-entity-from-file
(car numbers) (elmo-message-file-name folder (car numbers))))
- (if (null entity)
- ()
- (setq num (elmo-msgdb-overview-entity-get-number entity))
- (setq overview
- (elmo-msgdb-append-element
- overview entity))
- (setq message-id (elmo-msgdb-overview-entity-get-id entity))
- (setq number-alist
- (elmo-msgdb-number-add number-alist
- num
- message-id))
- (setq mark-alist
- (elmo-msgdb-mark-append
- mark-alist
- num (elmo-mark-folder-mark-internal folder))))
+ (when entity
+ (elmo-msgdb-append-entity new-msgdb
+ entity
+ '(important cached)))
(when (> len elmo-display-progress-threshold)
(setq i (1+ i))
(elmo-display-progress
(/ (* i 100) len)))
(setq numbers (cdr numbers)))
(message "Creating msgdb...done")
- (list overview number-alist mark-alist)))
+ new-msgdb))
(luna-define-method elmo-folder-append-buffer ((folder elmo-mark-folder)
- unread &optional number)
+ &optional flag number)
(let* ((msgid (elmo-field-body "message-id"))
(path (elmo-file-cache-get-path msgid))
dir)
(luna-define-method elmo-folder-writable-p ((folder elmo-mark-folder))
t)
-(luna-define-method elmo-folder-search ((folder elmo-mark-folder)
- condition &optional from-msgs)
- (let* ((msgs (or from-msgs (elmo-folder-list-messages folder)))
- (number-list msgs)
- (i 0)
- (num (length msgs))
- file
- matched
- case-fold-search)
- (while msgs
- (if (and (setq file (elmo-message-file-name folder (car msgs)))
- (file-exists-p file)
- (elmo-file-field-condition-match file
- condition
- (car msgs)
- number-list))
- (setq matched (nconc matched (list (car msgs)))))
- (elmo-display-progress
- 'elmo-internal-folder-search "Searching..."
- (/ (* (setq i (1+ i)) 100) num))
- (setq msgs (cdr msgs)))
- matched))
-
-;;; To override elmo-map-folder methods.
-(luna-define-method elmo-folder-list-unreads-internal
- ((folder elmo-mark-folder) unread-marks &optional mark-alist)
- t)
-
-(luna-define-method elmo-folder-unmark-important ((folder elmo-mark-folder)
- numbers)
- t)
-
-(luna-define-method elmo-folder-mark-as-important ((folder elmo-mark-folder)
- numbers)
- t)
-
-(luna-define-method elmo-folder-unmark-read ((folder elmo-mark-folder) numbers)
- t)
-
-(luna-define-method elmo-folder-mark-as-read ((folder elmo-mark-folder) numbers)
- t)
-
(require 'product)
(product-provide (provide 'elmo-mark) (require 'elmo-version))