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 );
 		}
 	}

Reply via email to