Author: bapt
Date: Mon May  9 20:04:22 2016
New Revision: 299284
URL: https://svnweb.freebsd.org/changeset/base/299284

Log:
  Replace fparseln(3) with getline(3) to remove dependency on libutil

Modified:
  head/usr.sbin/services_mkdb/Makefile
  head/usr.sbin/services_mkdb/services_mkdb.c

Modified: head/usr.sbin/services_mkdb/Makefile
==============================================================================
--- head/usr.sbin/services_mkdb/Makefile        Mon May  9 20:01:34 2016        
(r299283)
+++ head/usr.sbin/services_mkdb/Makefile        Mon May  9 20:04:22 2016        
(r299284)
@@ -4,6 +4,4 @@ PROG=   services_mkdb
 MAN=   services_mkdb.8
 SRCS=  services_mkdb.c uniq.c extern.h
 
-LIBADD=        util
-
 .include <bsd.prog.mk>

Modified: head/usr.sbin/services_mkdb/services_mkdb.c
==============================================================================
--- head/usr.sbin/services_mkdb/services_mkdb.c Mon May  9 20:01:34 2016        
(r299283)
+++ head/usr.sbin/services_mkdb/services_mkdb.c Mon May  9 20:04:22 2016        
(r299284)
@@ -40,12 +40,12 @@ __FBSDID("$FreeBSD$");
 #include <err.h>
 #include <fcntl.h>
 #include <netdb.h>
+#define _WITH_GETLINE
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include <libgen.h>
-#include <libutil.h>
 #include <ctype.h>
 #include <errno.h>
 #include <stringlist.h>
@@ -235,7 +235,8 @@ add(DB *db, StringList *sl, size_t port,
 static StringList ***
 parseservices(const char *fname, StringList *sl)
 {
-       size_t len, line, pindex;
+       ssize_t len;
+       size_t linecap, line, pindex;
        FILE *fp;
        StringList ***svc, *s;
        char *p, *ep;
@@ -243,18 +244,23 @@ parseservices(const char *fname, StringL
        if ((fp = fopen(fname, "r")) == NULL)
                err(1, "Cannot open `%s'", fname);
 
-       line = 0;
+       line = linecap = 0;
        if ((svc = calloc(PMASK + 1, sizeof(StringList **))) == NULL)
                err(1, "Cannot allocate %zu bytes", (size_t)(PMASK + 1));
 
-       /* XXX: change NULL to "\0\0#" when fparseln fixed */
-       for (; (p = fparseln(fp, &len, &line, NULL, 0)) != NULL; free(p)) {
+       p = NULL;
+       while ((len = getline(&p, &linecap, fp)) != -1) {
                char    *name, *port, *proto, *aliases, *cp, *alias;
                unsigned long pnum;
 
+               line++;
+
                if (len == 0)
                        continue;
 
+               if (p[len - 1] == '\n')
+                       p[len - 1] = '\0';
+
                for (cp = p; *cp && isspace((unsigned char)*cp); cp++)
                        continue;
 
_______________________________________________
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