* lisp/emacs-lisp/package.el: Make archive and status pseudo-keywords

(package--has-keyword-p): Understand "arc:xxxx" and "status:xxxx"
as special keywords which match agains package archive and status
respectively.

* etc/NEWS: Document it.
This commit is contained in:
Artur Malabarba 2015-04-20 07:20:54 +01:00
parent c0f5a3b335
commit fad6b8a093
2 changed files with 13 additions and 6 deletions

View file

@ -238,6 +238,11 @@ in the surrounding GUI (using the OSC-52 escape sequence).
** xterm-mouse-mode now supports mouse-tracking (if your xterm supports it).
** package.el
*** When filtering the package menu, keywords starting with "arc:" or
"status:" represent package archive or status, respectively, instead
of actual keywords.
*** Most functions which involve downloading information now take an
ASYNC argument. If it is non-nil, package.el performs the download(s)
asynchronously.

View file

@ -2535,12 +2535,14 @@ Built-in packages are converted with `package--from-builtin'."
"Test if package DESC has any of the given KEYWORDS.
When none are given, the package matches."
(if keywords
(let* ((desc-keywords (and desc (package-desc--keywords desc)))
found)
(dolist (k keywords)
(when (and (not found)
(member k desc-keywords))
(setq found t)))
(let ((desc-keywords (and desc (package-desc--keywords desc)))
found)
(while (and (not found) keywords)
(let ((k (pop keywords)))
(setq found
(or (string= k (concat "arc:" (package-desc-archive desc)))
(string= k (concat "status:" (package-desc-status desc)))
(member k desc-keywords)))))
found)
t))