summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/package.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-07-10 18:53:28 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-07-10 18:53:28 +0200
commitda7dbfdf6858c4644a8d082639edd8a532e47c42 (patch)
treee0628a4705d8e0b7cef023544c6e4410fa48a9c5 /lisp/emacs-lisp/package.el
parent3fa711c11d1497418fdf8a866b7ba52dd3b00e0e (diff)
downloademacs-da7dbfdf6858c4644a8d082639edd8a532e47c42.tar.gz
emacs-da7dbfdf6858c4644a8d082639edd8a532e47c42.tar.bz2
emacs-da7dbfdf6858c4644a8d082639edd8a532e47c42.zip
Make package-menu-filter-by-status work as documented
* lisp/emacs-lisp/package.el (package-menu-filter-by-status): Work as documented (bug#49474).
Diffstat (limited to 'lisp/emacs-lisp/package.el')
-rw-r--r--lisp/emacs-lisp/package.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index a0f1ab0ed67..6bbd4c99763 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -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.