From a53b5062c4c275bde5b86b5065bbc34a72a09ef7 Mon Sep 17 00:00:00 2001 From: Russell Black Date: Sat, 11 Apr 2015 18:08:58 -0600 Subject: [PATCH] bind-keymap fixes Override argument no longer ignored. Not adding keymap to list of commands. `eval' no longer appears to be necessary, using direct invocation of bind-key*. --- lisp/use-package/use-package.el | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index 6feb0d84a5c..400616d3b5e 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -674,37 +674,35 @@ deferred until the prefix key sequence is pressed." (use-package-error (format "Could not load package.el: %s" package)) (if (and (boundp keymap-symbol) (keymapp (symbol-value keymap-symbol))) - (let ((key (key-description (this-command-keys-vector))) - (keymap (symbol-value keymap-symbol))) + (let* ((kv (this-command-keys-vector)) + (key (key-description kv)) + (keymap (symbol-value keymap-symbol))) (if override - ;; eval form is necessary to avoid compiler error - `(eval `(bind-key* ,key ,keymap)) + (bind-key* key keymap) (bind-key key keymap)) (setq unread-command-events - (listify-key-sequence (this-command-keys-vector)))) + (listify-key-sequence kv))) (use-package-error (format "use-package: package.el %s failed to define keymap %s" package keymap-symbol))))) (defun use-package-handler/:bind-keymap (name-symbol keyword arg rest state &optional override) - (let* (commands - (form (mapcar - #'(lambda (binding) - (push (cdr binding) commands) - `(,(if override - 'bind-key* - 'bind-key) - ,(car binding) - #'(lambda () - (interactive) - (use-package-autoload-keymap - ',(cdr binding) ',name-symbol nil)))) arg))) + (let ((form (mapcar + #'(lambda (binding) + `(,(if override + 'bind-key* + 'bind-key) + ,(car binding) + #'(lambda () + (interactive) + (use-package-autoload-keymap + ',(cdr binding) ',name-symbol ,override)))) arg))) (use-package-concat (use-package-process-keywords name-symbol (use-package-sort-keywords (use-package-plist-maybe-put rest :defer t)) - (use-package-plist-append state :commands commands)) + state) `((ignore ,@form))))) (defun use-package-handler/:bind-keymap* (name-symbol keyword arg rest state) -- 2.39.2