X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-multi.el;h=546dd60908b995b4a491ae4034b7070cb81a3425;hb=9e39553b80115a949a7f04ddced4459a7797f8bd;hp=4a93b4d733394f5e2efa1e47e7415f9eecde0bc3;hpb=9ef19f77adfa042aefebdf54f58ba272e4fee489;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-multi.el b/elmo/elmo-multi.el index 4a93b4d..546dd60 100644 --- a/elmo/elmo-multi.el +++ b/elmo/elmo-multi.el @@ -1,4 +1,4 @@ -;;; elmo-multi.el -- Multiple Folder Interface for ELMO. +;;; elmo-multi.el --- Multiple Folder Interface for ELMO. ;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi @@ -24,10 +24,10 @@ ;; ;;; Commentary: -;; +;; ;;; Code: -;; +;; (require 'elmo) (require 'luna) @@ -73,14 +73,24 @@ (luna-define-method elmo-folder-expand-msgdb-path ((folder elmo-multi-folder)) - (expand-file-name (elmo-replace-string-as-filename + (expand-file-name (elmo-replace-string-as-filename (elmo-folder-name-internal folder)) (expand-file-name "multi" - elmo-msgdb-dir))) + elmo-msgdb-directory))) + +(luna-define-method elmo-folder-newsgroups ((folder elmo-multi-folder)) + (delq nil + (elmo-flatten + (mapcar + 'elmo-folder-newsgroups + (elmo-flatten + (mapcar + 'elmo-folder-get-primitive-list + (elmo-multi-folder-children-internal folder))))))) (luna-define-method elmo-folder-get-primitive-list ((folder elmo-multi-folder)) (elmo-flatten - (mapcar + (mapcar 'elmo-folder-get-primitive-list (elmo-multi-folder-children-internal folder)))) @@ -96,7 +106,7 @@ (luna-define-method elmo-message-use-cache-p ((folder elmo-multi-folder) number) - (elmo-message-use-cache-p + (elmo-message-use-cache-p (nth (- (/ number (elmo-multi-folder-divide-number-internal folder)) 1) (elmo-multi-folder-children-internal folder)) (% number (elmo-multi-folder-divide-number-internal folder)))) @@ -205,7 +215,7 @@ (if (setq same (rassoc (cdr (car cur)) all-alist)) (unless (= (/ (car (car cur)) (elmo-multi-folder-divide-number-internal folder)) - (/ (car same) + (/ (car same) (elmo-multi-folder-divide-number-internal folder))) ;; base is also same...delete it! (setq to-be-deleted @@ -299,7 +309,7 @@ (unsync 0) (messages 0) num-list - diffs) + diffs nums) ;; If first time, dummy numbers is used as current number list. (unless numbers (let ((i 0) @@ -315,9 +325,9 @@ (elmo-number-set-to-number-list killed) numbers)))) (while flds - (setq diffs (nconc diffs (list (elmo-folder-diff - (car flds) - (car num-list))))) + (setq nums (elmo-folder-diff (car flds) (car num-list)) + nums (cons (elmo-diff-unread nums) (elmo-diff-all nums))) + (setq diffs (nconc diffs (list nums))) (setq count (+ 1 count)) (setq num-list (cdr num-list)) (setq flds (cdr flds))) @@ -602,7 +612,7 @@ (elmo-folder-mark-as-important (car folder-numbers) (cdr folder-numbers))) t) - + (luna-define-method elmo-folder-unmark-important ((folder elmo-multi-folder) numbers) (dolist (folder-numbers (elmo-multi-make-folder-numbers-list folder numbers))