-;;; elmo-filter.el -- Filtered Folder Interface for ELMO.
+;;; elmo-filter.el --- Filtered Folder Interface for ELMO.
;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
;;
;;; Commentary:
-;;
+;;
;;; Code:
-;;
+;;
(require 'elmo)
;;; ELMO filter folder
(elmo-filter-folder-set-condition-internal folder
(car pair))
(if (string-match "^ */\\(.*\\)$" (cdr pair))
- (elmo-filter-folder-set-target-internal
+ (elmo-filter-folder-set-target-internal
folder
(elmo-make-folder (elmo-match-string 1 (cdr pair))))
(error "Folder syntax error `%s'" (elmo-folder-name-internal folder)))
elmo-filter-folder))
(expand-file-name
(elmo-replace-string-as-filename (elmo-folder-name-internal folder))
- (expand-file-name "filter" elmo-msgdb-dir)))
+ (expand-file-name "filter" elmo-msgdb-directory)))
+
+(luna-define-method elmo-folder-newsgroups ((folder elmo-filter-folder))
+ (elmo-folder-newsgroups (elmo-filter-folder-target-internal folder)))
(luna-define-method elmo-find-fetch-strategy
((folder elmo-filter-folder) entity &optional ignore-cache)
important-mark)
(elmo-filter-folder-list-importants-internal folder important-mark))
+(luna-define-method elmo-folder-list-subfolders ((folder elmo-filter-folder)
+ &optional one-level)
+ (let* ((target (elmo-filter-folder-target-internal folder))
+ (prefix (and (string-match
+ (concat "^\\(.*\\)"
+ (regexp-quote
+ (elmo-folder-name-internal
+ target))
+ "$")
+ (elmo-folder-name-internal folder))
+ (match-string 1 (elmo-folder-name-internal
+ folder)))))
+ (elmo-mapcar-list-of-list
+ (lambda (x) (concat prefix x))
+ (elmo-folder-list-subfolders target one-level))))
+
(luna-define-method elmo-folder-diff :around ((folder elmo-filter-folder)
&optional numbers)
(if (not (and (vectorp (elmo-filter-folder-condition-internal
(luna-define-method elmo-folder-creatable-p ((folder elmo-filter-folder))
(elmo-folder-creatable-p (elmo-filter-folder-target-internal folder)))
+(luna-define-method elmo-folder-writable-p ((folder elmo-filter-folder))
+ (elmo-folder-writable-p (elmo-filter-folder-target-internal folder)))
+
(luna-define-method elmo-folder-create ((folder elmo-filter-folder))
(elmo-folder-create (elmo-filter-folder-target-internal folder)))