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)
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to