From 8eca8a7c4885c27af36f52320185dbcae5f693e0 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 23 Sep 2011 11:56:55 +0200 Subject: [PATCH] * src/emacs.c (Fkill_emacs): In noninteractive mode exit non-successfully if a write error occurred on stdout. (Bug#9574) --- src/ChangeLog | 5 +++++ src/emacs.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index dff41f1dbbf..44a76068313 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-09-23 Andreas Schwab + + * emacs.c (Fkill_emacs): In noninteractive mode exit + non-successfully if a write error occurred on stdout. (Bug#9574) + 2011-09-21 Eli Zaretskii * xdisp.c (pop_it): Allow it->object that is a cons cell to pass diff --git a/src/emacs.c b/src/emacs.c index 321e7919c93..0a684d4423c 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1993,6 +1993,7 @@ all of which are called before Emacs is actually killed. */) { struct gcpro gcpro1; Lisp_Object hook; + int exit_code; GCPRO1 (arg); @@ -2017,7 +2018,10 @@ all of which are called before Emacs is actually killed. */) if (STRINGP (Vauto_save_list_file_name)) unlink (SSDATA (Vauto_save_list_file_name)); - exit (INTEGERP (arg) ? XINT (arg) : EXIT_SUCCESS); + exit_code = EXIT_SUCCESS; + if (noninteractive && fflush (stdout)) + exit_code = EXIT_FAILURE; + exit (INTEGERP (arg) ? XINT (arg) : exit_code); } -- 2.11.4.GIT