From e50a0b6e9df98aa4bfd904b82edd8c0d7b3a2da4 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Sun, 25 May 2014 18:32:08 +0200 Subject: [PATCH] Fix bug: Properly quote args to generated -pkg.el `define-package'. * lisp/emacs-lisp/package.el (package-generate-description-file): Inline `package--alist-to-plist'; rewrite to selectively quote alist values that are not self-quoting. (package--alist-to-plist): Delete func. --- lisp/ChangeLog | 9 +++++++++ lisp/emacs-lisp/package.el | 21 ++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index eb532742ada..2eeb15e42ad 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2014-05-25 Thien-Thi Nguyen + + Fix bug: Properly quote args to generated -pkg.el `define-package'. + + * emacs-lisp/package.el (package-generate-description-file): + Inline `package--alist-to-plist'; rewrite to selectively + quote alist values that are not self-quoting. + (package--alist-to-plist): Delete func. + 2014-05-25 Andreas Schwab * term/xterm.el (xterm-function-map): Add mapping for shifted diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index c194e1352ac..c23be253b37 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -702,14 +702,25 @@ untar into a directory named DIR; otherwise, signal an error." (list (car elt) (package-version-join (cadr elt)))) requires)))) - (package--alist-to-plist - (package-desc-extras pkg-desc)))) + (let ((alist (package-desc-extras pkg-desc)) + flat) + (while alist + (let* ((pair (pop alist)) + (key (car pair)) + (val (cdr pair))) + ;; Don't bother ‘quote’ing ‘key’; it is always a keyword. + (push key flat) + (push (if (and (not (consp val)) + (or (keywordp val) + (not (symbolp val)) + (memq val '(nil t)))) + val + `',val) + flat))) + (nreverse flat)))) "\n") nil pkg-file nil 'silent)))) -(defun package--alist-to-plist (alist) - (apply #'nconc (mapcar (lambda (pair) (list (car pair) (cdr pair))) alist))) - (defun package-unpack (pkg-desc) "Install the contents of the current buffer as a package." (let* ((name (package-desc-name pkg-desc)) -- 2.39.2