/* $NetBSD: snprintf.c,v 1.2 2003/12/04 16:23:37 drochner Exp $ */ #include #if !HAVE_SNPRINTF #include #ifdef __STDC__ #include #else #include #endif #include #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