X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-filter.el;h=abaf702b59173f56ccbd6675641138663ba7cbb4;hb=9e39553b80115a949a7f04ddced4459a7797f8bd;hp=5ce73ba3ff1b23ab3c2a8fd50ea6a97aee1d3f4d;hpb=366496cfdf25d8df2f76be499708b5f3d222718e;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-filter.el b/elmo/elmo-filter.el index 5ce73ba..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