diff options
| author | Stefan Monnier | 2020-12-12 09:56:04 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2020-12-12 09:56:04 -0500 |
| commit | adbb4eacc2a984c0fc0b65ec761368fd9067d6c5 (patch) | |
| tree | f2496954a664e3c02f01a76b4f22ec1a479fd3d9 /src/thread.h | |
| parent | 7ee0fc0dc1a7cba8a3e965f411aca498a7db3f4f (diff) | |
| download | emacs-adbb4eacc2a984c0fc0b65ec761368fd9067d6c5.tar.gz emacs-adbb4eacc2a984c0fc0b65ec761368fd9067d6c5.zip | |
* src/keyboard.c: Fix bug#5803.
A long time ago, `read_key_sequence` used to read the keymaps at the
start, so if something happened between this start and the moment
the user actually hits a key, `read_key_sequence` could end up using
the wrong keymaps. To work around this problem, the code used
`record_asynch_buffer_change` to try and trigger `read_key_sequence`
to re-read the keymaps in some known cases.
Several years ago, `read_key_sequence` was changed so as to read the keymaps
only once the user hits a key, making this machinery now redundant
(and also harmful apparently in bug#5803 because it introduces
"spurious" events).
So we here remove `record_asynch_buffer_change` and the
`BUFFER_SWITCH_EVENT` and `Qbuffer_switch` pseudo-events it generated.
* src/termhooks.h (enum event_kind): Delete `BUFFER_SWITCH_EVENT`.
* src/keyboard.c: (record_asynch_buffer_change): Delete function.
(syms_of_keyboard): Delete `Qbuffer_switch`.
(force_auto_save_soon, readable_events)
(kbd_buffer_store_buffered_event, kbd_buffer_get_event)
(make_lispy_event):
* src/xterm.c (handle_one_xevent):
* src/w32term.c (w32_read_socket):
* src/process.c (wait_reading_process_output)
(read_and_dispose_of_process_output, exec_sentinel): Simplify accordingly.
Diffstat (limited to 'src/thread.h')
| -rw-r--r-- | src/thread.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/thread.h b/src/thread.h index a09929fa440..9697e49f09f 100644 --- a/src/thread.h +++ b/src/thread.h | |||
| @@ -140,7 +140,6 @@ struct thread_state | |||
| 140 | for user-input when that process-filter was called. | 140 | for user-input when that process-filter was called. |
| 141 | waiting_for_input cannot be used as that is by definition 0 when | 141 | waiting_for_input cannot be used as that is by definition 0 when |
| 142 | lisp code is being evalled. | 142 | lisp code is being evalled. |
| 143 | This is also used in record_asynch_buffer_change. | ||
| 144 | For that purpose, this must be 0 | 143 | For that purpose, this must be 0 |
| 145 | when not inside wait_reading_process_output. */ | 144 | when not inside wait_reading_process_output. */ |
| 146 | int m_waiting_for_user_input_p; | 145 | int m_waiting_for_user_input_p; |