aboutsummaryrefslogtreecommitdiffstats
path: root/builtin.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtin.c')
-rw-r--r--builtin.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/builtin.c b/builtin.c
index d77d276e..91cd142f 100644
--- a/builtin.c
+++ b/builtin.c
@@ -151,10 +151,14 @@ efwrite(const void *ptr,
{
errno = 0;
if (rp != NULL) {
- if (rp->output.gawk_fwrite(ptr, size, count, fp, rp->output.opaque) != count)
- return wrerror(fp, from, rp);
- } else if (fwrite(ptr, size, count, fp) != count)
- return wrerror(fp, from, rp);
+ if (rp->output.gawk_fwrite(ptr, size, count, fp, rp->output.opaque) != count) {
+ wrerror(fp, from, rp);
+ return;
+ }
+ } else if (fwrite(ptr, size, count, fp) != count) {
+ wrerror(fp, from, rp);
+ return;
+ }
if (flush
&& ((fp == stdout && output_is_tty)
|| (rp != NULL && (rp->flag & RED_NOBUF) != 0)))