summaryrefslogtreecommitdiffstats
path: root/security/nss/lib/dbm/src/snprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/lib/dbm/src/snprintf.c')
-rw-r--r--security/nss/lib/dbm/src/snprintf.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/security/nss/lib/dbm/src/snprintf.c b/security/nss/lib/dbm/src/snprintf.c
new file mode 100644
index 0000000000..3cafacf44c
--- /dev/null
+++ b/security/nss/lib/dbm/src/snprintf.c
@@ -0,0 +1,50 @@
+#ifndef HAVE_SNPRINTF
+
+#include <sys/types.h>
+#include <stddef.h>
+#include <stdio.h>
+
+#include "prtypes.h"
+
+#include <ncompat.h>
+
+#include <stdarg.h>
+
+int
+snprintf(char *str, size_t n, const char *fmt, ...)
+{
+ va_list ap;
+#ifdef VSPRINTF_CHARSTAR
+ char *rp;
+#else
+ int rval;
+#endif
+ va_start(ap, fmt);
+#ifdef VSPRINTF_CHARSTAR
+ rp = vsprintf(str, fmt, ap);
+ va_end(ap);
+ return (strlen(rp));
+#else
+ rval = vsprintf(str, fmt, ap);
+ va_end(ap);
+ return (rval);
+#endif
+}
+
+int
+ vsnprintf(str, n, fmt, ap) char *str;
+size_t n;
+const char *fmt;
+va_list ap;
+{
+#ifdef VSPRINTF_CHARSTAR
+ return (strlen(vsprintf(str, fmt, ap)));
+#else
+ return (vsprintf(str, fmt, ap));
+#endif
+}
+
+#endif /* HAVE_SNPRINTF */
+
+/* Some compilers don't like an empty source file. */
+static int dummy = 0;