=== modified file 'lisp/emacs-lisp/package.el' *** lisp/emacs-lisp/package.el 2013-12-11 21:15:12 +0000 --- lisp/emacs-lisp/package.el 2013-12-12 19:13:00 +0000 *************** *** 1104,1109 **** --- 1104,1128 ---- (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 + ((null deps) nil) + ((or (symbolp deps) + (and (listp deps) + (symbolp (car deps)) + (stringp (cadr deps)))) + (error "Invalid requirement specifier: %s" deps)) + ((stringp (cadr deps)) `(,deps)) + ((and (listp deps) (listp (car deps)) + (null (cdar deps))) + `((,(caar deps) "0"))) + (t (mapcar (lambda (dep) (if (symbolp dep) `(,dep "0") dep)) deps)))) + (defun package-buffer-info () "Return a `package-desc' describing the package in the current buffer. *************** *** 1135,1141 **** "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)) :kind 'single :url homepage)))) --- 1154,1162 ---- "Package lacks a \"Version\" or \"Package-Version\" header")) (package-desc-from-define file-name pkg-version desc ! (if requires-str ! (package--prepare-dependencies ! (package-read-from-string requires-str))) :kind 'single :url homepage))))