Author: bapt
Date: Tue Dec 17 11:03:32 2019
New Revision: 355854
URL: https://svnweb.freebsd.org/changeset/base/355854

Log:
  Replace homemade getline(3) by actual getline(3)

Modified:
  head/usr.bin/diff3/diff3.c

Modified: head/usr.bin/diff3/diff3.c
==============================================================================
--- head/usr.bin/diff3/diff3.c  Tue Dec 17 10:57:31 2019        (r355853)
+++ head/usr.bin/diff3/diff3.c  Tue Dec 17 11:03:32 2019        (r355854)
@@ -257,28 +257,16 @@ getchange(FILE *b)
 static char *
 get_line(FILE *b, size_t *n)
 {
-       char *cp;
-       size_t len;
-       static char *buf;
-       static size_t bufsize;
+       ssize_t len;
+       static char *buf = NULL;
+       static size_t bufsize = 0;
 
-       if ((cp = fgetln(b, &len)) == NULL)
+       if ((len = getline(&buf, &bufsize, b)) < 0)
                return (NULL);
 
-       if (cp[len - 1] != '\n')
-               len++;
-       if (len + 1 > bufsize) {
-               do {
-                       bufsize += 1024;
-               } while (len + 1 > bufsize);
-               if ((buf = realloc(buf, bufsize)) == NULL)
-                       err(EXIT_FAILURE, NULL);
-       }
-       memcpy(buf, cp, len - 1);
-       buf[len - 1] = '\n';
-       buf[len] = '\0';
        if (n != NULL)
                *n = len;
+
        return (buf);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to