diff options
| author | Paul Eggert | 2012-09-22 00:34:52 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-09-22 00:34:52 -0700 |
| commit | 01108e3f4567db222a7e6e2ed9c484506b491dba (patch) | |
| tree | 7d9e97fc0ec3c59d980d94421dd18fd8a71805fb /src | |
| parent | 471333800df6aefbdc4044a39b1808c1d01404d5 (diff) | |
| download | emacs-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/ChangeLog | 6 | ||||
| -rw-r--r-- | src/emacs.c | 9 |
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 @@ | |||
| 1 | 2012-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 | |||
| 1 | 2012-09-22 Chong Yidong <cyd@gnu.org> | 7 | 2012-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 |