changeset 100622:c236484e9c94

(cmd_error_internal): Don't exit in daemon mode, bug#1310.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 21 Dec 2008 04:13:46 +0000
parents c8e80afb3a47
children 5a144164af93
files src/ChangeLog src/keyboard.c
diffstat 2 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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  <monnier@iro.umontreal.ca>
+
+	* keyboard.c (cmd_error_internal): Don't exit in daemon mode, bug#1310.
+
 2008-12-20  Jason Rumney  <jasonr@gnu.org>
 
 	* frame.c (Fmake_terminal_frame): Raise an error when called from
--- 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,