]> git.eshelyaron.com Git - emacs.git/commitdiff
(where_is_internal): Check ascii_sequence_p rather than
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Dec 2000 22:46:44 +0000 (22:46 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Dec 2000 22:46:44 +0000 (22:46 +0000)
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.

src/ChangeLog
src/keymap.c

index b9794a8566eca1a29d392584b19bfeb9099dfc3c..9fa435c8d9e985df4e69e3072d76d454cd18d00b 100644 (file)
@@ -1,3 +1,11 @@
+2000-12-20  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * keymap.c (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.
+
 2000-12-20  Gerd Moellmann  <gerd@gnu.org>
 
        * xdisp.c (hscroll_window_tree): Take window's min_hscroll
index 52b535e5d1539126d050961043b53feee845bfa4..e015bf92f5db13d4c85b8796796c3ef2e56b891e 100644 (file)
@@ -2035,15 +2035,6 @@ ascii_sequence_p (seq)
 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 @@ where_is_internal (definition, keymaps, firstonly, noindirect)
       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 @@ indirect definition itself.")
       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 @@ where_is_internal_1 (binding, key, definition, noindirect, this, last,
 {
   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);