snprintf.c revision 106163
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#ifdef __STDC__ 14int snprintf(char *str, size_t n, const char *fmt, ...) 15#else 16int snprintf(str, n, fmt, va_alist) 17 char *str; 18 size_t n; 19 const char *fmt; 20 va_dcl 21#endif 22{ 23 va_list ap; 24 int rval; 25#ifdef VSPRINTF_CHARSTAR 26 char *rp; 27#endif 28#ifdef __STDC__ 29 va_start(ap, fmt); 30#else 31 va_start(ap); 32#endif 33#ifdef VSPRINTF_CHARSTAR 34 rp = vsprintf(str, fmt, ap); 35 va_end(ap); 36 return (strlen(rp)); 37#else 38 rval = vsprintf(str, fmt, ap); 39 va_end(ap); 40 return (rval); 41#endif 42} 43 44int 45vsnprintf(str, n, fmt, ap) 46 char *str; 47 size_t n; 48 const char *fmt; 49 va_list ap; 50{ 51#ifdef VSPRINTF_CHARSTAR 52 return (strlen(vsprintf(str, fmt, ap))); 53#else 54 return (vsprintf(str, fmt, ap)); 55#endif 56} 57#else 58int snprintf_bs; 59#endif 60