]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/package.el (package--prepare-dependencies): New function.
authorTom Willemse <tom@ryuslash.org>
Sat, 14 Dec 2013 16:02:39 +0000 (11:02 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 14 Dec 2013 16:02:39 +0000 (11:02 -0500)
(package-buffer-info): Use it.

Fixes: debbugs:15108
lisp/ChangeLog
lisp/emacs-lisp/package.el

index 129dde734abac7e0fb79edb0c3470c9aed07fc3f..8725bc401c5c5b2a8743bc5ecf471e1c5e8b1519 100644 (file)
@@ -1,4 +1,7 @@
-2013-12-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+2013-12-14  Tom Willemse  <tom@ryuslash.org>  (tiny change)
+
+       * emacs-lisp/package.el (package--prepare-dependencies): New function.
+       (package-buffer-info): Use it (bug#15108).
 
        * icomplete.el (icomplete-completions): Make sure the prefix is already
        displayed elsewhere before hiding it.
index 34aa2b6210567468cb0b000600f8c0e801ffc0e7..b8c21e0386bb0e91f2a5aaeee4ee653cabf455f1 100644 (file)
@@ -1104,6 +1104,23 @@ Otherwise return nil."
 
 (declare-function lm-homepage "lisp-mnt" (&optional file))
 
+(defun package--prepare-dependencies (deps)
+  "Turn DEPS into an acceptable list of dependencies.
+
+Any parts missing a version string get a default version string
+of \"0\" (meaning any version) and an appropriate level of lists
+is wrapped around any parts requiring it."
+  (cond
+   ((not (listp deps))
+    (error "Invalid requirement specifier: %S" deps))
+   (t (mapcar (lambda (dep)
+                (cond
+                 ((symbolp dep) `(,dep "0"))
+                 ((stringp dep)
+                  (error "Invalid requirement specifier: %S" dep))
+                 (t dep)))
+              deps))))
+
 (defun package-buffer-info ()
   "Return a `package-desc' describing the package in the current buffer.
 
@@ -1135,7 +1152,9 @@ boundaries."
         "Package lacks a \"Version\" or \"Package-Version\" header"))
       (package-desc-from-define
        file-name pkg-version desc
-       (if requires-str (package-read-from-string requires-str))
+       (if requires-str
+           (package--prepare-dependencies
+            (package-read-from-string requires-str)))
        :kind 'single
        :url homepage))))