From: Nick Alcock Date: Thu, 30 Jul 2015 22:42:59 +0000 (+0100) Subject: Support :bind (:map '(...)) X-Git-Tag: emacs-29.0.90~1306^2~15^2~337^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1cbcd66ebe;p=emacs.git Support :bind (:map '(...)) We transform it into (:map foo (...) (...)) in the normalizer, and no longer warn about unknown sorts of arg. --- diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index 78abd9f776f..36360632813 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -629,11 +629,13 @@ manually updated package." ((use-package-is-sympair arg allow-vector) (list arg)) ((and (not recursed) (listp arg) (listp (cdr arg))) - (mapcar #'(lambda (x) (car (use-package-normalize-pairs - name-symbol label x t allow-vector))) arg)) - (t - (use-package-error - (concat label " wants a string, (string . symbol) or list of these"))))) + (mapcar #'(lambda (x) + (let ((ret (use-package-normalize-pairs + name-symbol label x t allow-vector))) + (if (listp ret) + (car ret) + ret))) arg)) + (t arg))) (defun use-package-normalize-binder (name-symbol keyword args) (use-package-as-one (symbol-name keyword) args @@ -645,7 +647,10 @@ manually updated package." (defun use-package-handler/:bind (name-symbol keyword arg rest state &optional override) - (let ((commands (mapcar #'cdr arg))) + (let ((commands (remq nil (mapcar #'(lambda (arg) + (if (listp arg) + (cdr arg) + nil)) arg)))) (use-package-concat (use-package-process-keywords name-symbol (use-package-sort-keywords