1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

Improve compression of article lists in gnus/nnselect

* lisp/gnus/nnselect.el (nnselect-compress-artlist): Allow compressed list.
nnselect-uncompress-artlist): Properly loop over rsv values.
This commit is contained in:
Andrew G Cohen 2022-02-04 08:30:32 +08:00
parent d539d00c42
commit 634cedfea1

View file

@ -79,6 +79,8 @@
;;; Helper routines.
(defun nnselect-compress-artlist (artlist)
"Compress ARTLIST."
(if (consp artlist)
artlist
(let (selection)
(pcase-dolist (`(,artgroup . ,arts)
(nnselect-categorize artlist #'nnselect-artitem-group))
@ -89,20 +91,21 @@
(push (cons rsv (gnus-compress-sequence (sort articles #'<)))
list))
(push (cons artgroup list) selection)))
selection))
selection)))
(defun nnselect-uncompress-artlist (artlist)
"Uncompress ARTLIST."
(if (vectorp artlist)
artlist
(let (selection)
(pcase-dolist (`(,artgroup (,artrsv . ,artseq)) artlist)
(pcase-dolist (`(,artgroup . ,list) artlist)
(pcase-dolist (`(,artrsv . ,artseq) list)
(setq selection
(vconcat
(cl-map 'vector
(lambda (art)
(vector artgroup art artrsv))
(gnus-uncompress-sequence artseq)) selection)))
(gnus-uncompress-sequence artseq)) selection))))
selection)))
(make-obsolete 'nnselect-group-server 'gnus-group-server "28.1")