aboutsummaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2016-05-07 18:21:58 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2016-05-07 18:21:58 +0000
commit0c4ac56e1642c415fe7c97b57eada0871f0b2d75 (patch)
tree80ff7d9d357dac862b04082ec39a86abbb50c483 /usr.bin
parent20b5f02214dfa7d659fb4ee7039721ccee324f61 (diff)
downloadsrc-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/Makefile1
-rw-r--r--usr.bin/sdiff/sdiff.c19
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);
}