Handle errno and exit status a bit more carefully.
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 9 Jul 2013 07:04:48 +0000 (00:04 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 9 Jul 2013 07:04:48 +0000 (00:04 -0700)
commit4ebbdd6712c1966406b40d2673464949775cbd7a
tree08667dd241629ca55c2c30ce19777bd7ec107cfa
parent584ee3fc72260acb3cc83f4d1a047b733a08ca17
Handle errno and exit status a bit more carefully.

* lib/ignore-value.h: Remove this gnulib-imported file.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Remove ignore-value.
* src/callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
number into an exit status.  Instead, use EXIT_CANCELED.
(child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
* src/callproc.c (relocate_fd):
* src/emacs.c (close_output_streams, main):
* src/process.c (create_process):
* src/sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
Use emacs_perror for simplicity.
* src/callproc.c (relocate_fd, main):
* src/sysdep.c (sys_subshell):
Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
(shut_down_emacs): Use emacs_write, not write.
* src/emacs.c, src/sysdep.c: Don't include <ignore-value.h>.
* src/fileio.c (Fcopy_file, e_write):
* src/nsterm.m (ns_select):
* src/process.c (send_process):
* src/sound.c (vox_write):
Use emacs_write_sig, not emacs_write.
* src/lisp.h (emacs_write_sig, emacs_perror): New decls.
* src/process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
New constants.
* src/sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
of write.
(emacs_full_write): New function.
(emacs_write): Rewrite to use it.
(emacswrite_sig, emacs_perror): New functions.
* src/xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
17 files changed:
ChangeLog
admin/ChangeLog
admin/merge-gnulib
lib/gnulib.mk
lib/ignore-value.h [deleted file]
m4/gnulib-comp.m4
src/ChangeLog
src/callproc.c
src/emacs.c
src/fileio.c
src/lisp.h
src/nsterm.m
src/process.c
src/process.h
src/sound.c
src/sysdep.c
src/xrdb.c