]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix tmm-get-keymap under native-compile
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 9 Aug 2021 13:19:45 +0000 (15:19 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 9 Aug 2021 13:19:45 +0000 (15:19 +0200)
* lisp/tmm.el (tmm-get-keymap): Make this work under
natively-compiled Emacsen (and with lexical binding, too) (bug#49953).

lisp/tmm.el

index 71082bd2f4be4f69d13347b56912d4c34d47d800..0d8c22d871746f6d8b65af2b108f4abe71f2df17 100644 (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))))