emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r116030: * lisp/emacs-lisp/package.el (package-desc-


From: Dmitry Gutov
Subject: [Emacs-diffs] trunk r116030: * lisp/emacs-lisp/package.el (package-desc-keywords): New function.
Date: Wed, 15 Jan 2014 04:58:34 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116030
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/16222
committer: Dmitry Gutov <address@hidden>
branch nick: trunk
timestamp: Wed 2014-01-15 06:58:06 +0200
message:
  * lisp/emacs-lisp/package.el (package-desc-keywords): New function.
  (describe-package-1, package-all-keywords)
  (package--has-keyword-p): Use it.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/emacs-lisp/package.el     package.el-20100617020707-ybavz666awsxwin6-2
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-01-15 03:06:07 +0000
+++ b/lisp/ChangeLog    2014-01-15 04:58:06 +0000
@@ -1,3 +1,10 @@
+2014-01-15  Dmitry Gutov  <address@hidden>
+
+       * emacs-lisp/package.el (package-desc-keywords): New function
+       (Bug#16222).
+       (describe-package-1, package-all-keywords)
+       (package--has-keyword-p): Use it.
+
 2014-01-14  Nicolas Richard  <address@hidden>
 
        * simple.el (define-alternatives): When creating the

=== modified file 'lisp/emacs-lisp/package.el'
--- a/lisp/emacs-lisp/package.el        2014-01-08 17:39:31 +0000
+++ b/lisp/emacs-lisp/package.el        2014-01-15 04:58:06 +0000
@@ -332,7 +332,10 @@
                              (unless (memq (car rest-plist) '(:kind :archive))
                                (let ((value (cadr rest-plist)))
                                  (when value
-                                   (push (cons (car rest-plist) value)
+                                   (push (cons (car rest-plist)
+                                               (if (eq (car-safe value) 'quote)
+                                                   (cdr value)
+                                                 value))
                                          alist))))
                              (setq rest-plist (cddr rest-plist)))
                            alist)))))
@@ -384,6 +387,12 @@
     (`tar ".tar")
     (kind (error "Unknown package kind: %s" kind))))
 
+(defun package-desc-keywords (pkg-desc)
+  (let ((keywords (assoc :keywords (package-desc-extras pkg-desc))))
+    (if (eq (car-safe keywords) 'quote)
+        (cdr keywords)
+      keywords)))
+
 ;; Package descriptor format used in finder-inf.el and package--builtins.
 (cl-defstruct (package--bi-desc
                (:constructor package-make-builtin (version summary))
@@ -1378,7 +1387,7 @@
          (archive (if desc (package-desc-archive desc)))
          (extras (and desc (package-desc-extras desc)))
          (homepage (cdr (assoc :url extras)))
-         (keywords (cdr (assoc :keywords extras)))
+         (keywords (if desc (package-desc-keywords desc)))
          (built-in (eq pkg-dir 'builtin))
          (installable (and archive (not built-in)))
          (status (if desc (package-desc-status desc) "orphan"))
@@ -1729,7 +1738,7 @@
   (let (keywords)
     (package--mapc (lambda (desc)
                      (let* ((extras (and desc (package-desc-extras desc)))
-                            (desc-keywords (cdr (assoc :keywords extras))))
+                            (desc-keywords (and desc (package-desc-keywords 
desc))))
                        (setq keywords (append keywords desc-keywords)))))
     keywords))
 
@@ -1771,7 +1780,7 @@
 When none are given, the package matches."
   (if keywords
       (let* ((extras (and desc (package-desc-extras desc)))
-             (desc-keywords (cdr (assoc :keywords extras)))
+             (desc-keywords (and desc (package-desc-keywords desc)))
              found)
         (dolist (k keywords)
           (when (and (not found)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]