• Paul Eggert's avatar
    Handle errno and exit status a bit more carefully. · 4ebbdd67
    Paul Eggert authored
    * 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.
    4ebbdd67
fileio.c 188 KB