From: Gerrit Pape <[email protected]>
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 <[email protected]>
[reworded the patch description with information from the bug]
Signed-off-by: Andrej Shadura <[email protected]>
Bug-Debian: http://bugs.debian.org/690473
---
src/eval.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/eval.c b/src/eval.c
index ee43fa9..231d3e0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -955,6 +955,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:
--
2.17.1