aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lisp.h b/src/lisp.h
index e645fbd65a..969923b7cf 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2128,7 +2128,10 @@ extern char *stack_bottom;
Exception: if you set immediate_quit to nonzero,
then the handler that responds to the C-g does the quit itself.
This is a good thing to do around a loop that has no side effects
- and (in particular) cannot call arbitrary Lisp code. */
+ and (in particular) cannot call arbitrary Lisp code.
+
+ If quit-flag is set to `kill-emacs' the SIGINT handler has received
+ a request to exit Emacs when it is safe to do. */
#ifdef SYNC_INPUT
extern void process_pending_signals (void);
@@ -2146,6 +2149,8 @@ extern int pending_signals;
{ \
Lisp_Object flag = Vquit_flag; \
Vquit_flag = Qnil; \
+ if (EQ (flag, Qkill_emacs)) \
+ Fkill_emacs (Qnil); \
if (EQ (Vthrow_on_input, flag)) \
Fthrow (Vthrow_on_input, Qt); \
Fsignal (Qquit, Qnil); \
@@ -3291,6 +3296,7 @@ extern Lisp_Object Qfile_name_handler_alist;
#ifdef FLOAT_CATCH_SIGILL
extern void fatal_error_signal (int);
#endif
+extern Lisp_Object Qkill_emacs;
EXFUN (Fkill_emacs, 1) NO_RETURN;
#if HAVE_SETLOCALE
void fixup_locale (void);