Replace usage of fparselen(3) by a getline(3)
This allow to remove the dependency on libutil
This commit is contained in:
parent
888843e26a
commit
8c5f3e9303
@ -5,8 +5,6 @@
|
||||
.if ${MK_MAILWRAPPER} != "no"
|
||||
PROG= mailwrapper
|
||||
MAN= mailwrapper.8
|
||||
|
||||
LIBADD= util
|
||||
.endif
|
||||
|
||||
.if ${MK_MAILWRAPPER} != "no" || ${MK_SENDMAIL} != "no"
|
||||
|
@ -7,8 +7,7 @@ DIRDEPS = \
|
||||
include/xlocale \
|
||||
lib/${CSU_DIR} \
|
||||
lib/libc \
|
||||
lib/libcompiler_rt \
|
||||
lib/libutil \
|
||||
lib/libcompiler_rt
|
||||
|
||||
|
||||
.include <dirdeps.mk>
|
||||
|
@ -44,7 +44,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <libutil.h>
|
||||
#include <sysexits.h>
|
||||
#include <syslog.h>
|
||||
|
||||
@ -89,14 +88,17 @@ int
|
||||
main(int argc, char *argv[], char *envp[])
|
||||
{
|
||||
FILE *config;
|
||||
char *line, *cp, *from, *to, *ap;
|
||||
char *line, *cp, *from, *to, *ap, *walk;
|
||||
const char *progname;
|
||||
char localmailerconf[MAXPATHLEN];
|
||||
const char *mailerconf;
|
||||
size_t len, lineno = 0;
|
||||
size_t linecap = 0, lineno = 0;
|
||||
ssize_t linelen;
|
||||
int i;
|
||||
struct arglist al;
|
||||
|
||||
line = NULL;
|
||||
|
||||
/* change __progname to mailwrapper so we get sensible error messages */
|
||||
progname = getprogname();
|
||||
setprogname("mailwrapper");
|
||||
@ -123,12 +125,16 @@ main(int argc, char *argv[], char *envp[])
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
if ((line = fparseln(config, &len, &lineno, NULL, 0)) == NULL) {
|
||||
if (feof(config))
|
||||
if ((linelen = getline(&line, &linecap, config)) <= 0) {
|
||||
if (feof(config)) {
|
||||
errx(EX_CONFIG, "no mapping in %s", mailerconf);
|
||||
}
|
||||
err(EX_CONFIG, "cannot parse line %lu", (u_long)lineno);
|
||||
}
|
||||
|
||||
lineno++;
|
||||
walk = line;
|
||||
/* strip comments */
|
||||
strsep(&walk, "#");
|
||||
#define WS " \t\n"
|
||||
cp = line;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user