diff options
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/emacs-lisp/package.el | 21 |
2 files changed, 24 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 129dde734ab..8725bc401c5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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. 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)))) |