PageRenderTime 33ms CodeModel.GetById 19ms app.highlight 8ms RepoModel.GetById 2ms app.codeStats 0ms

/contrib/ntp/libntp/snprintf.c

https://bitbucket.org/freebsd/freebsd-head/
C | 62 lines | 57 code | 5 blank | 0 comment | 0 complexity | c22681953e6780947149e4e41b95ded9 MD5 | raw file
 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__
16int snprintf(char *str, size_t n, const char *fmt, ...)
17#else
18int 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
46int
47vsnprintf(
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
61int snprintf_bs;
62#endif