Module Name:    src
Committed By:   christos
Date:           Tue Mar  5 16:26:42 UTC 2013

Modified Files:
        src/tools/compat: compat_defs.h configure.ac
Added Files:
        src/tools/compat: dprintf.c

Log Message:
add dprintf


To generate a diff of this commit:
cvs rdiff -u -r1.87 -r1.88 src/tools/compat/compat_defs.h
cvs rdiff -u -r1.75 -r1.76 src/tools/compat/configure.ac
cvs rdiff -u -r0 -r1.1 src/tools/compat/dprintf.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tools/compat/compat_defs.h
diff -u src/tools/compat/compat_defs.h:1.87 src/tools/compat/compat_defs.h:1.88
--- src/tools/compat/compat_defs.h:1.87	Sat Feb 16 19:34:11 2013
+++ src/tools/compat/compat_defs.h	Tue Mar  5 11:26:41 2013
@@ -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 @@ int evasprintf(char **, const char *, va
 #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

Index: src/tools/compat/configure.ac
diff -u src/tools/compat/configure.ac:1.75 src/tools/compat/configure.ac:1.76
--- src/tools/compat/configure.ac:1.75	Sat Feb 16 19:34:11 2013
+++ src/tools/compat/configure.ac	Tue Mar  5 11:26:41 2013
@@ -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 @@ AC_CHECK_DECLS(sys_signame,,, [#include 
 # 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 \

Added files:

Index: src/tools/compat/dprintf.c
diff -u /dev/null src/tools/compat/dprintf.c:1.1
--- /dev/null	Tue Mar  5 11:26:42 2013
+++ src/tools/compat/dprintf.c	Tue Mar  5 11:26:41 2013
@@ -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

Reply via email to