ref: a4c6ab798118c6f3f21177029ad58e6bd28da292
parent: 8b340f53f857ab8167f3853af5813be2a59ebe91
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri May 27 14:56:31 EDT 2016
awk: restore old buffering behaviour for printf
--- a/sys/src/cmd/awk/run.c
+++ b/sys/src/cmd/awk/run.c
@@ -1018,18 +1018,10 @@
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);
}
--
⑨