diff src/lisp.h @ 58932:ce2e33a2adae

(QUIT): Check for Vthrow_on_input. (Vthrow_on_input): Declare it.
author Richard M. Stallman <rms@gnu.org>
date Mon, 13 Dec 2004 18:56:52 +0000
parents f8cddae7d959
children a38c7bcb8e1a fb79180b618d
line wrap: on
line diff
--- a/src/lisp.h	Mon Dec 13 14:27:56 2004 +0000
+++ b/src/lisp.h	Mon Dec 13 18:56:52 2004 +0000
@@ -1768,11 +1768,15 @@
 #ifdef SYNC_INPUT
 extern void handle_async_input P_ ((void));
 extern int interrupt_input_pending;
+
 #define QUIT						\
   do {							\
     if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))	\
       {							\
+        Lisp_Object flag = Vquit_flag;			\
 	Vquit_flag = Qnil;				\
+	if (EQ (Vthrow_on_input, flag))			\
+	  Fthrow (Vthrow_on_input, Qnil);		\
 	Fsignal (Qquit, Qnil);				\
       }							\
     else if (interrupt_input_pending)			\
@@ -1785,7 +1789,10 @@
   do {							\
     if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))	\
       {							\
+        Lisp_Object flag = Vquit_flag;			\
 	Vquit_flag = Qnil;				\
+	if (EQ (Vthrow_on_input, flag))			\
+	  Fthrow (Vthrow_on_input, Qnil);		\
 	Fsignal (Qquit, Qnil);				\
       }							\
   } while (0)
@@ -2876,6 +2883,7 @@
 extern void cancel_echoing P_ ((void));
 extern Lisp_Object Qdisabled, QCfilter;
 extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level;
+extern Lisp_Object Vthrow_on_input;
 extern int input_pending;
 EXFUN (Fdiscard_input, 0);
 EXFUN (Frecursive_edit, 0);