aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2018-03-29 09:11:22 -0400
committerStefan Monnier2018-03-29 09:11:22 -0400
commit9ad3560db6b67777bc8f9b370e053b6a19a7501f (patch)
tree85c264c182cc14b3e63ae79124859695c1b813e7 /src
parent9ea56457f5a4bbc7551636023c4cd1cede590bc3 (diff)
downloademacs-9ad3560db6b67777bc8f9b370e053b6a19a7501f.tar.gz
emacs-9ad3560db6b67777bc8f9b370e053b6a19a7501f.zip
* src/keyboard.c (record_char, read_key_sequence): Copy raw events
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 044e3fac693..c0c863f0d3e 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -3258,7 +3258,10 @@ record_char (Lisp_Object c)
3258 if (!recorded) 3258 if (!recorded)
3259 { 3259 {
3260 total_keys += total_keys < NUM_RECENT_KEYS; 3260 total_keys += total_keys < NUM_RECENT_KEYS;
3261 ASET (recent_keys, recent_keys_index, c); 3261 ASET (recent_keys, recent_keys_index,
3262 /* Copy the event, in case it gets modified by side-effect
3263 by some remapping function (bug#30955). */
3264 CONSP (c) ? Fcopy_sequence (c) : c);
3262 if (++recent_keys_index >= NUM_RECENT_KEYS) 3265 if (++recent_keys_index >= NUM_RECENT_KEYS)
3263 recent_keys_index = 0; 3266 recent_keys_index = 0;
3264 } 3267 }
@@ -9296,7 +9299,10 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9296 } 9299 }
9297 9300
9298 GROW_RAW_KEYBUF; 9301 GROW_RAW_KEYBUF;
9299 ASET (raw_keybuf, raw_keybuf_count, key); 9302 ASET (raw_keybuf, raw_keybuf_count,
9303 /* Copy the event, in case it gets modified by side-effect
9304 by some remapping function (bug#30955). */
9305 CONSP (key) ? Fcopy_sequence (key) : key);
9300 raw_keybuf_count++; 9306 raw_keybuf_count++;
9301 } 9307 }
9302 9308
@@ -9343,9 +9349,6 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9343 && BUFFERP (XWINDOW (window)->contents) 9349 && BUFFERP (XWINDOW (window)->contents)
9344 && XBUFFER (XWINDOW (window)->contents) != current_buffer) 9350 && XBUFFER (XWINDOW (window)->contents) != current_buffer)
9345 { 9351 {
9346 GROW_RAW_KEYBUF;
9347 ASET (raw_keybuf, raw_keybuf_count, key);
9348 raw_keybuf_count++;
9349 keybuf[t] = key; 9352 keybuf[t] = key;
9350 mock_input = t + 1; 9353 mock_input = t + 1;
9351 9354