X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-mark.el;h=beb9873d034d13256693529430063b6fcfd754fd;hb=bb80c1a8578abe6d0d2c89fcb1010e4218f34502;hp=35352db7091de1c289a10d62003215569228daee;hpb=9e39553b80115a949a7f04ddced4459a7797f8bd;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-mark.el b/elmo/elmo-mark.el index 35352db..beb9873 100644 --- a/elmo/elmo-mark.el +++ b/elmo/elmo-mark.el @@ -84,39 +84,23 @@ (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 @@ -124,10 +108,10 @@ (/ (* 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) @@ -164,48 +148,6 @@ (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))