snprintf.c revision 132451
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 63