xref: /freebsd/contrib/ntp/libntp/snprintf.c (revision b52b9d56d4e96089873a75f9e29062eec19fabba)
1 #include <config.h>
2 
3 #include <sys/types.h>
4 
5 #ifdef __STDC__
6 #include <stdarg.h>
7 #else
8 #include <varargs.h>
9 #endif
10 #include <stdio.h>
11 
12 #ifdef __STDC__
13 int snprintf(char *str, size_t n, const char *fmt, ...)
14 #else
15 int snprintf(str, n, fmt, va_alist)
16 	char *str;
17 	size_t n;
18 	const char *fmt;
19 	va_dcl
20 #endif
21 {
22 	va_list ap;
23 	int rval;
24 #ifdef VSPRINTF_CHARSTAR
25 	char *rp;
26 #endif
27 #ifdef __STDC__
28 	va_start(ap, fmt);
29 #else
30 	va_start(ap);
31 #endif
32 #ifdef VSPRINTF_CHARSTAR
33 	rp = vsprintf(str, fmt, ap);
34 	va_end(ap);
35 	return (strlen(rp));
36 #else
37 	rval = vsprintf(str, fmt, ap);
38 	va_end(ap);
39 	return (rval);
40 #endif
41 }
42 
43 int
44 vsnprintf(str, n, fmt, ap)
45 	char *str;
46 	size_t n;
47 	const char *fmt;
48 	va_list ap;
49 {
50 #ifdef VSPRINTF_CHARSTAR
51 	return (strlen(vsprintf(str, fmt, ap)));
52 #else
53 	return (vsprintf(str, fmt, ap));
54 #endif
55 }
56