aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii1997-01-16 13:12:51 +0000
committerEli Zaretskii1997-01-16 13:12:51 +0000
commit31e4e97b5b01a2f37c1d3a4f6241d954dac34de4 (patch)
treead8b1cefbbf5a967f79743fcc25c03d7f44c9bd7 /src
parent417a04bb0406f9fb5f2bba9f294bf380de64fa41 (diff)
downloademacs-31e4e97b5b01a2f37c1d3a4f6241d954dac34de4.tar.gz
emacs-31e4e97b5b01a2f37c1d3a4f6241d954dac34de4.zip
* (interrupt_signal): Make emergency exit work on MSDOS
frames. Block further SIGINTs while `interrupt_signal' runs.
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index ebe32821a28..c0f46fbad13 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -7462,11 +7462,17 @@ interrupt_signal (signalnum) /* If we don't have an argument, */
7462 7462
7463 cancel_echoing (); 7463 cancel_echoing ();
7464 7464
7465 if (!NILP (Vquit_flag) && FRAME_TERMCAP_P (selected_frame)) 7465 if (!NILP (Vquit_flag)
7466 && (FRAME_TERMCAP_P (selected_frame) || FRAME_MSDOS_P (selected_frame)))
7466 { 7467 {
7468 /* If SIGINT isn't blocked, don't let us be interrupted by
7469 another SIGINT, it might be harmful due to non-reentrancy
7470 in I/O functions. */
7471 sigblock (sigmask (SIGINT));
7472
7467 fflush (stdout); 7473 fflush (stdout);
7468 reset_sys_modes (); 7474 reset_sys_modes ();
7469 sigfree (); 7475
7470#ifdef SIGTSTP /* Support possible in later USG versions */ 7476#ifdef SIGTSTP /* Support possible in later USG versions */
7471/* 7477/*
7472 * On systems which can suspend the current process and return to the original 7478 * On systems which can suspend the current process and return to the original
@@ -7545,6 +7551,7 @@ interrupt_signal (signalnum) /* If we don't have an argument, */
7545#endif /* not MSDOS */ 7551#endif /* not MSDOS */
7546 fflush (stdout); 7552 fflush (stdout);
7547 init_sys_modes (); 7553 init_sys_modes ();
7554 sigfree ();
7548 } 7555 }
7549 else 7556 else
7550 { 7557 {