1224ba2bdSOllivier Robert #include <config.h> 2224ba2bdSOllivier Robert 3ce265a54SOllivier Robert #if !HAVE_SNPRINTF 4224ba2bdSOllivier Robert #include <sys/types.h> 5224ba2bdSOllivier Robert 6224ba2bdSOllivier Robert #ifdef __STDC__ 7224ba2bdSOllivier Robert #include <stdarg.h> 8224ba2bdSOllivier Robert #else 9224ba2bdSOllivier Robert #include <varargs.h> 10224ba2bdSOllivier Robert #endif 11224ba2bdSOllivier Robert #include <stdio.h> 12224ba2bdSOllivier Robert 13224ba2bdSOllivier Robert #ifdef __STDC__ 14224ba2bdSOllivier Robert int snprintf(char *str, size_t n, const char *fmt, ...) 15224ba2bdSOllivier Robert #else 16224ba2bdSOllivier Robert int snprintf(str, n, fmt, va_alist) 17224ba2bdSOllivier Robert char *str; 18224ba2bdSOllivier Robert size_t n; 19224ba2bdSOllivier Robert const char *fmt; 20224ba2bdSOllivier Robert va_dcl 21224ba2bdSOllivier Robert #endif 22224ba2bdSOllivier Robert { 23224ba2bdSOllivier Robert va_list ap; 24224ba2bdSOllivier Robert int rval; 25224ba2bdSOllivier Robert #ifdef VSPRINTF_CHARSTAR 26224ba2bdSOllivier Robert char *rp; 27224ba2bdSOllivier Robert #endif 28224ba2bdSOllivier Robert #ifdef __STDC__ 29224ba2bdSOllivier Robert va_start(ap, fmt); 30224ba2bdSOllivier Robert #else 31224ba2bdSOllivier Robert va_start(ap); 32224ba2bdSOllivier Robert #endif 33224ba2bdSOllivier Robert #ifdef VSPRINTF_CHARSTAR 34224ba2bdSOllivier Robert rp = vsprintf(str, fmt, ap); 35224ba2bdSOllivier Robert va_end(ap); 36224ba2bdSOllivier Robert return (strlen(rp)); 37224ba2bdSOllivier Robert #else 38224ba2bdSOllivier Robert rval = vsprintf(str, fmt, ap); 39224ba2bdSOllivier Robert va_end(ap); 40224ba2bdSOllivier Robert return (rval); 41224ba2bdSOllivier Robert #endif 42224ba2bdSOllivier Robert } 43224ba2bdSOllivier Robert 44224ba2bdSOllivier Robert int 45224ba2bdSOllivier Robert vsnprintf(str, n, fmt, ap) 46224ba2bdSOllivier Robert char *str; 47224ba2bdSOllivier Robert size_t n; 48224ba2bdSOllivier Robert const char *fmt; 49224ba2bdSOllivier Robert va_list ap; 50224ba2bdSOllivier Robert { 51224ba2bdSOllivier Robert #ifdef VSPRINTF_CHARSTAR 52224ba2bdSOllivier Robert return (strlen(vsprintf(str, fmt, ap))); 53224ba2bdSOllivier Robert #else 54224ba2bdSOllivier Robert return (vsprintf(str, fmt, ap)); 55224ba2bdSOllivier Robert #endif 56224ba2bdSOllivier Robert } 57ce265a54SOllivier Robert #else 58ce265a54SOllivier Robert int snprintf_bs; 59ce265a54SOllivier Robert #endif 60