summaryrefslogtreecommitdiff
path: root/lisp/gnus
diff options
context:
space:
mode:
authorAndrew G Cohen <cohen@andy.bu.edu>2023-03-29 14:05:59 +0800
committerAndrew G Cohen <cohen@andy.bu.edu>2023-04-09 14:23:34 +0800
commit48ecbccaa3244183f58c5140f09b0b8eebdf65c9 (patch)
treeb7bc174f3b7002c04c17894945ad1370a9179a6b /lisp/gnus
parent859b94e338639e1838e607be5784dc65ad455671 (diff)
downloademacs-48ecbccaa3244183f58c5140f09b0b8eebdf65c9.tar.gz
Update gnus/nnselect marks only for current articles
* lisp/gnus/nnselect.el (nnselect-push-info): Restrict updating of marked articles to those whose headers have been retrieved, taking care to handle 'tuples.
Diffstat (limited to 'lisp/gnus')
-rw-r--r--lisp/gnus/nnselect.el18
1 files changed, 11 insertions, 7 deletions
diff --git a/lisp/gnus/nnselect.el b/lisp/gnus/nnselect.el
index 4680cf23e5e..9a2957c9f52 100644
--- a/lisp/gnus/nnselect.el
+++ b/lisp/gnus/nnselect.el
@@ -895,13 +895,17 @@ article came from is also searched."
;; collect the set of marked article lists categorized by
;; originating groups
(pcase-dolist (`(,mark . ,type) gnus-article-mark-lists)
- (let (type-list)
- (when (setq type-list
- (symbol-value (intern (format "gnus-newsgroup-%s" mark))))
- (push (cons
- type
- (numbers-by-group type-list (gnus-article-mark-to-type type)))
- mark-list))))
+ (let ((mark-type (gnus-article-mark-to-type type))
+ (type-list (symbol-value
+ (intern (format "gnus-newsgroup-%s" mark)))))
+ (when type-list
+ (unless (eq 'tuple mark-type)
+ (setq type-list (range-list-intersection
+ gnus-newsgroup-articles type-list)))
+ (push (cons
+ type
+ (numbers-by-group type-list mark-type))
+ mark-list))))
;; now work on each originating group one at a time
(pcase-dolist (`(,artgroup . ,artlist)
(numbers-by-group gnus-newsgroup-articles))