From 5e252df23484d60af95fb3efce226971c2e988d4 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 21 Dec 2008 04:13:46 +0000 Subject: [PATCH] (cmd_error_internal): Don't exit in daemon mode, bug#1310. --- src/ChangeLog | 4 ++++ src/keyboard.c | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index bd37f3528fd..ae758b60dcf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2008-12-21 Stefan Monnier + + * keyboard.c (cmd_error_internal): Don't exit in daemon mode, bug#1310. + 2008-12-20 Jason Rumney * frame.c (Fmake_terminal_frame): Raise an error when called from diff --git a/src/keyboard.c b/src/keyboard.c index 1d2f4eb7a9a..6f6b094e88c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1265,7 +1265,18 @@ cmd_error_internal (data, context) /* If the window system or terminal frame hasn't been initialized yet, or we're not interactive, write the message to stderr and exit. */ else if (!sf->glyphs_initialized_p - || FRAME_INITIAL_P (sf) + /* We used to check if "This is the case of the frame dumped with + Emacs, when we're running under a window system" with + || (!NILP (Vwindow_system) && !inhibit_window_system + && FRAME_TERMCAP_P (sf)) + then the multi-tty code generalized this check to + || FRAME_INITIAL_P (sf) + but this leads to undesirable behavior in daemon mode where + we don't want to exit just because we got an error without + having a frame (bug#1310). + So I just removed the check, and rely instead on the `message_*' + functions properly using FRAME_INITIAL_P. In the worst case + this should just make Emacs not exit when it should. */ || noninteractive) { print_error_message (data, Qexternal_debugging_output, -- 2.39.2