emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/keyboard.c,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/src/keyboard.c,v
Date: Tue, 09 Sep 2008 18:16:49 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      08/09/09 18:16:48

Index: keyboard.c
===================================================================
RCS file: /sources/emacs/emacs/src/keyboard.c,v
retrieving revision 1.972
retrieving revision 1.973
diff -u -b -r1.972 -r1.973
--- keyboard.c  6 Sep 2008 17:22:05 -0000       1.972
+++ keyboard.c  9 Sep 2008 18:16:48 -0000       1.973
@@ -9154,16 +9154,10 @@
   orig_keymap = get_local_map (PT, current_buffer, Qkeymap);
   from_string = Qnil;
 
-  /* The multi-tty merge moved the code below to right after
-   `replay_sequence' which caused all these translation maps to be applied
-   repeatedly, even tho their doc says very clearly they are not applied to
-   their own output.
-   The reason for this move was: "We may switch keyboards between rescans,
-   so we need to reinitialize fkey and keytran before each replay".
-   This move was wrong (even if we switch keyboards, keybuf still holds the
-   keys we've read already from the original keyboard and some of those keys
-   may have already been translated).  So there may still be a bug out there
-   lurking.  */
+  /* We jump here when we need to reinitialize fkey and keytran; this
+     happens if we switch keyboards between rescans.  */
+ replay_entire_sequence:
+
   indec.map = indec.parent = current_kboard->Vinput_decode_map;
   fkey.map = fkey.parent = current_kboard->Vlocal_function_key_map;
   keytran.map = keytran.parent = Vkey_translation_map;
@@ -9360,7 +9354,7 @@
                    /* Don't touch interrupted_kboard when it's been
                       deleted. */
                    delayed_switch_frame = Qnil;
-                   goto replay_sequence;
+                   goto replay_entire_sequence;
                  }
 
                if (!NILP (delayed_switch_frame))
@@ -9392,7 +9386,7 @@
                mock_input = 0;
                orig_local_map = get_local_map (PT, current_buffer, Qlocal_map);
                orig_keymap = get_local_map (PT, current_buffer, Qkeymap);
-               goto replay_sequence;
+               goto replay_entire_sequence;
              }
          }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]