X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-mark.el;h=beb9873d034d13256693529430063b6fcfd754fd;hb=bb80c1a8578abe6d0d2c89fcb1010e4218f34502;hp=b531e83627e0e1c5343217a06e606b47ceeb46d0;hpb=8b003dd16e3d4a1f0d29b5fcd0f57a2ee294f967;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-mark.el b/elmo/elmo-mark.el index b531e83..beb9873 100644 --- a/elmo/elmo-mark.el +++ b/elmo/elmo-mark.el @@ -1,4 +1,4 @@ -;;; elmo-mark.el -- Global mark folder for ELMO. +;;; elmo-mark.el --- Global mark folder for ELMO. ;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi @@ -24,10 +24,10 @@ ;; ;;; Commentary: -;; +;; ;;; Code: -;; +;; (require 'elmo) (require 'elmo-map) @@ -56,9 +56,9 @@ elmo-mark-folder)) (expand-file-name "mark" (expand-file-name "internal" - elmo-msgdb-dir))) + elmo-msgdb-directory))) -(luna-define-method elmo-map-folder-list-message-locations +(luna-define-method elmo-map-folder-list-message-locations ((folder elmo-mark-folder)) (elmo-mark-folder-list-message-locations folder)) @@ -66,10 +66,10 @@ (let (result) (dolist (pair (or elmo-msgdb-global-mark-alist (setq elmo-msgdb-global-mark-alist - (elmo-object-load + (elmo-object-load (expand-file-name elmo-msgdb-global-mark-filename - elmo-msgdb-dir))))) + elmo-msgdb-directory))))) (if (string= (elmo-mark-folder-mark-internal folder) (cdr pair)) (setq result (cons (car pair) result)))) @@ -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) @@ -138,7 +122,7 @@ (when (file-writable-p path) (write-region-as-binary (point-min) (point-max) path nil 'no-msg))) - (elmo-msgdb-global-mark-set msgid + (elmo-msgdb-global-mark-set msgid (elmo-mark-folder-mark-internal folder)))) (luna-define-method elmo-map-folder-delete-messages ((folder elmo-mark-folder) @@ -161,46 +145,7 @@ (luna-define-method elmo-folder-exists-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) +(luna-define-method elmo-folder-writable-p ((folder elmo-mark-folder)) t) (require 'product)