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