ref: e8eed628aec56b52288625e670a097ba3bdae370
parent: 7a28f9bd8cc98670f0559eed29f2cc3c62d93d8d
author: cinap_lenrek <[email protected]>
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);
}