mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
Fix tmm-get-keymap under native-compile
* lisp/tmm.el (tmm-get-keymap): Make this work under natively-compiled Emacsen (and with lexical binding, too) (bug#49953).
This commit is contained in:
parent
fbd3207bb2
commit
872ca0ff8e
23
lisp/tmm.el
23
lisp/tmm.el
@ -410,23 +410,15 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
|
||||
(if (eq elt 'undefined)
|
||||
(setq tmm-table-undef (cons (cons event nil) tmm-table-undef))
|
||||
(unless (assoc event tmm-table-undef)
|
||||
(cond ((if (listp elt)
|
||||
(or (keymapp elt) (eq (car elt) 'lambda))
|
||||
(and (symbolp elt) (fboundp elt)))
|
||||
(cond ((or (functionp elt) (keymapp elt))
|
||||
(setq km elt))
|
||||
|
||||
((if (listp (cdr-safe elt))
|
||||
(or (keymapp (cdr-safe elt))
|
||||
(eq (car (cdr-safe elt)) 'lambda))
|
||||
(and (symbolp (cdr-safe elt)) (fboundp (cdr-safe elt))))
|
||||
((or (keymapp (cdr-safe elt)) (functionp (cdr-safe elt)))
|
||||
(setq km (cdr elt))
|
||||
(and (stringp (car elt)) (setq str (car elt))))
|
||||
|
||||
((if (listp (cdr-safe (cdr-safe elt)))
|
||||
(or (keymapp (cdr-safe (cdr-safe elt)))
|
||||
(eq (car (cdr-safe (cdr-safe elt))) 'lambda))
|
||||
(and (symbolp (cdr-safe (cdr-safe elt)))
|
||||
(fboundp (cdr-safe (cdr-safe elt)))))
|
||||
((or (keymapp (cdr-safe (cdr-safe elt)))
|
||||
(functionp (cdr-safe (cdr-safe elt))))
|
||||
(setq km (cddr elt))
|
||||
(and (stringp (car elt)) (setq str (car elt))))
|
||||
|
||||
@ -447,11 +439,8 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
|
||||
(if enable
|
||||
(setq km (if (eval enable) km 'ignore))))
|
||||
|
||||
((if (listp (cdr-safe (cdr-safe (cdr-safe elt))))
|
||||
(or (keymapp (cdr-safe (cdr-safe (cdr-safe elt))))
|
||||
(eq (car (cdr-safe (cdr-safe (cdr-safe elt)))) 'lambda))
|
||||
(and (symbolp (cdr-safe (cdr-safe (cdr-safe elt))))
|
||||
(fboundp (cdr-safe (cdr-safe (cdr-safe elt))))))
|
||||
((or (keymapp (cdr-safe (cdr-safe (cdr-safe elt))))
|
||||
(functionp (cdr-safe (cdr-safe (cdr-safe elt)))))
|
||||
; New style of easy-menu
|
||||
(setq km (cdr (cddr elt)))
|
||||
(and (stringp (car elt)) (setq str (car elt))))
|
||||
|
Loading…
Reference in New Issue
Block a user