From: yamaoka Date: Fri, 3 Mar 2006 10:12:47 +0000 (+0000) Subject: Synch to No Gnus 200603030933. X-Git-Tag: t-gnus-6_17_4-quimby-~57 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c2372583d2d80b60c3fb3683adcafa61f5baf3b;p=elisp%2Fgnus.git- Synch to No Gnus 200603030933. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5e3aa7a..74bc427 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2006-03-03 Daniel Pittman + + * nnimap.el (nnimap-request-update-info-internal): Optimize. + 2006-03-03 Katsumi Yamaoka * gnus-group.el (gnus-group-tool-bar-gnome): Check if gnus-topic.el diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 9d4b755..841d52c 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -1183,18 +1183,12 @@ function is generally only called when Gnus is shutting down." (let (seen unseen) ;; read info could contain articles marked unread by other ;; imap clients! we correct this - (setq seen (gnus-uncompress-range (gnus-info-read info)) - unseen (imap-search "UNSEEN UNDELETED") - seen (gnus-set-difference seen unseen) - ;; seen might lack articles marked as read by other - ;; imap clients! we correct this - seen (append seen (imap-search "SEEN")) - ;; remove dupes - seen (sort seen '<) - seen (gnus-compress-sequence seen t) - ;; we can't return '(1) since this isn't a "list of ranges", - ;; and we can't return '((1)) since g-list-of-unread-articles - ;; is buggy so we return '((1 . 1)). + (setq unseen (gnus-compress-sequence + (imap-search "UNSEEN UNDELETED")) + seen (gnus-range-difference (gnus-info-read info) unseen) + seen (gnus-range-add seen + (gnus-compress-sequence + (imap-search "SEEN"))) seen (if (and (integerp (car seen)) (null (cdr seen))) (list (cons (car seen) (car seen)))