diff options
Diffstat (limited to 'pkgtools')
84 files changed, 4024 insertions, 2604 deletions
diff --git a/pkgtools/libnbcompat/Makefile b/pkgtools/libnbcompat/Makefile index e4bf9883bb0..cc605f0701b 100644 --- a/pkgtools/libnbcompat/Makefile +++ b/pkgtools/libnbcompat/Makefile @@ -1,11 +1,11 @@ -# $NetBSD: Makefile,v 1.39 2004/08/16 17:24:56 jlam Exp $ +# $NetBSD: Makefile,v 1.40 2004/08/23 03:32:12 jlam Exp $ # # NOTE: If you update this package, it is *mandatory* that you update # pkgsrc/pkgtools/libnbcompat/files/README to reflect the actual # list of tested and supported platforms. # -DISTNAME= libnbcompat-20040814 +DISTNAME= libnbcompat-20040822 CATEGORIES= pkgtools MASTER_SITES= # empty DISTFILES= # empty diff --git a/pkgtools/libnbcompat/PLIST b/pkgtools/libnbcompat/PLIST index aba98747f73..29a5a82f7c1 100644 --- a/pkgtools/libnbcompat/PLIST +++ b/pkgtools/libnbcompat/PLIST @@ -1,5 +1,10 @@ -@comment $NetBSD: PLIST,v 1.12 2004/08/10 18:47:55 jlam Exp $ +@comment $NetBSD: PLIST,v 1.13 2004/08/23 03:32:12 jlam Exp $ include/nbcompat.h +include/nbcompat/assert.h +include/nbcompat/cdefs.h +include/nbcompat/ctype.h +include/nbcompat/dirent.h +include/nbcompat/endian.h include/nbcompat/err.h include/nbcompat/fnmatch.h include/nbcompat/fts.h @@ -10,10 +15,12 @@ include/nbcompat/limits.h include/nbcompat/md5.h include/nbcompat/nbconfig.h include/nbcompat/nbtypes.h +include/nbcompat/param.h include/nbcompat/paths.h include/nbcompat/poll.h include/nbcompat/pwd.h include/nbcompat/queue.h +include/nbcompat/regex.h include/nbcompat/rmd160.h include/nbcompat/sha1.h include/nbcompat/stat.h @@ -21,7 +28,9 @@ include/nbcompat/statvfs.h include/nbcompat/stdio.h include/nbcompat/stdlib.h include/nbcompat/string.h +include/nbcompat/termcap.h include/nbcompat/time.h +include/nbcompat/types.h include/nbcompat/tzfile.h include/nbcompat/unistd.h include/nbcompat/util.h diff --git a/pkgtools/libnbcompat/buildlink3.mk b/pkgtools/libnbcompat/buildlink3.mk index b4c12ed8aab..29831d5db61 100644 --- a/pkgtools/libnbcompat/buildlink3.mk +++ b/pkgtools/libnbcompat/buildlink3.mk @@ -1,4 +1,4 @@ -# $NetBSD: buildlink3.mk,v 1.10 2004/08/16 17:24:56 jlam Exp $ +# $NetBSD: buildlink3.mk,v 1.11 2004/08/23 03:32:12 jlam Exp $ BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+ LIBNBCOMPAT_BUILDLINK3_MK:= ${LIBNBCOMPAT_BUILDLINK3_MK}+ @@ -11,7 +11,7 @@ BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nlibnbcompat} BUILDLINK_PACKAGES+= libnbcompat .if !empty(LIBNBCOMPAT_BUILDLINK3_MK:M+) -BUILDLINK_DEPENDS.libnbcompat+= libnbcompat>=20040814 +BUILDLINK_DEPENDS.libnbcompat+= libnbcompat>=20040822 BUILDLINK_PKGSRCDIR.libnbcompat?= ../../pkgtools/libnbcompat BUILDLINK_DEPMETHOD.libnbcompat?= build BUILDLINK_LDADD.libnbcompat= -lnbcompat diff --git a/pkgtools/libnbcompat/files/Makefile.in b/pkgtools/libnbcompat/files/Makefile.in index 0ac426a02cf..1f275f141fd 100644 --- a/pkgtools/libnbcompat/files/Makefile.in +++ b/pkgtools/libnbcompat/files/Makefile.in @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.in,v 1.26 2004/08/21 06:36:13 jlam Exp $ +# $NetBSD: Makefile.in,v 1.27 2004/08/23 03:32:12 jlam Exp $ # srcdir= @srcdir@ @@ -20,6 +20,11 @@ RANLIB= @RANLIB@ LIB= libnbcompat.a INCS= nbcompat.h \ + nbcompat/assert.h \ + nbcompat/cdefs.h \ + nbcompat/ctype.h \ + nbcompat/dirent.h \ + nbcompat/endian.h \ nbcompat/err.h \ nbcompat/fnmatch.h \ nbcompat/fts.h \ @@ -30,6 +35,7 @@ INCS= nbcompat.h \ nbcompat/md5.h \ nbcompat/nbconfig.h \ nbcompat/nbtypes.h \ + nbcompat/param.h \ nbcompat/paths.h \ nbcompat/poll.h \ nbcompat/pwd.h \ @@ -42,14 +48,15 @@ INCS= nbcompat.h \ nbcompat/stdio.h \ nbcompat/stdlib.h \ nbcompat/string.h \ + nbcompat/termcap.h \ nbcompat/time.h \ + nbcompat/types.h \ nbcompat/tzfile.h \ nbcompat/unistd.h \ nbcompat/util.h \ nbcompat/vis.h -# always use our local glob() implementation. -OBJS= glob.o @LIBOBJS@ +OBJS= @LIBOBJS@ LINK= $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@ COMPILE= $(CC) $(CPPFLAGS) $(CFLAGS) @@ -70,7 +77,7 @@ nbcompat/nbtypes.h: bits ./bits $@ bits: bits.c - $(CC) -o bits bits.c + $(COMPILE) $(DEFS) -o bits bits.c install: $(INSTALL) -m 755 -d $(prefix)/lib diff --git a/pkgtools/libnbcompat/files/README b/pkgtools/libnbcompat/files/README index c13119bd39b..b342f61a7dc 100644 --- a/pkgtools/libnbcompat/files/README +++ b/pkgtools/libnbcompat/files/README @@ -1,4 +1,4 @@ -$NetBSD: README,v 1.9 2004/08/20 23:30:30 schmonz Exp $ +$NetBSD: README,v 1.10 2004/08/23 03:32:12 jlam Exp $ 0 Introduction ============== @@ -13,6 +13,7 @@ this includes the following packages: archivers/pax pkgtools/mtree pkgtools/pkg_install + textproc/nbsed A script, src2nbcompat, is also included in the sources that simplifies importing software from the NetBSD src module into pkgsrc. @@ -43,22 +44,24 @@ breakage seep in. Proper methodology for updating this package is: *NOTE* the most recent libnbcompat. *NOTE* -libnbcompat-20040814 has been tested to build and install correctly +libnbcompat-20040822 has been tested to build and install correctly on the following operating systems: FreeBSD-4.8/i386 <jlam@NetBSD.org> - Debian Linux 3.0 (woody) <wiz@NetBSD.org> - Interix 3.5 <schmonz@NetBSD.org> + FreeBSD-5.1/alpha <grant@NetBSD.org> IRIX 6.5 <schmonz@NetBSD.org> MacOS X 10.2.8 <jlam@NetBSD.org> MacOS X 10.3.5 <schmonz@NetBSD.org> + MS Interix 3.5 <schmonz@NetBSD.org> + NetBSD-1.5/i386 <cgd@NetBSD.org> NetBSD-1.6.2/i386 <jlam@NetBSD.org> - NetBSD-2.0_BETA/i386 <wiz@NetBSD.org> - Red Hat Linux 7.3 <schmonz@NetBSD.org> - Red Hat Enterprise Linux 3 <schmonz@NetBSD.org> - Solaris 7/sparc <blsecres@ssdtgsm.com> - Solaris 8/sparc <roland.illig@gmx.de> - Solaris 9/sparc <schmonz@NetBSD.org> + NetBSD-2.0_BETA/i386 <schmonz@NetBSD.org> + Red Hat Linux 6.0/i386 <cgd@NetBSD.org> + Red Hat Linux 7.2/i386 <cgd@NetBSD.org> + Red Hat Linux 7.3/i386 <cgd@NetBSD.org> + Solaris 2.6/sparc <cgd@NetBSD.org> + Solaris 8/sparc <cgd@NetBSD.org> + Solaris 9/sparc <grant@NetBSD.org> 3 Usage @@ -68,7 +71,9 @@ This library is intended to simplify porting NetBSD software. To that end, the changes to NetBSD sources to use libnbcompat are minor. The procedure is: - (1) Add #include <nbcompat.h> at the top of the source file. + (1) Add #include <nbcompat.h> at the top of the source files that + include system headers, but below the inclusion of any + "config.h". (2) Surround each system header file included in the source file with #if HAVE_<header_name>_H ... #endif. diff --git a/pkgtools/libnbcompat/files/__fts13.c b/pkgtools/libnbcompat/files/__fts13.c index ed0457a8b7f..2d1bcff73cf 100644 --- a/pkgtools/libnbcompat/files/__fts13.c +++ b/pkgtools/libnbcompat/files/__fts13.c @@ -1,4 +1,4 @@ -/* $NetBSD: __fts13.c,v 1.6 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: __fts13.c,v 1.7 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1990, 1993, 1994 @@ -29,62 +29,44 @@ * SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" #endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94"; #else -__RCSID("$NetBSD: __fts13.c,v 1.6 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: __fts13.c,v 1.7 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -#if HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif -#if HAVE_SYS_STAT_H -#include <sys/stat.h> -#endif - -#if HAVE_ASSERT_H -#include <assert.h> -#endif - -#if HAVE_DIRENT_H -#include <dirent.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/param.h> +#include <nbcompat/stat.h> +#include <nbcompat/assert.h> +#include <nbcompat/dirent.h> #if HAVE_ERRNO_H #include <errno.h> #endif - #if HAVE_FCNTL_H #include <fcntl.h> #endif +#include <nbcompat/fts.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> +#include <nbcompat/unistd.h> -#if HAVE_LIMITS_H -#include <limits.h> -#endif - -#include "nbcompat/fts.h" - -#if HAVE_STDLIB_H -#include <stdlib.h> -#endif -#if HAVE_STRING_H -#include <string.h> -#endif -#if HAVE_UNISTD_H -#include <unistd.h> -#endif - -#if !HAVE_CONFIG_H +#if 0 +#if ! HAVE_NBTOOL_CONFIG_H #define HAVE_STRUCT_DIRENT_D_NAMLEN 1 #endif +#endif #if 0 #ifdef __weak_alias @@ -104,6 +86,7 @@ __weak_alias(fts_set,_fts_set) #define STAT stat #endif +#if 0 #ifdef __LIBC12_SOURCE__ __warn_references(fts_children, "warning: reference to compatibility fts_children();" @@ -121,6 +104,7 @@ __warn_references(fts_set, "warning: reference to compatibility fts_set();" " include <fts.h> for correct reference") #endif +#endif static FTSENT *fts_alloc __P((FTS *, const char *, size_t)); static FTSENT *fts_build __P((FTS *, int)); @@ -153,18 +137,6 @@ static int fts_safe_changedir __P((const FTS *, const FTSENT *, int, #undef FTS_WHITEOUT #endif -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif - -#ifndef MAX -#define MAX(a,b) (((a) > (b)) ? (a) : (b)) -#endif - -#ifndef MIN -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) -#endif - FTS * fts_open(argv, options, compar) char * const *argv; @@ -648,14 +620,6 @@ fts_children(sp, instr) return (sp->fts_child); } -#if !defined(HAVE_DIRFD) && !defined(dirfd) && !(defined __GLIBC__ && __GLIBC__ >= 2) -static int -dirfd(DIR *dirp) -{ - return (dirp == NULL) ? -1 : dirp->dd_fd; -} -#endif - /* * This is the tricky part -- do not casually change *anything* in here. The * idea is to build the linked list of entries that are used by fts_children diff --git a/pkgtools/libnbcompat/files/__glob13.c b/pkgtools/libnbcompat/files/__glob13.c new file mode 100644 index 00000000000..43f7d3414c8 --- /dev/null +++ b/pkgtools/libnbcompat/files/__glob13.c @@ -0,0 +1,1040 @@ +/* $NetBSD: __glob13.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ + +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Guido van Rossum. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93"; +#else +__RCSID("$NetBSD: __glob13.c,v 1.1 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +/* + * glob(3) -- a superset of the one defined in POSIX 1003.2. + * + * The [!...] convention to negate a range is supported (SysV, Posix, ksh). + * + * Optional extra services, controlled by flags not defined by POSIX: + * + * GLOB_MAGCHAR: + * Set in gl_flags if pattern contained a globbing character. + * GLOB_NOMAGIC: + * Same as GLOB_NOCHECK, but it will only append pattern if it did + * not contain any magic characters. [Used in csh style globbing] + * GLOB_ALTDIRFUNC: + * Use alternately specified directory access functions. + * GLOB_TILDE: + * expand ~user/foo to the /home/dir/of/user/foo + * GLOB_BRACE: + * expand {1,2}{a,b} to 1a 1b 2a 2b + * gl_matchc: + * Number of matches in the current invocation of glob. + */ + +#if 0 +#include "namespace.h" +#endif +#include <nbcompat/param.h> +#include <nbcompat/stat.h> + +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#include <nbcompat/dirent.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/glob.h> +#include <nbcompat/pwd.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> +#include <nbcompat/unistd.h> + +#if 0 +#ifdef __weak_alias +#ifdef __LIBC12_SOURCE__ +__weak_alias(glob,_glob) +__weak_alias(globfree,_globfree) +#endif /* __LIBC12_SOURCE__ */ +#endif /* __weak_alias */ +#endif + +/* + * XXX: For NetBSD 1.4.x compatibility. (kill me l8r) + */ +#ifndef _DIAGASSERT +#define _DIAGASSERT(a) +#endif + +#ifdef __LIBC12_SOURCE__ +#define STAT stat12 +#else +#define STAT stat +#endif + +#ifdef __LIBC12_SOURCE__ +__warn_references(glob, + "warning: reference to compatibility glob(); include <glob.h> for correct reference") +__warn_references(globfree, + "warning: reference to compatibility globfree(); include <glob.h> for correct reference") +#endif + +#define DOLLAR '$' +#define DOT '.' +#define EOS '\0' +#define LBRACKET '[' +#define NOT '!' +#define QUESTION '?' +#define QUOTE '\\' +#define RANGE '-' +#define RBRACKET ']' +#define SEP '/' +#define STAR '*' +#define TILDE '~' +#define UNDERSCORE '_' +#define LBRACE '{' +#define RBRACE '}' +#define SLASH '/' +#define COMMA ',' + +#ifndef DEBUG + +#define M_QUOTE 0x8000 +#define M_PROTECT 0x4000 +#define M_MASK 0xffff +#define M_ASCII 0x00ff + +typedef u_short Char; + +#else + +#define M_QUOTE 0x80 +#define M_PROTECT 0x40 +#define M_MASK 0xff +#define M_ASCII 0x7f + +typedef char Char; + +#endif + + +#define CHAR(c) ((Char)((c)&M_ASCII)) +#define META(c) ((Char)((c)|M_QUOTE)) +#define M_ALL META('*') +#define M_END META(']') +#define M_NOT META('!') +#define M_ONE META('?') +#define M_RNG META('-') +#define M_SET META('[') +#define ismeta(c) (((c)&M_QUOTE) != 0) + + +static int compare __P((const void *, const void *)); +static int g_Ctoc __P((const Char *, char *, size_t)); +static int g_lstat __P((Char *, struct STAT *, glob_t *)); +static DIR *g_opendir __P((Char *, glob_t *)); +static Char *g_strchr __P((const Char *, int)); +static int g_stat __P((Char *, struct STAT *, glob_t *)); +static int glob0 __P((const Char *, glob_t *)); +static int glob1 __P((Char *, glob_t *, size_t *)); +static int glob2 __P((Char *, Char *, Char *, Char *, glob_t *, + size_t *)); +static int glob3 __P((Char *, Char *, Char *, Char *, Char *, glob_t *, + size_t *)); +static int globextend __P((const Char *, glob_t *, size_t *)); +static const Char *globtilde __P((const Char *, Char *, size_t, glob_t *)); +static int globexp1 __P((const Char *, glob_t *)); +static int globexp2 __P((const Char *, const Char *, glob_t *, int *)); +static int match __P((Char *, Char *, Char *)); +#ifdef DEBUG +static void qprintf __P((const char *, Char *)); +#endif + +int +glob(pattern, flags, errfunc, pglob) + const char *pattern; + int flags, (*errfunc) __P((const char *, int)); + glob_t *pglob; +{ + const u_char *patnext; + int c; + Char *bufnext, *bufend, patbuf[MAXPATHLEN+1]; + + _DIAGASSERT(pattern != NULL); + + patnext = (const u_char *) pattern; + if (!(flags & GLOB_APPEND)) { + pglob->gl_pathc = 0; + pglob->gl_pathv = NULL; + if (!(flags & GLOB_DOOFFS)) + pglob->gl_offs = 0; + } + pglob->gl_flags = flags & ~GLOB_MAGCHAR; + pglob->gl_errfunc = errfunc; + pglob->gl_matchc = 0; + + bufnext = patbuf; + bufend = bufnext + MAXPATHLEN; + if (flags & GLOB_NOESCAPE) { + while (bufnext < bufend && (c = *patnext++) != EOS) + *bufnext++ = c; + } else { + /* Protect the quoted characters. */ + while (bufnext < bufend && (c = *patnext++) != EOS) + if (c == QUOTE) { + if ((c = *patnext++) == EOS) { + c = QUOTE; + --patnext; + } + *bufnext++ = c | M_PROTECT; + } + else + *bufnext++ = c; + } + *bufnext = EOS; + + if (flags & GLOB_BRACE) + return globexp1(patbuf, pglob); + else + return glob0(patbuf, pglob); +} + +/* + * Expand recursively a glob {} pattern. When there is no more expansion + * invoke the standard globbing routine to glob the rest of the magic + * characters + */ +static int +globexp1(pattern, pglob) + const Char *pattern; + glob_t *pglob; +{ + const Char* ptr = pattern; + int rv; + + _DIAGASSERT(pattern != NULL); + _DIAGASSERT(pglob != NULL); + + /* Protect a single {}, for find(1), like csh */ + if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS) + return glob0(pattern, pglob); + + while ((ptr = (const Char *) g_strchr(ptr, LBRACE)) != NULL) + if (!globexp2(ptr, pattern, pglob, &rv)) + return rv; + + return glob0(pattern, pglob); +} + + +/* + * Recursive brace globbing helper. Tries to expand a single brace. + * If it succeeds then it invokes globexp1 with the new pattern. + * If it fails then it tries to glob the rest of the pattern and returns. + */ +static int +globexp2(ptr, pattern, pglob, rv) + const Char *ptr, *pattern; + glob_t *pglob; + int *rv; +{ + int i; + Char *lm, *ls; + const Char *pe, *pm, *pl; + Char patbuf[MAXPATHLEN + 1]; + + _DIAGASSERT(ptr != NULL); + _DIAGASSERT(pattern != NULL); + _DIAGASSERT(pglob != NULL); + _DIAGASSERT(rv != NULL); + + /* copy part up to the brace */ + for (lm = patbuf, pm = pattern; pm != ptr; *lm++ = *pm++) + continue; + ls = lm; + + /* Find the balanced brace */ + for (i = 0, pe = ++ptr; *pe; pe++) + if (*pe == LBRACKET) { + /* Ignore everything between [] */ + for (pm = pe++; *pe != RBRACKET && *pe != EOS; pe++) + continue; + if (*pe == EOS) { + /* + * We could not find a matching RBRACKET. + * Ignore and just look for RBRACE + */ + pe = pm; + } + } + else if (*pe == LBRACE) + i++; + else if (*pe == RBRACE) { + if (i == 0) + break; + i--; + } + + /* Non matching braces; just glob the pattern */ + if (i != 0 || *pe == EOS) { + /* + * we use `pattern', not `patbuf' here so that that + * unbalanced braces are passed to the match + */ + *rv = glob0(pattern, pglob); + return 0; + } + + for (i = 0, pl = pm = ptr; pm <= pe; pm++) { + switch (*pm) { + case LBRACKET: + /* Ignore everything between [] */ + for (pl = pm++; *pm != RBRACKET && *pm != EOS; pm++) + continue; + if (*pm == EOS) { + /* + * We could not find a matching RBRACKET. + * Ignore and just look for RBRACE + */ + pm = pl; + } + break; + + case LBRACE: + i++; + break; + + case RBRACE: + if (i) { + i--; + break; + } + /* FALLTHROUGH */ + case COMMA: + if (i && *pm == COMMA) + break; + else { + /* Append the current string */ + for (lm = ls; (pl < pm); *lm++ = *pl++) + continue; + /* + * Append the rest of the pattern after the + * closing brace + */ + for (pl = pe + 1; (*lm++ = *pl++) != EOS;) + continue; + + /* Expand the current pattern */ +#ifdef DEBUG + qprintf("globexp2:", patbuf); +#endif + *rv = globexp1(patbuf, pglob); + + /* move after the comma, to the next string */ + pl = pm + 1; + } + break; + + default: + break; + } + } + *rv = 0; + return 0; +} + + + +/* + * expand tilde from the passwd file. + */ +static const Char * +globtilde(pattern, patbuf, patsize, pglob) + const Char *pattern; + Char *patbuf; + size_t patsize; + glob_t *pglob; +{ + struct passwd *pwd; + const char *h; + const Char *p; + Char *b; + char *d; + Char *pend = &patbuf[patsize / sizeof(Char)]; + + pend--; + + _DIAGASSERT(pattern != NULL); + _DIAGASSERT(patbuf != NULL); + _DIAGASSERT(pglob != NULL); + + if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) + return pattern; + + /* Copy up to the end of the string or / */ + for (p = pattern + 1, d = (char *)(void *)patbuf; + d < (char *)(void *)pend && *p && *p != SLASH; + *d++ = *p++) + continue; + + if (d == (char *)(void *)pend) + return NULL; + + *d = EOS; + d = (char *)(void *)patbuf; + + if (*d == EOS) { + /* + * handle a plain ~ or ~/ by expanding $HOME + * first and then trying the password file + */ + if ((h = getenv("HOME")) == NULL) { + if ((pwd = getpwuid(getuid())) == NULL) + return pattern; + else + h = pwd->pw_dir; + } + } + else { + /* + * Expand a ~user + */ + if ((pwd = getpwnam(d)) == NULL) + return pattern; + else + h = pwd->pw_dir; + } + + /* Copy the home directory */ + for (b = patbuf; b < pend && *h; *b++ = *h++) + continue; + + if (b == pend) + return NULL; + + /* Append the rest of the pattern */ + while (b < pend && (*b++ = *p++) != EOS) + continue; + + if (b == pend) + return NULL; + + return patbuf; +} + + +/* + * The main glob() routine: compiles the pattern (optionally processing + * quotes), calls glob1() to do the real pattern matching, and finally + * sorts the list (unless unsorted operation is requested). Returns 0 + * if things went well, nonzero if errors occurred. It is not an error + * to find no matches. + */ +static int +glob0(pattern, pglob) + const Char *pattern; + glob_t *pglob; +{ + const Char *qpatnext; + int c, error, oldpathc; + Char *bufnext, patbuf[MAXPATHLEN+1]; + size_t limit = 0; + + _DIAGASSERT(pattern != NULL); + _DIAGASSERT(pglob != NULL); + + if ((qpatnext = globtilde(pattern, patbuf, sizeof(patbuf), + pglob)) == NULL) + return GLOB_ABEND; + oldpathc = pglob->gl_pathc; + bufnext = patbuf; + + /* We don't need to check for buffer overflow any more. */ + while ((c = *qpatnext++) != EOS) { + switch (c) { + case LBRACKET: + c = *qpatnext; + if (c == NOT) + ++qpatnext; + if (*qpatnext == EOS || + g_strchr(qpatnext+1, RBRACKET) == NULL) { + *bufnext++ = LBRACKET; + if (c == NOT) + --qpatnext; + break; + } + *bufnext++ = M_SET; + if (c == NOT) + *bufnext++ = M_NOT; + c = *qpatnext++; + do { + *bufnext++ = CHAR(c); + if (*qpatnext == RANGE && + (c = qpatnext[1]) != RBRACKET) { + *bufnext++ = M_RNG; + *bufnext++ = CHAR(c); + qpatnext += 2; + } + } while ((c = *qpatnext++) != RBRACKET); + pglob->gl_flags |= GLOB_MAGCHAR; + *bufnext++ = M_END; + break; + case QUESTION: + pglob->gl_flags |= GLOB_MAGCHAR; + *bufnext++ = M_ONE; + break; + case STAR: + pglob->gl_flags |= GLOB_MAGCHAR; + /* collapse adjacent stars to one, + * to avoid exponential behavior + */ + if (bufnext == patbuf || bufnext[-1] != M_ALL) + *bufnext++ = M_ALL; + break; + default: + *bufnext++ = CHAR(c); + break; + } + } + *bufnext = EOS; +#ifdef DEBUG + qprintf("glob0:", patbuf); +#endif + + if ((error = glob1(patbuf, pglob, &limit)) != 0) + return(error); + + if (pglob->gl_pathc == oldpathc) { + /* + * If there was no match we are going to append the pattern + * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was + * specified and the pattern did not contain any magic + * characters GLOB_NOMAGIC is there just for compatibility + * with csh. + */ + if ((pglob->gl_flags & GLOB_NOCHECK) || + ((pglob->gl_flags & (GLOB_NOMAGIC|GLOB_MAGCHAR)) + == GLOB_NOMAGIC)) { + return globextend(pattern, pglob, &limit); + } else { + return (GLOB_NOMATCH); + } + } else if (!(pglob->gl_flags & GLOB_NOSORT)) { + qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, + (size_t)pglob->gl_pathc - oldpathc, sizeof(char *), + compare); + } + + return(0); +} + +static int +compare(p, q) + const void *p, *q; +{ + + _DIAGASSERT(p != NULL); + _DIAGASSERT(q != NULL); + + return(strcoll(*(const char * const *)p, *(const char * const *)q)); +} + +static int +glob1(pattern, pglob, limit) + Char *pattern; + glob_t *pglob; + size_t *limit; +{ + Char pathbuf[MAXPATHLEN+1]; + + _DIAGASSERT(pattern != NULL); + _DIAGASSERT(pglob != NULL); + + /* A null pathname is invalid -- POSIX 1003.1 sect. 2.4. */ + if (*pattern == EOS) + return(0); + /* + * we save one character so that we can use ptr >= limit, + * in the general case when we are appending non nul chars only. + */ + return(glob2(pathbuf, pathbuf, pathbuf + sizeof(pathbuf) - 1, pattern, + pglob, limit)); +} + +/* + * The functions glob2 and glob3 are mutually recursive; there is one level + * of recursion for each segment in the pattern that contains one or more + * meta characters. + */ +static int +glob2(pathbuf, pathend, pathlim, pattern, pglob, limit) + Char *pathbuf, *pathend, *pathlim, *pattern; + glob_t *pglob; + size_t *limit; +{ + struct STAT sb; + Char *p, *q; + int anymeta; + + _DIAGASSERT(pathbuf != NULL); + _DIAGASSERT(pathend != NULL); + _DIAGASSERT(pattern != NULL); + _DIAGASSERT(pglob != NULL); + + /* + * Loop over pattern segments until end of pattern or until + * segment with meta character found. + */ + for (anymeta = 0;;) { + if (*pattern == EOS) { /* End of pattern? */ + *pathend = EOS; + if (g_lstat(pathbuf, &sb, pglob)) + return(0); + + if (((pglob->gl_flags & GLOB_MARK) && + pathend[-1] != SEP) && (S_ISDIR(sb.st_mode) || + (S_ISLNK(sb.st_mode) && + (g_stat(pathbuf, &sb, pglob) == 0) && + S_ISDIR(sb.st_mode)))) { + if (pathend >= pathlim) + return (GLOB_ABORTED); + *pathend++ = SEP; + *pathend = EOS; + } + ++pglob->gl_matchc; + return(globextend(pathbuf, pglob, limit)); + } + + /* Find end of next segment, copy tentatively to pathend. */ + q = pathend; + p = pattern; + while (*p != EOS && *p != SEP) { + if (ismeta(*p)) + anymeta = 1; + if (q >= pathlim) + return GLOB_ABORTED; + *q++ = *p++; + } + + if (!anymeta) { /* No expansion, do next segment. */ + pathend = q; + pattern = p; + while (*pattern == SEP) { + if (pathend >= pathlim) + return GLOB_ABORTED; + *pathend++ = *pattern++; + } + } else /* Need expansion, recurse. */ + return(glob3(pathbuf, pathend, pathlim, pattern, p, + pglob, limit)); + } + /* NOTREACHED */ +} + +static int +glob3(pathbuf, pathend, pathlim, pattern, restpattern, pglob, limit) + Char *pathbuf, *pathend, *pathlim, *pattern, *restpattern; + glob_t *pglob; + size_t *limit; +{ + struct dirent *dp; + DIR *dirp; + int error; + char buf[MAXPATHLEN]; + + /* + * The readdirfunc declaration can't be prototyped, because it is + * assigned, below, to two functions which are prototyped in glob.h + * and dirent.h as taking pointers to differently typed opaque + * structures. + */ + struct dirent *(*readdirfunc) __P((void *)); + + _DIAGASSERT(pathbuf != NULL); + _DIAGASSERT(pathend != NULL); + _DIAGASSERT(pattern != NULL); + _DIAGASSERT(restpattern != NULL); + _DIAGASSERT(pglob != NULL); + + *pathend = EOS; + errno = 0; + + if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { + if (pglob->gl_errfunc) { + if (g_Ctoc(pathbuf, buf, sizeof(buf))) + return (GLOB_ABORTED); + if (pglob->gl_errfunc(buf, errno) || + pglob->gl_flags & GLOB_ERR) + return (GLOB_ABORTED); + } + /* + * Posix/XOpen: glob should return when it encounters a + * directory that it cannot open or read + * XXX: Should we ignore ENOTDIR and ENOENT though? + * I think that Posix had in mind EPERM... + */ + if (pglob->gl_flags & GLOB_ERR) + return (GLOB_ABORTED); + + return(0); + } + + error = 0; + + /* Search directory for matching names. */ + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + readdirfunc = pglob->gl_readdir; + else + readdirfunc = (struct dirent *(*)__P((void *))) readdir; + while ((dp = (*readdirfunc)(dirp)) != NULL) { + u_char *sc; + Char *dc; + + /* Initial DOT must be matched literally. */ + if (dp->d_name[0] == DOT && *pattern != DOT) + continue; + /* + * The resulting string contains EOS, so we can + * use the pathlim character, if it is the nul + */ + for (sc = (u_char *) dp->d_name, dc = pathend; + dc <= pathlim && (*dc++ = *sc++) != EOS;) + continue; + + /* + * Have we filled the buffer without seeing EOS? + */ + if (dc > pathlim && *pathlim != EOS) { + /* + * Abort when requested by caller, otherwise + * reset pathend back to last SEP and continue + * with next dir entry. + */ + if (pglob->gl_flags & GLOB_ERR) { + error = GLOB_ABORTED; + break; + } + else { + *pathend = EOS; + continue; + } + } + + if (!match(pathend, pattern, restpattern)) { + *pathend = EOS; + continue; + } + error = glob2(pathbuf, --dc, pathlim, restpattern, pglob, limit); + if (error) + break; + } + + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + (*pglob->gl_closedir)(dirp); + else + closedir(dirp); + + /* + * Again Posix X/Open issue with regards to error handling. + */ + if ((error || errno) && (pglob->gl_flags & GLOB_ERR)) + return (GLOB_ABORTED); + + return(error); +} + + +/* + * Extend the gl_pathv member of a glob_t structure to accomodate a new item, + * add the new item, and update gl_pathc. + * + * This assumes the BSD realloc, which only copies the block when its size + * crosses a power-of-two boundary; for v7 realloc, this would cause quadratic + * behavior. + * + * Return 0 if new item added, error code if memory couldn't be allocated. + * + * Invariant of the glob_t structure: + * Either gl_pathc is zero and gl_pathv is NULL; or gl_pathc > 0 and + * gl_pathv points to (gl_offs + gl_pathc + 1) items. + */ +static int +globextend(path, pglob, limit) + const Char *path; + glob_t *pglob; + size_t *limit; +{ + char **pathv; + int i; + size_t newsize, len; + char *copy; + const Char *p; + + _DIAGASSERT(path != NULL); + _DIAGASSERT(pglob != NULL); + + newsize = sizeof(*pathv) * (2 + pglob->gl_pathc + pglob->gl_offs); + pathv = pglob->gl_pathv ? realloc(pglob->gl_pathv, newsize) : + malloc(newsize); + if (pathv == NULL) + return(GLOB_NOSPACE); + + if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) { + /* first time around -- clear initial gl_offs items */ + pathv += pglob->gl_offs; + for (i = pglob->gl_offs; --i >= 0; ) + *--pathv = NULL; + } + pglob->gl_pathv = pathv; + + for (p = path; *p++;) + continue; + len = (size_t)(p - path); + *limit += len; + if ((copy = malloc(len)) != NULL) { + if (g_Ctoc(path, copy, len)) { + free(copy); + return(GLOB_ABORTED); + } + pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; + } + pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; + + if ((pglob->gl_flags & GLOB_LIMIT) && (newsize + *limit) >= ARG_MAX) { + errno = 0; + return(GLOB_NOSPACE); + } + + return(copy == NULL ? GLOB_NOSPACE : 0); +} + + +/* + * pattern matching function for filenames. Each occurrence of the * + * pattern causes a recursion level. + */ +static int +match(name, pat, patend) + Char *name, *pat, *patend; +{ + int ok, negate_range; + Char c, k; + + _DIAGASSERT(name != NULL); + _DIAGASSERT(pat != NULL); + _DIAGASSERT(patend != NULL); + + while (pat < patend) { + c = *pat++; + switch (c & M_MASK) { + case M_ALL: + if (pat == patend) + return(1); + do + if (match(name, pat, patend)) + return(1); + while (*name++ != EOS); + return(0); + case M_ONE: + if (*name++ == EOS) + return(0); + break; + case M_SET: + ok = 0; + if ((k = *name++) == EOS) + return(0); + if ((negate_range = ((*pat & M_MASK) == M_NOT)) != EOS) + ++pat; + while (((c = *pat++) & M_MASK) != M_END) + if ((*pat & M_MASK) == M_RNG) { + if (c <= k && k <= pat[1]) + ok = 1; + pat += 2; + } else if (c == k) + ok = 1; + if (ok == negate_range) + return(0); + break; + default: + if (*name++ != c) + return(0); + break; + } + } + return(*name == EOS); +} + +/* Free allocated data belonging to a glob_t structure. */ +void +globfree(pglob) + glob_t *pglob; +{ + int i; + char **pp; + + _DIAGASSERT(pglob != NULL); + + if (pglob->gl_pathv != NULL) { + pp = pglob->gl_pathv + pglob->gl_offs; + for (i = pglob->gl_pathc; i--; ++pp) + if (*pp) + free(*pp); + free(pglob->gl_pathv); + pglob->gl_pathv = NULL; + pglob->gl_pathc = 0; + } +} + +static DIR * +g_opendir(str, pglob) + Char *str; + glob_t *pglob; +{ + char buf[MAXPATHLEN]; + + _DIAGASSERT(str != NULL); + _DIAGASSERT(pglob != NULL); + + if (!*str) + (void)strlcpy(buf, ".", sizeof(buf)); + else { + if (g_Ctoc(str, buf, sizeof(buf))) + return NULL; + } + + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + return((*pglob->gl_opendir)(buf)); + + return(opendir(buf)); +} + +static int +g_lstat(fn, sb, pglob) + Char *fn; + struct STAT *sb; + glob_t *pglob; +{ + char buf[MAXPATHLEN]; + + _DIAGASSERT(fn != NULL); + _DIAGASSERT(sb != NULL); + _DIAGASSERT(pglob != NULL); + + if (g_Ctoc(fn, buf, sizeof(buf))) + return -1; + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + return((*pglob->gl_lstat)(buf, sb)); + return(lstat(buf, sb)); +} + +static int +g_stat(fn, sb, pglob) + Char *fn; + struct STAT *sb; + glob_t *pglob; +{ + char buf[MAXPATHLEN]; + + _DIAGASSERT(fn != NULL); + _DIAGASSERT(sb != NULL); + _DIAGASSERT(pglob != NULL); + + if (g_Ctoc(fn, buf, sizeof(buf))) + return -1; + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + return((*pglob->gl_stat)(buf, sb)); + return(stat(buf, sb)); +} + +static Char * +g_strchr(str, ch) + const Char *str; + int ch; +{ + + _DIAGASSERT(str != NULL); + + do { + if (*str == ch) + /* LINTED this is libc's definition! */ + return (Char *)str; + } while (*str++); + return NULL; +} + +static int +g_Ctoc(str, buf, len) + const Char *str; + char *buf; + size_t len; +{ + char *dc; + + _DIAGASSERT(str != NULL); + _DIAGASSERT(buf != NULL); + + if (len == 0) + return 1; + + for (dc = buf; len && (*dc++ = *str++) != EOS; len--) + continue; + + return len == 0; +} + +#ifdef DEBUG +static void +qprintf(str, s) + const char *str; + Char *s; +{ + Char *p; + + _DIAGASSERT(str != NULL); + _DIAGASSERT(s != NULL); + + (void)printf("%s:\n", str); + for (p = s; *p; p++) + (void)printf("%c", CHAR(*p)); + (void)printf("\n"); + for (p = s; *p; p++) + (void)printf("%c", *p & M_PROTECT ? '"' : ' '); + (void)printf("\n"); + for (p = s; *p; p++) + (void)printf("%c", ismeta(*p) ? '_' : ' '); + (void)printf("\n"); +} +#endif diff --git a/pkgtools/libnbcompat/files/__unsetenv13.c b/pkgtools/libnbcompat/files/__unsetenv13.c new file mode 100644 index 00000000000..527d6a9464a --- /dev/null +++ b/pkgtools/libnbcompat/files/__unsetenv13.c @@ -0,0 +1,124 @@ +/* $NetBSD: __unsetenv13.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ + +/* + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "from: @(#)setenv.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: __unsetenv13.c,v 1.1 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#if 0 +#include "namespace.h" +#endif + +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> +#if 0 +#include "local.h" +#include "reentrant.h" +#endif + +char *__findenv __P((const char *, int *)); + +#if 0 +#ifdef __weak_alias +#ifdef __LIBC12_SOURCE__ +__weak_alias(unsetenv,_unsetenv) +#endif +#endif +#endif + +#if 0 +#ifdef _REENTRANT +extern rwlock_t __environ_lock; +#endif +#endif + +#if 0 +#ifdef __LIBC12_SOURCE__ +__warn_references(unsetenv, + "warning: reference to compatibility unsetenv();" + " include <stdlib.h> for correct reference") +#endif +#endif + +extern char **environ; + +#ifndef rwlock_wrlock +#define rwlock_wrlock(lock) ((void)0) +#endif +#ifndef rwlock_unlock +#define rwlock_unlock(lock) ((void)0) +#endif + +/* + * unsetenv(name) -- + * Delete environmental variable "name". + */ +#ifdef __LIBC12_SOURCE__ +void +#else +int +#endif +unsetenv(name) + const char *name; +{ + char **p; + int offset; + + _DIAGASSERT(name != NULL); + +#ifndef __LIBC12_SOURCE__ + if (name == NULL || *name == '\0' || strchr(name, '=') != NULL) { + errno = EINVAL; + return (-1); + } +#endif + + rwlock_wrlock(&__environ_lock); + while (__findenv(name, &offset)) /* if set multiple times */ + for (p = &environ[offset];; ++p) + if (!(*p = *(p + 1))) + break; + rwlock_unlock(&__environ_lock); + +#ifndef __LIBC12_SOURCE__ + return (0); +#endif +} diff --git a/pkgtools/libnbcompat/files/configure b/pkgtools/libnbcompat/files/configure index e72df39d5e8..46a05806fbd 100755 --- a/pkgtools/libnbcompat/files/configure +++ b/pkgtools/libnbcompat/files/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for libnbcompat 20040814. +# Generated by GNU Autoconf 2.59 for libnbcompat 20040822. # # Report bugs to <grant@NetBSD.org>. # @@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='libnbcompat' PACKAGE_TARNAME='libnbcompat' -PACKAGE_VERSION='20040814' -PACKAGE_STRING='libnbcompat 20040814' +PACKAGE_VERSION='20040822' +PACKAGE_STRING='libnbcompat 20040822' PACKAGE_BUGREPORT='grant@NetBSD.org' # Factoring default headers for most tests. @@ -779,7 +779,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libnbcompat 20040814 to adapt to many kinds of systems. +\`configure' configures libnbcompat 20040822 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -845,7 +845,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libnbcompat 20040814:";; + short | recursive ) echo "Configuration of libnbcompat 20040822:";; esac cat <<\_ACEOF @@ -957,7 +957,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -libnbcompat configure 20040814 +libnbcompat configure 20040822 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -971,7 +971,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libnbcompat $as_me 20040814, which was +It was created by libnbcompat $as_me 20040822, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -3446,13 +3446,16 @@ done -for ac_header in assert.h dirent.h err.h errno.h fcntl.h fnmatch.h fts.h \ - grp.h libutil.h limits.h machine/endian.h memory.h ndir.h paths.h \ - pwd.h stdint.h stdio.h stdlib.h stringlist.h strings.h string.h \ - sys/byteorder.h sys/cdefs.h sys/dir.h sys/endian.h sys/file.h \ - sys/mkdev.h sys/ndir.h sys/param.h sys/time.h sys/ttycom.h \ - sys/stat.h sys/statfs.h sys/statvfs.h sys/types.h sys/vfs.h \ - termcap.h termios.h time.h tzfile.h unistd.h util.h utmp.h + + +for ac_header in alloca.h assert.h ctype.h dirent.h err.h errno.h fcntl.h \ + fnmatch.h fts.h grp.h libutil.h limits.h machine/endian.h ndir.h \ + paths.h pwd.h signal.h stdarg.h stddef.h stdint.h stdio.h stdlib.h \ + string.h sys/byteorder.h sys/cdefs.h sys/dir.h sys/endian.h \ + sys/file.h sys/mkdev.h sys/ndir.h sys/param.h sys/stat.h \ + sys/statfs.h sys/statvfs.h sys/time.h sys/ttycom.h sys/types.h \ + sys/uio.h sys/vfs.h termcap.h time.h tzfile.h unistd.h \ + util.h utime.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -3827,6 +3830,14 @@ _ACEOF +case $LIBOBJS in + "glob.$ac_objext" | \ + *" glob.$ac_objext" | \ + "glob.$ac_objext "* | \ + *" glob.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS glob.$ac_objext" ;; +esac + for ac_header in sys/queue.h @@ -5453,7 +5464,10 @@ echo "${ECHO_T}$pkg_cv_have_vis_white" >&6 -for ac_func in strunvis strvis strsvis + + + +for ac_func in strunvis strvis strsvis svis unvis vis do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -5557,7 +5571,10 @@ done -for ac_func in strunvis strvis strsvis + + + +for ac_func in strunvis strvis strsvis svis unvis vis do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -8312,10 +8329,13 @@ done -for ac_func in err fgetln fnmatch fparseln getenv isblank lchflags \ - lchmod lchown lutimes mkstemp mkdtemp setgroupent setpassent \ - setprogname snprintf statvfs strdup strerror strlcat strlcpy \ - strmode strsep strtoll usleep utimes + + + +for ac_func in err fgetln fnmatch fparseln getenv isblank \ + lchflags lchmod lchown lutimes mkdtemp mkstemp setenv setgroupent \ + setpassent setprogname snprintf statvfs strdup strerror strlcat \ + strlcpy strmode strsep strtoll unsetenv usleep utimes warn do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -8431,9 +8451,7 @@ done - - -for ac_func in bcopy bzero memset memcpy setlocale +for ac_func in getenv setenv unsetenv do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -8530,13 +8548,26 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF + : +else + + case $LIBOBJS in + "findenv.$ac_objext" | \ + *" findenv.$ac_objext" | \ + "findenv.$ac_objext "* | \ + *" findenv.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS findenv.$ac_objext" ;; +esac + + break fi done -for ac_func in getmode setmode + +for ac_func in mkdtemp mkstemp do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -8633,13 +8664,29 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF + : +else + + case $LIBOBJS in + "gettemp.$ac_objext" | \ + *" gettemp.$ac_objext" | \ + "gettemp.$ac_objext "* | \ + *" gettemp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS gettemp.$ac_objext" ;; +esac + + break fi done -for ac_func in getmode setmode + + + + +for ac_func in bcopy bzero memset memcpy setlocale do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -8736,25 +8783,13 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF - : -else - - case $LIBOBJS in - "setmode.$ac_objext" | \ - *" setmode.$ac_objext" | \ - "setmode.$ac_objext "* | \ - *" setmode.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS setmode.$ac_objext" ;; -esac - - break fi done -for ac_func in setenv unsetenv +for ac_func in getmode setmode do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -8857,7 +8892,7 @@ done -for ac_func in setenv unsetenv +for ac_func in getmode setmode do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -8958,11 +8993,11 @@ _ACEOF else case $LIBOBJS in - "setenv.$ac_objext" | \ - *" setenv.$ac_objext" | \ - "setenv.$ac_objext "* | \ - *" setenv.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS setenv.$ac_objext" ;; + "setmode.$ac_objext" | \ + *" setmode.$ac_objext" | \ + "setmode.$ac_objext "* | \ + *" setmode.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS setmode.$ac_objext" ;; esac break @@ -9303,21 +9338,22 @@ _ACEOF case $LIBOBJS in - "__fts13.$ac_objext" | \ - *" __fts13.$ac_objext" | \ - "__fts13.$ac_objext "* | \ - *" __fts13.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS __fts13.$ac_objext" ;; + "fts.$ac_objext" | \ + *" fts.$ac_objext" | \ + "fts.$ac_objext "* | \ + *" fts.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS fts.$ac_objext" ;; esac fi -# handle Darwin 7 having a poll() compatibility function. be -# conservative, if we don't find one of poll.h or sys/poll.h, use our -# local poll() implementation. -pkg_use_nbcompat_poll=no +# Handle Darwin 7 having a poll() compatibility function. Be +# conservative -- if we don't find one of <poll.h> or <sys/poll.h>, then +# use our own poll() implementation. +# +pkg_cv_have_poll_h=no for ac_header in poll.h sys/poll.h @@ -9470,12 +9506,160 @@ fi done -if test $ac_cv_header_poll_h = no && test $ac_cv_header_sys_poll_h = no; then - pkg_use_nbcompat_poll=yes + +for ac_header in poll.h sys/poll.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -if test $pkg_use_nbcompat_poll = yes; then - pkg_cv_POLL_NATIVE=no +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------- ## +## Report this to grant@NetBSD.org ## +## ------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + pkg_cv_have_poll_h=yes +fi + +done + + +pkg_use_nbcompat_poll=yes +if test $pkg_cv_have_poll_h = yes; then + pkg_use_nbcompat_poll=no else echo "$as_me:$LINENO: checking for poll" >&5 echo $ECHO_N "checking for poll... $ECHO_C" >&6 @@ -9572,7 +9756,7 @@ if test $ac_cv_func_poll = yes; then echo "$as_me:$LINENO: checking if poll() is implemented natively" >&5 echo $ECHO_N "checking if poll() is implemented natively... $ECHO_C" >&6 -if test "${pkg_cv_POLL_NATIVE+set}" = set; then +if test "${pkg_cv_native_poll+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -9622,22 +9806,22 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - pkg_cv_POLL_NATIVE=yes + pkg_cv_native_poll=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - pkg_cv_POLL_NATIVE=no + pkg_cv_native_poll=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $pkg_cv_POLL_NATIVE" >&5 -echo "${ECHO_T}$pkg_cv_POLL_NATIVE" >&6 - if test "x$pkg_cv_POLL_NATIVE" = "xyes"; then - : +echo "$as_me:$LINENO: result: $pkg_cv_native_poll" >&5 +echo "${ECHO_T}$pkg_cv_native_poll" >&6 + if test "x$pkg_cv_native_poll" = "xyes"; then + pkg_use_nbcompat_poll=no else - : + pkg_use_nbcompat_poll=yes : fi @@ -9646,14 +9830,13 @@ fi fi -if test $pkg_cv_POLL_NATIVE = yes; then +if test $pkg_use_nbcompat_poll = yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_POLL 1 +#define HAVE_NBCOMPAT_POLL 1 _ACEOF -else case $LIBOBJS in "poll.$ac_objext" | \ *" poll.$ac_objext" | \ @@ -9662,12 +9845,6 @@ else *) LIBOBJS="$LIBOBJS poll.$ac_objext" ;; esac - cat >>confdefs.h <<\_ACEOF -#define HAVE_NBCOMPAT_POLL 1 -_ACEOF - - - fi @@ -10161,6 +10338,148 @@ else : fi +echo "$as_me:$LINENO: checking for struct dirent.d_namlen" >&5 +echo $ECHO_N "checking for struct dirent.d_namlen... $ECHO_C" >&6 +if test "${ac_cv_member_struct_dirent_d_namlen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include <sys/types.h> + #if HAVE_DIRENT_H + # include <dirent.h> + #else + # define dirent direct + # if HAVE_SYS_NDIR_H + # include <sys/ndir.h> + # endif + # if HAVE_SYS_DIR_H + # include <sys/dir.h> + # endif + # if HAVE_NDIR_H + # include <ndir.h> + # endif + #endif + +int +main () +{ +static struct dirent ac_aggr; +if (ac_aggr.d_namlen) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_dirent_d_namlen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include <sys/types.h> + #if HAVE_DIRENT_H + # include <dirent.h> + #else + # define dirent direct + # if HAVE_SYS_NDIR_H + # include <sys/ndir.h> + # endif + # if HAVE_SYS_DIR_H + # include <sys/dir.h> + # endif + # if HAVE_NDIR_H + # include <ndir.h> + # endif + #endif + +int +main () +{ +static struct dirent ac_aggr; +if (sizeof ac_aggr.d_namlen) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_dirent_d_namlen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_dirent_d_namlen=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_dirent_d_namlen" >&5 +echo "${ECHO_T}$ac_cv_member_struct_dirent_d_namlen" >&6 +if test $ac_cv_member_struct_dirent_d_namlen = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_DIRENT_D_NAMLEN 1 +_ACEOF + +: +else + : +fi + if test $ac_cv_type_long_long = yes; then @@ -10397,27 +10716,30 @@ done fi - - echo "$as_me:$LINENO: checking for optarg declaration" >&5 -echo $ECHO_N "checking for optarg declaration... $ECHO_C" >&6 -if test "${ftp_cv_HAVE_OPTARG_D+set}" = set; then +echo "$as_me:$LINENO: checking whether optind is declared" >&5 +echo $ECHO_N "checking whether optind is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_optind+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - - cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + #include <stdio.h> #include <stdlib.h> #include <unistd.h> + int main () { - char *X = optarg ; +#ifndef optind + char *p = (char *) optind; +#endif + ; return 0; } @@ -10444,54 +10766,55 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ftp_cv_HAVE_OPTARG_D=yes + ac_cv_have_decl_optind=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ftp_cv_HAVE_OPTARG_D=no +ac_cv_have_decl_optind=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - fi -echo "$as_me:$LINENO: result: $ftp_cv_HAVE_OPTARG_D" >&5 -echo "${ECHO_T}$ftp_cv_HAVE_OPTARG_D" >&6 - if test "x$ftp_cv_HAVE_OPTARG_D" = "xyes"; then - : - else +echo "$as_me:$LINENO: result: $ac_cv_have_decl_optind" >&5 +echo "${ECHO_T}$ac_cv_have_decl_optind" >&6 +if test $ac_cv_have_decl_optind = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_OPTARG_D 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTIND 1 _ACEOF +: +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTIND 0 +_ACEOF - - - : - fi - - - - echo "$as_me:$LINENO: checking for optind declaration" >&5 -echo $ECHO_N "checking for optind declaration... $ECHO_C" >&6 -if test "${ftp_cv_HAVE_OPTIND_D+set}" = set; then +: +fi +echo "$as_me:$LINENO: checking whether optreset is declared" >&5 +echo $ECHO_N "checking whether optreset is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_optreset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - - cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + #include <stdio.h> #include <stdlib.h> #include <unistd.h> + int main () { - int X = optind ; +#ifndef optreset + char *p = (char *) optreset; +#endif + ; return 0; } @@ -10518,31 +10841,32 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ftp_cv_HAVE_OPTIND_D=yes + ac_cv_have_decl_optreset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ftp_cv_HAVE_OPTIND_D=no +ac_cv_have_decl_optreset=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - fi -echo "$as_me:$LINENO: result: $ftp_cv_HAVE_OPTIND_D" >&5 -echo "${ECHO_T}$ftp_cv_HAVE_OPTIND_D" >&6 - if test "x$ftp_cv_HAVE_OPTIND_D" = "xyes"; then - : - cat >>confdefs.h <<\_ACEOF -#define HAVE_OPTIND_D 1 -_ACEOF - +echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5 +echo "${ECHO_T}$ac_cv_have_decl_optreset" >&6 +if test $ac_cv_have_decl_optreset = yes; then +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTRESET 1 +_ACEOF +: +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTRESET 0 +_ACEOF - else +: +fi - : - fi @@ -10912,7 +11236,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by libnbcompat $as_me 20040814, which was +This file was extended by libnbcompat $as_me 20040822, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10972,7 +11296,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -libnbcompat config.status 20040814 +libnbcompat config.status 20040822 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/pkgtools/libnbcompat/files/configure.ac b/pkgtools/libnbcompat/files/configure.ac index a7721a6dc91..a46be8299a8 100644 --- a/pkgtools/libnbcompat/files/configure.ac +++ b/pkgtools/libnbcompat/files/configure.ac @@ -1,8 +1,8 @@ -dnl $NetBSD: configure.ac,v 1.48 2004/08/21 06:36:13 jlam Exp $ +dnl $NetBSD: configure.ac,v 1.49 2004/08/23 03:32:12 jlam Exp $ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.52) -AC_INIT([libnbcompat], [20040814], [grant@NetBSD.org]) +AC_INIT([libnbcompat], [20040822], [grant@NetBSD.org]) AC_CONFIG_HEADER(nbcompat/config.h) AC_ARG_PROGRAM @@ -36,13 +36,14 @@ dnl Used by bits.c to check for sizes of integer types AC_CHECK_HEADERS([inttypes.h sys/types.h sys/bitypes.h bind/bitypes.h \ netinet/in6_machtypes.h]) -AC_CHECK_HEADERS([assert.h dirent.h err.h errno.h fcntl.h fnmatch.h fts.h \ - grp.h libutil.h limits.h machine/endian.h memory.h ndir.h paths.h \ - pwd.h stdint.h stdio.h stdlib.h stringlist.h strings.h string.h \ - sys/byteorder.h sys/cdefs.h sys/dir.h sys/endian.h sys/file.h \ - sys/mkdev.h sys/ndir.h sys/param.h sys/time.h sys/ttycom.h \ - sys/stat.h sys/statfs.h sys/statvfs.h sys/types.h sys/vfs.h \ - termcap.h termios.h time.h tzfile.h unistd.h util.h utmp.h +AC_CHECK_HEADERS([alloca.h assert.h ctype.h dirent.h err.h errno.h fcntl.h \ + fnmatch.h fts.h grp.h libutil.h limits.h machine/endian.h ndir.h \ + paths.h pwd.h signal.h stdarg.h stddef.h stdint.h stdio.h stdlib.h \ + string.h sys/byteorder.h sys/cdefs.h sys/dir.h sys/endian.h \ + sys/file.h sys/mkdev.h sys/ndir.h sys/param.h sys/stat.h \ + sys/statfs.h sys/statvfs.h sys/time.h sys/ttycom.h sys/types.h \ + sys/uio.h sys/vfs.h termcap.h time.h tzfile.h unistd.h \ + util.h utime.h ]) AC_CHECK_HEADERS([sys/mount.h], [:], [:], [ AC_INCLUDES_DEFAULT @@ -57,6 +58,7 @@ AC_DEFINE(HAVE_NBCOMPAT_GLOB) AH_TEMPLATE([HAVE_NBCOMPAT_GLOB], [ Define to 1 if the `glob' function is built into the library. ]) +AC_LIBOBJ(glob) dnl Always use our own queue(3) implementation. AC_CHECK_HEADERS([sys/queue.h]) @@ -150,8 +152,8 @@ AC_CHECK_HEADERS([vis.h], [ #include <sys/types.h> #include <vis.h> ], [ int X = VIS_WHITE; ], [ - AC_CHECK_FUNCS([strunvis strvis strsvis]) - AC_CHECK_FUNCS([strunvis strvis strsvis], + AC_CHECK_FUNCS([strunvis strvis strsvis svis unvis vis]) + AC_CHECK_FUNCS([strunvis strvis strsvis svis unvis vis], [pkg_use_nbcompat_vis=no], [pkg_use_nbcompat_vis=yes; break]) ]) @@ -204,10 +206,20 @@ AC_FUNC_MALLOC AC_FUNC_STRERROR_R AC_FUNC_VPRINTF -AC_REPLACE_FUNCS([err fgetln fnmatch fparseln getenv isblank lchflags \ - lchmod lchown lutimes mkstemp mkdtemp setgroupent setpassent \ - setprogname snprintf statvfs strdup strerror strlcat strlcpy \ - strmode strsep strtoll usleep utimes +AC_REPLACE_FUNCS([err fgetln fnmatch fparseln getenv isblank \ + lchflags lchmod lchown lutimes mkdtemp mkstemp setenv setgroupent \ + setpassent setprogname snprintf statvfs strdup strerror strlcat \ + strlcpy strmode strsep strtoll unsetenv usleep utimes warn +]) + +AC_CHECK_FUNCS([getenv setenv unsetenv], [:], [ + AC_LIBOBJ(findenv) + break +]) + +AC_CHECK_FUNCS([mkdtemp mkstemp], [:], [ + AC_LIBOBJ(gettemp) + break ]) AC_CHECK_FUNCS([bcopy bzero memset memcpy setlocale]) @@ -216,11 +228,6 @@ AC_CHECK_FUNCS([getmode setmode], [:], [ AC_LIBOBJ(setmode) break ]) -AC_CHECK_FUNCS([setenv unsetenv]) -AC_CHECK_FUNCS([setenv unsetenv], [:], [ - AC_LIBOBJ(setenv) - break -]) AC_CHECK_FUNCS([gid_from_group group_from_gid pwcache_groupdb \ pwcache_userdb uid_from_user user_from_uid \ @@ -238,25 +245,24 @@ AC_CHECK_FUNC(fts_open, [:], [ Define to 1 if the `fts_*' functions are built into the library. ]) - AC_LIBOBJ(__fts13) + AC_LIBOBJ(fts) ]) -# handle Darwin 7 having a poll() compatibility function. be -# conservative, if we don't find one of poll.h or sys/poll.h, use our -# local poll() implementation. -pkg_use_nbcompat_poll=no +# Handle Darwin 7 having a poll() compatibility function. Be +# conservative -- if we don't find one of <poll.h> or <sys/poll.h>, then +# use our own poll() implementation. +# +pkg_cv_have_poll_h=no AC_CHECK_HEADERS([poll.h sys/poll.h]) +AC_CHECK_HEADERS([poll.h sys/poll.h], [pkg_cv_have_poll_h=yes]) -if test $ac_cv_header_poll_h = no && test $ac_cv_header_sys_poll_h = no; then - pkg_use_nbcompat_poll=yes -fi - -if test $pkg_use_nbcompat_poll = yes; then - pkg_cv_POLL_NATIVE=no +pkg_use_nbcompat_poll=yes +if test $pkg_cv_have_poll_h = yes; then + pkg_use_nbcompat_poll=no else AC_CHECK_FUNC(poll, [ AC_MSG_TRY_COMPILE([if poll() is implemented natively], - pkg_cv_POLL_NATIVE, + pkg_cv_native_poll, [ #if HAVE_POLL_H #include <poll.h> #endif @@ -268,21 +274,17 @@ else #error "poll() is emulated" #endif ], - [:], [:]) + [pkg_use_nbcompat_poll=no], + [pkg_use_nbcompat_poll=yes]) ]) fi -if test $pkg_cv_POLL_NATIVE = yes; then - AC_DEFINE(HAVE_POLL, 1) - AH_TEMPLATE([HAVE_POLL], [ - Define to 1 if you have the `poll' function. - ]) -else - AC_LIBOBJ(poll) +if test $pkg_use_nbcompat_poll = yes; then AC_DEFINE(HAVE_NBCOMPAT_POLL, 1) AH_TEMPLATE([HAVE_NBCOMPAT_POLL], [ Define to 1 if the `poll' function is built into the library. ]) + AC_LIBOBJ(poll) fi AC_CHECK_FUNCS([getpassphrase getpgrp memmove select]) @@ -293,6 +295,22 @@ AC_CHECK_MEMBERS([struct statfs.f_fsize], [:], [:], [ #include <sys/statfs.h> ]) AC_CHECK_MEMBERS([struct statfs.f_iosize], [:], [:], [ #include <sys/statfs.h> ]) +AC_CHECK_MEMBERS([struct dirent.d_namlen], [:], [:], + [ #include <sys/types.h> + #if HAVE_DIRENT_H + # include <dirent.h> + #else + # define dirent direct + # if HAVE_SYS_NDIR_H + # include <sys/ndir.h> + # endif + # if HAVE_SYS_DIR_H + # include <sys/dir.h> + # endif + # if HAVE_NDIR_H + # include <ndir.h> + # endif + #endif ]) if test $ac_cv_type_long_long = yes; then @@ -349,24 +367,10 @@ dnl support because we don't know how to display it. fi -AC_MSG_TRY_COMPILE([for optarg declaration], ftp_cv_HAVE_OPTARG_D, [ +AC_CHECK_DECLS([optind, optreset], [:], [:], [ + #include <stdio.h> #include <stdlib.h> #include <unistd.h> -], [ char *X = optarg ], [:], [ - AC_DEFINE(HAVE_OPTARG_D, 1) - AH_TEMPLATE([HAVE_OPTARG_D], [ - Define to 1 if optarg is declared in <stdlib.h> or <unistd.h> - ]) -]) - -AC_MSG_TRY_COMPILE([for optind declaration], ftp_cv_HAVE_OPTIND_D, [ - #include <stdlib.h> - #include <unistd.h> -], [ int X = optind ], [:] [ - AC_DEFINE(HAVE_OPTIND_D, 1) - AH_TEMPLATE([HAVE_OPTIND_D], [ - Define to 1 if optind is declared in <stdlib.h> or <unistd.h> - ]) ]) AH_BOTTOM([ @@ -375,115 +379,6 @@ AH_BOTTOM([ #ifndef HAVE___ATTRIBUTE__ # define __attribute__(x) #endif - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - -#ifndef __IDSTRING -# define __IDSTRING(name,string) \ - static const char name[] __attribute__((__unused__)) = string -#endif - -#ifndef __RCSID -# define __RCSID(_s) __IDSTRING(rcsid,_s) -#endif - -#ifndef __COPYRIGHT -# define __COPYRIGHT(_s) __IDSTRING(copyright,_s) -#endif - -#ifndef __P -# if defined(__STDC__) || defined(__cplusplus) -# define __P(protos) protos /* full-blown ANSI C */ -# else -# define __P(protos) () /* traditional C preprocessor */ -# endif -#endif - -#ifndef __CONCAT -# if defined(__STDC__) || defined(__cplusplus) -# define __CONCAT(x,y) x ## y -# else -# define __CONCAT(x,y) x/**/y -# endif -#endif - -#ifndef __BEGIN_DECLS -# if defined(__cplusplus) -# define __BEGIN_DECLS extern "C" { -# else -# define __BEGIN_DECLS -# endif -#endif - -#ifndef __END_DECLS -# if defined(__cplusplus) -# define __END_DECLS }; -# else -# define __END_DECLS -# endif -#endif - -#if HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif - -#if HAVE_SYS_ENDIAN_H -#include <sys/endian.h> -#endif - -#if HAVE_MACHINE_ENDIAN_H -#include <machine/endian.h> -#endif - -#if HAVE_SYS_BYTEORDER_H -#include <sys/byteorder.h> -#endif - -#if HAVE_LIMITS_H -#include <limits.h> -#endif - -#ifndef LITTLE_ENDIAN -# define LITTLE_ENDIAN 1234 -#endif - -#ifndef BIG_ENDIAN -# define BIG_ENDIAN 4321 -#endif - -#ifndef UINT_MAX -# define UINT_MAX 4294967295U -#endif - -#ifndef BYTE_ORDER -# if defined(_BIG_ENDIAN) -# define BYTE_ORDER BIG_ENDIAN -# elif defined(_LITTE_ENDIAN) -# define BYTE_ORDER LITTLE_ENDIAN -# elif defined(WORDS_BIGENDIAN) -# define BYTE_ORDER BIG_ENDIAN -# else -# define BYTE_ORDER LITTLE_ENDIAN -# endif -#endif - -#if defined(HAVE_MEMSET) -# define MEMSET_BZERO(p,l) memset((p), 0, (l)) -#elif defined(HAVE_BZERO) -# define MEMSET_BZERO(p,l) bzero((p), (l)) -#else -# error You need either memset or bzero -#endif - -#if defined(HAVE_MEMCPY) -# define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l)) -#elif defined(HAVE_BCOPY) -# define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l)) -#else -# error You need either memcpy or bcopy -#endif ]) AC_CONFIG_FILES([Makefile]) diff --git a/pkgtools/libnbcompat/files/err.c b/pkgtools/libnbcompat/files/err.c index f5abf9f49a3..54938914260 100644 --- a/pkgtools/libnbcompat/files/err.c +++ b/pkgtools/libnbcompat/files/err.c @@ -1,4 +1,4 @@ -/* $NetBSD: err.c,v 1.3 2003/09/15 07:39:34 grant Exp $ */ +/* $NetBSD: err.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright 1997-2000 Luke Mewburn <lukem@netbsd.org>. @@ -27,7 +27,35 @@ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat.h" +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)err.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: err.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#ifndef __NO_NAMESPACE_H /* XXX */ +#if 0 +#include "namespace.h" +#endif +#endif +#include <nbcompat/err.h> +#if HAVE_STDARG_H +#include <stdarg.h> +#endif + +#if 0 +#ifdef __weak_alias +__weak_alias(err, _err) +#endif +#endif void err(int eval, const char *fmt, ...) @@ -91,60 +119,3 @@ verrx(eval, fmt, ap) (void)fprintf(stderr, "\n"); exit(eval); } - -void -warn(const char *fmt, ...) -{ - va_list ap; - int sverrno; - - sverrno = errno; - (void)fprintf(stderr, "%s: ", getprogname()); - va_start(ap, fmt); - if (fmt != NULL) { - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, ": "); - } - va_end(ap); - (void)fprintf(stderr, "%s\n", strerror(sverrno)); -} - -void -warnx(const char *fmt, ...) -{ - va_list ap; - - (void)fprintf(stderr, "%s: ", getprogname()); - va_start(ap, fmt); - if (fmt != NULL) - (void)vfprintf(stderr, fmt, ap); - va_end(ap); - (void)fprintf(stderr, "\n"); -} - -void -vwarn(fmt, ap) - const char *fmt; - va_list ap; -{ - int sverrno; - - sverrno = errno; - (void)fprintf(stderr, "%s: ", getprogname()); - if (fmt != NULL) { - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, ": "); - } - (void)fprintf(stderr, "%s\n", strerror(sverrno)); -} - -void -vwarnx(fmt, ap) - const char *fmt; - va_list ap; -{ - (void)fprintf(stderr, "%s: ", getprogname()); - if (fmt != NULL) - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, "\n"); -} diff --git a/pkgtools/libnbcompat/files/fgetln.c b/pkgtools/libnbcompat/files/fgetln.c index 195edc5c5e6..df829dd46ac 100644 --- a/pkgtools/libnbcompat/files/fgetln.c +++ b/pkgtools/libnbcompat/files/fgetln.c @@ -1,4 +1,4 @@ -/* $NetBSD: fgetln.c,v 1.1.1.1 2003/03/31 05:02:43 grant Exp $ */ +/* $NetBSD: fgetln.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -36,8 +36,40 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat.h" +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)fgetline.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: fgetln.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ +#if 0 +#include "namespace.h" +#endif + +#include <nbcompat/stdio.h> + +#if 0 +#include "reentrant.h" +#include "local.h" +#endif + +#if 0 +#ifdef __weak_alias +__weak_alias(fgetln,_fgetln) +#endif +#endif + +/* + * Get an input line. The returned pointer often (but not always) + * points into a stdio buffer. Fgetline does not alter the text of + * the returned line (which is thus not a C string because it will + * not necessarily end with '\0'), but does allow callers to modify + * it if they wish. Thus, we set __SMOD in case the caller does. + */ char * fgetln(fp, len) FILE *fp; @@ -81,4 +113,3 @@ fgetln(fp, len) *len = (ptr - buf) + 1; return buf; } - diff --git a/pkgtools/libnbcompat/files/findenv.c b/pkgtools/libnbcompat/files/findenv.c new file mode 100644 index 00000000000..8c17a2ecc82 --- /dev/null +++ b/pkgtools/libnbcompat/files/findenv.c @@ -0,0 +1,88 @@ +/* $NetBSD: findenv.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ + +/* + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)getenv.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: findenv.c,v 1.1 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> +#if 0 +#include "local.h" +#include "reentrant.h" +#endif + +#if 0 +#ifdef _REENTRANT +rwlock_t __environ_lock = RWLOCK_INITIALIZER; +#endif +#endif +extern char **environ; + +/* + * __findenv -- + * Returns pointer to value associated with name, if any, else NULL. + * Sets offset to be the offset of the name/value combination in the + * environmental array, for use by setenv(3) and unsetenv(3). + * Explicitly removes '=' in argument name. + * + * This routine *should* be a static; don't use it. + */ +char * +__findenv(name, offset) + const char *name; + int *offset; +{ + size_t len; + const char *np; + char **p, *c; + + if (name == NULL || environ == NULL) + return (NULL); + for (np = name; *np && *np != '='; ++np) + continue; + len = np - name; + for (p = environ; (c = *p) != NULL; ++p) + if (strncmp(c, name, len) == 0 && c[len] == '=') { + *offset = p - environ; + return (c + len + 1); + } + return (NULL); +} diff --git a/pkgtools/libnbcompat/files/fnmatch.c b/pkgtools/libnbcompat/files/fnmatch.c index cbbe629312f..3a897213b8a 100644 --- a/pkgtools/libnbcompat/files/fnmatch.c +++ b/pkgtools/libnbcompat/files/fnmatch.c @@ -1,4 +1,4 @@ -/* $NetBSD: fnmatch.c,v 1.2 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: fnmatch.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1989, 1993, 1994 @@ -32,17 +32,13 @@ * SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 -static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; +static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; #else -__RCSID("$NetBSD: fnmatch.c,v 1.2 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: fnmatch.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -51,19 +47,17 @@ __RCSID("$NetBSD: fnmatch.c,v 1.2 2004/08/16 17:24:56 jlam Exp $"); * Compares a filename or pathname to a pattern. */ -/* #include "namespace.h" */ +#if 0 +#include "namespace.h" +#endif -#include <assert.h> -#include <ctype.h> -#include "nbcompat/fnmatch.h" -#include <string.h> +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#include <nbcompat/fnmatch.h> +#include <nbcompat/string.h> #define EOS '\0' -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif - static const char *rangematch(const char *, int, int); static int diff --git a/pkgtools/libnbcompat/files/fparseln.c b/pkgtools/libnbcompat/files/fparseln.c index 380e85798b9..95a37811312 100644 --- a/pkgtools/libnbcompat/files/fparseln.c +++ b/pkgtools/libnbcompat/files/fparseln.c @@ -1,4 +1,4 @@ -/* $NetBSD: fparseln.c,v 1.2 2003/09/06 23:03:02 grant Exp $ */ +/* $NetBSD: fparseln.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1997 Christos Zoulas. All rights reserved. @@ -29,7 +29,49 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat.h" +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: fparseln.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#if 0 +#include "namespace.h" +#endif + +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdio.h> +#include <nbcompat/string.h> +#include <nbcompat/stdlib.h> + +#if 0 +#ifdef __weak_alias +__weak_alias(fparseln,_fparseln) +#endif +#endif + +#if ! HAVE_FPARSELN + +#if 0 +#ifndef HAVE_NBTOOL_CONFIG_H +#include "reentrant.h" +#include "local.h" +#else +#define FLOCKFILE(fp) +#define FUNLOCKFILE(fp) +#endif +#endif + +#if 0 +#if defined(_REENTRANT) && !HAVE_NBTOOL_CONFIG_H +#define __fgetln(f, l) __fgetstr(f, l, '\n') +#else +#define __fgetln(f, l) fgetln(f, l) +#endif +#endif static int isescaped(const char *, const char *, int); @@ -204,3 +246,4 @@ line 6 */ #endif /* TEST */ +#endif /* ! HAVE_FPARSELN */ diff --git a/pkgtools/libnbcompat/files/fts.c b/pkgtools/libnbcompat/files/fts.c new file mode 100644 index 00000000000..29fd40f4006 --- /dev/null +++ b/pkgtools/libnbcompat/files/fts.c @@ -0,0 +1,12 @@ +/* $NetBSD: fts.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ + +/* + * Written by Jason R. Thorpe <thorpej@NetBSD.org>, October 21, 1997. + * Public domain. + */ + +#if 0 +#define __LIBC12_SOURCE__ +#endif + +#include "__fts13.c" diff --git a/pkgtools/libnbcompat/files/getenv.c b/pkgtools/libnbcompat/files/getenv.c index 024f494ad40..6ee384eaa1d 100644 --- a/pkgtools/libnbcompat/files/getenv.c +++ b/pkgtools/libnbcompat/files/getenv.c @@ -1,8 +1,8 @@ -/* $NetBSD: getenv.c,v 1.3 2003/09/06 23:03:02 grant Exp $ */ +/* $NetBSD: getenv.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* - * Copyright (c) 1987 Regents of the University of California. - * All rights reserved. + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,15 +29,42 @@ * SUCH DAMAGE. */ +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -/*static char *sccsid = "from: @(#)getenv.c 5.8 (Berkeley) 2/23/91";*/ -static char *rcsid = "$Id: getenv.c,v 1.3 2003/09/06 23:03:02 grant Exp $"; +#if 0 +static char sccsid[] = "@(#)getenv.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: getenv.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ -#include <stdlib.h> -#include <stddef.h> -#include <string.h> -#include <sys/cdefs.h> +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> +#if 0 +#include "local.h" +#include "reentrant.h" +#endif + +char *__findenv __P((const char *, int *)); + +#if 0 +#ifdef _REENTRANT +rwlock_t __environ_lock = RWLOCK_INITIALIZER; +#endif +#endif +extern char **environ; + +#ifndef rwlock_rdlock +#define rwlock_rdlock(lock) ((void)0) +#endif +#ifndef rwlock_unlock +#define rwlock_unlock(lock) ((void)0) +#endif /* * getenv -- @@ -48,9 +75,14 @@ getenv(name) const char *name; { int offset; - char *__findenv(); + char *result; - return(__findenv(name, &offset)); + _DIAGASSERT(name != NULL); + + rwlock_rdlock(&__environ_lock); + result = __findenv(name, &offset); + rwlock_unlock(&__environ_lock); + return (result); } /* @@ -64,19 +96,22 @@ getenv(name) */ char * __findenv(name, offset) - register char *name; + const char *name; int *offset; { - extern char **environ; - register int len; - register char **P, *C; + size_t len; + const char *np; + char **p, *c; - for (C = name, len = 0; *C && *C != '='; ++C, ++len); - for (P = environ; *P; ++P) - if (!strncmp(*P, name, len)) - if (*(C = *P + len) == '=') { - *offset = P - environ; - return(++C); - } - return(NULL); + if (name == NULL || environ == NULL) + return (NULL); + for (np = name; *np && *np != '='; ++np) + continue; + len = np - name; + for (p = environ; (c = *p) != NULL; ++p) + if (strncmp(c, name, len) == 0 && c[len] == '=') { + *offset = p - environ; + return (c + len + 1); + } + return (NULL); } diff --git a/pkgtools/libnbcompat/files/getopt_long.c b/pkgtools/libnbcompat/files/getopt_long.c index 8ff67c79dda..9e7ce1d45ee 100644 --- a/pkgtools/libnbcompat/files/getopt_long.c +++ b/pkgtools/libnbcompat/files/getopt_long.c @@ -1,4 +1,4 @@ -/* $NetBSD: getopt_long.c,v 1.7 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: getopt_long.c,v 1.8 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -36,64 +36,57 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" #endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: getopt_long.c,v 1.7 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: getopt_long.c,v 1.8 2004/08/23 03:32:12 jlam Exp $"); #endif /* LIBC_SCCS and not lint */ -/* #include "namespace.h" */ - -#include <assert.h> - -#if HAVE_ERR_H -#include <err.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/assert.h> +#include <nbcompat/err.h> +#if HAVE_ERRNO_H #include <errno.h> -#include <stdlib.h> -#include <string.h> - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) #endif +#if HAVE_NBTOOL_CONFIG_H +#include "compat_getopt.h" +#else +#include <nbcompat/getopt.h> +#endif +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> -#if HAVE_CONFIG_H && !HAVE_GETOPT_LONG && !HAVE_OPTIND_D +#if (HAVE_NBTOOL_CONFIG_H && !HAVE_GETOPT_LONG && !HAVE_DECL_OPTIND) || 1 #define REPLACE_GETOPT #endif #ifdef REPLACE_GETOPT #if 0 -#ifndef __ELF__ -#define _getopt getopt -#else #ifdef __weak_alias __weak_alias(getopt,_getopt) #endif #endif -#endif int opterr = 1; /* if error message should be printed */ int optind = 1; /* index into parent argv vector */ int optopt = '?'; /* character checked for validity */ int optreset; /* reset getopt */ char *optarg; /* argument associated with option */ -#elif HAVE_CONFIG_H && !HAVE_DECL_OPTRESET +#elif HAVE_NBTOOL_CONFIG_H && !HAVE_DECL_OPTRESET static int optreset; #endif #if 0 -#ifndef __ELF__ -#define _getopt_long getopt_long -#else #ifdef __weak_alias __weak_alias(getopt_long,_getopt_long) #endif #endif -#endif #if !HAVE_GETOPT_LONG #define IGNORE_FIRST (*options == '-' || *options == '+') diff --git a/pkgtools/libnbcompat/files/gettemp.c b/pkgtools/libnbcompat/files/gettemp.c new file mode 100644 index 00000000000..2500a7114a0 --- /dev/null +++ b/pkgtools/libnbcompat/files/gettemp.c @@ -0,0 +1,180 @@ +/* $NetBSD: gettemp.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ + +/* + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#if !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP || !HAVE_MKDTEMP + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: gettemp.c,v 1.1 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include <nbcompat/types.h> +#include <nbcompat/stat.h> + +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#if HAVE_FCNTL_H +#include <fcntl.h> +#endif +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/unistd.h> + +#if HAVE_NBTOOL_CONFIG_H +#define GETTEMP gettemp +#else +#if 0 +#include "reentrant.h" +#include "local.h" +#define GETTEMP __gettemp +#else +#define GETTEMP gettemp +#endif +#endif + + +int +GETTEMP(path, doopen, domkdir) + char *path; + int *doopen; + int domkdir; +{ + char *start, *trv; + struct stat sbuf; + u_int pid; + + /* To guarantee multiple calls generate unique names even if + the file is not created. 676 different possibilities with 7 + or more X's, 26 with 6 or less. */ + static char xtra[2] = "aa"; + int xcnt = 0; + + _DIAGASSERT(path != NULL); + /* doopen may be NULL */ + + pid = getpid(); + + /* Move to end of path and count trailing X's. */ + for (trv = path; *trv; ++trv) + if (*trv == 'X') + xcnt++; + else + xcnt = 0; + + /* Use at least one from xtra. Use 2 if more than 6 X's. */ + if (*(trv - 1) == 'X') + *--trv = xtra[0]; + if (xcnt > 6 && *(trv - 1) == 'X') + *--trv = xtra[1]; + + /* Set remaining X's to pid digits with 0's to the left. */ + while (*--trv == 'X') { + *trv = (pid % 10) + '0'; + pid /= 10; + } + + /* update xtra for next call. */ + if (xtra[0] != 'z') + xtra[0]++; + else { + xtra[0] = 'a'; + if (xtra[1] != 'z') + xtra[1]++; + else + xtra[1] = 'a'; + } + + /* + * check the target directory; if you have six X's and it + * doesn't exist this runs for a *very* long time. + */ + for (start = trv + 1;; --trv) { + if (trv <= path) + break; + if (*trv == '/') { + *trv = '\0'; + if (stat(path, &sbuf)) + return (0); + if (!S_ISDIR(sbuf.st_mode)) { + errno = ENOTDIR; + return (0); + } + *trv = '/'; + break; + } + } + + for (;;) { + if (doopen) { + if ((*doopen = + open(path, O_CREAT | O_EXCL | O_RDWR, 0600)) >= 0) + return (1); + if (errno != EEXIST) + return (0); + } else if (domkdir) { + if (mkdir(path, 0700) >= 0) + return (1); + if (errno != EEXIST) + return (0); + } else if (lstat(path, &sbuf)) + return (errno == ENOENT ? 1 : 0); + + /* tricky little algorithm for backward compatibility */ + for (trv = start;;) { + if (!*trv) + return (0); + if (*trv == 'z') + *trv++ = 'a'; + else { + if (isdigit((unsigned char)*trv)) + *trv = 'a'; + else + ++*trv; + break; + } + } + } + /*NOTREACHED*/ +} + +#endif /* !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP || !HAVE_MKDTEMP */ diff --git a/pkgtools/libnbcompat/files/glob.c b/pkgtools/libnbcompat/files/glob.c index e129ad56003..bfb1cb658a7 100644 --- a/pkgtools/libnbcompat/files/glob.c +++ b/pkgtools/libnbcompat/files/glob.c @@ -1,882 +1,12 @@ -/* $NetBSD: glob.c,v 1.3 2003/09/06 23:03:02 grant Exp $ */ +/* $NetBSD: glob.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Guido van Rossum. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * Written by Jason R. Thorpe <thorpej@NetBSD.org>, October 21, 1997. + * Public domain. */ -/* - * glob(3) -- a superset of the one defined in POSIX 1003.2. - * - * The [!...] convention to negate a range is supported (SysV, Posix, ksh). - * - * Optional extra services, controlled by flags not defined by POSIX: - * - * GLOB_MAGCHAR: - * Set in gl_flags if pattern contained a globbing character. - * GLOB_NOMAGIC: - * Same as GLOB_NOCHECK, but it will only append pattern if it did - * not contain any magic characters. [Used in csh style globbing] - * GLOB_ALTDIRFUNC: - * Use alternately specified directory access functions. - * GLOB_TILDE: - * expand ~user/foo to the /home/dir/of/user/foo - * GLOB_BRACE: - * expand {1,2}{a,b} to 1a 1b 2a 2b - * gl_matchc: - * Number of matches in the current invocation of glob. - */ - -#include "nbcompat.h" - -#undef TILDE /* XXX: AIX 4.1.5 has this in <sys/ioctl.h> */ - -#define DOLLAR '$' -#define DOT '.' -#define EOS '\0' -#define LBRACKET '[' -#define NOT '!' -#define QUESTION '?' -#define QUOTE '\\' -#define RANGE '-' -#define RBRACKET ']' -#define SEP '/' -#define STAR '*' -#define TILDE '~' -#define UNDERSCORE '_' -#define LBRACE '{' -#define RBRACE '}' -#define SLASH '/' -#define COMMA ',' - -#ifndef DEBUG - -#define M_QUOTE 0x8000 -#define M_PROTECT 0x4000 -#define M_MASK 0xffff -#define M_ASCII 0x00ff - -typedef u_short Char; - -#else - -#define M_QUOTE 0x80 -#define M_PROTECT 0x40 -#define M_MASK 0xff -#define M_ASCII 0x7f - -typedef char Char; - -#endif - - -#define CHAR(c) ((Char)((c)&M_ASCII)) -#define META(c) ((Char)((c)|M_QUOTE)) -#define M_ALL META('*') -#define M_END META(']') -#define M_NOT META('!') -#define M_ONE META('?') -#define M_RNG META('-') -#define M_SET META('[') -#define ismeta(c) (((c)&M_QUOTE) != 0) - - -static int compare(const void *, const void *); -static int g_Ctoc(const Char *, char *, size_t); -static int g_lstat(Char *, struct stat *, glob_t *); -static DIR *g_opendir(Char *, glob_t *); -static Char *g_strchr(const Char *, int); -static int g_stat(Char *, struct stat *, glob_t *); -static int glob0(const Char *, glob_t *); -static int glob1(Char *, glob_t *, size_t *); -static int glob2(Char *, Char *, Char *, Char *, glob_t *, size_t *); -static int glob3(Char *, Char *, Char *, Char *, Char *, glob_t *, - size_t *); -static int globextend(const Char *, glob_t *, size_t *); -static const Char *globtilde(const Char *, Char *, size_t, glob_t *); -static int globexp1(const Char *, glob_t *); -static int globexp2(const Char *, const Char *, glob_t *, int *); -static int match(Char *, Char *, Char *); -#ifdef DEBUG -static void qprintf(const char *, Char *); -#endif - -int -glob(const char *pattern, int flags, int (*errfunc)(const char *, int), - glob_t *pglob) -{ - const u_char *patnext; - int c; - Char *bufnext, *bufend, patbuf[MAXPATHLEN+1]; - - patnext = (const u_char *) pattern; - if (!(flags & GLOB_APPEND)) { - pglob->gl_pathc = 0; - pglob->gl_pathv = NULL; - if (!(flags & GLOB_DOOFFS)) - pglob->gl_offs = 0; - } - pglob->gl_flags = flags & ~GLOB_MAGCHAR; - pglob->gl_errfunc = errfunc; - pglob->gl_matchc = 0; - - bufnext = patbuf; - bufend = bufnext + MAXPATHLEN; - if (flags & GLOB_NOESCAPE) { - while (bufnext < bufend && (c = *patnext++) != EOS) - *bufnext++ = c; - } else { - /* Protect the quoted characters. */ - while (bufnext < bufend && (c = *patnext++) != EOS) - if (c == QUOTE) { - if ((c = *patnext++) == EOS) { - c = QUOTE; - --patnext; - } - *bufnext++ = c | M_PROTECT; - } - else - *bufnext++ = c; - } - *bufnext = EOS; - - if (flags & GLOB_BRACE) - return globexp1(patbuf, pglob); - else - return glob0(patbuf, pglob); -} - -/* - * Expand recursively a glob {} pattern. When there is no more expansion - * invoke the standard globbing routine to glob the rest of the magic - * characters - */ -static int -globexp1(const Char *pattern, glob_t *pglob) -{ - const Char* ptr = pattern; - int rv; - - /* Protect a single {}, for find(1), like csh */ - if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS) - return glob0(pattern, pglob); - - while ((ptr = (const Char *) g_strchr(ptr, LBRACE)) != NULL) - if (!globexp2(ptr, pattern, pglob, &rv)) - return rv; - - return glob0(pattern, pglob); -} - - -/* - * Recursive brace globbing helper. Tries to expand a single brace. - * If it succeeds then it invokes globexp1 with the new pattern. - * If it fails then it tries to glob the rest of the pattern and returns. - */ -static int -globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, int *rv) -{ - int i; - Char *lm, *ls; - const Char *pe, *pm, *pl; - Char patbuf[MAXPATHLEN + 1]; - - /* copy part up to the brace */ - for (lm = patbuf, pm = pattern; pm != ptr; *lm++ = *pm++) - continue; - ls = lm; - - /* Find the balanced brace */ - for (i = 0, pe = ++ptr; *pe; pe++) - if (*pe == LBRACKET) { - /* Ignore everything between [] */ - for (pm = pe++; *pe != RBRACKET && *pe != EOS; pe++) - continue; - if (*pe == EOS) { - /* - * We could not find a matching RBRACKET. - * Ignore and just look for RBRACE - */ - pe = pm; - } - } - else if (*pe == LBRACE) - i++; - else if (*pe == RBRACE) { - if (i == 0) - break; - i--; - } - - /* Non matching braces; just glob the pattern */ - if (i != 0 || *pe == EOS) { - /* - * we use `pattern', not `patbuf' here so that that - * unbalanced braces are passed to the match - */ - *rv = glob0(pattern, pglob); - return 0; - } - - for (i = 0, pl = pm = ptr; pm <= pe; pm++) { - switch (*pm) { - case LBRACKET: - /* Ignore everything between [] */ - for (pl = pm++; *pm != RBRACKET && *pm != EOS; pm++) - continue; - if (*pm == EOS) { - /* - * We could not find a matching RBRACKET. - * Ignore and just look for RBRACE - */ - pm = pl; - } - break; - - case LBRACE: - i++; - break; - - case RBRACE: - if (i) { - i--; - break; - } - /* FALLTHROUGH */ - case COMMA: - if (i && *pm == COMMA) - break; - else { - /* Append the current string */ - for (lm = ls; (pl < pm); *lm++ = *pl++) - continue; - /* - * Append the rest of the pattern after the - * closing brace - */ - for (pl = pe + 1; (*lm++ = *pl++) != EOS;) - continue; - - /* Expand the current pattern */ -#ifdef DEBUG - qprintf("globexp2:", patbuf); -#endif - *rv = globexp1(patbuf, pglob); - - /* move after the comma, to the next string */ - pl = pm + 1; - } - break; - - default: - break; - } - } - *rv = 0; - return 0; -} - - - -/* - * expand tilde from the passwd file. - */ -static const Char * -globtilde(const Char *pattern, Char *patbuf, size_t patsize, glob_t *pglob) -{ - struct passwd *pwd; - const char *h; - const Char *p; - Char *b; - char *d; - Char *pend = &patbuf[patsize / sizeof(Char)]; - - pend--; - - if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) - return pattern; - - /* Copy up to the end of the string or / */ - for (p = pattern + 1, d = (char *)(void *)patbuf; - d < (char *)(void *)pend && *p && *p != SLASH; - *d++ = *p++) - continue; - - if (d == (char *)(void *)pend) - return NULL; - - *d = EOS; - d = (char *)(void *)patbuf; - - if (*d == EOS) { - /* - * handle a plain ~ or ~/ by expanding $HOME - * first and then trying the password file - */ - if ((h = getenv("HOME")) == NULL) { - if ((pwd = getpwuid(getuid())) == NULL) - return pattern; - else - h = pwd->pw_dir; - } - } - else { - /* - * Expand a ~user - */ - if ((pwd = getpwnam(d)) == NULL) - return pattern; - else - h = pwd->pw_dir; - } - - /* Copy the home directory */ - for (b = patbuf; b < pend && *h; *b++ = *h++) - continue; - - if (b == pend) - return NULL; - - /* Append the rest of the pattern */ - while (b < pend && (*b++ = *p++) != EOS) - continue; - - if (b == pend) - return NULL; - - return patbuf; -} - - -/* - * The main glob() routine: compiles the pattern (optionally processing - * quotes), calls glob1() to do the real pattern matching, and finally - * sorts the list (unless unsorted operation is requested). Returns 0 - * if things went well, nonzero if errors occurred. It is not an error - * to find no matches. - */ -static int -glob0(const Char *pattern, glob_t *pglob) -{ - const Char *qpatnext; - int c, error, oldpathc; - Char *bufnext, patbuf[MAXPATHLEN+1]; - size_t limit; - - limit = 0; - if ((qpatnext = globtilde(pattern, patbuf, sizeof(patbuf), - pglob)) == NULL) - return GLOB_ABEND; - oldpathc = pglob->gl_pathc; - bufnext = patbuf; - - /* We don't need to check for buffer overflow any more. */ - while ((c = *qpatnext++) != EOS) { - switch (c) { - case LBRACKET: - c = *qpatnext; - if (c == NOT) - ++qpatnext; - if (*qpatnext == EOS || - g_strchr(qpatnext+1, RBRACKET) == NULL) { - *bufnext++ = LBRACKET; - if (c == NOT) - --qpatnext; - break; - } - *bufnext++ = M_SET; - if (c == NOT) - *bufnext++ = M_NOT; - c = *qpatnext++; - do { - *bufnext++ = CHAR(c); - if (*qpatnext == RANGE && - (c = qpatnext[1]) != RBRACKET) { - *bufnext++ = M_RNG; - *bufnext++ = CHAR(c); - qpatnext += 2; - } - } while ((c = *qpatnext++) != RBRACKET); - pglob->gl_flags |= GLOB_MAGCHAR; - *bufnext++ = M_END; - break; - case QUESTION: - pglob->gl_flags |= GLOB_MAGCHAR; - *bufnext++ = M_ONE; - break; - case STAR: - pglob->gl_flags |= GLOB_MAGCHAR; - /* collapse adjacent stars to one, - * to avoid exponential behavior - */ - if (bufnext == patbuf || bufnext[-1] != M_ALL) - *bufnext++ = M_ALL; - break; - default: - *bufnext++ = CHAR(c); - break; - } - } - *bufnext = EOS; -#ifdef DEBUG - qprintf("glob0:", patbuf); +#if 0 +#define __LIBC12_SOURCE__ #endif - if ((error = glob1(patbuf, pglob, &limit)) != 0) - return(error); - - if (pglob->gl_pathc == oldpathc) { - /* - * If there was no match we are going to append the pattern - * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was - * specified and the pattern did not contain any magic - * characters GLOB_NOMAGIC is there just for compatibility - * with csh. - */ - if ((pglob->gl_flags & GLOB_NOCHECK) || - ((pglob->gl_flags & (GLOB_NOMAGIC|GLOB_MAGCHAR)) - == GLOB_NOMAGIC)) { - return globextend(pattern, pglob, &limit); - } else { - return (GLOB_NOMATCH); - } - } else if (!(pglob->gl_flags & GLOB_NOSORT)) { - qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, - (size_t)pglob->gl_pathc - oldpathc, sizeof(char *), - compare); - } - - return(0); -} - -static int -compare(const void *p, const void *q) -{ - - return(strcoll(*(const char * const *)p, *(const char * const *)q)); -} - -static int -glob1(Char *pattern, glob_t *pglob, size_t *limit) -{ - Char pathbuf[MAXPATHLEN+1]; - - /* A null pathname is invalid -- POSIX 1003.1 sect. 2.4. */ - if (*pattern == EOS) - return(0); - /* - * we save one character so that we can use ptr >= limit, - * in the general case when we are appending non nul chars only. - */ - return(glob2(pathbuf, pathbuf, pathbuf + sizeof(pathbuf) - 1, pattern, - pglob, limit)); -} - -/* - * The functions glob2 and glob3 are mutually recursive; there is one level - * of recursion for each segment in the pattern that contains one or more - * meta characters. - */ -static int -glob2(Char *pathbuf, Char *pathend, Char *pathlim, - Char *pattern, glob_t *pglob, size_t *limit) -{ - struct stat sb; - Char *p, *q; - int anymeta; - - /* - * Loop over pattern segments until end of pattern or until - * segment with meta character found. - */ - for (anymeta = 0;;) { - if (*pattern == EOS) { /* End of pattern? */ - *pathend = EOS; - if (g_lstat(pathbuf, &sb, pglob)) - return(0); - - if (((pglob->gl_flags & GLOB_MARK) && - pathend[-1] != SEP) && (S_ISDIR(sb.st_mode) || - (S_ISLNK(sb.st_mode) && - (g_stat(pathbuf, &sb, pglob) == 0) && - S_ISDIR(sb.st_mode)))) { - if (pathend >= pathlim) - return (GLOB_ABORTED); - *pathend++ = SEP; - *pathend = EOS; - } - ++pglob->gl_matchc; - return(globextend(pathbuf, pglob, limit)); - } - - /* Find end of next segment, copy tentatively to pathend. */ - q = pathend; - p = pattern; - while (*p != EOS && *p != SEP) { - if (ismeta(*p)) - anymeta = 1; - if (q >= pathlim) - return GLOB_ABORTED; - *q++ = *p++; - } - - if (!anymeta) { /* No expansion, do next segment. */ - pathend = q; - pattern = p; - while (*pattern == SEP) { - if (pathend >= pathlim) - return GLOB_ABORTED; - *pathend++ = *pattern++; - } - } else /* Need expansion, recurse. */ - return(glob3(pathbuf, pathend, pathlim, pattern, p, - pglob, limit)); - } - /* NOTREACHED */ -} - -static int -glob3(Char *pathbuf, Char *pathend, Char *pathlim, - Char *pattern, Char *restpattern, glob_t *pglob, size_t *limit) -{ - struct dirent *dp; - DIR *dirp; - int error; - char buf[MAXPATHLEN]; - - /* - * The readdirfunc declaration can't be prototyped, because it is - * assigned, below, to two functions which are prototyped in glob.h - * and dirent.h as taking pointers to differently typed opaque - * structures. - */ - struct dirent *(*readdirfunc)(void *); - - *pathend = EOS; - errno = 0; - - if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { - if (pglob->gl_errfunc) { - if (g_Ctoc(pathbuf, buf, sizeof(buf))) - return (GLOB_ABORTED); - if (pglob->gl_errfunc(buf, errno) || - pglob->gl_flags & GLOB_ERR) - return (GLOB_ABORTED); - } - /* - * Posix/XOpen: glob should return when it encounters a - * directory that it cannot open or read - * XXX: Should we ignore ENOTDIR and ENOENT though? - * I think that Posix had in mind EPERM... - */ - if (pglob->gl_flags & GLOB_ERR) - return (GLOB_ABORTED); - - return(0); - } - - error = 0; - - /* Search directory for matching names. */ - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - readdirfunc = pglob->gl_readdir; - else - readdirfunc = (struct dirent *(*)(void *)) readdir; - while ((dp = (*readdirfunc)(dirp)) != NULL) { - u_char *sc; - Char *dc; - - /* Initial DOT must be matched literally. */ - if (dp->d_name[0] == DOT && *pattern != DOT) - continue; - /* - * The resulting string contains EOS, so we can - * use the pathlim character, if it is the nul - */ - for (sc = (u_char *) dp->d_name, dc = pathend; - dc <= pathlim && (*dc++ = *sc++) != EOS;) - continue; - - /* - * Have we filled the buffer without seeing EOS? - */ - if (dc > pathlim && *pathlim != EOS) { - /* - * Abort when requested by caller, otherwise - * reset pathend back to last SEP and continue - * with next dir entry. - */ - if (pglob->gl_flags & GLOB_ERR) { - error = GLOB_ABORTED; - break; - } - else { - *pathend = EOS; - continue; - } - } - - if (!match(pathend, pattern, restpattern)) { - *pathend = EOS; - continue; - } - error = glob2(pathbuf, --dc, pathlim, restpattern, pglob, limit); - if (error) - break; - } - - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - (*pglob->gl_closedir)(dirp); - else - closedir(dirp); - - /* - * Again Posix X/Open issue with regards to error handling. - */ - if ((error || errno) && (pglob->gl_flags & GLOB_ERR)) - return (GLOB_ABORTED); - - return(error); -} - - -/* - * Extend the gl_pathv member of a glob_t structure to accomodate a new item, - * add the new item, and update gl_pathc. - * - * This assumes the BSD realloc, which only copies the block when its size - * crosses a power-of-two boundary; for v7 realloc, this would cause quadratic - * behavior. - * - * Return 0 if new item added, error code if memory couldn't be allocated. - * - * Invariant of the glob_t structure: - * Either gl_pathc is zero and gl_pathv is NULL; or gl_pathc > 0 and - * gl_pathv points to (gl_offs + gl_pathc + 1) items. - */ -static int -globextend(const Char *path, glob_t *pglob, size_t *limit) -{ - char **pathv; - int i; - size_t newsize, len; - char *copy; - const Char *p; - - newsize = sizeof(*pathv) * (2 + pglob->gl_pathc + pglob->gl_offs); - pathv = pglob->gl_pathv ? realloc(pglob->gl_pathv, newsize) : - malloc(newsize); - if (pathv == NULL) - return(GLOB_NOSPACE); - - if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) { - /* first time around -- clear initial gl_offs items */ - pathv += pglob->gl_offs; - for (i = pglob->gl_offs; --i >= 0; ) - *--pathv = NULL; - } - pglob->gl_pathv = pathv; - - for (p = path; *p++;) - continue; - len = (size_t)(p - path); - *limit += len; - if ((copy = malloc(len)) != NULL) { - if (g_Ctoc(path, copy, len)) { - free(copy); - return(GLOB_ABORTED); - } - pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; - } - pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; - - if ((pglob->gl_flags & GLOB_LIMIT) && (newsize + *limit) >= ARG_MAX) { - errno = 0; - return(GLOB_NOSPACE); - } - - return(copy == NULL ? GLOB_NOSPACE : 0); -} - - -/* - * pattern matching function for filenames. Each occurrence of the * - * pattern causes a recursion level. - */ -static int -match(Char *name, Char *pat, Char *patend) -{ - int ok, negate_range; - Char c, k; - - while (pat < patend) { - c = *pat++; - switch (c & M_MASK) { - case M_ALL: - if (pat == patend) - return(1); - do - if (match(name, pat, patend)) - return(1); - while (*name++ != EOS); - return(0); - case M_ONE: - if (*name++ == EOS) - return(0); - break; - case M_SET: - ok = 0; - if ((k = *name++) == EOS) - return(0); - if ((negate_range = ((*pat & M_MASK) == M_NOT)) != EOS) - ++pat; - while (((c = *pat++) & M_MASK) != M_END) - if ((*pat & M_MASK) == M_RNG) { - if (c <= k && k <= pat[1]) - ok = 1; - pat += 2; - } else if (c == k) - ok = 1; - if (ok == negate_range) - return(0); - break; - default: - if (*name++ != c) - return(0); - break; - } - } - return(*name == EOS); -} - -/* Free allocated data belonging to a glob_t structure. */ -void -globfree(glob_t *pglob) -{ - int i; - char **pp; - - if (pglob->gl_pathv != NULL) { - pp = pglob->gl_pathv + pglob->gl_offs; - for (i = pglob->gl_pathc; i--; ++pp) - if (*pp) - free(*pp); - free(pglob->gl_pathv); - pglob->gl_pathv = NULL; - pglob->gl_pathc = 0; - } -} - -static DIR * -g_opendir(Char *str, glob_t *pglob) -{ - char buf[MAXPATHLEN]; - - if (!*str) - (void)strcpy(buf, "."); - else { - if (g_Ctoc(str, buf, sizeof(buf))) - return NULL; - } - - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - return((*pglob->gl_opendir)(buf)); - - return(opendir(buf)); -} - -static int -g_lstat(Char *fn, struct stat *sb, glob_t *pglob) -{ - char buf[MAXPATHLEN]; - - if (g_Ctoc(fn, buf, sizeof(buf))) - return -1; - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - return((*pglob->gl_lstat)(buf, sb)); - return(lstat(buf, sb)); -} - -static int -g_stat(Char *fn, struct stat *sb, glob_t *pglob) -{ - char buf[MAXPATHLEN]; - - if (g_Ctoc(fn, buf, sizeof(buf))) - return -1; - if (pglob->gl_flags & GLOB_ALTDIRFUNC) - return((*pglob->gl_stat)(buf, sb)); - return(stat(buf, sb)); -} - -static Char * -g_strchr(const Char *str, int ch) -{ - do { - if (*str == ch) - /* LINTED this is libc's definition! */ - return (Char *)str; - } while (*str++); - return (NULL); -} - -static int -g_Ctoc(const Char *str, char *buf, size_t len) -{ - char *dc; - - if (len == 0) - return 1; - - for (dc = buf; len && (*dc++ = *str++) != EOS; len--) - continue; - - return len == 0; -} - -#ifdef DEBUG -static void -qprintf(const char *str, Char *s) -{ - Char *p; - - (void)printf("%s:\n", str); - for (p = s; *p; p++) - (void)printf("%c", CHAR(*p)); - (void)printf("\n"); - for (p = s; *p; p++) - (void)printf("%c", *p & M_PROTECT ? '"' : ' '); - (void)printf("\n"); - for (p = s; *p; p++) - (void)printf("%c", ismeta(*p) ? '_' : ' '); - (void)printf("\n"); -} -#endif +#include "__glob13.c" diff --git a/pkgtools/libnbcompat/files/isblank.c b/pkgtools/libnbcompat/files/isblank.c index ad0fb8e1250..0d182359912 100644 --- a/pkgtools/libnbcompat/files/isblank.c +++ b/pkgtools/libnbcompat/files/isblank.c @@ -1,6 +1,53 @@ -/* $NetBSD: isblank.c,v 1.4 2003/09/06 23:03:03 grant Exp $ */ +/* $NetBSD: isblank.c,v 1.5 2004/08/23 03:32:12 jlam Exp $ */ -#include "nbcompat.h" +/* + * Copyright (c) 1989 The Regents of the University of California. + * All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)isctype.c 5.2 (Berkeley) 6/1/90"; +#else +__RCSID("$NetBSD: isblank.c,v 1.5 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#if 0 +#define _ANSI_LIBRARY +#endif +#include <nbcompat/ctype.h> int isblank(c) diff --git a/pkgtools/libnbcompat/files/lchflags.c b/pkgtools/libnbcompat/files/lchflags.c index d8cfbe2dab5..70f44003848 100644 --- a/pkgtools/libnbcompat/files/lchflags.c +++ b/pkgtools/libnbcompat/files/lchflags.c @@ -1,4 +1,4 @@ -/* $NetBSD: lchflags.c,v 1.1.1.1 2003/03/31 05:02:49 grant Exp $ */ +/* $NetBSD: lchflags.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -39,10 +39,9 @@ /* Emulate lchflags(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chflags(2) */ -#include "nbcompat.h" - -#include <sys/stat.h> -#include <unistd.h> +#include <nbcompat.h> +#include <nbcompat/stat.h> +#include <nbcompat/unistd.h> int lchflags(const char *path, u_long flags) diff --git a/pkgtools/libnbcompat/files/lchmod.c b/pkgtools/libnbcompat/files/lchmod.c index ae25155197d..697de1ed855 100644 --- a/pkgtools/libnbcompat/files/lchmod.c +++ b/pkgtools/libnbcompat/files/lchmod.c @@ -1,4 +1,4 @@ -/* $NetBSD: lchmod.c,v 1.1.1.1 2003/03/31 05:02:51 grant Exp $ */ +/* $NetBSD: lchmod.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -39,10 +39,9 @@ /* Emulate lchmod(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chmod(2) */ -#include "nbcompat.h" - -#include <sys/stat.h> -#include <unistd.h> +#include <nbcompat.h> +#include <nbcompat/stat.h> +#include <nbcompat/unistd.h> int lchmod(const char *path, mode_t mode) diff --git a/pkgtools/libnbcompat/files/lchown.c b/pkgtools/libnbcompat/files/lchown.c index 200b1f63d5f..09fcbbde5f1 100644 --- a/pkgtools/libnbcompat/files/lchown.c +++ b/pkgtools/libnbcompat/files/lchown.c @@ -1,4 +1,4 @@ -/* $NetBSD: lchown.c,v 1.1.1.1 2003/03/31 05:02:52 grant Exp $ */ +/* $NetBSD: lchown.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -39,8 +39,9 @@ /* Emulate lchown(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chown(2) */ -#include <sys/stat.h> -#include <unistd.h> +#include <nbcompat.h> +#include <nbcompat/stat.h> +#include <nbcompat/unistd.h> int lchown(const char *path, uid_t owner, gid_t group) diff --git a/pkgtools/libnbcompat/files/lutimes.c b/pkgtools/libnbcompat/files/lutimes.c index 9add9ba8a67..e1ff535826f 100644 --- a/pkgtools/libnbcompat/files/lutimes.c +++ b/pkgtools/libnbcompat/files/lutimes.c @@ -1,4 +1,4 @@ -/* $NetBSD: lutimes.c,v 1.1.1.1 2003/03/31 05:02:54 grant Exp $ */ +/* $NetBSD: lutimes.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -39,10 +39,9 @@ /* Emulate lutimes(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chmod(2) */ -#include "nbcompat.h" - -#include <sys/stat.h> -#include <unistd.h> +#include <nbcompat.h> +#include <nbcompat/stat.h> +#include <nbcompat/unistd.h> int lutimes(const char *path, const struct timeval *times) diff --git a/pkgtools/libnbcompat/files/md5c.c b/pkgtools/libnbcompat/files/md5c.c index 4b57ef30424..b3b1ee93441 100644 --- a/pkgtools/libnbcompat/files/md5c.c +++ b/pkgtools/libnbcompat/files/md5c.c @@ -1,8 +1,8 @@ -/* $NetBSD: md5c.c,v 1.5 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: md5c.c,v 1.6 2004/08/23 03:32:12 jlam Exp $ */ /* * This file is derived from the RSA Data Security, Inc. MD5 Message-Digest - * Algorithm and has been modifed by Jason R. Thorpe <thorpej@NetBSD.ORG> + * Algorithm and has been modified by Jason R. Thorpe <thorpej@NetBSD.org> * for portability and formatting. */ @@ -29,29 +29,36 @@ * documentation and/or software. */ -#include "nbcompat/nbconfig.h" -#include "nbcompat/nbtypes.h" - #if defined(_KERNEL) || defined(_STANDALONE) #include <lib/libkern/libkern.h> #include <sys/param.h> #include <sys/md5.h> #define _DIAGASSERT(x) (void)0 #else -/* #include "namespace.h" */ -#include <assert.h> -#include <string.h> -#include "nbcompat/md5.h" +#if 0 +#include "namespace.h" +#endif +#include <nbcompat.h> +#include <nbcompat/types.h> +#include <nbcompat/assert.h> +#include <nbcompat/string.h> +#include <nbcompat/md5.h> #endif /* _KERNEL || _STANDALONE */ +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#if !HAVE_MD5_H + #if defined(HAVE_MEMSET) -#define ZEROIZE(d, l) memset((d), 0, (l)) -#else +#define ZEROIZE(d, l) memset((d), 0, (l)) +#else # if defined(HAVE_BZERO) #define ZEROIZE(d, l) bzero((d), (l)) # else -#error You need either memset or bzero -# endif +#error You need either memset or bzero +# endif #endif typedef unsigned char *POINTER; @@ -86,10 +93,6 @@ __weak_alias(MD5Final,_MD5Final) #endif #endif -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif - static void MD5Transform __P((UINT4 [4], const unsigned char [64])); static void Encode __P((unsigned char *, UINT4 *, unsigned int)); @@ -229,7 +232,7 @@ MD5Update(context, input, inputLen) if (inputLen >= partLen) { /* LINTED const castaway ok */ memcpy((POINTER)&context->buffer[idx], - input, partLen); + (POINTER)input, partLen); MD5Transform(context->state, context->buffer); for (i = partLen; i + 63 < inputLen; i += 64) @@ -241,7 +244,7 @@ MD5Update(context, input, inputLen) /* Buffer remaining input */ /* LINTED const castaway ok */ - memcpy((POINTER)&context->buffer[idx], &input[i], + memcpy((POINTER)&context->buffer[idx], (POINTER)&input[i], inputLen - i); } @@ -370,3 +373,5 @@ MD5Transform(state, block) /* Zeroize sensitive information. */ ZEROIZE((POINTER)(void *)x, sizeof (x)); } + +#endif /* HAVE_MD5_H */ diff --git a/pkgtools/libnbcompat/files/md5hl.c b/pkgtools/libnbcompat/files/md5hl.c index c444e005717..64d80fbdf68 100644 --- a/pkgtools/libnbcompat/files/md5hl.c +++ b/pkgtools/libnbcompat/files/md5hl.c @@ -1,122 +1,22 @@ -/* $NetBSD: md5hl.c,v 1.6 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: md5hl.c,v 1.7 2004/08/23 03:32:12 jlam Exp $ */ /* - * Written by Jason R. Thorpe <thorpej@netbsd.org>, April 29, 1997. + * Written by Jason R. Thorpe <thorpej@NetBSD.org>, April 29, 1997. * Public domain. */ -#include "nbcompat/nbconfig.h" -#include "nbcompat/nbtypes.h" - -/* #include "namespace.h" */ - #define MDALGORITHM MD5 -#include "nbcompat/md5.h" - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) +#if 0 +#include "namespace.h" #endif +#include <nbcompat.h> +#include <nbcompat/md5.h> -/* - * ---------------------------------------------------------------------------- - * "THE BEER-WARE LICENSE" (Revision 42): - * <phk@login.dkuug.dk> wrote this file. As long as you retain this notice you - * can do whatever you want with this stuff. If we meet some day, and you think - * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp - * ---------------------------------------------------------------------------- - * - * from FreeBSD Id: mdXhl.c,v 1.8 1996/10/25 06:48:12 bde Exp - */ - -/* - * Modifed April 29, 1997 by Jason R. Thorpe <thorpej@netbsd.org> - */ - -#include <assert.h> -#if HAVE_FCNTL_H -#include <fcntl.h> -#endif -#if HAVE_ERRNO_H -#include <errno.h> -#endif -#include <stdio.h> -#include <stdlib.h> -#if HAVE_UNISTD_H -#include <unistd.h> +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" #endif -#define CONCAT(x,y) __CONCAT(x,y) -#define MDNAME(x) CONCAT(MDALGORITHM,x) - -char * -MDNAME(End)(ctx, buf) - MDNAME(_CTX) *ctx; - char *buf; -{ - int i; - unsigned char digest[16]; - static const char hex[]="0123456789abcdef"; - - _DIAGASSERT(ctx != 0); - - if (buf == NULL) - buf = malloc(33); - if (buf == NULL) - return (NULL); - - MDNAME(Final)(digest, ctx); - - for (i = 0; i < 16; i++) { - buf[i+i] = hex[(u_int32_t)digest[i] >> 4]; - buf[i+i+1] = hex[digest[i] & 0x0f]; - } - - buf[i+i] = '\0'; - return (buf); -} - -char * -MDNAME(File)(filename, buf) - const char *filename; - char *buf; -{ - unsigned char buffer[BUFSIZ]; - MDNAME(_CTX) ctx; - int f, i, j; - - _DIAGASSERT(filename != 0); - /* buf may be NULL */ - - MDNAME(Init)(&ctx); - f = open(filename, O_RDONLY, 0666); - if (f < 0) - return NULL; - - while ((i = read(f, buffer, sizeof(buffer))) > 0) - MDNAME(Update)(&ctx, buffer, (unsigned int)i); - - j = errno; - close(f); - errno = j; - - if (i < 0) - return NULL; - - return (MDNAME(End)(&ctx, buf)); -} - -char * -MDNAME(Data)(data, len, buf) - const unsigned char *data; - unsigned int len; - char *buf; -{ - MDNAME(_CTX) ctx; - - _DIAGASSERT(data != 0); - - MDNAME(Init)(&ctx); - MDNAME(Update)(&ctx, data, len); - return (MDNAME(End)(&ctx, buf)); -} +#if !HAVE_MD5_H +#include "mdXhl.c" +#endif diff --git a/pkgtools/libnbcompat/files/mdXhl.c b/pkgtools/libnbcompat/files/mdXhl.c new file mode 100644 index 00000000000..2fece0841e6 --- /dev/null +++ b/pkgtools/libnbcompat/files/mdXhl.c @@ -0,0 +1,105 @@ +/* $NetBSD: mdXhl.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ + +/* + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * <phk@login.dkuug.dk> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp + * ---------------------------------------------------------------------------- + * + * from FreeBSD Id: mdXhl.c,v 1.8 1996/10/25 06:48:12 bde Exp + */ + +/* + * Modifed April 29, 1997 by Jason R. Thorpe <thorpej@NetBSD.org> + */ + +#include <nbcompat.h> +#include <nbcompat/types.h> + +#include <nbcompat/assert.h> +#if HAVE_FCNTL_H +#include <fcntl.h> +#endif +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/unistd.h> + +#define CONCAT(x,y) __CONCAT(x,y) +#define MDNAME(x) CONCAT(MDALGORITHM,x) + +char * +MDNAME(End)(ctx, buf) + MDNAME(_CTX) *ctx; + char *buf; +{ + int i; + unsigned char digest[16]; + static const char hex[]="0123456789abcdef"; + + _DIAGASSERT(ctx != 0); + + if (buf == NULL) + buf = malloc(33); + if (buf == NULL) + return (NULL); + + MDNAME(Final)(digest, ctx); + + for (i = 0; i < 16; i++) { + buf[i+i] = hex[(u_int32_t)digest[i] >> 4]; + buf[i+i+1] = hex[digest[i] & 0x0f]; + } + + buf[i+i] = '\0'; + return (buf); +} + +char * +MDNAME(File)(filename, buf) + const char *filename; + char *buf; +{ + unsigned char buffer[BUFSIZ]; + MDNAME(_CTX) ctx; + int f, i, j; + + _DIAGASSERT(filename != 0); + /* buf may be NULL */ + + MDNAME(Init)(&ctx); + f = open(filename, O_RDONLY, 0666); + if (f < 0) + return NULL; + + while ((i = read(f, buffer, sizeof(buffer))) > 0) + MDNAME(Update)(&ctx, buffer, (unsigned int)i); + + j = errno; + close(f); + errno = j; + + if (i < 0) + return NULL; + + return (MDNAME(End)(&ctx, buf)); +} + +char * +MDNAME(Data)(data, len, buf) + const unsigned char *data; + unsigned int len; + char *buf; +{ + MDNAME(_CTX) ctx; + + _DIAGASSERT(data != 0); + + MDNAME(Init)(&ctx); + MDNAME(Update)(&ctx, data, len); + return (MDNAME(End)(&ctx, buf)); +} diff --git a/pkgtools/libnbcompat/files/mkdtemp.c b/pkgtools/libnbcompat/files/mkdtemp.c index 90fbbea8209..3d9a7a2fd02 100644 --- a/pkgtools/libnbcompat/files/mkdtemp.c +++ b/pkgtools/libnbcompat/files/mkdtemp.c @@ -1,4 +1,4 @@ -/* $NetBSD: mkdtemp.c,v 1.2 2003/09/04 01:51:16 jlam Exp $ */ +/* $NetBSD: mkdtemp.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 @@ -29,93 +29,49 @@ * SUCH DAMAGE. */ -#include "nbcompat.h" +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif -char * -mkdtemp(char *path) -{ - char *start, *trv; - struct stat sbuf; - u_int pid; - - /* To guarantee multiple calls generate unique names even if - the file is not created. 676 different possibilities with 7 - or more X's, 26 with 6 or less. */ - static char xtra[2] = "aa"; - int xcnt = 0; - - pid = getpid(); - - /* Move to end of path and count trailing X's. */ - for (trv = path; *trv; ++trv) - if (*trv == 'X') - xcnt++; - else - xcnt = 0; +#if !HAVE_NBTOOL_CONFIG_H || !HAVE_MKDTEMP - /* Use at least one from xtra. Use 2 if more than 6 X's. */ - if (*(trv-1) == 'X') - *--trv = xtra[0]; - if (xcnt > 6 && *(trv-1) == 'X') - *--trv = xtra[1]; +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: mkdtemp.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ - /* Set remaining X's to pid digits with 0's to the left. */ - while (*--trv == 'X') { - *trv = (pid % 10) + '0'; - pid /= 10; - } +#if HAVE_NBTOOL_CONFIG_H +#define GETTEMP gettemp +#else +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/unistd.h> +#if 0 +#include "reentrant.h" +#include "local.h" +#define GETTEMP __gettemp +#else +#define GETTEMP gettemp +extern int gettemp __P((char *, int *, int)); +#endif +#endif - /* update xtra for next call. */ - if (xtra[0] != 'z') - xtra[0]++; - else { - xtra[0] = 'a'; - if (xtra[1] != 'z') - xtra[1]++; - else - xtra[1] = 'a'; - } - - /* - * check the target directory; if you have six X's and it - * doesn't exist this runs for a *very* long time. - */ - for (start = trv + 1;; --trv) { - if (trv <= path) - break; - if (*trv == '/') { - *trv = '\0'; - if (stat(path, &sbuf)) - return (char *)NULL; - if (!S_ISDIR(sbuf.st_mode)) { - errno = ENOTDIR; - return (char *)NULL; - } - *trv = '/'; - break; - } - } - - for (;;) { - if (mkdir(path, 0700) >= 0) - return path; - if (errno != EEXIST) - return (char *)NULL; +char * +mkdtemp(path) + char *path; +{ + _DIAGASSERT(path != NULL); - /* tricky little algorithm for backward compatibility */ - for (trv = start;;) { - if (!*trv) - return (char *)NULL; - if (*trv == 'z') - *trv++ = 'a'; - else { - if (isdigit((unsigned char)*trv)) - *trv = 'a'; - else - ++*trv; - break; - } - } - } - /*NOTREACHED*/ + return (GETTEMP(path, (int *)NULL, 1) ? path : (char *)NULL); } + +#endif /* !HAVE_NBTOOL_CONFIG_H || !HAVE_MKDTEMP */ diff --git a/pkgtools/libnbcompat/files/mkstemp.c b/pkgtools/libnbcompat/files/mkstemp.c index 9eb57dea122..c558d6e8d13 100644 --- a/pkgtools/libnbcompat/files/mkstemp.c +++ b/pkgtools/libnbcompat/files/mkstemp.c @@ -1,4 +1,4 @@ -/* $NetBSD: mkstemp.c,v 1.3 2003/09/06 23:03:03 grant Exp $ */ +/* $NetBSD: mkstemp.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 @@ -29,94 +29,51 @@ * SUCH DAMAGE. */ -#include "nbcompat.h" +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif -int -mkstemp(char *path) -{ - char *start, *trv; - struct stat sbuf; - u_int pid; - int fd; - - /* To guarantee multiple calls generate unique names even if - the file is not created. 676 different possibilities with 7 - or more X's, 26 with 6 or less. */ - static char xtra[2] = "aa"; - int xcnt = 0; - - pid = getpid(); - - /* Move to end of path and count trailing X's. */ - for (trv = path; *trv; ++trv) - if (*trv == 'X') - xcnt++; - else - xcnt = 0; +#if !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP - /* Use at least one from xtra. Use 2 if more than 6 X's. */ - if (*(trv-1) == 'X') - *--trv = xtra[0]; - if (xcnt > 6 && *(trv-1) == 'X') - *--trv = xtra[1]; +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: mkstemp.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ - /* Set remaining X's to pid digits with 0's to the left. */ - while (*--trv == 'X') { - *trv = (pid % 10) + '0'; - pid /= 10; - } +#if HAVE_NBTOOL_CONFIG_H +#define GETTEMP gettemp +#else +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/unistd.h> +#if 0 +#include "reentrant.h" +#include "local.h" +#define GETTEMP __gettemp +#else +#define GETTEMP gettemp +extern int gettemp __P((char *, int *, int)); +#endif +#endif - /* update xtra for next call. */ - if (xtra[0] != 'z') - xtra[0]++; - else { - xtra[0] = 'a'; - if (xtra[1] != 'z') - xtra[1]++; - else - xtra[1] = 'a'; - } - - /* - * check the target directory; if you have six X's and it - * doesn't exist this runs for a *very* long time. - */ - for (start = trv + 1;; --trv) { - if (trv <= path) - break; - if (*trv == '/') { - *trv = '\0'; - if (stat(path, &sbuf)) - return (-1); - if (!S_ISDIR(sbuf.st_mode)) { - errno = ENOTDIR; - return (-1); - } - *trv = '/'; - break; - } - } +int +mkstemp(path) + char *path; +{ + int fd; - for (;;) { - if ((fd = open(path, O_CREAT|O_EXCL|O_RDWR, 0600)) >= 0) - return (fd); - if (errno != EEXIST) - return (-1); + _DIAGASSERT(path != NULL); - /* tricky little algorithm for backward compatibility */ - for (trv = start;;) { - if (!*trv) - return (-1); - if (*trv == 'z') - *trv++ = 'a'; - else { - if (isdigit((unsigned char)*trv)) - *trv = 'a'; - else - ++*trv; - break; - } - } - } - /*NOTREACHED*/ + return (GETTEMP(path, &fd, 0) ? fd : -1); } + +#endif /* !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP */ diff --git a/pkgtools/libnbcompat/files/nbcompat.h b/pkgtools/libnbcompat/files/nbcompat.h index ebef57a033c..903c3cf972f 100644 --- a/pkgtools/libnbcompat/files/nbcompat.h +++ b/pkgtools/libnbcompat/files/nbcompat.h @@ -1,4 +1,4 @@ -/* $NetBSD: nbcompat.h,v 1.37 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: nbcompat.h,v 1.38 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -36,23 +36,30 @@ #include <nbcompat/nbconfig.h> #include <nbcompat/nbtypes.h> -#include <sys/types.h> -#include <sys/param.h> -#include <sys/socket.h> -#include <sys/wait.h> +#include <nbcompat/cdefs.h> +#include <nbcompat/limits.h> +#include <nbcompat/endian.h> +#include <nbcompat/types.h> +#include <nbcompat/param.h> -#include <ctype.h> +#if HAVE_ERRNO_H #include <errno.h> -#include <fcntl.h> -#include <setjmp.h> -#include <signal.h> +#endif + +#if HAVE_STDARG_H #include <stdarg.h> +#endif + +#if HAVE_STDDEF_H #include <stddef.h> -#include <termios.h> +#endif +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#include <nbcompat/dirent.h> +#include <nbcompat/err.h> #include <nbcompat/fnmatch.h> #include <nbcompat/grp.h> -#include <nbcompat/limits.h> #include <nbcompat/paths.h> #include <nbcompat/pwd.h> #include <nbcompat/queue.h> @@ -61,30 +68,20 @@ #include <nbcompat/stdlib.h> #include <nbcompat/stdio.h> #include <nbcompat/string.h> +#include <nbcompat/termcap.h> #include <nbcompat/time.h> #include <nbcompat/tzfile.h> #include <nbcompat/unistd.h> #include <nbcompat/util.h> -#if !HAVE_POLL -# undef HAVE_POLL_H -# undef HAVE_SYS_POLL_H -# include <nbcompat/poll.h> -#endif - -#if HAVE_DIRENT_H -# include <dirent.h> -#else -# define dirent direct -# if HAVE_SYS_NDIR_H -# include <sys/ndir.h> +#if HAVE_NBCOMPAT_POLL +# if HAVE_POLL_H +# undef HAVE_POLL_H # endif -# if HAVE_SYS_DIR_H -# include <sys/dir.h> -# endif -# if HAVE_NDIR_H -# include <ndir.h> +# if HAVE_SYS_POLL_H +# undef HAVE_SYS_POLL_H # endif +# include <nbcompat/poll.h> #endif #if HAVE_NBCOMPAT_FTS @@ -94,16 +91,6 @@ # include <nbcompat/fts.h> #endif -#if HAVE_ASSERT_H -# include <assert.h> -#endif - -#if HAVE_ERR_H -# include <err.h> -#else -# include <nbcompat/err.h> -#endif - #if HAVE_NBCOMPAT_GLOB # if HAVE_GLOB_H # undef HAVE_GLOB_H @@ -118,24 +105,6 @@ # include <nbcompat/regex.h> #endif -#if HAVE_SYS_MKDEV_H -# include <sys/mkdev.h> -# if !defined(makedev) && defined(mkdev) -# define makedev mkdev -# endif -#endif - -#if HAVE_TERMCAP_H -# include <termcap.h> -#else -int tgetent(char *, const char *); -char *tgetstr(const char *, char **); -int tgetflag(const char *); -int tgetnum(const char *); -char *tgoto(const char *, int, int); -void tputs(const char *, int, int (*)(int)); -#endif - #if HAVE_NBCOMPAT_MD5INIT # if HAVE_MD5_H # undef HAVE_MD5_H @@ -176,26 +145,3 @@ void tputs(const char *, int, int (*)(int)); # endif # include <nbcompat/getopt.h> #endif - -#if !HAVE_D_NAMLEN -# ifndef DIRENT_MISSING_D_NAMLEN -# define DIRENT_MISSING_D_NAMLEN -# endif -#endif - -#if !HAVE_ISBLANK -int isblank(int); -#endif - -#if HAVE_GETPASSPHRASE -# ifndef getpass -# define getpass getpassphrase -# endif -#endif - -#if !defined(MIN) -# define MIN(a, b) ((a) < (b) ? (a) : (b)) -#endif -#if !defined(MAX) -# define MAX(a, b) ((a) < (b) ? (b) : (a)) -#endif diff --git a/pkgtools/libnbcompat/files/nbcompat/assert.h b/pkgtools/libnbcompat/files/nbcompat/assert.h new file mode 100644 index 00000000000..736e0563982 --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/assert.h @@ -0,0 +1,54 @@ +/* $NetBSD: assert.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_ASSERT_H_ +#define _NBCOMPAT_ASSERT_H_ + +#if HAVE_ASSERT_H +# include <assert.h> +#endif + +/* + * Declare macros and functions that may be missing in <assert.h>. + */ + +#ifndef _DIAGASSERT +#define _DIAGASSERT(cond) assert(cond) +#endif + +#endif /* !_NBCOMPAT_ASSERT_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/cdefs.h b/pkgtools/libnbcompat/files/nbcompat/cdefs.h new file mode 100644 index 00000000000..0149af8667d --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/cdefs.h @@ -0,0 +1,95 @@ +/* $NetBSD: cdefs.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_SYS_CDEFS_H_ +#define _NBCOMPAT_SYS_CDEFS_H_ + +#if HAVE_SYS_CDEFS_H +# include <sys/cdefs.h> +#endif + +/* + * Declare macros and functions that may be missing in <sys/cdefs.h>. + */ + +#ifndef __IDSTRING +# define __IDSTRING(name,string) \ + static const char name[] __attribute__((__unused__)) = string +#endif + +#ifndef __COPYRIGHT +# define __COPYRIGHT(_s) __IDSTRING(copyright,_s) +#endif + +#ifndef __RCSID +# define __RCSID(_s) __IDSTRING(rcsid,_s) +#endif + +#ifndef __P +# if defined(__STDC__) || defined(__cplusplus) +# define __P(protos) protos /* full-blown ANSI C */ +# else +# define __P(protos) () /* traditional C preprocessor */ +# endif +#endif + +#ifndef __CONCAT +# if defined(__STDC__) || defined(__cplusplus) +# define __CONCAT(x,y) x ## y +# else +# define __CONCAT(x,y) x/**/y +# endif +#endif + +#ifndef __BEGIN_DECLS +# if defined(__cplusplus) +# define __BEGIN_DECLS extern "C" { +# else +# define __BEGIN_DECLS +# endif +#endif + +#ifndef __END_DECLS +# if defined(__cplusplus) +# define __END_DECLS }; +# else +# define __END_DECLS +# endif +#endif + +#endif /* !_NBCOMPAT_SYS_CDEFS_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/config.h.in b/pkgtools/libnbcompat/files/nbcompat/config.h.in index 5904fbc6d8e..e60ebfe97e3 100644 --- a/pkgtools/libnbcompat/files/nbcompat/config.h.in +++ b/pkgtools/libnbcompat/files/nbcompat/config.h.in @@ -3,6 +3,9 @@ /* Define to 1 if the `getpgrp' function requires zero arguments. */ #undef GETPGRP_VOID +/* Define to 1 if you have the <alloca.h> header file. */ +#undef HAVE_ALLOCA_H + /* Define to 1 if you have the <assert.h> header file. */ #undef HAVE_ASSERT_H @@ -15,6 +18,17 @@ /* Define to 1 if you have the `bzero' function. */ #undef HAVE_BZERO +/* Define to 1 if you have the <ctype.h> header file. */ +#undef HAVE_CTYPE_H + +/* Define to 1 if you have the declaration of `optind', and to 0 if you don't. + */ +#undef HAVE_DECL_OPTIND + +/* Define to 1 if you have the declaration of `optreset', and to 0 if you + don't. */ +#undef HAVE_DECL_OPTRESET + /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R @@ -191,18 +205,9 @@ /* Define to 1 if you have the <netinet/in6_machtypes.h> header file. */ #undef HAVE_NETINET_IN6_MACHTYPES_H -/* Define to 1 if optarg is declared in <stdlib.h> or <unistd.h> */ -#undef HAVE_OPTARG_D - -/* Define to 1 if optind is declared in <stdlib.h> or <unistd.h> */ -#undef HAVE_OPTIND_D - /* Define to 1 if you have the <paths.h> header file. */ #undef HAVE_PATHS_H -/* Define to 1 if you have the `poll' function. */ -#undef HAVE_POLL - /* Define to 1 if you have the <poll.h> header file. */ #undef HAVE_POLL_H @@ -249,12 +254,21 @@ /* Define to 1 if you have the <sha1.h> header file. */ #undef HAVE_SHA1_H +/* Define to 1 if you have the <signal.h> header file. */ +#undef HAVE_SIGNAL_H + /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the `statvfs' function. */ #undef HAVE_STATVFS +/* Define to 1 if you have the <stdarg.h> header file. */ +#undef HAVE_STDARG_H + +/* Define to 1 if you have the <stddef.h> header file. */ +#undef HAVE_STDDEF_H + /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H @@ -273,9 +287,6 @@ /* Define to 1 if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R -/* Define to 1 if you have the <stringlist.h> header file. */ -#undef HAVE_STRINGLIST_H - /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H @@ -300,6 +311,9 @@ /* Define to 1 if you have the `strtoll' function. */ #undef HAVE_STRTOLL +/* Define to 1 if `d_namlen' is member of `struct dirent'. */ +#undef HAVE_STRUCT_DIRENT_D_NAMLEN + /* Define to 1 if `f_fsize' is member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FSIZE @@ -312,6 +326,9 @@ /* Define to 1 if you have the `strvis' function. */ #undef HAVE_STRVIS +/* Define to 1 if you have the `svis' function. */ +#undef HAVE_SVIS + /* Define to 1 if you have the <sys/bitypes.h> header file. */ #undef HAVE_SYS_BITYPES_H @@ -366,15 +383,15 @@ /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H +/* Define to 1 if you have the <sys/uio.h> header file. */ +#undef HAVE_SYS_UIO_H + /* Define to 1 if you have the <sys/vfs.h> header file. */ #undef HAVE_SYS_VFS_H /* Define to 1 if you have the <termcap.h> header file. */ #undef HAVE_TERMCAP_H -/* Define to 1 if you have the <termios.h> header file. */ -#undef HAVE_TERMIOS_H - /* Define to 1 if you have the <time.h> header file. */ #undef HAVE_TIME_H @@ -402,6 +419,9 @@ /* Define to 1 if you have the `unsetenv' function. */ #undef HAVE_UNSETENV +/* Define to 1 if you have the `unvis' function. */ +#undef HAVE_UNVIS + /* Define to 1 if you have the `user_from_uid' function. */ #undef HAVE_USER_FROM_UID @@ -414,8 +434,8 @@ /* Define to 1 if you have the `utimes' function. */ #undef HAVE_UTIMES -/* Define to 1 if you have the <utmp.h> header file. */ -#undef HAVE_UTMP_H +/* Define to 1 if you have the <utime.h> header file. */ +#undef HAVE_UTIME_H /* Define to 1 if the system has the type `u_int16_t'. */ #undef HAVE_U_INT16_T @@ -429,12 +449,18 @@ /* Define to 1 if the system has the type `u_int8_t'. */ #undef HAVE_U_INT8_T +/* Define to 1 if you have the `vis' function. */ +#undef HAVE_VIS + /* Define to 1 if you have the <vis.h> header file. */ #undef HAVE_VIS_H /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF +/* Define to 1 if you have the `warn' function. */ +#undef HAVE_WARN + /* Define to 1 if `long long' is supported and sizeof(off_t) >= 8. */ #undef HAVE_WORKING_LONG_LONG @@ -485,112 +511,3 @@ # define __attribute__(x) #endif -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - -#ifndef __IDSTRING -# define __IDSTRING(name,string) \ - static const char name[] __attribute__((__unused__)) = string -#endif - -#ifndef __RCSID -# define __RCSID(_s) __IDSTRING(rcsid,_s) -#endif - -#ifndef __COPYRIGHT -# define __COPYRIGHT(_s) __IDSTRING(copyright,_s) -#endif - -#ifndef __P -# if defined(__STDC__) || defined(__cplusplus) -# define __P(protos) protos /* full-blown ANSI C */ -# else -# define __P(protos) () /* traditional C preprocessor */ -# endif -#endif - -#ifndef __CONCAT -# if defined(__STDC__) || defined(__cplusplus) -# define __CONCAT(x,y) x ## y -# else -# define __CONCAT(x,y) x/**/y -# endif -#endif - -#ifndef __BEGIN_DECLS -# if defined(__cplusplus) -# define __BEGIN_DECLS extern "C" { -# else -# define __BEGIN_DECLS -# endif -#endif - -#ifndef __END_DECLS -# if defined(__cplusplus) -# define __END_DECLS }; -# else -# define __END_DECLS -# endif -#endif - -#if HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif - -#if HAVE_SYS_ENDIAN_H -#include <sys/endian.h> -#endif - -#if HAVE_MACHINE_ENDIAN_H -#include <machine/endian.h> -#endif - -#if HAVE_SYS_BYTEORDER_H -#include <sys/byteorder.h> -#endif - -#if HAVE_LIMITS_H -#include <limits.h> -#endif - -#ifndef LITTLE_ENDIAN -# define LITTLE_ENDIAN 1234 -#endif - -#ifndef BIG_ENDIAN -# define BIG_ENDIAN 4321 -#endif - -#ifndef UINT_MAX -# define UINT_MAX 4294967295U -#endif - -#ifndef BYTE_ORDER -# if defined(_BIG_ENDIAN) -# define BYTE_ORDER BIG_ENDIAN -# elif defined(_LITTE_ENDIAN) -# define BYTE_ORDER LITTLE_ENDIAN -# elif defined(WORDS_BIGENDIAN) -# define BYTE_ORDER BIG_ENDIAN -# else -# define BYTE_ORDER LITTLE_ENDIAN -# endif -#endif - -#if defined(HAVE_MEMSET) -# define MEMSET_BZERO(p,l) memset((p), 0, (l)) -#elif defined(HAVE_BZERO) -# define MEMSET_BZERO(p,l) bzero((p), (l)) -#else -# error You need either memset or bzero -#endif - -#if defined(HAVE_MEMCPY) -# define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l)) -#elif defined(HAVE_BCOPY) -# define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l)) -#else -# error You need either memcpy or bcopy -#endif - diff --git a/pkgtools/libnbcompat/files/nbcompat/ctype.h b/pkgtools/libnbcompat/files/nbcompat/ctype.h new file mode 100644 index 00000000000..a90bbdc36a4 --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/ctype.h @@ -0,0 +1,54 @@ +/* $NetBSD: ctype.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_CTYPE_H_ +#define _NBCOMPAT_CTYPE_H_ + +#if HAVE_CTYPE_H +# include <ctype.h> +#endif + +/* + * Declare macros and functions that may be missing in <ctype.h>. + */ + +#if !HAVE_ISBLANK +int isblank(int); +#endif + +#endif /* !_NBCOMPAT_CTYPE_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/dirent.h b/pkgtools/libnbcompat/files/nbcompat/dirent.h new file mode 100644 index 00000000000..b23adfc60ec --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/dirent.h @@ -0,0 +1,65 @@ +/* $NetBSD: dirent.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_DIRENT_H_ +#define _NBCOMPAT_DIRENT_H_ + +#if HAVE_DIRENT_H +# include <dirent.h> +#else +# define dirent direct +# if HAVE_SYS_NDIR_H +# include <sys/ndir.h> +# endif +# if HAVE_SYS_DIR_H +# include <sys/dir.h> +# endif +# if HAVE_NDIR_H +# include <ndir.h> +# endif +#endif + +/* + * Declare functions and macros that may be missing in <dirent.h>. + */ + +#ifndef dirfd +#define dirfd(dirp) ((dirp)->dd_fd) +#endif + +#endif /* !_NBCOMPAT_DIRENT_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/endian.h b/pkgtools/libnbcompat/files/nbcompat/endian.h new file mode 100644 index 00000000000..2a6a475552d --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/endian.h @@ -0,0 +1,79 @@ +/* $NetBSD: endian.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_ENDIAN_H_ +#define _NBCOMPAT_ENDIAN_H_ + +#if HAVE_SYS_ENDIAN_H +# include <sys/endian.h> +#endif + +#if HAVE_MACHINE_ENDIAN_H +# include <machine/endian.h> +#endif + +#if HAVE_SYS_BYTEORDER_H +# include <sys/byteorder.h> +#endif + +/* + * Declare macros that may be missing in <sys/endian.h>, <machine/endian.h>, + * and <sys/byteorder.h> + */ + +#ifndef LITTLE_ENDIAN +# define LITTLE_ENDIAN 1234 +#endif + +#ifndef BIG_ENDIAN +# define BIG_ENDIAN 4321 +#endif + +#ifndef BYTE_ORDER +# if defined(_BIG_ENDIAN) +# define BYTE_ORDER BIG_ENDIAN +# elif defined(_LITTE_ENDIAN) +# define BYTE_ORDER LITTLE_ENDIAN +# elif defined(WORDS_BIGENDIAN) +# define BYTE_ORDER BIG_ENDIAN +# else +# define BYTE_ORDER LITTLE_ENDIAN +# endif +#endif + +#endif /* !_NBCOMPAT_ENDIAN_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/err.h b/pkgtools/libnbcompat/files/nbcompat/err.h index 5aac0839b9c..eb7f0a06bf0 100644 --- a/pkgtools/libnbcompat/files/nbcompat/err.h +++ b/pkgtools/libnbcompat/files/nbcompat/err.h @@ -1,4 +1,4 @@ -/* $NetBSD: err.h,v 1.3 2004/08/16 17:24:57 jlam Exp $ */ +/* $NetBSD: err.h,v 1.4 2004/08/23 03:32:13 jlam Exp $ */ /* * Copyright (c) 1989, 1993 @@ -38,15 +38,22 @@ #ifndef _NBCOMPAT_ERR_H_ #define _NBCOMPAT_ERR_H_ +#if HAVE_ERR_H +# include <err.h> +#endif + #if !HAVE_ERR -void err(int, const char *, ...); -void errx(int, const char *, ...); -void verr(int, const char *, va_list); -void verrx(int, const char *, va_list); -void warn(const char *, ...); -void warnx(const char *, ...); -void vwarn(const char *, va_list); -void vwarnx(const char *, va_list); +void err __P((int, const char *, ...)); +void errx __P((int, const char *, ...)); +void verr __P((int, const char *, va_list)); +void verrx __P((int, const char *, va_list)); +#endif + +#if !HAVE_WARN +void warn __P((const char *, ...)); +void warnx __P((const char *, ...)); +void vwarn __P((const char *, va_list)); +void vwarnx __P((const char *, va_list)); #endif #endif /* !_NBCOMPAT_ERR_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/getopt.h b/pkgtools/libnbcompat/files/nbcompat/getopt.h index 04ed5a6cb76..8af7a9c3896 100644 --- a/pkgtools/libnbcompat/files/nbcompat/getopt.h +++ b/pkgtools/libnbcompat/files/nbcompat/getopt.h @@ -1,4 +1,4 @@ -/* $NetBSD: getopt.h,v 1.3 2004/08/16 17:24:57 jlam Exp $ */ +/* $NetBSD: getopt.h,v 1.4 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -39,13 +39,8 @@ #ifndef _NBCOMPAT_GETOPT_H_ #define _NBCOMPAT_GETOPT_H_ -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - -#if HAVE_UNISTD_H -#include <unistd.h> -#endif +#include <nbcompat/cdefs.h> +#include <nbcompat/unistd.h> /* * Gnu like getopt_long() and BSD4.4 getsubopt()/optreset extensions diff --git a/pkgtools/libnbcompat/files/nbcompat/limits.h b/pkgtools/libnbcompat/files/nbcompat/limits.h index 51a30f6e1a0..1f060ad90bf 100644 --- a/pkgtools/libnbcompat/files/nbcompat/limits.h +++ b/pkgtools/libnbcompat/files/nbcompat/limits.h @@ -1,4 +1,4 @@ -/* $NetBSD: limits.h,v 1.1 2004/08/10 18:47:55 jlam Exp $ */ +/* $NetBSD: limits.h,v 1.2 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -47,6 +47,10 @@ * Declare functions and macros that may be missing in <limits.h>. */ +#ifndef UINT_MAX +# define UINT_MAX 4294967295U +#endif + #if !defined(LLONG_MAX) # if defined(LONG_LONG_MAX) # define LLONG_MAX LONG_LONG_MAX diff --git a/pkgtools/libnbcompat/files/nbcompat/param.h b/pkgtools/libnbcompat/files/nbcompat/param.h new file mode 100644 index 00000000000..e46c221645b --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/param.h @@ -0,0 +1,57 @@ +/* $NetBSD: param.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_SYS_PARAM_H_ +#define _NBCOMPAT_SYS_PARAM_H_ + +#if HAVE_SYS_PARAM_H +# include <sys/param.h> +#endif + +/* + * Declare macros and functions that may be missing in <sys/param.h>. + */ + +#if !defined(MIN) +# define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif +#if !defined(MAX) +# define MAX(a, b) ((a) < (b) ? (b) : (a)) +#endif + +#endif /* !_NBCOMPAT_SYS_PARAM_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/regex.h b/pkgtools/libnbcompat/files/nbcompat/regex.h index c4d5cc3fb2f..ed63c0e327e 100644 --- a/pkgtools/libnbcompat/files/nbcompat/regex.h +++ b/pkgtools/libnbcompat/files/nbcompat/regex.h @@ -1,4 +1,4 @@ -/* $NetBSD: regex.h,v 1.1 2004/08/16 17:24:57 jlam Exp $ */ +/* $NetBSD: regex.h,v 1.2 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -74,12 +74,8 @@ #ifndef _NBCOMPAT_REGEX_H_ #define _NBCOMPAT_REGEX_H_ -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif -#if HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif +#include <nbcompat/cdefs.h> +#include <nbcompat/types.h> /* types */ #if 1 /* __LIBC12_SOURCE__ - should go away */ diff --git a/pkgtools/libnbcompat/files/nbcompat/stat.h b/pkgtools/libnbcompat/files/nbcompat/stat.h index 97f2bf07071..20c2999369a 100644 --- a/pkgtools/libnbcompat/files/nbcompat/stat.h +++ b/pkgtools/libnbcompat/files/nbcompat/stat.h @@ -1,4 +1,4 @@ -/* $NetBSD: stat.h,v 1.1 2004/08/10 18:47:55 jlam Exp $ */ +/* $NetBSD: stat.h,v 1.2 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -63,4 +63,8 @@ int lchmod(const char *, mode_t); # define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO) #endif +#if !defined(DEFFILEMODE) +# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) +#endif + #endif /* !_NBCOMPAT_STAT_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/statvfs.h b/pkgtools/libnbcompat/files/nbcompat/statvfs.h index 0dbc17af20a..6561b06a9f0 100644 --- a/pkgtools/libnbcompat/files/nbcompat/statvfs.h +++ b/pkgtools/libnbcompat/files/nbcompat/statvfs.h @@ -1,4 +1,4 @@ -/* $NetBSD: statvfs.h,v 1.2 2004/08/10 18:47:55 jlam Exp $ */ +/* $NetBSD: statvfs.h,v 1.3 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -45,13 +45,8 @@ #if !HAVE_STATVFS -#if HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif - -#if HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif +#include <nbcompat/types.h> +#include <nbcompat/param.h> #if HAVE_SYS_MOUNT_H #include <sys/mount.h> diff --git a/pkgtools/libnbcompat/files/nbcompat/stdlib.h b/pkgtools/libnbcompat/files/nbcompat/stdlib.h index d57623bc430..52da70c2a3e 100644 --- a/pkgtools/libnbcompat/files/nbcompat/stdlib.h +++ b/pkgtools/libnbcompat/files/nbcompat/stdlib.h @@ -1,4 +1,4 @@ -/* $NetBSD: stdlib.h,v 1.1 2004/08/10 18:47:55 jlam Exp $ */ +/* $NetBSD: stdlib.h,v 1.2 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -42,9 +42,13 @@ #if HAVE_STDLIB_H # include <stdlib.h> #endif +#if HAVE_ALLOCA_H +# include <alloca.h> +#endif /* - * Declare functions and macros that may be missing in <stdlib.h>. + * Declare functions and macros that may be missing in <stdlib.h> and + * <alloca.h>. */ #if !HAVE_MKSTEMP diff --git a/pkgtools/libnbcompat/files/nbcompat/termcap.h b/pkgtools/libnbcompat/files/nbcompat/termcap.h new file mode 100644 index 00000000000..11bf60bc853 --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/termcap.h @@ -0,0 +1,59 @@ +/* $NetBSD: termcap.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_TERMCAP_H_ +#define _NBCOMPAT_TERMCAP_H_ + +#if HAVE_TERMCAP_H +# include <termcap.h> +#endif + +/* + * Declare macros and functions that may be missing in <termcap.h>. + */ + +#if !HAVE_TERMCAP_H +int tgetent __P((char *, const char *)); +char *tgetstr __P((const char *, char **)); +int tgetflag __P((const char *)); +int tgetnum __P((const char *)); +char *tgoto __P((const char *, int, int)); +void tputs __P((const char *, int, int (*)(int))); +#endif + +#endif /* !_NBCOMPAT_TERMCAP_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/types.h b/pkgtools/libnbcompat/files/nbcompat/types.h new file mode 100644 index 00000000000..6121bab11ca --- /dev/null +++ b/pkgtools/libnbcompat/files/nbcompat/types.h @@ -0,0 +1,59 @@ +/* $NetBSD: types.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Johnny C. Lam. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _NBCOMPAT_SYS_TYPES_H_ +#define _NBCOMPAT_SYS_TYPES_H_ + +#if HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif + +/* + * Declare macros and functions that may be missing in <sys/types.h>. + */ + +#if !defined(makedev) +# if HAVE_SYS_MKDEV_H +# include <sys/mkdev.h> +# if defined(mkdev) +# define makedev mkdev +# endif +# endif +#endif + +#endif /* !_NBCOMPAT_SYS_TYPES_H_ */ diff --git a/pkgtools/libnbcompat/files/nbcompat/unistd.h b/pkgtools/libnbcompat/files/nbcompat/unistd.h index 288120febb7..653722c75af 100644 --- a/pkgtools/libnbcompat/files/nbcompat/unistd.h +++ b/pkgtools/libnbcompat/files/nbcompat/unistd.h @@ -1,4 +1,4 @@ -/* $NetBSD: unistd.h,v 1.1 2004/08/10 18:47:55 jlam Exp $ */ +/* $NetBSD: unistd.h,v 1.2 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -59,6 +59,15 @@ extern int optind; char *getpass(const char *); #endif +/* + * If getpassphrase() exists, then use it in place of getpass(). + */ +#if HAVE_GETPASSPHRASE +# ifndef getpass +# define getpass getpassphrase +# endif +#endif + #if !HAVE_LCHOWN int lchown(const char *, uid_t, gid_t); #endif diff --git a/pkgtools/libnbcompat/files/nbcompat/vis.h b/pkgtools/libnbcompat/files/nbcompat/vis.h index 04614595e33..2361de40098 100644 --- a/pkgtools/libnbcompat/files/nbcompat/vis.h +++ b/pkgtools/libnbcompat/files/nbcompat/vis.h @@ -1,4 +1,4 @@ -/* $NetBSD: vis.h,v 1.2 2004/08/16 17:24:57 jlam Exp $ */ +/* $NetBSD: vis.h,v 1.3 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -38,6 +38,8 @@ #ifndef _NBCOMPAT_VIS_H_ #define _NBCOMPAT_VIS_H_ +#include <nbcompat/types.h> + /* * to select alternate encoding format */ @@ -74,18 +76,7 @@ */ #define UNVIS_END 1 /* no more characters */ -#ifndef _DIAGASSERT -#define _DIAGASSERT(e) -#endif - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - -#ifndef __BEGIN_DECLS -#define __BEGIN_DECLS -#define __END_DECLS -#endif +#include <nbcompat/cdefs.h> __BEGIN_DECLS char *vis (char *, int, int, int); diff --git a/pkgtools/libnbcompat/files/poll.c b/pkgtools/libnbcompat/files/poll.c index 3a3e63370c3..ae43a04c8f1 100644 --- a/pkgtools/libnbcompat/files/poll.c +++ b/pkgtools/libnbcompat/files/poll.c @@ -1,4 +1,4 @@ -/* $NetBSD: poll.c,v 1.1 2003/09/03 13:35:48 jlam Exp $ */ +/* $NetBSD: poll.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -36,7 +36,11 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat.h" +#include <nbcompat.h> +#include <nbcompat/types.h> +#include <nbcompat/time.h> +#include <nbcompat/unistd.h> +#include <nbcompat/poll.h> int poll(struct pollfd *p, nfds_t nfds, int timout) diff --git a/pkgtools/libnbcompat/files/cclass.h b/pkgtools/libnbcompat/files/private/cclass.h index 1b72e480b6f..7742a355f0d 100644 --- a/pkgtools/libnbcompat/files/cclass.h +++ b/pkgtools/libnbcompat/files/private/cclass.h @@ -1,4 +1,4 @@ -/* $NetBSD: cclass.h,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: cclass.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 diff --git a/pkgtools/libnbcompat/files/cname.h b/pkgtools/libnbcompat/files/private/cname.h index d4b699f69aa..b16be8d303d 100644 --- a/pkgtools/libnbcompat/files/cname.h +++ b/pkgtools/libnbcompat/files/private/cname.h @@ -1,4 +1,4 @@ -/* $NetBSD: cname.h,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: cname.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 diff --git a/pkgtools/libnbcompat/files/pwcache.h b/pkgtools/libnbcompat/files/private/pwcache.h index 25444af2f50..81d8582c82d 100644 --- a/pkgtools/libnbcompat/files/pwcache.h +++ b/pkgtools/libnbcompat/files/private/pwcache.h @@ -1,4 +1,4 @@ -/* $NetBSD: pwcache.h,v 1.4 2004/03/11 13:17:34 grant Exp $ */ +/* $NetBSD: pwcache.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992 Keith Muller. @@ -35,15 +35,12 @@ * @(#)cache.h 8.1 (Berkeley) 5/31/93 */ -#ifndef _NBCOMPAT_PWCACHE_H -#define _NBCOMPAT_PWCACHE_H - /* * Constants and data structures used to implement group and password file * caches. Traditional passwd/group cache routines perform quite poorly with * archives. The chances of hitting a valid lookup with an archive is quite a * bit worse than with files already resident on the file system. These misses - * create a MAJOR performance cost. To adress this problem, these routines + * create a MAJOR performance cost. To address this problem, these routines * cache both hits and misses. * * NOTE: name lengths must be as large as those stored in ANY PROTOCOL and @@ -73,21 +70,3 @@ typedef struct gidc { char name[GNMLEN]; /* gid name */ gid_t gid; /* cached gid */ } GIDC; - -#ifndef HAVE_USER_FROM_UID -const char *user_from_uid(uid_t, int); -#endif - -#ifndef HAVE_GROUP_FROM_GID -const char *group_from_gid(gid_t, int); -#endif - -#ifndef HAVE_UID_FROM_USER -int uid_from_user(const char *, uid_t *); -#endif - -#ifndef HAVE_GID_FROM_GROUP -int gid_from_group(const char *, gid_t *); -#endif - -#endif /* !_NBCOMPAT_PWCACHE_H */ diff --git a/pkgtools/libnbcompat/files/regex2.h b/pkgtools/libnbcompat/files/private/regex2.h index 180c50cf3d7..9404bc24e7d 100644 --- a/pkgtools/libnbcompat/files/regex2.h +++ b/pkgtools/libnbcompat/files/private/regex2.h @@ -1,4 +1,4 @@ -/* $NetBSD: regex2.h,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: regex2.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 diff --git a/pkgtools/libnbcompat/files/utils.h b/pkgtools/libnbcompat/files/private/utils.h index 13c1d269b3c..0f359753c86 100644 --- a/pkgtools/libnbcompat/files/utils.h +++ b/pkgtools/libnbcompat/files/private/utils.h @@ -1,4 +1,4 @@ -/* $NetBSD: utils.h,v 1.1 2004/08/16 17:24:57 jlam Exp $ */ +/* $NetBSD: utils.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -83,9 +83,7 @@ typedef unsigned char uch; #define NDEBUG /* no assertions please */ #endif #endif -#if HAVE_ASSERT_H -#include <assert.h> -#endif +#include <nbcompat/assert.h> /* * Workaround bug in some assert.h. This is okay since we really don't diff --git a/pkgtools/libnbcompat/files/pwcache.c b/pkgtools/libnbcompat/files/pwcache.c index 33d5578a3ea..493de4a4b65 100644 --- a/pkgtools/libnbcompat/files/pwcache.c +++ b/pkgtools/libnbcompat/files/pwcache.c @@ -1,4 +1,4 @@ -/* $NetBSD: pwcache.c,v 1.7 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: pwcache.c,v 1.8 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992 Keith Muller. @@ -66,38 +66,48 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +/* + * XXX Undefine the renames of these functions so that we don't + * XXX rename the versions found in the host's <pwd.h> by mistake! + */ +#undef group_from_gid +#undef user_from_uid #endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)cache.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: pwcache.c,v 1.7 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: pwcache.c,v 1.8 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -#include <sys/types.h> -#include <sys/param.h> +#if 0 +#include "namespace.h" +#endif -#include <assert.h> +#include <nbcompat/types.h> +#include <nbcompat/param.h> + +#include <nbcompat/assert.h> #include <nbcompat/grp.h> #include <nbcompat/pwd.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> +#include <nbcompat/unistd.h> + +#if HAVE_NBTOOL_CONFIG_H +/* XXX Now, re-apply the renaming that we undid above. */ +#define group_from_gid __nbcompat_group_from_gid +#define user_from_uid __nbcompat_user_from_uid +#endif #if 0 -#ifndef __ELF__ -#define _user_from_uid user_from_uid -#define _group_from_gid group_from_gid -#define _pwcache_userdb pwcache_userdb -#define _pwcache_groupdb pwcache_groupdb -#else #ifdef __weak_alias __weak_alias(user_from_uid,_user_from_uid) __weak_alias(group_from_gid,_group_from_gid) @@ -105,9 +115,9 @@ __weak_alias(pwcache_userdb,_pwcache_userdb) __weak_alias(pwcache_groupdb,_pwcache_groupdb) #endif #endif -#endif -#include "pwcache.h" +#if !HAVE_PWCACHE_USERDB || HAVE_NBTOOL_CONFIG_H +#include "private/pwcache.h" /* * routines that control user, group, uid and gid caches (for the archive @@ -151,10 +161,6 @@ static int gidtb_start(void); static int usrtb_start(void); static int grptb_start(void); -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif - static u_int st_hash(const char *name, size_t len, int tabsz) @@ -258,12 +264,12 @@ grptb_start(void) /* * user_from_uid() * caches the name (if any) for the uid. If noname clear, we always - * return the the stored name (if valid or invalid match). + * return the stored name (if valid or invalid match). * We use a simple hash table. * Return * Pointer to stored name (or a empty string) */ -#ifndef HAVE_USER_FROM_UID +#if !HAVE_USER_FROM_UID const char * user_from_uid(uid_t uid, int noname) { @@ -303,7 +309,7 @@ user_from_uid(uid_t uid, int noname) if ((pw = (*_pwcache_getpwuid)(uid)) == NULL) { /* * no match for this uid in the local password file - * a string that is the uid in numberic format + * a string that is the uid in numeric format */ if (ptr == NULL) return (NULL); @@ -324,17 +330,17 @@ user_from_uid(uid_t uid, int noname) } return (ptr->name); } -#endif +#endif /* !HAVE_USER_FROM_UID */ /* * group_from_gid() * caches the name (if any) for the gid. If noname clear, we always - * return the the stored name (if valid or invalid match). + * return the stored name (if valid or invalid match). * We use a simple hash table. * Return * Pointer to stored name (or a empty string) */ -#ifndef HAVE_GROUP_FROM_GID +#if !HAVE_GROUP_FROM_GID const char * group_from_gid(gid_t gid, int noname) { @@ -395,7 +401,7 @@ group_from_gid(gid_t gid, int noname) } return (ptr->name); } -#endif +#endif /* !HAVE_GROUP_FROM_GID */ /* * uid_from_user() @@ -403,7 +409,7 @@ group_from_gid(gid_t gid, int noname) * Return * the uid (if any) for a user name, or a -1 if no match can be found */ -#ifndef HAVE_UID_FROM_USER +#if !HAVE_UID_FROM_USER int uid_from_user(const char *name, uid_t *uid) { @@ -461,7 +467,7 @@ uid_from_user(const char *name, uid_t *uid) *uid = ptr->uid = pw->pw_uid; return (0); } -#endif +#endif /* !HAVE_UID_FROM_USER */ /* * gid_from_group() @@ -469,7 +475,7 @@ uid_from_user(const char *name, uid_t *uid) * Return * the gid (if any) for a group name, or a -1 if no match can be found */ -#ifndef HAVE_GID_FROM_GROUP +#if !HAVE_GID_FROM_GROUP int gid_from_group(const char *name, gid_t *gid) { @@ -528,7 +534,7 @@ gid_from_group(const char *name, gid_t *gid) *gid = ptr->gid = gr->gr_gid; return (0); } -#endif +#endif /* !HAVE_GID_FROM_GROUP */ #define FLUSHTB(arr, len, fail) \ do { \ @@ -541,7 +547,7 @@ gid_from_group(const char *name, gid_t *gid) fail = 0; \ } while (/* CONSTCOND */0); -#ifndef HAVE_PWCACHE_USERDB +#if !HAVE_PWCACHE_USERDB int pwcache_userdb( int (*a_setpassent)(int), @@ -567,9 +573,9 @@ pwcache_userdb( return (0); } -#endif +#endif /* !HAVE_PWCACHE_USERDB */ -#ifndef HAVE_PWCACHE_GROUPDB +#if !HAVE_PWCACHE_GROUPDB int pwcache_groupdb( int (*a_setgroupent)(int), @@ -595,7 +601,7 @@ pwcache_groupdb( return (0); } -#endif +#endif /* !HAVE_PWCACHE_GROUPDB */ #ifdef TEST_PWCACHE @@ -659,3 +665,4 @@ main(int argc, char *argv[]) return (0); } #endif /* TEST_PWCACHE */ +#endif /* !HAVE_PWCACHE_USERDB */ diff --git a/pkgtools/libnbcompat/files/regcomp.c b/pkgtools/libnbcompat/files/regcomp.c index dbca3717cf0..b64a85c7aa3 100644 --- a/pkgtools/libnbcompat/files/regcomp.c +++ b/pkgtools/libnbcompat/files/regcomp.c @@ -1,4 +1,4 @@ -/* $NetBSD: regcomp.c,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: regcomp.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -71,45 +71,28 @@ * @(#)regcomp.c 8.5 (Berkeley) 3/20/94 */ -#include "nbcompat.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regcomp.c 8.5 (Berkeley) 3/20/94"; #else -__RCSID("$NetBSD: regcomp.c,v 1.1 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: regcomp.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -/* #include "namespace.h" */ -#if HAVE_SYS_TYPES_H -#include <sys/types.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/types.h> -#if HAVE_ASSERT_H -#include <assert.h> -#endif -#if HAVE_CTYPE_H -#include <ctype.h> -#endif -#if HAVE_LIMITS_H -#include <limits.h> -#endif -#if HAVE_REGEX_H -#include <regex.h> -#endif -#if HAVE_STDIO_H -#include <stdio.h> -#endif -#if HAVE_STDLIB_H -#include <stdlib.h> -#endif -#if HAVE_STRING_H -#include <string.h> -#endif +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#include <nbcompat/limits.h> +#include <nbcompat/regex.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> #if 0 #ifdef __weak_alias @@ -117,15 +100,11 @@ __weak_alias(regcomp,_regcomp) #endif #endif -#include "utils.h" -#include "regex2.h" - -#include "cclass.h" -#include "cname.h" +#include "private/utils.h" +#include "private/regex2.h" -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif +#include "private/cclass.h" +#include "private/cname.h" /* * parse structure, passed up and down to avoid global variables and diff --git a/pkgtools/libnbcompat/files/regerror.c b/pkgtools/libnbcompat/files/regerror.c index 009bf91b474..aa2e7279af0 100644 --- a/pkgtools/libnbcompat/files/regerror.c +++ b/pkgtools/libnbcompat/files/regerror.c @@ -1,4 +1,4 @@ -/* $NetBSD: regerror.c,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: regerror.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -71,45 +71,28 @@ * @(#)regerror.c 8.4 (Berkeley) 3/20/94 */ -#include "nbcompat.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regerror.c 8.4 (Berkeley) 3/20/94"; #else -__RCSID("$NetBSD: regerror.c,v 1.1 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: regerror.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -/* #include "namespace.h" */ -#if HAVE_SYS_TYPES_H -#include <sys/types.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/types.h> -#if HAVE_ASSERT_H -#include <assert.h> -#endif -#if HAVE_CTYPE_H -#include <ctype.h> -#endif -#if HAVE_LIMITS_H -#include <limits.h> -#endif -#if HAVE_REGEX_H -#include <regex.h> -#endif -#if HAVE_STDIO_H -#include <stdio.h> -#endif -#if HAVE_STDLIB_H -#include <stdlib.h> -#endif -#if HAVE_STRING_H -#include <string.h> -#endif +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#include <nbcompat/limits.h> +#include <nbcompat/regex.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> #if 0 #ifdef __weak_alias @@ -117,11 +100,7 @@ __weak_alias(regerror,_regerror) #endif #endif -#include "utils.h" - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif +#include "private/utils.h" /* ========= begin header generated by ./mkh ========= */ #ifdef __cplusplus diff --git a/pkgtools/libnbcompat/files/regexec.c b/pkgtools/libnbcompat/files/regexec.c index 625ff94f9e4..4eec33063f6 100644 --- a/pkgtools/libnbcompat/files/regexec.c +++ b/pkgtools/libnbcompat/files/regexec.c @@ -1,4 +1,4 @@ -/* $NetBSD: regexec.c,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: regexec.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -71,16 +71,13 @@ * @(#)regexec.c 8.3 (Berkeley) 3/20/94 */ -#include "nbcompat.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regexec.c 8.3 (Berkeley) 3/20/94"; #else -__RCSID("$NetBSD: regexec.c,v 1.1 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: regexec.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -91,32 +88,18 @@ __RCSID("$NetBSD: regexec.c,v 1.1 2004/08/16 17:24:56 jlam Exp $"); * macros that code uses. This lets the same code operate on two different * representations for state sets. */ -/* #include "namespace.h" */ -#if HAVE_SYS_TYPES_H -#include <sys/types.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/types.h> -#if HAVE_ASSERT_H -#include <assert.h> -#endif -#if HAVE_CTYPE_H -#include <ctype.h> -#endif -#if HAVE_LIMITS_H -#include <limits.h> -#endif -#if HAVE_REGEX_H -#include <regex.h> -#endif -#if HAVE_STDIO_H -#include <stdio.h> -#endif -#if HAVE_STDLIB_H -#include <stdlib.h> -#endif -#if HAVE_STRING_H -#include <string.h> -#endif +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#include <nbcompat/limits.h> +#include <nbcompat/regex.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> #if 0 #ifdef __weak_alias @@ -124,12 +107,8 @@ __weak_alias(regexec,_regexec) #endif #endif -#include "utils.h" -#include "regex2.h" - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif +#include "private/utils.h" +#include "private/regex2.h" /* macros for manipulating states, small version */ #define states unsigned long diff --git a/pkgtools/libnbcompat/files/regfree.c b/pkgtools/libnbcompat/files/regfree.c index a6c2534a9d7..98e096272a6 100644 --- a/pkgtools/libnbcompat/files/regfree.c +++ b/pkgtools/libnbcompat/files/regfree.c @@ -1,4 +1,4 @@ -/* $NetBSD: regfree.c,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: regfree.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -71,36 +71,25 @@ * @(#)regfree.c 8.3 (Berkeley) 3/20/94 */ -#include "nbcompat.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regfree.c 8.3 (Berkeley) 3/20/94"; #else -__RCSID("$NetBSD: regfree.c,v 1.1 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: regfree.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -/* #include "namespace.h" */ -#if HAVE_SYS_TYPES_H -#include <sys/types.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/types.h> -#if HAVE_ASSERT_H -#include <assert.h> -#endif -#if HAVE_REGEX_H -#include <regex.h> -#endif -#if HAVE_STDIO_H -#include <stdio.h> -#endif -#if HAVE_STDLIB_H -#include <stdlib.h> -#endif +#include <nbcompat/assert.h> +#include <nbcompat/regex.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> #if 0 #ifdef __weak_alias @@ -108,12 +97,8 @@ __weak_alias(regfree,_regfree) #endif #endif -#include "utils.h" -#include "regex2.h" - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif +#include "private/utils.h" +#include "private/regex2.h" /* - regfree - free everything diff --git a/pkgtools/libnbcompat/files/rmd160.c b/pkgtools/libnbcompat/files/rmd160.c index 0cbae3a6550..e8a34533f97 100644 --- a/pkgtools/libnbcompat/files/rmd160.c +++ b/pkgtools/libnbcompat/files/rmd160.c @@ -1,4 +1,4 @@ -/* $NetBSD: rmd160.c,v 1.5 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: rmd160.c,v 1.6 2004/08/23 03:32:12 jlam Exp $ */ /********************************************************************\ * @@ -18,36 +18,31 @@ * \********************************************************************/ -#include "nbcompat/nbconfig.h" -#include "nbcompat/nbtypes.h" +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #ifndef lint -__RCSID("$NetBSD: rmd160.c,v 1.5 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: rmd160.c,v 1.6 2004/08/23 03:32:12 jlam Exp $"); #endif /* not lint */ /* header files */ +#include <nbcompat/types.h> +#include <nbcompat/endian.h> -/* #include "namespace.h" */ - -#include <assert.h> -#include "nbcompat/rmd160.h" -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) +#if 0 +#include "namespace.h" #endif -#if defined(HAVE_MEMSET) -#define ZEROIZE(d, l) memset((d), 0, (l)) -#else -# if defined(HAVE_BZERO) -#define ZEROIZE(d, l) bzero((d), (l)) -# else -#error You need either memset or bzero -# endif -#endif +#include <nbcompat/assert.h> +#include <nbcompat/rmd160.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> + +#if !HAVE_RMD160_H #if 0 #if !defined(_KERNEL) && defined(__weak_alias) @@ -58,6 +53,16 @@ __weak_alias(RMD160Final,_RMD160Final) #endif #endif +#if defined(HAVE_MEMSET) +#define ZEROIZE(d, l) memset((d), 0, (l)) +#else +# if defined(HAVE_BZERO) +#define ZEROIZE(d, l) bzero((d), (l)) +# else +#error You need either memset or bzero +# endif +#endif + /********************************************************************/ /* macro definitions */ @@ -465,3 +470,4 @@ RMD160Final(u_char digest[20], RMD160_CTX *context) } /************************ end of file rmd160.c **********************/ +#endif /* HAVE_RMD160_H */ diff --git a/pkgtools/libnbcompat/files/rmd160hl.c b/pkgtools/libnbcompat/files/rmd160hl.c index 919acf78b75..aa2d002f07e 100644 --- a/pkgtools/libnbcompat/files/rmd160hl.c +++ b/pkgtools/libnbcompat/files/rmd160hl.c @@ -1,4 +1,4 @@ -/* $NetBSD: rmd160hl.c,v 1.5 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: rmd160hl.c,v 1.6 2004/08/23 03:32:12 jlam Exp $ */ /* rmd160hl.c * ---------------------------------------------------------------------------- @@ -11,33 +11,35 @@ * from OpenBSD: rmd160hl.c,v 1.2 1999/08/17 09:13:12 millert Exp $ */ -#include "nbcompat/nbconfig.h" -#include "nbcompat/nbtypes.h" +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #ifndef lint -__RCSID("$NetBSD: rmd160hl.c,v 1.5 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: rmd160hl.c,v 1.6 2004/08/23 03:32:12 jlam Exp $"); #endif /* not lint */ +#include <nbcompat/types.h> -/* #include "namespace.h" */ +#if 0 +#include "namespace.h" +#endif -#include <assert.h> +#include <nbcompat/assert.h> #if HAVE_ERRNO_H #include <errno.h> #endif #if HAVE_FCNTL_H #include <fcntl.h> #endif -#include "nbcompat/rmd160.h" -#include <stdio.h> -#include <stdlib.h> -#if HAVE_UNISTD_H -#include <unistd.h> -#endif +#include <nbcompat/rmd160.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/unistd.h> -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif +#if !HAVE_RMD160_H #if 0 #if defined(__weak_alias) @@ -106,3 +108,5 @@ RMD160Data(const u_char *data, size_t len, char *buf) RMD160Update(&ctx, data, len); return(RMD160End(&ctx, buf)); } + +#endif /* HAVE_RMD160_H */ diff --git a/pkgtools/libnbcompat/files/setenv.c b/pkgtools/libnbcompat/files/setenv.c index 3fb64f8b6c7..f2450ec7d93 100644 --- a/pkgtools/libnbcompat/files/setenv.c +++ b/pkgtools/libnbcompat/files/setenv.c @@ -1,8 +1,8 @@ -/* $NetBSD: setenv.c,v 1.9 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: setenv.c,v 1.10 2004/08/23 03:32:12 jlam Exp $ */ /* - * Copyright (c) 1987 Regents of the University of California. - * All rights reserved. + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,50 +29,54 @@ * SUCH DAMAGE. */ +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -/*static char *sccsid = "from: @(#)setenv.c 5.6 (Berkeley) 6/4/91";*/ -static char *rcsid = "$Id: setenv.c,v 1.9 2004/08/16 17:24:56 jlam Exp $"; +#if 0 +static char sccsid[] = "@(#)setenv.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: setenv.c,v 1.10 2004/08/23 03:32:12 jlam Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ -#include "nbcompat/nbconfig.h" +#if 0 +#include "namespace.h" +#endif -#if HAVE_STRINGS_H -#include <strings.h> +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> +#if 0 +#include "local.h" +#include "reentrant.h" #endif -#include <stddef.h> -#include <stdlib.h> -#include <string.h> +char *__findenv __P((const char *, int *)); -/* - * __findenv -- - * Returns pointer to value associated with name, if any, else NULL. - * Sets offset to be the offset of the name/value combination in the - * environmental array, for use by setenv(3) and unsetenv(3). - * Explicitly removes '=' in argument name. - * - * This routine *should* be a static; don't use it. - */ -static char * -__findenv(name, offset) - register char *name; - int *offset; -{ - extern char **environ; - register int len; - register char **P, *C; +#if 0 +#ifdef __weak_alias +__weak_alias(setenv,_setenv) +#endif +#endif - for (C = name, len = 0; *C && *C != '='; ++C, ++len); - for (P = environ; *P; ++P) - if (!strncmp(*P, name, len)) - if (*(C = *P + len) == '=') { - *offset = P - environ; - return(++C); - } - return(NULL); -} +#if 0 +#ifdef _REENTRANT +extern rwlock_t __environ_lock; +#endif +#endif + +extern char **environ; + +#ifndef rwlock_wrlock +#define rwlock_wrlock(lock) ((void)0) +#endif +#ifndef rwlock_unlock +#define rwlock_unlock(lock) ((void)0) +#endif -#if !HAVE_SETENV /* * setenv -- * Set the value of the environmental variable "name" to be @@ -80,78 +84,69 @@ __findenv(name, offset) */ int setenv(name, value, rewrite) - register const char *name; - register const char *value; + const char *name; + const char *value; int rewrite; { - extern char **environ; static int alloced; /* if allocated space before */ - register char *C; - int l_value, offset; - char *__findenv(); + char *c; + const char *cc; + size_t l_value; + int offset; + + _DIAGASSERT(name != NULL); + _DIAGASSERT(value != NULL); if (*value == '=') /* no `=' in value */ ++value; l_value = strlen(value); - if ((C = __findenv(name, &offset))) { /* find if already exists */ - if (!rewrite) + rwlock_wrlock(&__environ_lock); + /* find if already exists */ + if ((c = __findenv(name, &offset)) != NULL) { + if (!rewrite) { + rwlock_unlock(&__environ_lock); return (0); - if (strlen(C) >= l_value) { /* old larger; copy over */ - while (*C++ = *value++); + } + if (strlen(c) >= l_value) { /* old larger; copy over */ + while ((*c++ = *value++) != '\0'); + rwlock_unlock(&__environ_lock); return (0); } } else { /* create new slot */ - register int cnt; - register char **P; + int cnt; + char **p; - for (P = environ, cnt = 0; *P; ++P, ++cnt); + for (p = environ, cnt = 0; *p; ++p, ++cnt); if (alloced) { /* just increase size */ - environ = (char **)realloc((char *)environ, + environ = realloc(environ, (size_t)(sizeof(char *) * (cnt + 2))); - if (!environ) + if (!environ) { + rwlock_unlock(&__environ_lock); return (-1); + } } else { /* get new space */ alloced = 1; /* copy old entries into it */ - P = (char **)malloc((size_t)(sizeof(char *) * - (cnt + 2))); - if (!P) + p = malloc((size_t)(sizeof(char *) * (cnt + 2))); + if (!p) { + rwlock_unlock(&__environ_lock); return (-1); - bcopy(environ, P, cnt * sizeof(char *)); - environ = P; + } + memcpy(p, environ, cnt * sizeof(char *)); + environ = p; } environ[cnt + 1] = NULL; offset = cnt; } - for (C = (char *)name; *C && *C != '='; ++C); /* no `=' in name */ + for (cc = name; *cc && *cc != '='; ++cc)/* no `=' in name */ + continue; if (!(environ[offset] = /* name + `=' + value */ - malloc((size_t)((int)(C - name) + l_value + 2)))) + malloc((size_t)((int)(cc - name) + l_value + 2)))) { + rwlock_unlock(&__environ_lock); return (-1); - for (C = environ[offset]; (*C = *name++) && *C != '='; ++C) - ; - for (*C++ = '='; *C++ = *value++; ) - ; + } + for (c = environ[offset]; (*c = *name++) && *c != '='; ++c); + for (*c++ = '='; (*c++ = *value++) != '\0'; ); + rwlock_unlock(&__environ_lock); return (0); } -#endif /* !HAVE_SETENV */ - -#if !HAVE_UNSETENV -/* - * unsetenv(name) -- - * Delete environmental variable "name". - */ -void -unsetenv(name) - const char *name; -{ - extern char **environ; - register char **P; - int offset; - char *__findenv(); - - while (__findenv(name, &offset)) /* if set multiple times */ - for (P = &environ[offset];; ++P) - if (!(*P = *(P + 1))) - break; -} -#endif /* !HAVE_UNSETENV */ diff --git a/pkgtools/libnbcompat/files/setgroupent.c b/pkgtools/libnbcompat/files/setgroupent.c index 7131a3e6c44..ca2ce26e329 100644 --- a/pkgtools/libnbcompat/files/setgroupent.c +++ b/pkgtools/libnbcompat/files/setgroupent.c @@ -1,4 +1,4 @@ -/* $NetBSD: setgroupent.c,v 1.1 2004/08/10 18:47:55 jlam Exp $ */ +/* $NetBSD: setgroupent.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -36,13 +36,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_GRP_H -#include <grp.h> -#endif - -#include "nbcompat/grp.h" +#include <nbcompat.h> +#include <nbcompat/grp.h> int setgroupent(int stayopen) diff --git a/pkgtools/libnbcompat/files/setmode.c b/pkgtools/libnbcompat/files/setmode.c index 318da248b58..e6fb53d2581 100644 --- a/pkgtools/libnbcompat/files/setmode.c +++ b/pkgtools/libnbcompat/files/setmode.c @@ -1,4 +1,4 @@ -/* $NetBSD: setmode.c,v 1.8 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: setmode.c,v 1.9 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1989, 1993, 1994 @@ -32,54 +32,43 @@ * SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)setmode.c 8.2 (Berkeley) 3/25/94"; #else -__RCSID("$NetBSD: setmode.c,v 1.8 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: setmode.c,v 1.9 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -/* #include "namespace.h" */ -#include <sys/types.h> -#include <sys/stat.h> +#if 0 +#include "namespace.h" +#endif +#include <nbcompat/types.h> +#include <nbcompat/stat.h> -#include <assert.h> -#include <ctype.h> +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#if HAVE_ERRNO_H #include <errno.h> -#include <signal.h> -#include <stdlib.h> -#include <unistd.h> - -#ifdef SETMODE_DEBUG -#include <stdio.h> #endif - -#ifndef S_ISTXT -#define S_ISTXT S_ISVTX +#if HAVE_SIGNAL_H +#include <signal.h> #endif +#include <nbcompat/stdlib.h> +#include <nbcompat/unistd.h> -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) +#ifdef SETMODE_DEBUG +#include <nbcompat/stdio.h> #endif #if 0 -#ifndef __ELF__ -#define _getmode getmode -#define _setmode setmode -#else #ifdef __weak_alias __weak_alias(getmode,_getmode) __weak_alias(setmode,_setmode) #endif #endif -#endif #define SET_LEN 6 /* initial # of bitcmd struct to malloc */ #define SET_LEN_INCR 4 /* # of bitcmd structs to add as needed */ @@ -96,13 +85,13 @@ typedef struct bitcmd { #define CMD2_OBITS 0x08 #define CMD2_UBITS 0x10 -static BITCMD *addcmd (BITCMD *, int, int, int, u_int); -static void compress_mode (BITCMD *); +static BITCMD *addcmd __P((BITCMD *, int, int, int, u_int)); +static void compress_mode __P((BITCMD *)); #ifdef SETMODE_DEBUG -static void dumpmode (BITCMD *); +static void dumpmode __P((BITCMD *)); #endif -#ifndef HAVE_GETMODE +#if !HAVE_GETMODE /* * Given the old mode and an array of bitcmd structures, apply the operations * described in the bitcmd structures to the old mode, and return the new mode. @@ -180,9 +169,8 @@ common: if (set->cmd2 & CMD2_CLR) { return (newmode); } } -#endif /* HAVE_GETMODE */ +#endif /* !HAVE_GETMODE */ -#ifndef HAVE_SETMODE #define ADDCMD(a, b, c, d) do { \ if (set >= endset) { \ BITCMD *newset; \ @@ -201,6 +189,7 @@ common: if (set->cmd2 & CMD2_CLR) { #define STANDARD_BITS (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO) +#if !HAVE_SETMODE void * setmode(p) const char *p; @@ -208,7 +197,7 @@ setmode(p) int perm, who; char op, *ep; BITCMD *set, *saveset, *endset; - sigset_t sigset, sigoset; + sigset_t signset, sigoset; mode_t mask; int equalopdone = 0; /* pacify gcc */ int permXbits, setlen; @@ -222,8 +211,8 @@ setmode(p) * the caller is opening files inside a signal handler, protect them * as best we can. */ - sigfillset(&sigset); - (void)sigprocmask(SIG_BLOCK, &sigset, &sigoset); + sigfillset(&signset); + (void)sigprocmask(SIG_BLOCK, &signset, &sigoset); (void)umask(mask = umask(0)); mask = ~mask; (void)sigprocmask(SIG_SETMASK, &sigoset, NULL); @@ -373,6 +362,7 @@ apply: if (!*p) #endif return (saveset); } +#endif /* !HAVE_SETMODE */ static BITCMD * addcmd(set, op, who, oparg, mask) @@ -500,4 +490,3 @@ compress_mode(set) } } } -#endif /* !HAVE_SETMODE */ diff --git a/pkgtools/libnbcompat/files/setpassent.c b/pkgtools/libnbcompat/files/setpassent.c index 4897e675495..bc454470cc1 100644 --- a/pkgtools/libnbcompat/files/setpassent.c +++ b/pkgtools/libnbcompat/files/setpassent.c @@ -1,4 +1,4 @@ -/* $NetBSD: setpassent.c,v 1.1 2004/08/10 18:47:55 jlam Exp $ */ +/* $NetBSD: setpassent.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -36,13 +36,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_PWD_H -#include <pwd.h> -#endif - -#include "nbcompat/pwd.h" +#include <nbcompat.h> +#include <nbcompat/pwd.h> int setpassent(int stayopen) diff --git a/pkgtools/libnbcompat/files/setprogname.c b/pkgtools/libnbcompat/files/setprogname.c index 47905570302..3ec12efcdb7 100644 --- a/pkgtools/libnbcompat/files/setprogname.c +++ b/pkgtools/libnbcompat/files/setprogname.c @@ -1,12 +1,9 @@ -/* $NetBSD: setprogname.c,v 1.2 2003/09/06 23:03:04 grant Exp $ */ +/* $NetBSD: setprogname.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ -/*- - * Copyright (c) 2001 The NetBSD Foundation, Inc. +/* + * Copyright (c) 2001 Christopher G. Demetriou * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Todd Vierling. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -17,41 +14,71 @@ * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * This product includes software developed for the + * NetBSD Project. See http://www.NetBSD.org/ for + * information about NetBSD. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>> */ -#include "nbcompat.h" +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: setprogname.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); +#endif /* LIBC_SCCS and not lint */ + +/* In NetBSD, the program name is set by crt0. It can't be overridden. */ +#undef REALLY_SET_PROGNAME +#define REALLY_SET_PROGNAME + +#if 0 +#include "namespace.h" +#endif + +#include <nbcompat/stdlib.h> + +#ifdef REALLY_SET_PROGNAME +#include <nbcompat/string.h> static const char *__progname = "<unset_progname>"; +#endif +#if 0 +#ifdef __weak_alias +__weak_alias(getprogname,_getprogname) +#endif +#endif + +/*ARGSUSED*/ void setprogname(const char *progname) { + +#ifdef REALLY_SET_PROGNAME __progname = strrchr(progname, '/'); if (__progname == NULL) __progname = progname; else __progname++; +#endif } const char * getprogname(void) { - return __progname; + + return (__progname); } diff --git a/pkgtools/libnbcompat/files/sha1.c b/pkgtools/libnbcompat/files/sha1.c index 1762ee46e96..e72ca8e5673 100644 --- a/pkgtools/libnbcompat/files/sha1.c +++ b/pkgtools/libnbcompat/files/sha1.c @@ -1,4 +1,4 @@ -/* $NetBSD: sha1.c,v 1.5 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: sha1.c,v 1.6 2004/08/23 03:32:12 jlam Exp $ */ /* $OpenBSD: sha1.c,v 1.9 1997/07/23 21:12:32 kstailey Exp $ */ /* @@ -15,27 +15,30 @@ * 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F */ -#include "nbcompat/nbconfig.h" -#include "nbcompat/nbtypes.h" - #define SHA1HANDSOFF /* Copies data before messing with it. */ #if defined(_KERNEL) || defined(_STANDALONE) #include <sys/param.h> +#include <sys/sha1.h> #include <sys/systm.h> #define _DIAGASSERT(x) (void)0 #else -/* #include "namespace.h" */ -#include <assert.h> -#include <string.h> +#if 0 +#include "namespace.h" +#endif +#include <nbcompat.h> +#include <nbcompat/types.h> +#include <nbcompat/assert.h> +#include <nbcompat/sha1.h> +#include <nbcompat/string.h> #endif -#include "nbcompat/sha1.h" - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" #endif +#if !HAVE_SHA1_H + /* * XXX Kludge until there is resolution regarding mem*() functions * XXX in the kernel. @@ -70,18 +73,26 @@ #if 0 +#if !defined(_KERNEL) && defined(__weak_alias) __weak_alias(SHA1Transform,_SHA1Transform) __weak_alias(SHA1Init,_SHA1Init) __weak_alias(SHA1Update,_SHA1Update) __weak_alias(SHA1Final,_SHA1Final) #endif +#endif typedef union { u_char c[64]; u_int l[16]; } CHAR64LONG16; -#ifdef __sparc_v9__ +/* old sparc64 gcc could not compile this */ +#undef SPARC64_GCC_WORKAROUND +#if defined(__sparc64__) && defined(__GNUC__) && __GNUC__ < 3 +#define SPARC64_GCC_WORKAROUND +#endif + +#ifdef SPARC64_GCC_WORKAROUND void do_R01(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *); void do_R2(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *); void do_R3(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *); @@ -165,7 +176,7 @@ void SHA1Transform(state, buffer) d = state[3]; e = state[4]; -#ifdef __sparc_v9__ +#ifdef SPARC64_GCC_WORKAROUND do_R01(&a, &b, &c, &d, &e, block); do_R2(&a, &b, &c, &d, &e, block); do_R3(&a, &b, &c, &d, &e, block); @@ -272,9 +283,9 @@ void SHA1Final(digest, context) finalcount[i] = (u_char)((context->count[(i >= 4 ? 0 : 1)] >> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */ } - SHA1Update(context, (const u_char *)"\200", 1); + SHA1Update(context, (u_char *)"\200", 1); while ((context->count[0] & 504) != 448) - SHA1Update(context, (const u_char *)"\0", 1); + SHA1Update(context, (u_char *)"\0", 1); SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */ if (digest) { @@ -283,3 +294,5 @@ void SHA1Final(digest, context) ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255); } } + +#endif /* HAVE_SHA1_H */ diff --git a/pkgtools/libnbcompat/files/sha1hl.c b/pkgtools/libnbcompat/files/sha1hl.c index e8f50dedccc..26591a187a3 100644 --- a/pkgtools/libnbcompat/files/sha1hl.c +++ b/pkgtools/libnbcompat/files/sha1hl.c @@ -1,4 +1,4 @@ -/* $NetBSD: sha1hl.c,v 1.5 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: sha1hl.c,v 1.6 2004/08/23 03:32:12 jlam Exp $ */ /* sha1hl.c * ---------------------------------------------------------------------------- @@ -9,41 +9,49 @@ * ---------------------------------------------------------------------------- */ -#include "nbcompat/nbconfig.h" -#include "nbcompat/nbtypes.h" - -/* #include "namespace.h" */ - -#if HAVE_FCNTL_H -#include <fcntl.h> +#if 0 +#include "namespace.h" #endif + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if HAVE_SYS_FILE_H #include <sys/file.h> #endif +#include <nbcompat/types.h> +#if HAVE_SYS_UIO_H #include <sys/uio.h> +#endif -#include <assert.h> +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H #include <errno.h> -#include "nbcompat/sha1.h" -#include <stdio.h> -#include <stdlib.h> -#if HAVE_UNISTD_H -#include <unistd.h> #endif +#if HAVE_FCNTL_H +#include <fcntl.h> +#endif +#include <nbcompat/sha1.h> +#include <nbcompat/stdio.h> +#include <nbcompat/stdlib.h> +#include <nbcompat/unistd.h> + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#if !HAVE_SHA1_H #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: sha1hl.c,v 1.5 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: sha1hl.c,v 1.6 2004/08/23 03:32:12 jlam Exp $"); #endif /* LIBC_SCCS and not lint */ -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif - #if 0 +#if defined(__weak_alias) __weak_alias(SHA1End,_SHA1End) __weak_alias(SHA1File,_SHA1File) __weak_alias(SHA1Data,_SHA1Data) #endif +#endif /* ARGSUSED */ char * @@ -112,3 +120,5 @@ SHA1Data (data, len, buf) SHA1Update(&ctx, data, len); return(SHA1End(&ctx, buf)); } + +#endif /* HAVE_SHA1_H */ diff --git a/pkgtools/libnbcompat/files/snprintf.c b/pkgtools/libnbcompat/files/snprintf.c index 839483936cd..c7c64dcded9 100644 --- a/pkgtools/libnbcompat/files/snprintf.c +++ b/pkgtools/libnbcompat/files/snprintf.c @@ -1,4 +1,4 @@ -/* $NetBSD: snprintf.c,v 1.2 2003/09/06 23:03:04 grant Exp $ */ +/* $NetBSD: snprintf.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright Patrick Powell 1995 @@ -57,8 +57,10 @@ * **************************************************************/ -#include "nbcompat.h" - +#include <nbcompat.h> +#if HAVE_STDARG_H +#include <stdarg.h> +#endif #if HAVE_LONG_DOUBLE #define LDOUBLE long double diff --git a/pkgtools/libnbcompat/files/statvfs.c b/pkgtools/libnbcompat/files/statvfs.c index 76fdb9833a0..d132dd15756 100644 --- a/pkgtools/libnbcompat/files/statvfs.c +++ b/pkgtools/libnbcompat/files/statvfs.c @@ -1,4 +1,4 @@ -/* $NetBSD: statvfs.c,v 1.2 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: statvfs.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -36,13 +36,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_STRING_H -#include <string.h> /* memcpy() */ -#endif - -#include "nbcompat/statvfs.h" +#include <nbcompat.h> +#include <nbcompat/string.h> +#include <nbcompat/statvfs.h> static void fs2vfs(struct statvfs *vfs, const struct statfs *sfs); diff --git a/pkgtools/libnbcompat/files/strdup.c b/pkgtools/libnbcompat/files/strdup.c index 5758b452685..a756ba2c7f1 100644 --- a/pkgtools/libnbcompat/files/strdup.c +++ b/pkgtools/libnbcompat/files/strdup.c @@ -1,4 +1,4 @@ -/* $NetBSD: strdup.c,v 1.3 2003/09/06 23:03:05 grant Exp $ */ +/* $NetBSD: strdup.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1988, 1993 @@ -29,14 +29,42 @@ * SUCH DAMAGE. */ -#include "nbcompat.h" +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)strdup.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: strdup.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#if 0 +#include "namespace.h" +#endif + +#include <nbcompat/assert.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/stdlib.h> +#include <nbcompat/string.h> + +#if 0 +#ifdef __weak_alias +__weak_alias(strdup,_strdup) +#endif +#endif char * -strdup(const char *str) +strdup(str) + const char *str; { size_t len; char *copy; + _DIAGASSERT(str != NULL); + len = strlen(str) + 1; if (!(copy = malloc(len))) return (NULL); diff --git a/pkgtools/libnbcompat/files/strerror.c b/pkgtools/libnbcompat/files/strerror.c index 4ff013dbefc..c284ad04d27 100644 --- a/pkgtools/libnbcompat/files/strerror.c +++ b/pkgtools/libnbcompat/files/strerror.c @@ -1,6 +1,7 @@ -/* $NetBSD: strerror.c,v 1.1.1.1 2003/03/31 05:02:57 grant Exp $ */ +/* $NetBSD: strerror.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ -#include "nbcompat.h" +#include <nbcompat.h> +#include <nbcompat/string.h> char * strerror(int n) diff --git a/pkgtools/libnbcompat/files/strlcat.c b/pkgtools/libnbcompat/files/strlcat.c index 08081b43522..3bf71b544f1 100644 --- a/pkgtools/libnbcompat/files/strlcat.c +++ b/pkgtools/libnbcompat/files/strlcat.c @@ -1,6 +1,5 @@ -/* $Id: strlcat.c,v 1.3 2003/12/19 22:26:46 grant Exp $ */ -/* from NetBSD: strlcat.c,v 1.16 2003/10/27 00:12:42 lukem Exp */ -/* from OpenBSD: strlcat.c,v 1.10 2003/04/12 21:56:39 millert Exp */ +/* $NetBSD: strlcat.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ +/* $OpenBSD: strlcat.c,v 1.10 2003/04/12 21:56:39 millert Exp $ */ /* * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> @@ -18,8 +17,34 @@ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include "nbcompat.h" +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: strlcat.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#if 0 +#ifdef _LIBC +#include "namespace.h" +#endif +#endif +#include <nbcompat/types.h> +#include <nbcompat/assert.h> +#include <nbcompat/string.h> + +#if 0 +#ifdef _LIBC +# ifdef __weak_alias +__weak_alias(strlcat, _strlcat) +# endif +#endif +#endif + +#if !HAVE_STRLCAT /* * Appends src to string dst of size siz (unlike strncat, siz is the * full size of dst, not space left). At most siz-1 characters @@ -28,13 +53,23 @@ * If retval >= siz, truncation occurred. */ size_t -strlcat(char *dst, const char *src, size_t siz) +#ifdef _LIBC && 0 +_strlcat(dst, src, siz) +#else +strlcat(dst, src, siz) +#endif + char *dst; + const char *src; + size_t siz; { char *d = dst; const char *s = src; size_t n = siz; size_t dlen; + _DIAGASSERT(dst != NULL); + _DIAGASSERT(src != NULL); + /* Find the end of dst and adjust bytes left but don't go past end */ while (n-- != 0 && *d != '\0') d++; @@ -54,3 +89,4 @@ strlcat(char *dst, const char *src, size_t siz) return(dlen + (s - src)); /* count does not include NUL */ } +#endif diff --git a/pkgtools/libnbcompat/files/strlcpy.c b/pkgtools/libnbcompat/files/strlcpy.c index 14b1aa6e8a4..f3f5ebf1948 100644 --- a/pkgtools/libnbcompat/files/strlcpy.c +++ b/pkgtools/libnbcompat/files/strlcpy.c @@ -1,6 +1,5 @@ -/* $NetBSD: strlcpy.c,v 1.3 2003/12/19 22:27:01 grant Exp $ */ -/* from NetBSD: strlcpy.c,v 1.14 2003/10/27 00:12:42 lukem Exp */ -/* from OpenBSD: strlcpy.c,v 1.7 2003/04/12 21:56:39 millert Exp */ +/* $NetBSD: strlcpy.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ +/* $OpenBSD: strlcpy.c,v 1.7 2003/04/12 21:56:39 millert Exp $ */ /* * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> @@ -18,47 +17,56 @@ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* - * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: strlcpy.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); +#endif /* LIBC_SCCS and not lint */ -#include "nbcompat.h" +#if 0 +#ifdef _LIBC +#include "namespace.h" +#endif +#endif +#include <nbcompat/types.h> +#include <nbcompat/assert.h> +#include <nbcompat/string.h> +#if 0 +#ifdef _LIBC +# ifdef __weak_alias +__weak_alias(strlcpy, _strlcpy) +# endif +#endif +#endif + +#if !HAVE_STRLCPY /* * Copy src to string dst of size siz. At most siz-1 characters * will be copied. Always NUL terminates (unless siz == 0). * Returns strlen(src); if retval >= siz, truncation occurred. */ size_t -strlcpy(char *dst, const char *src, size_t siz) +#ifdef _LIBC && 0 +_strlcpy(dst, src, siz) +#else +strlcpy(dst, src, siz) +#endif + char *dst; + const char *src; + size_t siz; { char *d = dst; const char *s = src; size_t n = siz; + _DIAGASSERT(dst != NULL); + _DIAGASSERT(src != NULL); + /* Copy as many bytes as will fit */ if (n != 0 && --n != 0) { do { @@ -77,3 +85,4 @@ strlcpy(char *dst, const char *src, size_t siz) return(s - src - 1); /* count does not include NUL */ } +#endif diff --git a/pkgtools/libnbcompat/files/strmode.c b/pkgtools/libnbcompat/files/strmode.c index f187e5e48a7..372fb2ed7df 100644 --- a/pkgtools/libnbcompat/files/strmode.c +++ b/pkgtools/libnbcompat/files/strmode.c @@ -1,4 +1,4 @@ -/* $NetBSD: strmode.c,v 1.4 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: strmode.c,v 1.5 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -29,33 +29,24 @@ * SUCH DAMAGE. */ -#include "nbcompat.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)strmode.c 8.3 (Berkeley) 8/15/94"; #else -__RCSID("$NetBSD: strmode.c,v 1.4 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: strmode.c,v 1.5 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -/* #include "namespace.h" */ -#include <sys/types.h> -#include <sys/stat.h> - -#if HAVE_ASSERT_H -#include <assert.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/types.h> +#include <nbcompat/stat.h> -#include <unistd.h> - -#ifndef _DIAGASSERT -#define _DIAGASSERT(cond) assert(cond) -#endif +#include <nbcompat/assert.h> +#include <nbcompat/unistd.h> void strmode(mode, p) @@ -92,9 +83,11 @@ strmode(mode, p) case S_IFLNK: /* symbolic link */ *p++ = 'l'; break; +#ifdef S_IFSOCK case S_IFSOCK: /* socket */ *p++ = 's'; break; +#endif #ifdef S_IFIFO case S_IFIFO: /* fifo */ *p++ = 'p'; @@ -105,6 +98,11 @@ strmode(mode, p) *p++ = 'w'; break; #endif +#ifdef S_IFDOOR + case S_IFDOOR: /* door */ + *p++ = 'D'; + break; +#endif default: /* unknown */ *p++ = '?'; break; diff --git a/pkgtools/libnbcompat/files/strsep.c b/pkgtools/libnbcompat/files/strsep.c index 7c2d4498e7c..cd5e4589144 100644 --- a/pkgtools/libnbcompat/files/strsep.c +++ b/pkgtools/libnbcompat/files/strsep.c @@ -1,4 +1,4 @@ -/* $NetBSD: strsep.c,v 1.3 2003/09/06 23:03:05 grant Exp $ */ +/* $NetBSD: strsep.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -29,8 +29,30 @@ * SUCH DAMAGE. */ -#include "nbcompat.h" +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)strsep.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: strsep.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ +#if 0 +#include "namespace.h" +#endif + +#include <nbcompat/assert.h> +#include <nbcompat/string.h> + +#if 0 +#ifdef __weak_alias +__weak_alias(strsep,_strsep) +#endif +#endif + +#if !HAVE_STRSEP /* * Get next token from string *stringp, where tokens are possibly-empty * strings separated by characters from delim. @@ -43,13 +65,18 @@ * If *stringp is NULL, strsep returns NULL. */ char * -strsep(char **stringp, const char *delim) +strsep(stringp, delim) + char **stringp; + const char *delim; { char *s; const char *spanp; int c, sc; char *tok; + _DIAGASSERT(stringp != NULL); + _DIAGASSERT(delim != NULL); + if ((s = *stringp) == NULL) return (NULL); for (tok = s;;) { @@ -68,3 +95,4 @@ strsep(char **stringp, const char *delim) } /* NOTREACHED */ } +#endif diff --git a/pkgtools/libnbcompat/files/strtoll.c b/pkgtools/libnbcompat/files/strtoll.c index 89666a35edc..a3a23a65ef3 100644 --- a/pkgtools/libnbcompat/files/strtoll.c +++ b/pkgtools/libnbcompat/files/strtoll.c @@ -1,5 +1,4 @@ -/* $NetBSD: strtoll.c,v 1.4 2003/12/19 22:40:04 grant Exp $ */ -/* from NetBSD: strtoll.c,v 1.6 2003/10/27 00:12:42 lukem Exp */ +/* $NetBSD: strtoll.c,v 1.5 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -30,8 +29,43 @@ * SUCH DAMAGE. */ -#include "nbcompat.h" +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "from: @(#)strtoq.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: strtoll.c,v 1.5 2004/08/23 03:32:12 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#if 0 +#ifdef _LIBC +#include "namespace.h" +#endif +#endif + +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#if HAVE_ERRNO_H +#include <errno.h> +#endif +#include <nbcompat/limits.h> +#include <nbcompat/stdlib.h> +#if 0 +#ifdef _LIBC +#ifdef __weak_alias +__weak_alias(strtoll, _strtoll) +#endif +#endif +#endif + +#if !HAVE_STRTOLL /* * Convert a string to a long long integer. * @@ -40,7 +74,14 @@ */ /* LONGLONG */ long long int -strtoll(const char *nptr, char **endptr, int base) +#ifdef _LIBC && 0 +_strtoll(nptr, endptr, base) +#else +strtoll(nptr, endptr, base) +#endif + const char *nptr; + char **endptr; + int base; { const char *s; /* LONGLONG */ @@ -48,6 +89,7 @@ strtoll(const char *nptr, char **endptr, int base) int c; int neg, any, cutlim; + _DIAGASSERT(nptr != NULL); /* endptr may be NULL */ #ifdef __GNUC__ @@ -147,3 +189,4 @@ strtoll(const char *nptr, char **endptr, int base) *endptr = (char *)(any ? s - 1 : nptr); return (acc); } +#endif diff --git a/pkgtools/libnbcompat/files/unsetenv.c b/pkgtools/libnbcompat/files/unsetenv.c new file mode 100644 index 00000000000..a4e8fad0e2c --- /dev/null +++ b/pkgtools/libnbcompat/files/unsetenv.c @@ -0,0 +1,12 @@ +/* $NetBSD: unsetenv.c,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/* + * Written by Klaus Klein <kleink@NetBSD.org>, April 1, 2003. + * Public domain. + */ + +#if 0 +#define __LIBC12_SOURCE__ +#endif + +#include "__unsetenv13.c" diff --git a/pkgtools/libnbcompat/files/unvis.c b/pkgtools/libnbcompat/files/unvis.c index 3a9f8d9314e..92ee99070f5 100644 --- a/pkgtools/libnbcompat/files/unvis.c +++ b/pkgtools/libnbcompat/files/unvis.c @@ -1,4 +1,4 @@ -/* $NetBSD: unvis.c,v 1.6 2004/08/16 17:24:56 jlam Exp $ */ +/* $NetBSD: unvis.c,v 1.7 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -29,31 +29,44 @@ * SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif - +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)unvis.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: unvis.c,v 1.6 2004/08/16 17:24:56 jlam Exp $"); +__RCSID("$NetBSD: unvis.c,v 1.7 2004/08/23 03:32:13 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ +#if 0 #define __LIBC12_SOURCE__ +#endif -/* #include "namespace.h" */ -#include <sys/types.h> +#if 0 +#include "namespace.h" +#endif +#include <nbcompat/types.h> + +#include <nbcompat/assert.h> +#include <nbcompat/ctype.h> +#include <nbcompat/stdio.h> +#include <nbcompat/vis.h> -#include <assert.h> -#include <ctype.h> -#include <stdio.h> -#include "nbcompat/vis.h" +#if 0 +#ifdef __weak_alias +__weak_alias(strunvis,_strunvis) +__weak_alias(unvis,_unvis) +#endif +#endif + +#if 0 +#ifdef __warn_references +__warn_references(unvis, + "warning: reference to compatibility unvis(); include <vis.h> for correct reference") +#endif +#endif -#ifndef S_GROUND /* * decode driven by state machine */ @@ -66,17 +79,10 @@ __RCSID("$NetBSD: unvis.c,v 1.6 2004/08/16 17:24:56 jlam Exp $"); #define S_OCTAL3 6 /* octal digit 3 */ #define S_HEX1 7 /* hex digit */ #define S_HEX2 8 /* hex digit 2 */ -#endif -#ifndef isoctal #define isoctal(c) (((u_char)(c)) >= '0' && ((u_char)(c)) <= '7') -#endif - -#ifndef xtod #define xtod(c) (isdigit(c) ? (c - '0') : ((tolower(c) - 'a') + 10)) -#endif -#if !HAVE_UNVIS int unvis(cp, c, astate, flag) char *cp; @@ -268,7 +274,6 @@ __unvis13(cp, c, astate, flag) return (UNVIS_SYNBAD); } } -#endif /* * strunvis - decode src into dst @@ -277,7 +282,6 @@ __unvis13(cp, c, astate, flag) * Dst is null terminated. */ -#if !HAVE_STRUNVIS int strunvisx(dst, src, flag) char *dst; @@ -320,4 +324,3 @@ strunvis(dst, src) { return strunvisx(dst, src, 0); } -#endif diff --git a/pkgtools/libnbcompat/files/usleep.c b/pkgtools/libnbcompat/files/usleep.c index 3c84e5ea88e..6c7ce86d993 100644 --- a/pkgtools/libnbcompat/files/usleep.c +++ b/pkgtools/libnbcompat/files/usleep.c @@ -1,4 +1,4 @@ -/* $NetBSD: usleep.c,v 1.2 2003/09/06 23:03:06 grant Exp $ */ +/* $NetBSD: usleep.c,v 1.3 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1999-2000 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "nbcompat.h" +#include <nbcompat.h> int usleep(unsigned int usec) @@ -47,9 +47,7 @@ usleep(unsigned int usec) tv.tv_sec = 0; tv.tv_usec = usec; return (select(1, NULL, NULL, NULL, &tv)); -#elif HAVE_POLL - return (poll(NULL, 0, usec / 1000); #else -# error no way to implement usleep + return (poll(NULL, 0, usec / 1000); #endif } diff --git a/pkgtools/libnbcompat/files/utimes.c b/pkgtools/libnbcompat/files/utimes.c index 6ab08b708d7..3b66e43860d 100644 --- a/pkgtools/libnbcompat/files/utimes.c +++ b/pkgtools/libnbcompat/files/utimes.c @@ -1,4 +1,4 @@ -/* $NetBSD: utimes.c,v 1.1 2004/03/11 14:11:04 grant Exp $ */ +/* $NetBSD: utimes.c,v 1.2 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -38,10 +38,11 @@ * Emulate utimes(2) using utime(2), but losing sub-second granularity. */ -#include "nbcompat.h" - -#include <unistd.h> +#include <nbcompat.h> +#include <nbcompat/unistd.h> +#if HAVE_UTIME_H #include <utime.h> +#endif int utimes(const char *path, const struct timeval *times) diff --git a/pkgtools/libnbcompat/files/vis.c b/pkgtools/libnbcompat/files/vis.c index 91cbc065ff7..dd9cc1da1c1 100644 --- a/pkgtools/libnbcompat/files/vis.c +++ b/pkgtools/libnbcompat/files/vis.c @@ -1,7 +1,6 @@ -/* $NetBSD: vis.c,v 1.6 2004/08/16 17:24:57 jlam Exp $ */ +/* $NetBSD: vis.c,v 1.7 2004/08/23 03:32:13 jlam Exp $ */ /*- - * Copyright (c) 1999 The NetBSD Foundation, Inc. * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * @@ -34,36 +33,54 @@ * SUCH DAMAGE. */ -#include "nbcompat/nbconfig.h" -#include "nbcompat/nbtypes.h" - -#if HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include <nbcompat.h> +#include <nbcompat/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: vis.c,v 1.6 2004/08/16 17:24:57 jlam Exp $"); +__RCSID("$NetBSD: vis.c,v 1.7 2004/08/23 03:32:13 jlam Exp $"); #endif /* LIBC_SCCS and not lint */ -/* #include "namespace.h" */ -#include <sys/types.h> - -#if HAVE_ASSERT_H -#include <assert.h> +#if 0 +#include "namespace.h" #endif +#include <nbcompat/types.h> -#include "nbcompat/vis.h" -#include <stdlib.h> +#include <nbcompat/assert.h> +#include <nbcompat/vis.h> +#include <nbcompat/stdlib.h> #if 0 -#ifndef __ELF__ -#define _strsvis strsvis -#define _strsvisx strsvisx -#define _strvis strvis -#define _strvisx strvisx -#define _svis svis -#define _vis vis -#else #ifdef __weak_alias __weak_alias(strsvis,_strsvis) __weak_alias(strsvisx,_strsvisx) @@ -73,44 +90,37 @@ __weak_alias(svis,_svis) __weak_alias(vis,_vis) #endif #endif -#endif -#include <ctype.h> -#include <limits.h> -#include <stdio.h> -#include <string.h> +#include <nbcompat/ctype.h> +#include <nbcompat/limits.h> +#include <nbcompat/stdio.h> +#include <nbcompat/string.h> #undef BELL -#if defined(__STDC__) #define BELL '\a' -#else -#define BELL '\007' -#endif - -static const char empty[] = ""; #define isoctal(c) (((u_char)(c)) >= '0' && ((u_char)(c)) <= '7') #define iswhite(c) (c == ' ' || c == '\t' || c == '\n') #define issafe(c) (c == '\b' || c == BELL || c == '\r') #define xtoa(c) "0123456789abcdef"[c] -#define MAXEXTRAS 5 +#define MAXEXTRAS 5 #define MAKEEXTRALIST(flag, extra, orig) \ do { \ const char *o = orig; \ - char *e; \ + char *e; \ while (*o++) \ continue; \ - extra = malloc((size_t)((o - orig) + MAXEXTRAS)); \ + extra = alloca((size_t)((o - orig) + MAXEXTRAS)); \ for (o = orig, e = extra; (*e++ = *o++) != '\0';) \ continue; \ e--; \ - if (flag & VIS_SP) *e++ = ' '; \ + if (flag & VIS_SP) *e++ = ' '; \ if (flag & VIS_TAB) *e++ = '\t'; \ - if (flag & VIS_NL) *e++ = '\n'; \ - if ((flag & VIS_NOSLASH) == 0) *e++ = '\\'; \ + if (flag & VIS_NL) *e++ = '\n'; \ + if ((flag & VIS_NOSLASH) == 0) *e++ = '\\'; \ *e = '\0'; \ } while (/*CONSTCOND*/0) @@ -119,7 +129,7 @@ do { \ * This is HVIS, the macro of vis used to HTTP style (RFC 1808) */ #define HVIS(dst, c, flag, nextc, extra) \ -do \ +do \ if (!isascii(c) || !isalnum(c) || strchr("$-_.+!*'(),", c) != NULL) { \ *dst++ = '%'; \ *dst++ = xtoa(((unsigned int)c >> 4) & 0xf); \ @@ -128,7 +138,7 @@ do \ SVIS(dst, c, flag, nextc, extra); \ } \ while (/*CONSTCOND*/0) - + /* * This is SVIS, the central macro of vis. * dst: Pointer to the destination buffer @@ -140,49 +150,53 @@ while (/*CONSTCOND*/0) */ #define SVIS(dst, c, flag, nextc, extra) \ do { \ - int isextra, isc; \ + int isextra; \ isextra = strchr(extra, c) != NULL; \ if (!isextra && isascii(c) && (isgraph(c) || iswhite(c) || \ ((flag & VIS_SAFE) && issafe(c)))) { \ *dst++ = c; \ break; \ } \ - isc = 0; \ if (flag & VIS_CSTYLE) { \ switch (c) { \ case '\n': \ - isc = 1; *dst++ = '\\'; *dst++ = 'n'; \ - break; \ + *dst++ = '\\'; *dst++ = 'n'; \ + continue; \ case '\r': \ - isc = 1; *dst++ = '\\'; *dst++ = 'r'; \ - break; \ + *dst++ = '\\'; *dst++ = 'r'; \ + continue; \ case '\b': \ - isc = 1; *dst++ = '\\'; *dst++ = 'b'; \ - break; \ + *dst++ = '\\'; *dst++ = 'b'; \ + continue; \ case BELL: \ - isc = 1; *dst++ = '\\'; *dst++ = 'a'; \ - break; \ + *dst++ = '\\'; *dst++ = 'a'; \ + continue; \ case '\v': \ - isc = 1; *dst++ = '\\'; *dst++ = 'v'; \ - break; \ + *dst++ = '\\'; *dst++ = 'v'; \ + continue; \ case '\t': \ - isc = 1; *dst++ = '\\'; *dst++ = 't'; \ - break; \ + *dst++ = '\\'; *dst++ = 't'; \ + continue; \ case '\f': \ - isc = 1; *dst++ = '\\'; *dst++ = 'f'; \ - break; \ + *dst++ = '\\'; *dst++ = 'f'; \ + continue; \ case ' ': \ - isc = 1; *dst++ = '\\'; *dst++ = 's'; \ - break; \ + *dst++ = '\\'; *dst++ = 's'; \ + continue; \ case '\0': \ - isc = 1; *dst++ = '\\'; *dst++ = '0'; \ + *dst++ = '\\'; *dst++ = '0'; \ if (isoctal(nextc)) { \ *dst++ = '0'; \ *dst++ = '0'; \ } \ + continue; \ + default: \ + if (isgraph(c)) { \ + *dst++ = '\\'; *dst++ = c; \ + continue; \ + } \ } \ } \ - if (isc) break; \ if (isextra || ((c & 0177) == ' ') || (flag & VIS_OCTAL)) { \ *dst++ = '\\'; \ *dst++ = (u_char)(((u_int32_t)(u_char)c >> 6) & 03) + '0'; \ @@ -225,11 +239,10 @@ svis(dst, c, flag, nextc, extra) else SVIS(dst, c, flag, nextc, nextra); *dst = '\0'; - free(nextra); return(dst); } -#ifndef HAVE_STRSVIS + /* * strsvis, strsvisx - visually encode characters from src into dst * @@ -237,24 +250,25 @@ svis(dst, c, flag, nextc, extra) * be encoded, too. These functions are useful e. g. to * encode strings in such a way so that they are not interpreted * by a shell. - * + * * Dst must be 4 times the size of src to account for possible * expansion. The length of dst, not including the trailing NULL, - * is returned. + * is returned. * * Strsvisx encodes exactly len bytes from src into dst. * This is useful for encoding a block of data. */ int -strsvis(dst, src, flag, extra) +strsvis(dst, csrc, flag, extra) char *dst; - const char *src; + const char *csrc; int flag; const char *extra; { - char c; + int c; char *start; char *nextra; + const unsigned char *src = (const unsigned char *)csrc; _DIAGASSERT(dst != NULL); _DIAGASSERT(src != NULL); @@ -268,22 +282,22 @@ strsvis(dst, src, flag, extra) SVIS(dst, c, flag, *src, nextra); } *dst = '\0'; - free(nextra); return (dst - start); } int -strsvisx(dst, src, len, flag, extra) +strsvisx(dst, csrc, len, flag, extra) char *dst; - const char *src; + const char *csrc; size_t len; int flag; const char *extra; { - char c; + int c; char *start; char *nextra; + const unsigned char *src = (const unsigned char *)csrc; _DIAGASSERT(dst != NULL); _DIAGASSERT(src != NULL); @@ -302,11 +316,8 @@ strsvisx(dst, src, len, flag, extra) } } *dst = '\0'; - free(nextra); return (dst - start); } -#endif - /* * vis - visually encode characters @@ -315,29 +326,28 @@ char * vis(dst, c, flag, nextc) char *dst; int c, flag, nextc; - + { char *extra; _DIAGASSERT(dst != NULL); - MAKEEXTRALIST(flag, extra, empty); + MAKEEXTRALIST(flag, extra, ""); if (flag & VIS_HTTPSTYLE) - HVIS(dst, c, flag, nextc, extra); + HVIS(dst, c, flag, nextc, extra); else - SVIS(dst, c, flag, nextc, extra); + SVIS(dst, c, flag, nextc, extra); *dst = '\0'; - free(extra); return (dst); } -#if HAVE_STRVIS + /* * strvis, strvisx - visually encode characters from src into dst - * + * * Dst must be 4 times the size of src to account for possible * expansion. The length of dst, not including the trailing NULL, - * is returned. + * is returned. * * Strvisx encodes exactly len bytes from src into dst. * This is useful for encoding a block of data. @@ -349,12 +359,9 @@ strvis(dst, src, flag) int flag; { char *extra; - int ret; - MAKEEXTRALIST(flag, extra, empty); - ret = strsvis(dst, src, flag, extra); - free(extra); - return(ret); + MAKEEXTRALIST(flag, extra, ""); + return (strsvis(dst, src, flag, extra)); } @@ -366,11 +373,7 @@ strvisx(dst, src, len, flag) int flag; { char *extra; - int ret; - MAKEEXTRALIST(flag, extra, empty); - ret = strsvisx(dst, src, len, flag, extra); - free(extra); - return(ret); + MAKEEXTRALIST(flag, extra, ""); + return (strsvisx(dst, src, len, flag, extra)); } -#endif diff --git a/pkgtools/libnbcompat/files/warn.c b/pkgtools/libnbcompat/files/warn.c new file mode 100644 index 00000000000..e3522c854d3 --- /dev/null +++ b/pkgtools/libnbcompat/files/warn.c @@ -0,0 +1,115 @@ +/* $NetBSD: warn.c,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ + +/* + * Copyright 1997-2000 Luke Mewburn <lukem@netbsd.org>. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include <nbcompat.h> +#include <nbcompat/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)err.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: warn.c,v 1.1 2004/08/23 03:32:13 jlam Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#ifndef __NO_NAMESPACE_H /* XXX */ +#if 0 +#include "namespace.h" +#endif +#endif +#include <nbcompat/err.h> +#if HAVE_STDARG_H +#include <stdarg.h> +#endif + +#if 0 +#ifdef __weak_alias +__weak_alias(warn, _warn) +#endif +#endif + +void +warn(const char *fmt, ...) +{ + va_list ap; + int sverrno; + + sverrno = errno; + (void)fprintf(stderr, "%s: ", getprogname()); + va_start(ap, fmt); + if (fmt != NULL) { + (void)vfprintf(stderr, fmt, ap); + (void)fprintf(stderr, ": "); + } + va_end(ap); + (void)fprintf(stderr, "%s\n", strerror(sverrno)); +} + +void +warnx(const char *fmt, ...) +{ + va_list ap; + + (void)fprintf(stderr, "%s: ", getprogname()); + va_start(ap, fmt); + if (fmt != NULL) + (void)vfprintf(stderr, fmt, ap); + va_end(ap); + (void)fprintf(stderr, "\n"); +} + +void +vwarn(fmt, ap) + const char *fmt; + va_list ap; +{ + int sverrno; + + sverrno = errno; + (void)fprintf(stderr, "%s: ", getprogname()); + if (fmt != NULL) { + (void)vfprintf(stderr, fmt, ap); + (void)fprintf(stderr, ": "); + } + (void)fprintf(stderr, "%s\n", strerror(sverrno)); +} + +void +vwarnx(fmt, ap) + const char *fmt; + va_list ap; +{ + (void)fprintf(stderr, "%s: ", getprogname()); + if (fmt != NULL) + (void)vfprintf(stderr, fmt, ap); + (void)fprintf(stderr, "\n"); +} |