]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug: Properly quote args to generated -pkg.el `define-package'.
authorThien-Thi Nguyen <ttn@gnu.org>
Sun, 25 May 2014 16:32:08 +0000 (18:32 +0200)
committerThien-Thi Nguyen <ttn@gnu.org>
Sun, 25 May 2014 16:32:08 +0000 (18:32 +0200)
* 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
lisp/emacs-lisp/package.el

index eb532742ada40faaf3066fc3c47850076669ae39..2eeb15e42ad74a4444e6fc4bb7cd30dc76ec5dba 100644 (file)
@@ -1,3 +1,12 @@
+2014-05-25  Thien-Thi Nguyen  <ttn@gnu.org>
+
+       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  <schwab@linux-m68k.org>
 
        * term/xterm.el (xterm-function-map): Add mapping for shifted
index c194e1352ac05277f45a424a64d0a02c0c9fde8e..c23be253b37bec3ba05479b8ab5e9946037ea171 100644 (file)
@@ -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))