summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-06-13 14:20:22 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-06-13 14:20:22 +0200
commit0fdd37c7fbbd0880e569d41bb5ecb9a40f099b00 (patch)
tree2e963622bed69122932f93448b4dd2a477ff85a1 /lisp/emacs-lisp
parentf8ac290945102f2b59a4474bd4c53ba22db6a076 (diff)
downloademacs-0fdd37c7fbbd0880e569d41bb5ecb9a40f099b00.tar.gz
emacs-0fdd37c7fbbd0880e569d41bb5ecb9a40f099b00.tar.bz2
emacs-0fdd37c7fbbd0880e569d41bb5ecb9a40f099b00.zip
Make `/ a' in *Package* filter by name
* lisp/emacs-lisp/package.el (package-menu-filter-by-archive): Filter by package name instead of by regexp, so that if the user types "gnu", they won't get "nongnu", too (bug#55919).
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package.el18
1 files changed, 8 insertions, 10 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 48551f59b43..9aaeb052d0d 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -3963,16 +3963,14 @@ packages."
(mapcar #'car package-archives)))
package-menu-mode)
(package--ensure-package-menu-mode)
- (let ((re (if (listp archive)
- (regexp-opt archive)
- archive)))
- (package-menu--filter-by (lambda (pkg-desc)
- (let ((pkg-archive (package-desc-archive pkg-desc)))
- (and pkg-archive
- (string-match-p re pkg-archive))))
- (concat "archive:" (if (listp archive)
- (string-join archive ",")
- archive)))))
+ (let ((archives (ensure-list archive)))
+ (package-menu--filter-by
+ (lambda (pkg-desc)
+ (let ((pkg-archive (package-desc-archive pkg-desc)))
+ (or (null archives)
+ (and pkg-archive
+ (member pkg-archive archives)))))
+ (concat "archive:" (string-join archives ",")))))
(defun package-menu-filter-by-description (description)
"Filter the \"*Packages*\" buffer by DESCRIPTION regexp.