changeset 59052:e108ef5b9044

(kbd_buffer_store_event_hold): In the code for while-no-input, handle immediate_quit.
author Richard M. Stallman <rms@gnu.org>
date Tue, 21 Dec 2004 11:34:42 +0000
parents a5dd77dcb82e
children 36d7c274dcef
files src/keyboard.c
diffstat 1 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Tue Dec 21 11:33:57 2004 +0000
+++ b/src/keyboard.c	Tue Dec 21 11:34:42 2004 +0000
@@ -3711,13 +3711,23 @@
       ++kbd_store_ptr;
     }
 
-  /* If we're in a section that requested to be interrupted as soon
-     as input comes, then set quit-flag to cause an interrupt.  */
+  /* If we're inside while-no-input, and this event qualifies
+     as input, set quit-flag to cause an interrupt.  */
   if (!NILP (Vthrow_on_input)
       && event->kind != FOCUS_IN_EVENT
       && event->kind != HELP_EVENT
       && event->kind != DEICONIFY_EVENT)
-    Vquit_flag = Vthrow_on_input;
+    {
+      Vquit_flag = Vthrow_on_input;
+      /* If we're inside a function that wants immediate quits,
+	 do it now.  */
+      if (immediate_quit && NILP (Vinhibit_quit))
+	{
+	  immediate_quit = 0;
+	  sigfree ();
+	  QUIT;
+	}
+    }
 }