diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2016-05-07 18:21:58 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2016-05-07 18:21:58 +0000 |
commit | 0c4ac56e1642c415fe7c97b57eada0871f0b2d75 (patch) | |
tree | 80ff7d9d357dac862b04082ec39a86abbb50c483 /usr.bin | |
parent | 20b5f02214dfa7d659fb4ee7039721ccee324f61 (diff) | |
download | src-0c4ac56e1642c415fe7c97b57eada0871f0b2d75.tar.gz src-0c4ac56e1642c415fe7c97b57eada0871f0b2d75.zip |
Replace fparseln(3) with getline(3)
It removes a dependency on libutil.
Notes
Notes:
svn path=/head/; revision=299216
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/sdiff/Makefile | 1 | ||||
-rw-r--r-- | usr.bin/sdiff/sdiff.c | 19 |
2 files changed, 11 insertions, 9 deletions
diff --git a/usr.bin/sdiff/Makefile b/usr.bin/sdiff/Makefile index bc7d1dce1c53..490462658bbb 100644 --- a/usr.bin/sdiff/Makefile +++ b/usr.bin/sdiff/Makefile @@ -6,7 +6,6 @@ PROG= sdiff SRCS= common.c edit.c sdiff.c WARNS= 3 -LIBADD= util MAN1= sdiff.1 .if ${MK_TESTS} != "no" diff --git a/usr.bin/sdiff/sdiff.c b/usr.bin/sdiff/sdiff.c index d1d763e43881..b9facfe5c618 100644 --- a/usr.bin/sdiff/sdiff.c +++ b/usr.bin/sdiff/sdiff.c @@ -22,11 +22,11 @@ __FBSDID("$FreeBSD$"); #include <limits.h> #include <paths.h> #include <stdint.h> +#define _WITH_GETLINE #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> -#include <libutil.h> #include "common.h" #include "extern.h" @@ -693,20 +693,23 @@ println(const char *s1, const char div, const char *s2) static char * xfgets(FILE *file) { - const char delim[3] = {'\0', '\0', '\0'}; + size_t linecap; + ssize_t l; char *s; - /* XXX - Is this necessary? */ clearerr(file); + linecap = 0; + s = NULL; - if (!(s = fparseln(file, NULL, NULL, delim, 0)) && - ferror(file)) - err(2, "error reading file"); - - if (!s) { + if ((l = getline(&s, &linecap, file)) == -1) { + if (ferror(file)) + err(2, "error reading file"); return (NULL); } + if (s[l-1] == '\n') + s[l-1] = '\0'; + return (s); } |