aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog6
-rw-r--r--src/keyboard.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 87133535e97..38af1d83a6d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12015-02-19 Eli Zaretskii <eliz@gnu.org>
2
3 * keyboard.c (read_char): Make sure this_single_command_key_start
4 is in sync with this_command_key_count, around the call to
5 input-method-function. (Bug#19774)
6
12015-02-19 Fujii Hironori <fujii.hironori@gmail.com> (tiny change) 72015-02-19 Fujii Hironori <fujii.hironori@gmail.com> (tiny change)
2 8
3 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the 9 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the
diff --git a/src/keyboard.c b/src/keyboard.c
index 4f6a4414a04..ab57553e7d3 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -3034,6 +3034,7 @@ read_char (int commandflag, Lisp_Object map,
3034 Lisp_Object keys; 3034 Lisp_Object keys;
3035 ptrdiff_t key_count; 3035 ptrdiff_t key_count;
3036 bool key_count_reset; 3036 bool key_count_reset;
3037 ptrdiff_t command_key_start;
3037 struct gcpro gcpro1; 3038 struct gcpro gcpro1;
3038 ptrdiff_t count = SPECPDL_INDEX (); 3039 ptrdiff_t count = SPECPDL_INDEX ();
3039 3040
@@ -3057,6 +3058,7 @@ read_char (int commandflag, Lisp_Object map,
3057 /* Save the this_command_keys status. */ 3058 /* Save the this_command_keys status. */
3058 key_count = this_command_key_count; 3059 key_count = this_command_key_count;
3059 key_count_reset = this_command_key_count_reset; 3060 key_count_reset = this_command_key_count_reset;
3061 command_key_start = this_single_command_key_start;
3060 3062
3061 if (key_count > 0) 3063 if (key_count > 0)
3062 keys = Fcopy_sequence (this_command_keys); 3064 keys = Fcopy_sequence (this_command_keys);
@@ -3067,6 +3069,7 @@ read_char (int commandflag, Lisp_Object map,
3067 /* Clear out this_command_keys. */ 3069 /* Clear out this_command_keys. */
3068 this_command_key_count = 0; 3070 this_command_key_count = 0;
3069 this_command_key_count_reset = 0; 3071 this_command_key_count_reset = 0;
3072 this_single_command_key_start = 0;
3070 3073
3071 /* Now wipe the echo area. */ 3074 /* Now wipe the echo area. */
3072 if (!NILP (echo_area_buffer[0])) 3075 if (!NILP (echo_area_buffer[0]))
@@ -3090,6 +3093,7 @@ read_char (int commandflag, Lisp_Object map,
3090 and this_command_keys state. */ 3093 and this_command_keys state. */
3091 this_command_key_count = key_count; 3094 this_command_key_count = key_count;
3092 this_command_key_count_reset = key_count_reset; 3095 this_command_key_count_reset = key_count_reset;
3096 this_single_command_key_start = command_key_start;
3093 if (key_count > 0) 3097 if (key_count > 0)
3094 this_command_keys = keys; 3098 this_command_keys = keys;
3095 3099