ref: e6fe674b404151c66440fd76bca7708cf3a2fe37
parent: cd552112a7c9d4d8892190fef4b45c646d43ad5d
author: Arnold D. Robbins <arnold@skeeve.com>
date: Thu Feb 6 17:38:30 EST 2020
Restore zoulas fixes, stage 3.
--- a/run.c
+++ b/run.c
@@ -1850,23 +1850,24 @@
void closeall(void)
{- int i, stat;
+ size_t i;
+ bool stat = false;
- for (i = 0; i < FOPEN_MAX; i++) {- if (files[i].fp) {- if (ferror(files[i].fp))
- FATAL( "i/o error occurred on %s", files[i].fname );
- if (files[i].mode == '|' || files[i].mode == LE)
- stat = pclose(files[i].fp);
- else
- stat = fclose(files[i].fp);
- if (stat == EOF)
- FATAL( "i/o error occurred while closing %s", files[i].fname );
- }
+ for (i = 0; i < nfiles; i++) {+ if (! files[i].fp)
+ continue;
+ if (ferror(files[i].fp))
+ FATAL( "i/o error occurred on %s", files[i].fname );
+ if (files[i].mode == '|' || files[i].mode == LE)
+ stat = pclose(files[i].fp) == -1;
+ else
+ stat = fclose(files[i].fp) == EOF;
+ if (stat)
+ FATAL( "i/o error occurred while closing %s", files[i].fname );
}
}
-void flush_all(void)
+static void flush_all(void)
{int i;
--
⑨