mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(gnus-summary-refer-thread): Don't clobber unread articles
This fixes a bug where `A T' causes "random" articles to become marked as read. * lisp/gnus/gnus-sum.el (gnus-summary-refer-thread): Make sure gnus-newsgroup-unreads remains sorted.
This commit is contained in:
parent
bda8469be5
commit
f4dbec453d
1 changed files with 10 additions and 8 deletions
|
|
@ -9068,22 +9068,24 @@ non-numeric or nil fetch the number specified by the
|
|||
(regexp-opt ',(append refs (list id subject)))))))
|
||||
(gnus-fetch-headers (list last) (if (numberp limit)
|
||||
(* 2 limit) limit) t))))
|
||||
article-ids)
|
||||
article-ids new-unreads)
|
||||
(when (listp new-headers)
|
||||
(dolist (header new-headers)
|
||||
(push (mail-header-number header) article-ids)
|
||||
(when (member (mail-header-number header) gnus-newsgroup-unselected)
|
||||
(push (mail-header-number header) gnus-newsgroup-unreads)
|
||||
(setq gnus-newsgroup-unselected
|
||||
(delete (mail-header-number header)
|
||||
gnus-newsgroup-unselected))))
|
||||
(push (mail-header-number header) article-ids))
|
||||
(setq article-ids (nreverse article-ids))
|
||||
(setq new-unreads
|
||||
(gnus-sorted-intersection gnus-newsgroup-unselected article-ids))
|
||||
(setq gnus-newsgroup-unselected
|
||||
(gnus-sorted-ndifference gnus-newsgroup-unselected new-unreads))
|
||||
(setq gnus-newsgroup-unreads
|
||||
(gnus-sorted-nunion gnus-newsgroup-unreads new-unreads))
|
||||
(setq gnus-newsgroup-headers
|
||||
(gnus-delete-duplicate-headers
|
||||
(gnus-merge
|
||||
'list gnus-newsgroup-headers new-headers
|
||||
'gnus-article-sort-by-number)))
|
||||
(setq gnus-newsgroup-articles
|
||||
(gnus-sorted-nunion gnus-newsgroup-articles (nreverse article-ids)))
|
||||
(gnus-sorted-nunion gnus-newsgroup-articles article-ids))
|
||||
(gnus-summary-limit-include-thread id)))
|
||||
(gnus-summary-show-thread))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue