aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2012-09-22 00:34:52 -0700
committerPaul Eggert2012-09-22 00:34:52 -0700
commit01108e3f4567db222a7e6e2ed9c484506b491dba (patch)
tree7d9e97fc0ec3c59d980d94421dd18fd8a71805fb /src
parent471333800df6aefbdc4044a39b1808c1d01404d5 (diff)
downloademacs-01108e3f4567db222a7e6e2ed9c484506b491dba.tar.gz
emacs-01108e3f4567db222a7e6e2ed9c484506b491dba.zip
* emacs.c (shut_down_emacs): Don't assume stderr is buffered,
or that fprintf is async-signal-safe. POSIX doesn't require either assumption.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/emacs.c9
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 439b5c06e27..847e065e1c3 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12012-09-22 Paul Eggert <eggert@cs.ucla.edu>
2
3 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
4 or that fprintf is async-signal-safe. POSIX doesn't require
5 either assumption.
6
12012-09-22 Chong Yidong <cyd@gnu.org> 72012-09-22 Chong Yidong <cyd@gnu.org>
2 8
3 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers 9 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
diff --git a/src/emacs.c b/src/emacs.c
index d4b52ab64ea..a483f3848cf 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -27,6 +27,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
27#include <sys/file.h> 27#include <sys/file.h>
28#include <unistd.h> 28#include <unistd.h>
29 29
30#include <ignore-value.h>
31
30#include "lisp.h" 32#include "lisp.h"
31 33
32#ifdef HAVE_WINDOW_SYSTEM 34#ifdef HAVE_WINDOW_SYSTEM
@@ -2012,7 +2014,12 @@ shut_down_emacs (int sig, Lisp_Object stuff)
2012 { 2014 {
2013 reset_all_sys_modes (); 2015 reset_all_sys_modes ();
2014 if (sig && sig != SIGTERM) 2016 if (sig && sig != SIGTERM)
2015 fprintf (stderr, "Fatal error %d: %s", sig, strsignal (sig)); 2017 {
2018 char buf[100];
2019 int buflen = snprintf (buf, sizeof buf, "Fatal error %d: %s",
2020 sig, strsignal (sig));
2021 ignore_value (write (STDERR_FILENO, buf, buflen));
2022 }
2016 } 2023 }
2017 } 2024 }
2018#else 2025#else