Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tools/compat add dprintf



details:   https://anonhg.NetBSD.org/src/rev/b4f226e9a63a
branches:  trunk
changeset: 785236:b4f226e9a63a
user:      christos <christos%NetBSD.org@localhost>
date:      Tue Mar 05 16:26:41 2013 +0000

description:
add dprintf

diffstat:

 tools/compat/Makefile      |   4 +-
 tools/compat/compat_defs.h |   5 ++-
 tools/compat/configure.ac  |   4 +-
 tools/compat/dprintf.c     |  75 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+), 5 deletions(-)

diffs (133 lines):

diff -r dcf0aba9f08b -r b4f226e9a63a tools/compat/Makefile
--- a/tools/compat/Makefile     Tue Mar 05 15:34:53 2013 +0000
+++ b/tools/compat/Makefile     Tue Mar 05 16:26:41 2013 +0000
@@ -1,11 +1,11 @@
-#      $NetBSD: Makefile,v 1.67 2012/12/10 00:34:56 christos Exp $
+#      $NetBSD: Makefile,v 1.68 2013/03/05 16:27:29 christos Exp $
 
 HOSTLIB=       nbcompat
 
 .include <bsd.own.mk>
 
 SRCS=          atoll.c basename.c cdbr.c cdbw.c dirname.c \
-               fgetln.c flock.c fparseln.c fpurge.c \
+               dprintf.c fgetln.c flock.c fparseln.c fpurge.c \
                getcap.c getline.c getmode.c getopt_long.c gettemp.c \
                heapsort.c \
                issetugid.c lchflags.c lchmod.c lchown.c libyywrap.c \
diff -r dcf0aba9f08b -r b4f226e9a63a tools/compat/compat_defs.h
--- a/tools/compat/compat_defs.h        Tue Mar 05 15:34:53 2013 +0000
+++ b/tools/compat/compat_defs.h        Tue Mar 05 16:26:41 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: compat_defs.h,v 1.87 2013/02/17 00:34:11 christos Exp $        */
+/*     $NetBSD: compat_defs.h,v 1.88 2013/03/05 16:26:41 christos Exp $        */
 
 #ifndef        __NETBSD_COMPAT_DEFS_H__
 #define        __NETBSD_COMPAT_DEFS_H__
@@ -267,6 +267,9 @@
 #if !HAVE_FGETLN || defined(__NetBSD__)
 char *fgetln(FILE *, size_t *);
 #endif
+#if !HAVE_DPRINTF
+int dprintf(int, const char *, ...);
+#endif
 
 #if !HAVE_FLOCK
 # define LOCK_SH               0x01
diff -r dcf0aba9f08b -r b4f226e9a63a tools/compat/configure.ac
--- a/tools/compat/configure.ac Tue Mar 05 15:34:53 2013 +0000
+++ b/tools/compat/configure.ac Tue Mar 05 16:26:41 2013 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: configure.ac,v 1.75 2013/02/17 00:34:11 christos Exp $
+#      $NetBSD: configure.ac,v 1.76 2013/03/05 16:26:41 christos Exp $
 #
 # Autoconf definition file for libnbcompat.
 #
@@ -147,7 +147,7 @@
 # Library functions (where a .h check isn't enough).
 AC_FUNC_ALLOCA
 AC_CHECK_FUNCS(atoll asprintf asnprintf basename devname dirfd dirname \
-       esetfunc fgetln flock fpurge __fpurge futimes getline \
+       dprintf esetfunc fgetln flock fpurge __fpurge futimes getline \
        getopt getopt_long group_from_gid gid_from_group \
        heapsort isblank issetugid lchflags lchmod lchown lutimes mkstemp \
        mkdtemp poll pread putc_unlocked pwcache_userdb pwcache_groupdb \
diff -r dcf0aba9f08b -r b4f226e9a63a tools/compat/dprintf.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/compat/dprintf.c    Tue Mar 05 16:26:41 2013 +0000
@@ -0,0 +1,75 @@
+/*     $NetBSD: dprintf.c,v 1.1 2013/03/05 16:26:41 christos Exp $     */
+
+/*-
+ * Copyright (c) 2013 NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * 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.
+ *
+ * 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.
+ */
+
+#ifdef HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+
+#if !HAVE_DPRINTF
+#include <stdlib.h>
+#ifndef HAVE_NBTOOL_CONFIG_H
+/* These headers are required, but included from nbtool_config.h */
+#include <stdio.h>
+#include <stdarg.h>
+#include <unistd.h>
+#endif
+
+int
+dprintf(int fd, const char *fmt, ...)
+{
+       FILE *fp;
+       int e;
+       va_list ap;
+
+       if ((e = dup(fd)) == -1)
+               return -1;
+
+       if ((fp = fdopen(e, "r+")) == NULL)
+               return -1;
+
+       va_start(ap, fmt);
+       e = vfprintf(fp, fmt, ap);
+       va_end(ap);
+
+       (void)fclose(fp);
+       return e;
+}
+
+#endif /* HAVE_DPRINTF */
+
+#ifdef TEST
+int
+main(int argc, char *argv[])
+{
+       dprintf(1, "Hello %s\n", "world");
+       return 0;
+}
+#endif



Home | Main Index | Thread Index | Old Index