From 3458caf416d88c373561f23f373a23a3856eb922 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Thu, 17 Jun 2004 05:17:08 +0000 Subject: [PATCH] Synch to No Gnus 200406170516. --- lisp/ChangeLog | 11 +++++++++++ lisp/gnus-group.el | 2 +- lisp/gnus-srvr.el | 4 +++- lisp/gnus-start.el | 20 ++++++++++++++++---- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e44e8a9..32b9ca5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2004-06-17 Katsumi Yamaoka + + * gnus-group.el (gnus-group-get-new-news-this-group): Pass the + already-computed method to gnus-activate-group. + + * gnus-start.el (gnus-make-hashtable-from-newsrc-alist): Make the + same select-methods identical Lisp objects. + + * gnus-srvr.el (gnus-server-set-info): Don't make a new Lisp + object when modifying the info. + 2004-06-16 Katsumi Yamaoka * gnus-srvr.el (gnus-server-set-info): Remove the server from diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 63ff24e..31a7f5f 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -3685,7 +3685,7 @@ If DONT-SCAN is non-nil, scan non-activated groups as well." (gnus-group-remove-mark group) ;; Bypass any previous denials from the server. (gnus-remove-denial (setq method (gnus-find-method-for-group group))) - (if (gnus-activate-group group (if dont-scan nil 'scan)) + (if (gnus-activate-group group (if dont-scan nil 'scan) nil method) (progn (gnus-get-unread-articles-in-group (gnus-get-info group) (gnus-active group) t) diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 856b514..84da431 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -396,7 +396,9 @@ The following commands are available: ;; Remove the server from `gnus-opened-servers' since ;; it has never been opened with the new `info' yet. (gnus-opened-servers-remove (cdr entry)) - (setcdr entry info)) + ;; Don't make a new Lisp object. + (setcar (cdr entry) (car info)) + (setcdr (cdr entry) (cdr info))) (setq gnus-server-alist (nconc gnus-server-alist (list (cons server info)))))))) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index d2b716f..068074d 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1799,7 +1799,7 @@ If SCAN, request a scan of that group as well." (defun gnus-make-hashtable-from-newsrc-alist () (let ((alist gnus-newsrc-alist) (ohashtb gnus-newsrc-hashtb) - prev) + prev info method rest methods) (setq gnus-newsrc-hashtb (gnus-make-hashtable (length alist))) (setq alist (setq prev (setq gnus-newsrc-alist @@ -1808,14 +1808,26 @@ If SCAN, request a scan of that group as well." gnus-newsrc-alist (cons (list "dummy.group" 0 nil) alist))))) (while alist + (setq info (car alist)) + ;; Make the same select-methods identical Lisp objects. + (when (setq method (gnus-info-method info)) + (if (setq rest (member method methods)) + (gnus-info-set-method info (car rest)) + (push method methods))) (gnus-sethash - (caar alist) + (car info) ;; Preserve number of unread articles in groups. - (cons (and ohashtb (car (gnus-gethash (caar alist) ohashtb))) + (cons (and ohashtb (car (gnus-gethash (car info) ohashtb))) prev) gnus-newsrc-hashtb) (setq prev alist - alist (cdr alist))))) + alist (cdr alist))) + ;; Make the same select-methods in `gnus-server-alist' identical + ;; as well. + (while methods + (setq method (pop methods)) + (when (setq rest (rassoc method gnus-server-alist)) + (setcdr rest method))))) (defun gnus-make-hashtable-from-killed () "Create a hash table from the killed and zombie lists." -- 1.7.10.4