summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoam Postavsky <npostavs@gmail.com>2014-05-31 15:21:44 -0400
committerNoam Postavsky <npostavs@gmail.com>2014-05-31 15:21:44 -0400
commitb3e96443ad7e7d6f9675c72c2a48527728d7218f (patch)
treef10b98bf773dee7866c645662cc6ca169777549a
parentde9f6814e79f422b389f1f6ceefc06b16a9d4b9b (diff)
downloademacs-b3e96443ad.tar.gz
bind-key: cleanup
-rw-r--r--lisp/use-package/bind-key.el25
1 files changed, 12 insertions, 13 deletions
diff --git a/lisp/use-package/bind-key.el b/lisp/use-package/bind-key.el
index bf28e202388..e52ec07ed87 100644
--- a/lisp/use-package/bind-key.el
+++ b/lisp/use-package/bind-key.el
@@ -141,25 +141,24 @@ spelled-out keystrokes, e.g., \"C-c C-z\". See documentation of
`edmacro-mode' for details."
(let ((namevar (make-symbol "name"))
(keyvar (make-symbol "key"))
+ (kdescvar (make-symbol "kdesc"))
(bindingvar (make-symbol "binding"))
(entryvar (make-symbol "entry")))
`(let* ((,namevar ,key-name)
(,keyvar (if (vectorp ,namevar) ,namevar
(read-kbd-macro ,namevar)))
+ (,kdescvar (cons (if (stringp ,namevar) ,namevar
+ (key-description ,namevar))
+ (quote ,keymap)))
(,bindingvar (lookup-key (or ,keymap global-map)
- ,keyvar)))
- (let ((,entryvar (assoc (cons ,namevar (quote ,keymap))
- personal-keybindings)))
- (if ,entryvar
- (setq personal-keybindings
- (delq ,entryvar personal-keybindings))))
- (setq personal-keybindings
- (cons (list (cons (if (stringp ,namevar) ,namevar
- (key-description ,namevar))
- (quote ,keymap))
- ,command
- (unless (numberp ,bindingvar) ,bindingvar))
- personal-keybindings))
+ ,keyvar))
+ (,entryvar (assoc ,kdescvar personal-keybindings)))
+ (when ,entryvar
+ (setq personal-keybindings
+ (delq ,entryvar personal-keybindings)))
+ (push (list ,kdescvar ,command
+ (unless (numberp ,bindingvar) ,bindingvar))
+ personal-keybindings)
(define-key (or ,keymap global-map) ,keyvar ,command))))
(defmacro unbind-key (key-name &optional keymap)