From edea8c97911f5c0e76a3387b5bfe494d0f83ac27 Mon Sep 17 00:00:00 2001 From: enami Date: Wed, 19 Jul 2000 07:52:44 +0000 Subject: [PATCH] You can't just define read_line as fparseln since former keeps the storage internally but latter allocates everytime. --- usr.sbin/sup/Makefile.inc | 5 +++-- usr.sbin/sup/source/Makefile | 15 +++++++++------ usr.sbin/sup/source/read_line.c | 15 +++++++++------ usr.sbin/sup/source/supcdefs.h | 6 +++--- usr.sbin/sup/source/supextern.h | 6 +----- 5 files changed, 25 insertions(+), 22 deletions(-) diff --git a/usr.sbin/sup/Makefile.inc b/usr.sbin/sup/Makefile.inc index 9b0e5b911691..54c08c8e0a81 100644 --- a/usr.sbin/sup/Makefile.inc +++ b/usr.sbin/sup/Makefile.inc @@ -1,6 +1,7 @@ -# $NetBSD: Makefile.inc,v 1.5 1999/08/24 15:52:52 bouyer Exp $ +# $NetBSD: Makefile.inc,v 1.6 2000/07/19 07:52:44 enami Exp $ -CPPFLAGS+=-UCMUCS -UCMU -UMACH -DVAR_TMP -DHAS_DAEMON -DHAS_POSIX_DIR -DLIBWRAP +CPPFLAGS+=-UCMUCS -UCMU -UMACH -DVAR_TMP -DHAS_DAEMON -DHAS_POSIX_DIR \ + -DLIBWRAP -DHAS_FPARSELN CPPFLAGS+=-I${.CURDIR}/../source -I${.CURDIR}/../lib -I${.CURDIR}/../sys CPPFLAGS+=-DEE_XXX diff --git a/usr.sbin/sup/source/Makefile b/usr.sbin/sup/source/Makefile index 99e0f2b58632..c3968f6a70e5 100644 --- a/usr.sbin/sup/source/Makefile +++ b/usr.sbin/sup/source/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.16 1999/08/02 05:36:05 erh Exp $ +# $NetBSD: Makefile,v 1.17 2000/07/19 07:52:44 enami Exp $ # Copyright (c) 1992,1991 Carnegie Mellon University # All Rights Reserved. # @@ -49,12 +49,15 @@ SITE = NETBSD #SITE = CMUCS -NETBSD_DEFINES = -UMACH -DVAR_TMP -DHAS_DAEMON -DHAS_POSIX_DIR -SOLARIS_DEFINES = -UMACH -DVAR_TMP -DHAS_POSIX_DIR -DNEED_VSNPRINTF -DNEED_READ_LINE +NETBSD_DEFINES = -UMACH -DVAR_TMP -DHAS_DAEMON -DHAS_POSIX_DIR \ + -DHAS_FPARSELN +SOLARIS_DEFINES = -UMACH -DVAR_TMP -DHAS_POSIX_DIR -DNEED_VSNPRINTF AFS_DEFINES = -DAFS -I/usr/afsws/include -OSF_DEFINES = -UMACH -DOSF -D_BSD -noshrlib -g -DNEED_VSNPRINTF -DVAR_TMP -DNEED_READ_LINE -SUNOS_DEFINES = -UMACH -D_BSD -DNEED_VSNPRINTF -DVAR_TMP -DHAS_POSIX_DIR -DHAS_DAEMON -DNEED_DAEMON -DNEED_READ_LINE -CMUCS_DEFINES = -DMACH -DDOPRINT_VA -DNEED_VPRINTF -DNEED_READ_LINE +OSF_DEFINES = -UMACH -DOSF -D_BSD -noshrlib -g -DNEED_VSNPRINTF \ + -DVAR_TMP +SUNOS_DEFINES = -UMACH -D_BSD -DNEED_VSNPRINTF -DVAR_TMP \ + -DHAS_POSIX_DIR -DHAS_DAEMON -DNEED_DAEMON +CMUCS_DEFINES = -DMACH -DDOPRINT_VA -DNEED_VPRINTF NON_MACH_DEFINES = -UMACH diff --git a/usr.sbin/sup/source/read_line.c b/usr.sbin/sup/source/read_line.c index 2c2aa6c6eddd..736b1b6a2e3e 100644 --- a/usr.sbin/sup/source/read_line.c +++ b/usr.sbin/sup/source/read_line.c @@ -1,4 +1,4 @@ -/* $NetBSD: read_line.c,v 1.2 1999/08/02 05:36:05 erh Exp $ */ +/* $NetBSD: read_line.c,v 1.3 2000/07/19 07:52:45 enami Exp $ */ /* * Copyright (c) 1994 Mats O Jansson @@ -31,11 +31,9 @@ * SUCH DAMAGE. */ -#ifdef NEED_READ_LINE - #include #ifndef lint -__RCSID("$NetBSD: read_line.c,v 1.2 1999/08/02 05:36:05 erh Exp $"); +__RCSID("$NetBSD: read_line.c,v 1.3 2000/07/19 07:52:45 enami Exp $"); #endif #include @@ -62,6 +60,12 @@ read_line(fp, size, lineno, delim, flags) int flags; /* unused */ { static char *buf; +#ifdef HAS_FPARSELN + + if (buf != NULL) + free(buf); + return (buf = fparseln(fp, size, lineno, delim, flags)); +#else static int buflen; size_t s, len; @@ -103,6 +107,5 @@ read_line(fp, size, lineno, delim, flags) if (size != NULL) *size = len; return buf; +#endif /* HAS_FPARSELN */ } - -#endif /* NEED_READ_LINE */ diff --git a/usr.sbin/sup/source/supcdefs.h b/usr.sbin/sup/source/supcdefs.h index 3d1d603235f5..2151cf0e0538 100644 --- a/usr.sbin/sup/source/supcdefs.h +++ b/usr.sbin/sup/source/supcdefs.h @@ -1,4 +1,4 @@ -/* $NetBSD: supcdefs.h,v 1.9 2000/01/21 17:08:38 mycroft Exp $ */ +/* $NetBSD: supcdefs.h,v 1.10 2000/07/19 07:52:45 enami Exp $ */ /* * Copyright (c) 1992 Carnegie Mellon University @@ -73,9 +73,9 @@ #include #include #endif /* MACH */ -#ifndef NEED_READ_LINE +#ifdef HAS_FPARSELN #include -#endif /* NEED_READ_LINE */ +#endif /* HAS_FPARSELN */ #include #include "sup.h" #include "supmsg.h" diff --git a/usr.sbin/sup/source/supextern.h b/usr.sbin/sup/source/supextern.h index b5091d8defdb..dad363aa968f 100644 --- a/usr.sbin/sup/source/supextern.h +++ b/usr.sbin/sup/source/supextern.h @@ -1,4 +1,4 @@ -/* $NetBSD: supextern.h,v 1.10 1999/08/24 15:52:54 bouyer Exp $ */ +/* $NetBSD: supextern.h,v 1.11 2000/07/19 07:52:45 enami Exp $ */ struct stat; @@ -56,11 +56,7 @@ void path __P((char *, char *, char *)); void quit __P((int, char *, ...)); /* read_line.c */ -#ifdef NEED_READ_LINE char *read_line __P((FILE *, size_t *, int *, const char[3], int)); -#else -#define read_line fparseln -#endif /* run.c */ int run __P((char *, ...));