summaryrefslogtreecommitdiff
path: root/src/lisp.h
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2004-12-13 18:56:52 +0000
committerRichard M. Stallman <rms@gnu.org>2004-12-13 18:56:52 +0000
commitca89ee1d073a0501cc4beec41964243650cd4dc2 (patch)
tree6bf7f1a03f94d6950df5c38a18949fa15824c026 /src/lisp.h
parentacbb23a7c8b602d046af432c8633f66f08aaf1b9 (diff)
downloademacs-ca89ee1d073a0501cc4beec41964243650cd4dc2.tar.gz
(QUIT): Check for Vthrow_on_input.
(Vthrow_on_input): Declare it.
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 3a7ebfac381..3dddd6179b2 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1768,11 +1768,15 @@ extern char *stack_bottom;
#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 @@ extern int interrupt_input_pending;
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 struct kboard *echo_kboard;
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);