From e8eed628aec56b52288625e670a097ba3bdae370 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 27 May 2016 18:56:31 +0200 Subject: awk: restore old buffering behaviour for printf --- sys/src/cmd/awk/run.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/sys/src/cmd/awk/run.c b/sys/src/cmd/awk/run.c index 1fbb217a1..416d3a8c7 100644 --- a/sys/src/cmd/awk/run.c +++ b/sys/src/cmd/awk/run.c @@ -1018,18 +1018,10 @@ Cell *awkprintf(Node **a, int) /* printf */ FATAL("printf string %.30s... too long. can't happen.", buf); if (istemp(x)) tfree(x); - if (a[1] == nil) { - /* fputs(buf, stdout); */ - if (Bwrite(&stdout, buf, len) < 0) - FATAL("write error on stdout"); - Bflush(&stdout); - } else { - fp = redirect(ptoi(a[1]), a[2]); - /* fputs(buf, fp); */ - if(Bwrite(fp, buf, len) < 0) - FATAL("write error on %s", filename(fp)); - Bflush(fp); - } + fp = a[1]? redirect(ptoi(a[1]), a[2]): &stdout; + if(Bwrite(fp, buf, len) < 0) + FATAL("write error on %s", filename(fp)); + if(fp != &stdout) Bflush(fp); free(buf); return(True); } -- cgit v1.2.3