]> git.eshelyaron.com Git - emacs.git/commitdiff
Make package-menu-filter-by-status work as documented
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 10 Jul 2021 16:53:28 +0000 (18:53 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 10 Jul 2021 16:53:28 +0000 (18:53 +0200)
* lisp/emacs-lisp/package.el (package-menu-filter-by-status): Work
as documented (bug#49474).

etc/NEWS
lisp/emacs-lisp/package.el

index da5524a5553724dc26e89336a925a62c98f779be..923cfcc47228918c72fd38c049cf1caad13c84b4 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1493,6 +1493,14 @@ This is a slightly deeper copy than the previous 'copy-sequence'.
 
 ** Package
 
+---
+*** '/ s' ('package-menu-filter-by-status') changes parameter handling.
+The command was documented to take a comma-separated list of statuses
+to filter by, but instead it used the parameter as a regexp.  The
+command has been changed so that it now works as documented, and
+checks statuses not as a regexp, but instead an exact match from the
+comma-separated list.
+
 +++
 *** New command 'package-browse-url' and keystroke 'w'.
 
index a0f1ab0ed673f041dc3e39646186957669015d48..6bbd4c9976334ab559b649086e338e77794d4d8e 100644 (file)
@@ -3954,9 +3954,14 @@ packages."
   (package--ensure-package-menu-mode)
   (if (or (not status) (string-empty-p status))
       (package-menu--generate t t)
-    (package-menu--filter-by (lambda (pkg-desc)
-                        (string-match-p status (package-desc-status pkg-desc)))
-                      (format "status:%s" status))))
+    (let ((status-list
+           (if (listp status)
+               status
+             (split-string status ","))))
+      (package-menu--filter-by
+       (lambda (pkg-desc)
+         (member (package-desc-status pkg-desc) status-list))
+       (format "status:%s" (string-join status-list ","))))))
 
 (defun package-menu-filter-by-version (version predicate)
   "Filter the \"*Packages*\" buffer by VERSION and PREDICATE.