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