# HG changeset patch # User Stefan Monnier # Date 1229832826 0 # Node ID c236484e9c94c887009e62a34efe3f540c5fbc7d # Parent c8e80afb3a4771deccdcf9b378b9bc0d5d8fb27d (cmd_error_internal): Don't exit in daemon mode, bug#1310. diff -r c8e80afb3a47 -r c236484e9c94 src/ChangeLog --- a/src/ChangeLog Sun Dec 21 01:53:52 2008 +0000 +++ b/src/ChangeLog Sun Dec 21 04:13:46 2008 +0000 @@ -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 -r c8e80afb3a47 -r c236484e9c94 src/keyboard.c --- a/src/keyboard.c Sun Dec 21 01:53:52 2008 +0000 +++ b/src/keyboard.c Sun Dec 21 04:13:46 2008 +0000 @@ -1265,7 +1265,18 @@ /* 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,