diff options
| author | Jim Porter <jporterbugs@gmail.com> | 2025-08-15 13:44:03 -0700 |
|---|---|---|
| committer | Jim Porter <jporterbugs@gmail.com> | 2026-05-17 17:24:10 -0700 |
| commit | e381cf1fc97fc1c0bab1816476dd6f73a628b238 (patch) | |
| tree | 8a970428ed6b7ea846238ff83b3b7bddd315041f /java/org/gnu/emacs/EmacsDialogButtonLayout.java | |
| parent | a557bf69b49ada1e777f9f031e975ce15ccbc2e7 (diff) | |
Allow child processes to continue after EPIPE
This ensures that if the child process closed its stdin and Emacs tries
to write to it, the process can still do any remaining work and exit
normally. In practice, this can occur with commands like "head(1)"
(bug#79079).
* src/fileio.c (file_for_stream): New function, extracted from...
(Fset_binary_mode): ... here.
(Ffile__close_stream): New function.
* src/process.c (send_process): When encountering EPIPE, only close the
fd for the pipe to the child process's stdin.
* lisp/eshell/esh-io.el (eshell-output-object-to-target): Don't check
for process liveness anymore.
* test/src/process-tests.el (process-tests/broken-pipe): New function.
(process-tests/broken-pipe/pipe, process-tests/broken-pipe/pty)
(process-tests/broken-pipe/pipe-stdin)
(process-tests/broken-pipe/pty-stdin): New tests.
* etc/NEWS: Announce this change.
Diffstat (limited to 'java/org/gnu/emacs/EmacsDialogButtonLayout.java')
0 files changed, 0 insertions, 0 deletions
