mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-06 20:29:36 +00:00
bind-key: Use new symbols for kmapvar
This commit is contained in:
parent
a248658910
commit
ec750952f4
1 changed files with 7 additions and 4 deletions
|
@ -168,16 +168,19 @@ or operates on menu data structures, so you should write it so it
|
||||||
can safely be called at any time."
|
can safely be called at any time."
|
||||||
(let ((namevar (make-symbol "name"))
|
(let ((namevar (make-symbol "name"))
|
||||||
(keyvar (make-symbol "key"))
|
(keyvar (make-symbol "key"))
|
||||||
|
(kmapvar (make-symbol "kmap"))
|
||||||
(kdescvar (make-symbol "kdesc"))
|
(kdescvar (make-symbol "kdesc"))
|
||||||
(bindingvar (make-symbol "binding")))
|
(bindingvar (make-symbol "binding")))
|
||||||
`(let* ((,namevar ,key-name)
|
`(let* ((,namevar ,key-name)
|
||||||
(,keyvar (if (vectorp ,namevar) ,namevar
|
(,keyvar (if (vectorp ,namevar) ,namevar
|
||||||
(read-kbd-macro ,namevar)))
|
(read-kbd-macro ,namevar)))
|
||||||
(kmap (if (and ,keymap (symbolp ,keymap)) (symbol-value ,keymap) ,keymap))
|
(,kmapvar (or (if (and ,keymap (symbolp ,keymap))
|
||||||
|
(symbol-value ,keymap) ,keymap)
|
||||||
|
global-map))
|
||||||
(,kdescvar (cons (if (stringp ,namevar) ,namevar
|
(,kdescvar (cons (if (stringp ,namevar) ,namevar
|
||||||
(key-description ,namevar))
|
(key-description ,namevar))
|
||||||
(if (symbolp ,keymap) ,keymap (quote ,keymap))))
|
(if (symbolp ,keymap) ,keymap (quote ,keymap))))
|
||||||
(,bindingvar (lookup-key (or kmap global-map) ,keyvar)))
|
(,bindingvar (lookup-key ,kmapvar ,keyvar)))
|
||||||
(let ((entry (assoc ,kdescvar personal-keybindings))
|
(let ((entry (assoc ,kdescvar personal-keybindings))
|
||||||
(details (list ,command
|
(details (list ,command
|
||||||
(unless (numberp ,bindingvar)
|
(unless (numberp ,bindingvar)
|
||||||
|
@ -186,11 +189,11 @@ can safely be called at any time."
|
||||||
(setcdr entry details)
|
(setcdr entry details)
|
||||||
(add-to-list 'personal-keybindings (cons ,kdescvar details))))
|
(add-to-list 'personal-keybindings (cons ,kdescvar details))))
|
||||||
,(if predicate
|
,(if predicate
|
||||||
`(define-key (or kmap global-map) ,keyvar
|
`(define-key ,kmapvar ,keyvar
|
||||||
'(menu-item "" nil :filter (lambda (&optional _)
|
'(menu-item "" nil :filter (lambda (&optional _)
|
||||||
(when ,predicate
|
(when ,predicate
|
||||||
,command))))
|
,command))))
|
||||||
`(define-key (or kmap global-map) ,keyvar ,command)))))
|
`(define-key ,kmapvar ,keyvar ,command)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defmacro unbind-key (key-name &optional keymap)
|
(defmacro unbind-key (key-name &optional keymap)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue