]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/ntp/libntp/snprintf.c
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / ntp / libntp / snprintf.c
1 #include <config.h>
2
3 #if !HAVE_SNPRINTF
4 #include <sys/types.h>
5
6 #ifdef __STDC__
7 #include <stdarg.h>
8 #else
9 #include <varargs.h>
10 #endif
11 #include <stdio.h>
12
13 #include "l_stdlib.h"
14
15 #ifdef __STDC__
16 int snprintf(char *str, size_t n, const char *fmt, ...)
17 #else
18 int snprintf(str, n, fmt, va_alist)
19         char *str;
20         size_t n;
21         const char *fmt;
22         va_dcl
23 #endif
24 {
25         va_list ap;
26         int rval;
27 #ifdef VSPRINTF_CHARSTAR
28         char *rp;
29 #endif
30 #ifdef __STDC__
31         va_start(ap, fmt);
32 #else
33         va_start(ap);
34 #endif
35 #ifdef VSPRINTF_CHARSTAR
36         rp = vsprintf(str, fmt, ap);
37         va_end(ap);
38         return (strlen(rp));
39 #else
40         rval = vsprintf(str, fmt, ap);
41         va_end(ap);
42         return (rval);
43 #endif
44 }
45
46 int
47 vsnprintf(
48         char *str,
49         size_t n,
50         const char *fmt,
51         va_list ap
52         )
53 {
54 #ifdef VSPRINTF_CHARSTAR
55         return (strlen(vsprintf(str, fmt, ap)));
56 #else
57         return (vsprintf(str, fmt, ap));
58 #endif
59 }
60 #else
61 int snprintf_bs;
62 #endif