aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Pineiro Jr <mpj@pineiro.cc>2021-12-16 20:07:10 -0500
committerMiguel Pineiro Jr <mpj@pineiro.cc>2021-12-16 20:07:10 -0500
commit7816d47dc8abc54a77a7a11eff45317b459184bf (patch)
treedaa1e0e59f05398663fb0c451e8b5104f002505d
parent99f6a432969cd42aa1dcba580eefe9d23601e51b (diff)
downloadone-true-awk-7816d47dc8abc54a77a7a11eff45317b459184bf.tar.gz
When closing, don't flush input streams
They don't need it.
-rw-r--r--run.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/run.c b/run.c
index 915ce72..f5c19a1 100644
--- a/run.c
+++ b/run.c
@@ -1872,7 +1872,8 @@ Cell *closefile(Node **a, int n)
for (i = 0; i < nfiles; i++) {
if (!files[i].fname || strcmp(x->sval, files[i].fname) != 0)
continue;
- fflush(files[i].fp);
+ if (files[i].mode == GT || files[i].mode == '|')
+ fflush(files[i].fp);
if (ferror(files[i].fp)) {
if ((files[i].mode == GT && files[i].fp != stderr)
|| files[i].mode == '|')
@@ -1909,7 +1910,8 @@ void closeall(void)
for (i = 0; i < nfiles; i++) {
if (! files[i].fp)
continue;
- fflush(files[i].fp);
+ if (files[i].mode == GT || files[i].mode == '|')
+ fflush(files[i].fp);
if (ferror(files[i].fp)) {
if ((files[i].mode == GT && files[i].fp != stderr)
|| files[i].mode == '|')