diff options
author | Karoly Lorentey <lorentey@elte.hu> | 2005-09-11 06:42:03 +0000 |
---|---|---|
committer | Karoly Lorentey <lorentey@elte.hu> | 2005-09-11 06:42:03 +0000 |
commit | 256c9c3a61a5a2c5d394277f5b0f25adb453771d (patch) | |
tree | 897024a7092e469356b80c07dae3dbeb045d7e7c /src/keyboard.h | |
parent | ee0bcfbce6e8f7055f483976a68b33a2bdd46d14 (diff) | |
download | emacs-256c9c3a61a5a2c5d394277f5b0f25adb453771d.tar.gz |
Fix crash after y-or-n-p prompt triggered by emacsclient. (Reported by Han Boetes, analysis by Kalle Olavi Niemitalo.)
* src/keyboard.c (temporarily_switch_to_single_kboard)
(record_single_kboard_state, restore_kboard_configuration): New functions.
(timer_check): Use record_single_kboard_state instead of
naive single_kboard state management.
* src/fns.c: Include termhooks.h.
(Fy_or_n_p): Use temporarily_switch_to_single_kboard to prevent crashes
caused by bogus longjmps in read_char.
* src/callint.c (Fcall_interactively): Use
temporarily_switch_to_single_kboard instead of single_kboard_state.
Make sure it is correctly unwinded.
* src/keyboard.c (recursive_edit_unwind): Remove single_kboard stuff.
(Frecursive_edit): Use temporarily_switch_to_single_kboard for
single_kboard state management.
* src/minibuf.c (read_minibuf): Use temporarily_switch_to_single_kboard
instead of simply calling single_kboard_state.
* src/keyboard.c (push_device_kboard): Remove function.
(push_kboard): New function.
(push_frame_kboard): Use it.
(pop_frame_kboard): Rename to pop_kboard.
* src/xdisp.c (display_mode_line, Fformat_mode_line): Update uses.
* src/data.c: Include termhooks.h.
(Fterminal_local_value, Fset_terminal_local_value): Update.
* src/Makefile.in (data.o, fns.o): Add termhooks.h dependency.
* src/keyboard.h (push_device_kboard, pop_frame_kboard): Remove declarations.
(push_kboard, pop_kboard, temporarily_switch_to_single_kboard)
(record_single_kboard_state): New declarations.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-414
Diffstat (limited to 'src/keyboard.h')
-rw-r--r-- | src/keyboard.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/keyboard.h b/src/keyboard.h index 0063922787f..690cb9cb177 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -319,9 +319,11 @@ extern void init_kboard P_ ((KBOARD *)); extern void delete_kboard P_ ((KBOARD *)); extern void single_kboard_state P_ ((void)); extern void not_single_kboard_state P_ ((KBOARD *)); -extern void push_device_kboard P_ ((struct device *)); +extern void push_kboard P_ ((struct kboard *)); extern void push_frame_kboard P_ ((struct frame *)); -extern void pop_frame_kboard P_ ((void)); +extern void pop_kboard P_ ((void)); +extern void temporarily_switch_to_single_kboard P_ ((struct kboard *)); +extern void record_single_kboard_state P_ ((void)); extern void record_asynch_buffer_change P_ ((void)); extern SIGTYPE input_poll_signal P_ ((int)); extern void start_polling P_ ((void)); |