From: Radon Rosborough Date: Mon, 3 Apr 2017 17:40:46 +0000 (-0700) Subject: Add comment explaining keyword-argument patch X-Git-Tag: emacs-29.0.90~1306^2~15^2~266^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e5e335424c;p=emacs.git Add comment explaining keyword-argument patch --- diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index 440ffa02065..02a358c7145 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -969,6 +969,25 @@ If RECURSED is non-nil, recurse into sublists." (prog1 (let ((ret (use-package-normalize-pairs key-pred val-pred name label x t))) + ;; Currently, the handling of keyword + ;; arguments by `use-package' and `bind-key' + ;; is non-uniform and undocumented. As a + ;; result, `use-package-normalize-pairs' (as + ;; it is currently implemented) does not + ;; correctly handle the keyword-argument + ;; syntax of `bind-keys'. A permanent solution + ;; to this problem will require a careful + ;; consideration of the desired + ;; keyword-argument interface for + ;; `use-package' and `bind-key'. However, in + ;; the meantime, we have a quick patch to fix + ;; a serious bug in the handling of keyword + ;; arguments. Namely, the code below would + ;; normally unwrap lists that were passed as + ;; keyword arguments (for example, the + ;; `:filter' argument in `:bind') without + ;; the (not (keywordp last-item)) clause. See + ;; #447 for further discussion. (if (and (listp ret) (not (keywordp last-item))) (car ret) ret))