(where_is_internal): Convert a string used as event type into "(any string)".
authorRichard M. Stallman <rms@gnu.org>
Sun, 10 Apr 2005 01:45:58 +0000 (01:45 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 10 Apr 2005 01:45:58 +0000 (01:45 +0000)
src/ChangeLog
src/keymap.c

index feb4351..860c384 100644 (file)
@@ -1,3 +1,17 @@
+2005-04-09  Richard M. Stallman  <rms@gnu.org>
+
+       * keymap.c (where_is_internal): Convert a string used as event type
+       into "(any string)".
+
+       * lread.c (Vloads_in_progress): Not static.
+
+       * fns.c (Vloads_in_progress): Add extern.
+       (Frequire): Don't do LOADHIST_ATTACH if Vloads_in_progress is nil.
+
+2005-04-09  Thien-Thi Nguyen  <ttn@surf.glug.org>
+
+       * dispnew.c (mirror_line_dance): Avoid crash if W2 is null.
+
 2005-04-09  Lute Kamstra  <lute@gnu.org>
 
        * print.c (PRINTPREPARE): Check if the marker PRINTCHARFUN is
index 10ae718..ba31430 100644 (file)
@@ -764,7 +764,9 @@ usage: (map-keymap FUNCTION KEYMAP)  */)
    remove that.  Also remove a menu help string as second element.
 
    If AUTOLOAD is nonzero, load autoloadable keymaps
-   that are referred to with indirection.  */
+   that are referred to with indirection.
+
+   This can GC because menu_item_eval_property calls Feval.  */
 
 Lisp_Object
 get_keyelt (object, autoload)
@@ -2554,6 +2556,19 @@ where_is_internal (definition, keymaps, firstonly, noindirect, no_remap)
                continue;
 
            record_sequence:
+             /* Don't annoy user with strings from a menu such as
+                Select Paste.  Change them all to "(any string)",
+                so that there seems to be only one menu item
+                to report. */
+             if (! NILP (sequence))
+               {
+                 Lisp_Object tem;
+                 tem = Faref (sequence, make_number (XVECTOR (sequence)->size - 1));
+                 if (STRINGP (tem))
+                   Faset (sequence, make_number (XVECTOR (sequence)->size - 1),
+                          build_string ("(any string)"));
+               }
+
              /* It is a true unshadowed match.  Record it, unless it's already
                 been seen (as could happen when inheriting keymaps).  */
              if (NILP (Fmember (sequence, found)))
@@ -2731,7 +2746,7 @@ where_is_internal_2 (args, key, binding)
 }
 
 
-/* This function cannot GC.  */
+/* This function can GC because get_keyelt can.  */
 
 static Lisp_Object
 where_is_internal_1 (binding, key, definition, noindirect, this, last,