diff options
Diffstat (limited to 'libopts/compat/snprintf.c')
-rw-r--r-- | libopts/compat/snprintf.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/libopts/compat/snprintf.c b/libopts/compat/snprintf.c deleted file mode 100644 index fc91d63..0000000 --- a/libopts/compat/snprintf.c +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef HAVE_VPRINTF -#include "choke-me: no vprintf and no snprintf" -#endif - -#if defined(HAVE_STDARG_H) -# include <stdarg.h> -# ifndef VA_START -# define VA_START(a, f) va_start(a, f) -# define VA_END(a) va_end(a) -# endif /* VA_START */ -# define SNV_USING_STDARG_H - -#elif defined(HAVE_VARARGS_H) -# include <varargs.h> -# ifndef VA_START -# define VA_START(a, f) va_start(a) -# define VA_END(a) va_end(a) -# endif /* VA_START */ -# undef SNV_USING_STDARG_H - -#else -# include "must-have-stdarg-or-varargs" -#endif - -static int -snprintf(char *str, size_t n, char const *fmt, ...) -{ - va_list ap; - int rval; - -#ifdef VSPRINTF_CHARSTAR - char *rp; - VA_START(ap, fmt); - rp = vsprintf(str, fmt, ap); - VA_END(ap); - rval = strlen(rp); - -#else - VA_START(ap, fmt); - rval = vsprintf(str, fmt, ap); - VA_END(ap); -#endif - - if (rval > n) { - fprintf(stderr, "snprintf buffer overrun %d > %d\n", rval, (int)n); - abort(); - } - return rval; -} - -static int -vsnprintf( char *str, size_t n, char const *fmt, va_list ap ) -{ -#ifdef VSPRINTF_CHARSTAR - return (strlen(vsprintf(str, fmt, ap))); -#else - return (vsprintf(str, fmt, ap)); -#endif -} |