Commit 0dad7c6f authored by Jason Rumney's avatar Jason Rumney
Browse files

(cmd_error_internal): Exit when errors occur before

frame creation and not in daemon mode.  (Bug#1836)
parent 6fcec85e
2009-01-11 Jason Rumney <jasonr@gnu.org>
* keyboard.c (cmd_error_internal): Exit when errors occur before
frame creation and not in daemon mode. (Bug#1836)
2009-01-10 Chong Yidong <cyd@stupidchicken.com> 2009-01-10 Chong Yidong <cyd@stupidchicken.com>
   
* xdisp.c (pos_visible_p): When iterator stops on the last glyph * xdisp.c (pos_visible_p): When iterator stops on the last glyph
......
...@@ -1265,18 +1265,17 @@ cmd_error_internal (data, context) ...@@ -1265,18 +1265,17 @@ cmd_error_internal (data, context)
/* If the window system or terminal frame hasn't been initialized /* If the window system or terminal frame hasn't been initialized
yet, or we're not interactive, write the message to stderr and exit. */ yet, or we're not interactive, write the message to stderr and exit. */
else if (!sf->glyphs_initialized_p else if (!sf->glyphs_initialized_p
/* We used to check if "This is the case of the frame dumped with /* The initial frame is a special non-displaying frame. It
Emacs, when we're running under a window system" with will be current in daemon mode when there are no frames
|| (!NILP (Vwindow_system) && !inhibit_window_system to display, and in non-daemon mode before the real frame
&& FRAME_TERMCAP_P (sf)) has finished initializing. If an error is thrown in the
then the multi-tty code generalized this check to latter case while creating the frame, then the frame
|| FRAME_INITIAL_P (sf) will never be displayed, so the safest thing to do is
but this leads to undesirable behavior in daemon mode where write to stderr and quit. In daemon mode, there are
we don't want to exit just because we got an error without many other potential errors that do not prevent frames
having a frame (bug#1310). from being created, so continuing as normal is better in
So I just removed the check, and rely instead on the `message_*' that case. */
functions properly using FRAME_INITIAL_P. In the worst case || (!IS_DAEMON && FRAME_INITIAL_P (sf))
this should just make Emacs not exit when it should. */
|| noninteractive) || noninteractive)
{ {
print_error_message (data, Qexternal_debugging_output, print_error_message (data, Qexternal_debugging_output,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment