changeset 34755:1e3d0f2d1145

(where_is_internal): Check ascii_sequence_p rather than excluding menu-bar and tool-bar. (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache. (menu_item_p): Remove. (where_is_internal_1): Don't ignore menu-items.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 20 Dec 2000 22:46:39 +0000
parents d863c71dcd08
children 771465e672d6
files src/keymap.c
diffstat 1 files changed, 8 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/src/keymap.c	Wed Dec 20 21:37:27 2000 +0000
+++ b/src/keymap.c	Wed Dec 20 22:46:39 2000 +0000
@@ -2035,15 +2035,6 @@
 static Lisp_Object where_is_internal_1 ();
 static void where_is_internal_2 ();
 
-static INLINE int
-menu_item_p (item)
-     Lisp_Object item;
-{
-  return (CONSP (item)
-	  && (EQ (XCAR (item),Qmenu_item)
-	      || STRINGP (XCAR (item))));
-}
-
 /* Like Flookup_key, but uses a list of keymaps SHADOW instead of a single map.
    Returns the first non-nil binding found in any of those maps.  */
 
@@ -2105,14 +2096,12 @@
       last_is_meta = (XINT (last) >= 0
 		      && EQ (Faref (this, last), meta_prefix_char));
 
-      if (nomenus && XINT (last) >= 0)
-	{ /* If no menu entries should be returned, skip over the
-	     keymaps bound to `menu-bar' and `tool-bar'.  */
-	  Lisp_Object tem = Faref (this, make_number (0));
-	  if (EQ (tem, Qmenu_bar) || EQ (tem, Qtool_bar))
-	    continue;
-	}
-
+      if (nomenus && !ascii_sequence_p (this))
+	/* If no menu entries should be returned, skip over the
+	   keymaps bound to `menu-bar' and `tool-bar' and other
+	   non-ascii prefixes.  */
+	continue;
+      
       QUIT;
 
       while (CONSP (map))
@@ -2296,7 +2285,8 @@
       for (sequences = Fnreverse (sequences);
 	   CONSP (sequences);
 	   sequences = XCDR (sequences))
-	if (EQ (shadow_lookup (keymaps, XCAR (sequences), Qnil), definition))
+	if (EQ (shadow_lookup (keymaps, XCAR (sequences), Qnil), definition)
+	    && ascii_sequence_p (XCAR (sequences)))
 	  RETURN_UNGCPRO (XCAR (sequences));
       RETURN_UNGCPRO (Qnil);
     }
@@ -2358,10 +2348,6 @@
 {
   Lisp_Object sequence;
 
-  /* Skip left-over menu-items.
-     These can appear in a keymap bound to a mouse click, for example.  */
-  if (nomenus && menu_item_p (binding))
-    return Qnil;
   /* Search through indirections unless that's not wanted.  */
   if (NILP (noindirect))
     binding = get_keyelt (binding, 0);