]> git.eshelyaron.com Git - emacs.git/commitdiff
Refactor Gnus group name extraction in group completing read
authorEric Abrahamsen <eric@ericabrahamsen.net>
Sun, 31 Mar 2019 16:18:43 +0000 (09:18 -0700)
committerEric Abrahamsen <eric@ericabrahamsen.net>
Mon, 1 Apr 2019 19:41:36 +0000 (12:41 -0700)
* lisp/gnus/gnus-group.el (gnus-group-completing-read): Only do the
  unibyte check once; make sure it applies to hash table keys as
  well.

lisp/gnus/gnus-group.el

index bd24c3f8dabf6a627ef396574454a6146eead796..0be385417456852f4e23710a8d990b526692193e 100644 (file)
@@ -2173,30 +2173,23 @@ Non-ASCII group names are allowed.  The arguments are the same as
 they are omitted.  Can handle COLLECTION as a list, hash table,
 or vector."
   (or collection (setq collection gnus-active-hashtb))
-  (let (choices group)
-    (cond ((listp collection)
-          (if (symbolp (car collection))
-              (dolist (symbol collection)
-                (setq group (symbol-name symbol))
-                (push (if (string-match "[^\000-\177]" group)
-                          (gnus-group-decoded-name group)
-                        group)
-                      choices))
-            (setq choices collection)))
-         ((vectorp collection)
-          (mapatoms (lambda (symbol)
-                      (setq group (symbol-name symbol))
-                      (push (if (string-match "[^\000-\177]" group)
-                                (gnus-group-decoded-name group)
-                              group)
-                            choices))
-                    collection))
-         ((hash-table-p collection)
-          (setq choices (hash-table-keys collection))))
-    (setq group (gnus-completing-read (or prompt "Group") (reverse choices)
-                                     require-match initial-input
-                                     (or hist 'gnus-group-history)
-                                     def))
+  (let* ((choices
+         (mapcar
+          (lambda (g)
+            (if (string-match "[^\000-\177]" g)
+                (gnus-group-decoded-name g)
+              g))
+          (cond ((listp collection)
+                 collection)
+                ((vectorp collection)
+                 (mapatoms #'symbol-name collection))
+                ((hash-table-p collection)
+                 (hash-table-keys collection)))))
+        (group
+         (gnus-completing-read (or prompt "Group") (reverse choices)
+                               require-match initial-input
+                               (or hist 'gnus-group-history)
+                               def)))
     (unless (cond ((and (listp collection)
                        (symbolp (car collection)))
                   (member group (mapcar 'symbol-name collection)))