changeset 83252:6e0f153725ab

Fix compilation error with GTK, fix issues with double C-g on controlling tty. (Reported by Friedrich Delgado Friedrichs, Yoshiaki Kasahara.) * src/keyboard.c (interrupt_signal, handle_interrupt): Move thread check to interrupt_signal. Check for frame on controlling tty instead of current selected frame in handle_interrupt. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-292
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 12 Feb 2005 15:11:25 +0000
parents de637975e99a
children c0215e820840
files src/keyboard.c
diffstat 1 files changed, 10 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Thu Feb 10 21:23:33 2005 +0000
+++ b/src/keyboard.c	Sat Feb 12 15:11:25 2005 +0000
@@ -10307,9 +10307,9 @@
 
 /* The SIGINT handler.
 
-   If we have a frame on the controlling tty, the SIGINT was generated
-   by C-g, so we call handle_interrupt.  Otherwise, the handler kills
-   Emacs.  */
+   If we have a frame on the controlling tty, we assume that the
+   SIGINT was generated by C-g, so we call handle_interrupt.
+   Otherwise, the handler kills Emacs.  */
 
 static SIGTYPE
 interrupt_signal (signalnum)	/* If we don't have an argument, */
@@ -10326,6 +10326,8 @@
   signal (SIGQUIT, interrupt_signal);
 #endif /* USG */
 
+  SIGNAL_THREAD_CHECK (signalnum);
+
   /* See if we have an active display on our controlling terminal. */
   display = get_named_tty_display (NULL);
   if (!display)
@@ -10365,14 +10367,15 @@
 handle_interrupt ()
 {
   char c;
-  struct frame *sf = SELECTED_FRAME ();
-
-  SIGNAL_THREAD_CHECK (signalnum);
+
   cancel_echoing ();
 
   /* XXX This code needs to be revised for multi-tty support. */
   if (!NILP (Vquit_flag)
-      && (FRAME_TERMCAP_P (sf) || FRAME_MSDOS_P (sf)))
+#ifndef MSDOS
+      && get_named_tty_display (NULL)
+#endif
+      )
     {
       /* If SIGINT isn't blocked, don't let us be interrupted by
 	 another SIGINT, it might be harmful due to non-reentrancy