diff options
| author | Gerrit Pape <pape@smarden.org> | 2018-09-07 10:34:13 +0200 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-11-19 18:59:50 +0800 |
| commit | 8e43729547b57ab15842dab23215336a353b2ded (patch) | |
| tree | 0fcb4d93dce51cd93520c4270eba9b1227bd275a /src | |
| parent | builtin: Default to mktemp, not tempfile (diff) | |
| download | dash-8e43729547b57ab15842dab23215336a353b2ded.tar.gz dash-8e43729547b57ab15842dab23215336a353b2ded.zip | |
eval: Report I/O error on stdout
ENOSPC as a result of an echo builting failing gives no diagnostic.
Just as other shells, dash sets $? to 1, but aside from terminating
the script, this does not inform the user what the problem is:
zsh:
% echo foo > /dev/full
echo: write error: no space left on device
bash:
$ echo foo > /dev/full
bash: echo: write error: No space left on device
dash:
$ echo foo > /dev/full
[nothing]
Print an error to stderr like the other shells.
Suggested by Roger Leigh.
Signed-off-by: Gerrit Pape <pape@smarden.org>
[reworded the patch description with information from the bug]
Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
Bug-Debian: http://bugs.debian.org/690473
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
| -rw-r--r-- | src/eval.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 6185db4..546ee1b 100644 --- a/src/eval.c +++ b/src/eval.c @@ -952,6 +952,8 @@ evalbltin(const struct builtincmd *cmd, int argc, char **argv, int flags) else status = (*cmd->builtin)(argc, argv); flushall(); + if (outerr(out1)) + warnx("%s: I/O error", commandname); status |= outerr(out1); exitstatus = status; cmddone: |