Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / ntp / libntp / snprintf.c
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 }