emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/gnus-select2 e195dc8 1/4: Improve compression of nnselect-artlis


From: Andrew G Cohen
Subject: feature/gnus-select2 e195dc8 1/4: Improve compression of nnselect-artlist
Date: Thu, 31 Oct 2019 06:59:28 -0400 (EDT)

branch: feature/gnus-select2
commit e195dc8094284bcc0765139d79e78fbb4d25faaa
Author: Andrew G Cohen <address@hidden>
Commit: Andrew G Cohen <address@hidden>

    Improve compression of nnselect-artlist
    
    * lisp/gnus/nnselect.el (nnselect-uncompress-artlist,
      nnselect-get-artlist): Make the compression a bit faster and put
      the vectorp test into the nnselect-uncompress-artlist uncompress
      function.
---
 lisp/gnus/nnselect.el | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/lisp/gnus/nnselect.el b/lisp/gnus/nnselect.el
index 5dbc9b2..4a2775f 100644
--- a/lisp/gnus/nnselect.el
+++ b/lisp/gnus/nnselect.el
@@ -92,11 +92,17 @@
     selection))
 
 (defun nnselect-uncompress-artlist (artlist)
-  (let (selection)
-    (pcase-dolist (`(,artgroup (,artrsv . ,artseq)) artlist)
-      (dolist (art (reverse (gnus-uncompress-sequence artseq)))
-        (push (vector artgroup art artrsv) selection)))
-    (apply #'vector selection)))
+  (if (vectorp artlist)
+      artlist
+    (let (selection)
+      (pcase-dolist (`(,artgroup (,artrsv . ,artseq)) artlist)
+       (setq selection
+             (vconcat
+              (map 'vector
+                   #'(lambda (art)
+                       (vector artgroup art artrsv))
+                   (gnus-uncompress-sequence artseq)) selection)))
+      selection)))
 
 (defun nnselect-group-server (group)
   (gnus-group-server group))
@@ -211,9 +217,7 @@ as `(keyfunc member)' and the corresponding element is just
   `(when (gnus-nnselect-group-p ,group)
      (let ((artlist
            (gnus-group-get-parameter ,group 'nnselect-artlist t)))
-       (if (or (not artlist) (vectorp artlist))
-          artlist
-        (nnselect-uncompress-artlist artlist)))))
+       (nnselect-uncompress-artlist artlist))))
 
 
 ;;; User Customizable Variables:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]