From 2291c473f4b22a0757e512fae48159073ed96104 Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Sat, 6 Dec 2003 23:48:29 +0100 Subject: * scanf/sscanffuns.c (scan): Take varargs per gmp_doscan_scan_t, to avoid any possible problems with a varargs call to a fixargs function. --- scanf/sscanffuns.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'scanf') diff --git a/scanf/sscanffuns.c b/scanf/sscanffuns.c index 9152c1cc9..f5dff8385 100644 --- a/scanf/sscanffuns.c +++ b/scanf/sscanffuns.c @@ -27,11 +27,37 @@ MA 02111-1307, USA. */ #include "gmp.h" #include "gmp-impl.h" +#if HAVE_STDARG +#include +#else +#include +#endif + static int -scan (const char **sp, const char *fmt, void *p1, void *p2) +#if HAVE_STDARG +scan (const char **sp, const char *fmt, ...) +#else +scan (va_alist) + va_dcl +#endif { - return sscanf (*sp, fmt, p1, p2); + va_list ap; + int ret; +#if HAVE_STDARG + va_start (ap, fmt); +#else + const char **sp; + const char *fmt; + va_start (ap); + sp = va_arg (ap, const char **); + fmt = va_arg (ap, const char *); +#endif + + ret = vsscanf (*sp, fmt, ap); + + va_end (ap); + return ret; } static void -- cgit v1.2.1