svn commit: r317709 - head/usr.bin/csplit
Jilles Tjoelker
jilles at FreeBSD.org
Tue May 2 21:56:21 UTC 2017
Author: jilles
Date: Tue May 2 21:56:20 2017
New Revision: 317709
URL: https://svnweb.freebsd.org/changeset/base/317709
Log:
csplit: Fix check of fputs() return value, making csplit work again.
As of r295638, fputs() returns the number of bytes written (if not more than
INT_MAX). This broke csplit completely, since csplit assumed only success
only for the return value 0.
PR: 213510
Submitted by: J.R. Oldroyd
MFC after: 1 week
Relnotes: yes
Modified:
head/usr.bin/csplit/csplit.c
Modified: head/usr.bin/csplit/csplit.c
==============================================================================
--- head/usr.bin/csplit/csplit.c Tue May 2 21:33:27 2017 (r317708)
+++ head/usr.bin/csplit/csplit.c Tue May 2 21:56:20 2017 (r317709)
@@ -195,7 +195,7 @@ main(int argc, char *argv[])
/* Copy the rest into a new file. */
if (!feof(infile)) {
ofp = newfile();
- while ((p = get_line()) != NULL && fputs(p, ofp) == 0)
+ while ((p = get_line()) != NULL && fputs(p, ofp) != EOF)
;
if (!sflag)
printf("%jd\n", (intmax_t)ftello(ofp));
@@ -392,7 +392,7 @@ do_rexp(const char *expr)
/* Read and output lines until we get a match. */
first = 1;
while ((p = get_line()) != NULL) {
- if (fputs(p, ofp) != 0)
+ if (fputs(p, ofp) == EOF)
break;
if (!first && regexec(&cre, p, 0, NULL, 0) == 0)
break;
@@ -453,7 +453,7 @@ do_lineno(const char *expr)
while (lineno + 1 != lastline) {
if ((p = get_line()) == NULL)
errx(1, "%ld: out of range", lastline);
- if (fputs(p, ofp) != 0)
+ if (fputs(p, ofp) == EOF)
break;
}
if (!sflag)
More information about the svn-src-head
mailing list