svn commit: r355854 - head/usr.bin/diff3
Baptiste Daroussin
bapt at FreeBSD.org
Tue Dec 17 11:03:33 UTC 2019
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);
}
More information about the svn-src-all
mailing list