X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-pipe.el;h=e7f2566e02895ed391ee47eebfd8fc6c30f75117;hb=bd1c7daca8de303dd5766cb7831e964cfe3a03c5;hp=b4e5d16c0c698666debfe82db2e11f800bb216ad;hpb=967483dd0fc9e310b591ae879f03a6e19cae8aa1;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-pipe.el b/elmo/elmo-pipe.el index b4e5d16..e7f2566 100644 --- a/elmo/elmo-pipe.el +++ b/elmo/elmo-pipe.el @@ -172,7 +172,7 @@ (luna-define-method elmo-folder-list-answereds ((folder elmo-pipe-folder)) (elmo-folder-list-answereds (elmo-pipe-folder-dst-internal folder))) -(luna-define-method elmo-folder-status ((folder elmo-pipe-folder)) +(luna-define-method elmo-folder-diff ((folder elmo-pipe-folder)) (elmo-folder-open-internal (elmo-pipe-folder-src-internal folder)) (elmo-folder-open-internal (elmo-pipe-folder-dst-internal folder)) (let* ((elmo-inhibit-number-mapping @@ -180,10 +180,13 @@ (src-length (length (elmo-pipe-folder-list-target-messages (elmo-pipe-folder-src-internal folder) (elmo-pipe-folder-copied-list-load folder)))) - (dst-list (elmo-folder-list-messages - (elmo-pipe-folder-dst-internal folder)))) - (prog1 (cons (+ src-length (elmo-max-of-list dst-list)) - (+ src-length (length dst-list))) + (dst-diff (elmo-folder-diff (elmo-pipe-folder-dst-internal folder)))) + (prog1 + (cond + ((consp (cdr dst-diff)) ; new unread all + (mapcar (lambda (number) (+ number src-length)) dst-diff)) + (t + (cons (+ (car dst-diff) src-length) (cdr dst-diff)))) ;; No save. (elmo-folder-close-internal (elmo-pipe-folder-src-internal folder)) (elmo-folder-close-internal (elmo-pipe-folder-dst-internal folder)))))