changeset 21495:8a45c0e518fa

(tmm-get-keymap): Handle `menu-item' menu items.
author Karl Heuer <kwzh@gnu.org>
date Mon, 13 Apr 1998 18:55:05 +0000
parents 34dea67e7854
children 6ec5e85328a9
files lisp/tmm.el
diffstat 1 files changed, 45 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/tmm.el	Mon Apr 13 18:53:08 1998 +0000
+++ b/lisp/tmm.el	Mon Apr 13 18:55:05 1998 +0000
@@ -401,45 +401,51 @@
     (setq elt (cdr elt))
     (if (eq elt 'undefined)
 	(setq tmm-table-undef (cons (cons event nil) tmm-table-undef))
-      (or
-       (assoc event tmm-table-undef)
-       (and (if (listp elt)
-		(or (keymapp elt) (eq (car elt) 'lambda))
-	      (fboundp elt))
-	    (setq km elt))
-       (and (if (listp (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)))
-		(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)))
-	    (or (and str
-		     (stringp (cdr (car (cdr elt)))) ; keyseq cache
-		     (setq cache (cdr (car (cdr elt))))
-		     cache (setq str (concat str cache))) str))
-       (and (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))
-	      (fboundp (cdr-safe (cdr-safe (cdr-safe elt)))))
-					; New style of easy-menu
-	    (setq km (cdr (cdr (cdr elt))))
-	    (and (stringp (car elt)) (setq str (car elt)))
-	    (or (and str
-		     (stringp (cdr (car (cdr (cdr elt))))) ; keyseq cache
-		     (setq cache (cdr (car (cdr (cdr elt)))))
-		     cache (setq str (concat str cache)))
-		str))
-	    (and (stringp event)	; x-popup or x-popup element
-		 (if (or in-x-menu (stringp (car-safe elt)))
-		     (setq str event event nil km elt)
-		   (setq str event event nil km (cons 'keymap elt))
-		   )))
+      (unless (assoc event tmm-table-undef)
+	(cond ((if (listp elt)
+		   (or (keymapp elt) (eq (car elt) 'lambda))
+		 (fboundp elt))
+	       (setq km elt))
+	      ((if (listp (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))))
+	      ((if (listp (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)))
+	       (and str
+		    (stringp (cdr (car (cdr elt)))) ; keyseq cache
+		    (setq cache (cdr (car (cdr elt))))
+		    cache (setq str (concat str cache))))
+	      ((eq (car-safe elt) 'menu-item)
+	       (setq km (nth 2 elt))
+	       (setq str (nth 1 elt))
+	       (and str
+		    (stringp (cdr (car (nth 3 elt)))) ; keyseq cache
+		    (setq cache (cdr (car (nth 3 elt))))
+		    cache
+		    (setq str (concat str cache))))
+	      ((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))
+		 (fboundp (cdr-safe (cdr-safe (cdr-safe elt)))))
+					 ; New style of easy-menu
+	       (setq km (cdr (cdr (cdr elt))))
+	       (and (stringp (car elt)) (setq str (car elt)))
+	       (and str
+		    (stringp (cdr (car (cdr (cdr elt))))) ; keyseq cache
+		    (setq cache (cdr (car (cdr (cdr elt)))))
+		    cache (setq str (concat str cache))))
+	      ((stringp event)		; x-popup or x-popup element
+	       (if (or in-x-menu (stringp (car-safe elt)))
+		   (setq str event event nil km elt)
+		 (setq str event event nil km (cons 'keymap elt))
+		 ))))
       (and km (stringp km) (setq str km))
       ;; Verify that the command is enabled;
       ;; if not, don't mention it.