X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-filter.el;h=abaf702b59173f56ccbd6675641138663ba7cbb4;hb=7f48b955f3b8da23ddcf1e76c38790867ce8b635;hp=ff4dc2b5010604685153ba677593a469ea4d43d1;hpb=8b003dd16e3d4a1f0d29b5fcd0f57a2ee294f967;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-filter.el b/elmo/elmo-filter.el index ff4dc2b..abaf702 100644 --- a/elmo/elmo-filter.el +++ b/elmo/elmo-filter.el @@ -1,4 +1,4 @@ -;;; elmo-filter.el -- Filtered Folder Interface for ELMO. +;;; elmo-filter.el --- Filtered Folder Interface for ELMO. ;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi @@ -24,10 +24,10 @@ ;; ;;; Commentary: -;; +;; ;;; Code: -;; +;; (require 'elmo) ;;; ELMO filter folder @@ -43,7 +43,7 @@ (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))) @@ -62,7 +62,10 @@ 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) @@ -153,6 +156,22 @@ 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 @@ -175,6 +194,9 @@ (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)))