summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/tmm.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/tmm.el b/lisp/tmm.el
index b016e8231bf..d294f41d4d2 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -392,16 +392,18 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
(or
(assoc event tmm-table-undef)
(and (if (listp elt)
- (keymapp elt)
+ (or (keymapp elt) (eq (car elt) 'lambda))
(fboundp elt))
(setq km elt))
(and (if (listp (cdr-safe elt))
- (keymapp (cdr-safe elt))
+ (or (keymapp (cdr-safe elt))
+ (eq (car (cdr-safe elt)) 'lambda))
(fboundp (cdr-safe elt)))
(setq km (cdr elt))
(and (stringp (car elt)) (setq str (car elt))))
(and (if (listp (cdr-safe (cdr-safe elt)))
- (keymapp (cdr-safe (cdr-safe elt)))
+ (or (keymapp (cdr-safe (cdr-safe elt)))
+ (eq (car (cdr-safe (cdr-safe elt))) 'lambda))
(fboundp (cdr-safe (cdr-safe elt))))
(setq km (cdr (cdr elt)))
(and (stringp (car elt)) (setq str (car elt)))
@@ -410,7 +412,8 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
(setq cache (cdr (car (cdr elt))))
cache (setq str (concat str cache))) str))
(and (if (listp (cdr-safe (cdr-safe (cdr-safe elt))))
- (keymapp (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))
(fboundp (cdr-safe (cdr-safe (cdr-safe elt)))))
; New style of easy-menu
(setq km (cdr (cdr (cdr elt))))