]> git.eshelyaron.com Git - emacs.git/commitdiff
bind-keymap fixes
authorRussell Black <black.russell@gmail.com>
Sun, 12 Apr 2015 00:08:58 +0000 (18:08 -0600)
committerRussell Black <black.russell@gmail.com>
Sun, 12 Apr 2015 00:08:58 +0000 (18:08 -0600)
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

index 6feb0d84a5ca4492f2515f6085dbf02bcfed9150..400616d3b5ee47e712581e1d4ffdeb530887d716 100644 (file)
@@ -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)