1
0
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:
Lars Ingebrigtsen 2021-08-09 15:19:45 +02:00
parent fbd3207bb2
commit 872ca0ff8e

View File

@ -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))))