diff options
author | Tom Willemse <tom@ryuslash.org> | 2013-12-14 11:02:39 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-12-14 11:02:39 -0500 |
commit | f77d7d1773e2100fae8dce2e0f6bfe352c789bcf (patch) | |
tree | 6b8aab9323c00b577229e4ea90011cff1e452596 /lisp/emacs-lisp/package.el | |
parent | aa2bddd73d8359ad944fde7c424d2d89c0ccf0d9 (diff) | |
download | emacs-f77d7d1773e2100fae8dce2e0f6bfe352c789bcf.tar.gz |
* lisp/emacs-lisp/package.el (package--prepare-dependencies): New function.
(package-buffer-info): Use it.
Fixes: debbugs:15108
Diffstat (limited to 'lisp/emacs-lisp/package.el')
-rw-r--r-- | lisp/emacs-lisp/package.el | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 34aa2b62105..b8c21e0386b 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -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)))) |