(require 'elmo)
(require 'elmo-map)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; cache backend by Kenichi OKADA <okada@opaopa.org>
-;;
(eval-and-compile
(luna-define-class elmo-cache-folder (elmo-map-folder) (dir-name directory))
(luna-define-internal-accessors 'elmo-cache-folder))
(elmo-cache-folder-set-directory-internal
folder
(expand-file-name (elmo-match-string 2 name)
- (expand-file-name elmo-cache-dirname elmo-msgdb-dir)))
+ elmo-cache-directory))
folder))
(luna-define-method elmo-folder-expand-msgdb-path ((folder elmo-cache-folder))
(expand-file-name (elmo-cache-folder-dir-name-internal folder)
(expand-file-name "internal/cache"
- elmo-msgdb-dir)))
+ elmo-msgdb-directory)))
(luna-define-method elmo-map-folder-list-message-locations
((folder elmo-cache-folder))
(luna-define-method elmo-folder-exists-p ((folder elmo-cache-folder))
t)
-(luna-define-method elmo-folder-search ((folder elmo-cache-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))
-
(luna-define-method elmo-message-file-p ((folder elmo-cache-folder) number)
t)