Module Name: src
Committed By: christos
Date: Tue Jun 16 13:56:10 UTC 2009
Modified Files:
src/dist/nawk: run.c
Log Message:
fix EOF/-1 portability.
To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/dist/nawk/run.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/dist/nawk/run.c
diff -u src/dist/nawk/run.c:1.27 src/dist/nawk/run.c:1.28
--- src/dist/nawk/run.c:1.27 Mon Jun 15 16:09:36 2009
+++ src/dist/nawk/run.c Tue Jun 16 09:56:09 2009
@@ -1818,11 +1818,14 @@
if (ferror(files[i].fp))
WARNING( "i/o error occurred on %s", files[i].fname );
if (files[i].mode == '|' || files[i].mode == LE)
- stat = pclose(files[i].fp);
+ stat = pclose(files[i].fp) == -1;
else
- stat = fclose(files[i].fp);
- if (stat == -1)
- WARNING( "i/o error occurred closing %s", files[i].fname );
+ stat = fclose(files[i].fp) == EOF;
+ if (stat) {
+ stat = -1;
+ WARNING( "i/o error occurred closing %s",
+ files[i].fname );
+ }
if (i > 2) /* don't do /dev/std... */
xfree(files[i].fname);
files[i].fname = NULL; /* watch out for ref thru this */
@@ -1845,14 +1848,14 @@
if (ferror(files[i].fp))
WARNING( "i/o error occurred on %s", files[i].fname );
if (i == 0)
- stat = fpurge(files[i].fp);
+ stat = fpurge(files[i].fp) == EOF;
else if (i <= 2)
- stat = fflush(files[i].fp);
+ stat = fflush(files[i].fp) == EOF;
else if (files[i].mode == '|' || files[i].mode == LE)
- stat = pclose(files[i].fp);
+ stat = pclose(files[i].fp) == -1;
else
- stat = fclose(files[i].fp);
- if (stat == -1)
+ stat = fclose(files[i].fp) == EOF;
+ if (stat)
WARNING( "i/o error occurred while closing %s", files[i].fname );
}
}