Restore zoulas fixes, stage 3.

This commit is contained in:
Arnold D. Robbins 2020-02-06 22:38:30 +02:00
parent cd552112a7
commit e6fe674b40

27
run.c
View File

@ -1850,23 +1850,24 @@ const char *filename(FILE *fp)
void closeall(void) void closeall(void)
{ {
int i, stat; size_t i;
bool stat = false;
for (i = 0; i < FOPEN_MAX; i++) { for (i = 0; i < nfiles; i++) {
if (files[i].fp) { if (! files[i].fp)
if (ferror(files[i].fp)) continue;
FATAL( "i/o error occurred on %s", files[i].fname ); if (ferror(files[i].fp))
if (files[i].mode == '|' || files[i].mode == LE) FATAL( "i/o error occurred on %s", files[i].fname );
stat = pclose(files[i].fp); if (files[i].mode == '|' || files[i].mode == LE)
else stat = pclose(files[i].fp) == -1;
stat = fclose(files[i].fp); else
if (stat == EOF) stat = fclose(files[i].fp) == EOF;
FATAL( "i/o error occurred while closing %s", files[i].fname ); if (stat)
} FATAL( "i/o error occurred while closing %s", files[i].fname );
} }
} }
void flush_all(void) static void flush_all(void)
{ {
int i; int i;