diff options
author | Alan Mackenzie <acm@muc.de> | 2017-11-20 18:05:33 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2017-11-20 18:08:43 +0000 |
commit | 5b5f441ff8986800aa5f175bb5db2dd90e642a3a (patch) | |
tree | f293bf9b7af092d518185b680e1522c9899b8d61 /test/lisp/emacs-lisp | |
parent | 9c6791afcd2b60f069494031ef64a5aac70ca3f8 (diff) | |
download | emacs-5b5f441ff8986800aa5f175bb5db2dd90e642a3a.tar.gz emacs-5b5f441ff8986800aa5f175bb5db2dd90e642a3a.tar.bz2 emacs-5b5f441ff8986800aa5f175bb5db2dd90e642a3a.zip |
read_key_sequence: correct the handling of raw_keybuf in recursive calls
This fixes bug #29349.
* src/keyboard.c (raw_keybuf_buffer, raw_keybuf_count_buffer): New variables
pointed to by ...
(raw_keybuf, raw_keybuf_count): Variables converted to pointers.
(GROW_RAW_KEYBUF): enhance with a length argument.
(command_loop_1): Initialize the above two pointers to their canonical values.
(read_key_sequence): In recursive calls (for menus) the function was
overwriting the raw event buffer of the outer call. Correct this by
introducing a local buffer for each level of call, and setting this up to be
used by the call to read_char. Any contents of this local buffer are appended
to the global buffer afterwards.
Diffstat (limited to 'test/lisp/emacs-lisp')
0 files changed, 0 insertions, 0 deletions