summaryrefslogtreecommitdiff
path: root/src/keyboard.h
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2005-09-11 06:42:03 +0000
committerKaroly Lorentey <lorentey@elte.hu>2005-09-11 06:42:03 +0000
commit256c9c3a61a5a2c5d394277f5b0f25adb453771d (patch)
tree897024a7092e469356b80c07dae3dbeb045d7e7c /src/keyboard.h
parentee0bcfbce6e8f7055f483976a68b33a2bdd46d14 (diff)
downloademacs-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.h6
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));