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 139c2daa00SOllivier Robert #include "l_stdlib.h" 149c2daa00SOllivier Robert 15224ba2bdSOllivier Robert #ifdef __STDC__ 16224ba2bdSOllivier Robert int snprintf(char *str, size_t n, const char *fmt, ...) 17224ba2bdSOllivier Robert #else 18224ba2bdSOllivier Robert int snprintf(str, n, fmt, va_alist) 19224ba2bdSOllivier Robert char *str; 20224ba2bdSOllivier Robert size_t n; 21224ba2bdSOllivier Robert const char *fmt; 22224ba2bdSOllivier Robert va_dcl 23224ba2bdSOllivier Robert #endif 24224ba2bdSOllivier Robert { 25224ba2bdSOllivier Robert va_list ap; 26224ba2bdSOllivier Robert int rval; 27224ba2bdSOllivier Robert #ifdef VSPRINTF_CHARSTAR 28224ba2bdSOllivier Robert char *rp; 29224ba2bdSOllivier Robert #endif 30224ba2bdSOllivier Robert #ifdef __STDC__ 31224ba2bdSOllivier Robert va_start(ap, fmt); 32224ba2bdSOllivier Robert #else 33224ba2bdSOllivier Robert va_start(ap); 34224ba2bdSOllivier Robert #endif 35224ba2bdSOllivier Robert #ifdef VSPRINTF_CHARSTAR 36224ba2bdSOllivier Robert rp = vsprintf(str, fmt, ap); 37224ba2bdSOllivier Robert va_end(ap); 38224ba2bdSOllivier Robert return (strlen(rp)); 39224ba2bdSOllivier Robert #else 40224ba2bdSOllivier Robert rval = vsprintf(str, fmt, ap); 41224ba2bdSOllivier Robert va_end(ap); 42224ba2bdSOllivier Robert return (rval); 43224ba2bdSOllivier Robert #endif 44224ba2bdSOllivier Robert } 45224ba2bdSOllivier Robert 46224ba2bdSOllivier Robert int 479c2daa00SOllivier Robert vsnprintf( 489c2daa00SOllivier Robert char *str, 499c2daa00SOllivier Robert size_t n, 509c2daa00SOllivier Robert const char *fmt, 519c2daa00SOllivier Robert va_list ap 529c2daa00SOllivier Robert ) 53224ba2bdSOllivier Robert { 54224ba2bdSOllivier Robert #ifdef VSPRINTF_CHARSTAR 55224ba2bdSOllivier Robert return (strlen(vsprintf(str, fmt, ap))); 56224ba2bdSOllivier Robert #else 57224ba2bdSOllivier Robert return (vsprintf(str, fmt, ap)); 58224ba2bdSOllivier Robert #endif 59224ba2bdSOllivier Robert } 60ce265a54SOllivier Robert #else 61ce265a54SOllivier Robert int snprintf_bs; 62ce265a54SOllivier Robert #endif 63