diff options
author | Andrew G Cohen <cohen@andy.bu.edu> | 2023-03-29 14:05:59 +0800 |
---|---|---|
committer | Andrew G Cohen <cohen@andy.bu.edu> | 2023-04-09 14:23:34 +0800 |
commit | 48ecbccaa3244183f58c5140f09b0b8eebdf65c9 (patch) | |
tree | b7bc174f3b7002c04c17894945ad1370a9179a6b /lisp/gnus | |
parent | 859b94e338639e1838e607be5784dc65ad455671 (diff) | |
download | emacs-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.el | 18 |
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)) |