/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
- #include <config.h>
- #if !HAVE_SNPRINTF
- #include <sys/types.h>
- #ifdef __STDC__
- #include <stdarg.h>
- #else
- #include <varargs.h>
- #endif
- #include <stdio.h>
- #include "l_stdlib.h"
- #ifdef __STDC__
- int snprintf(char *str, size_t n, const char *fmt, ...)
- #else
- int snprintf(str, n, fmt, va_alist)
- char *str;
- size_t n;
- const char *fmt;
- va_dcl
- #endif
- {
- va_list ap;
- int rval;
- #ifdef VSPRINTF_CHARSTAR
- char *rp;
- #endif
- #ifdef __STDC__
- va_start(ap, fmt);
- #else
- va_start(ap);
- #endif
- #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(
- 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
- }
- #else
- int snprintf_bs;
- #endif