From 939d836be60dc2a0c52c8b4a9eb871d77846e8d7 Mon Sep 17 00:00:00 2001 From: Martin Nilsson <nilsson@opera.com> Date: Wed, 3 Sep 2014 23:15:47 +0200 Subject: [PATCH] vsnprintf is C89 --- src/configure.in | 1 - src/port.c | 76 ++---------------------------------------------- src/port.h | 7 ++--- 3 files changed, 4 insertions(+), 80 deletions(-) diff --git a/src/configure.in b/src/configure.in index 4bfd0f47a5..24a12286f0 100644 --- a/src/configure.in +++ b/src/configure.in @@ -4557,7 +4557,6 @@ AC_CHECK_FUNCS( \ strerror \ times \ tzset \ - vsprintf \ _snprintf \ snprintf \ vsnprintf \ diff --git a/src/port.c b/src/port.c index 16308899fd..02cd4129ba 100644 --- a/src/port.c +++ b/src/port.c @@ -262,78 +262,6 @@ PMOD_EXPORT int STRCASECMP(const char *a,const char *b) } #endif -#ifndef HAVE_VSPRINTF -PMOD_EXPORT int VSPRINTF(char *buf,const char *fmt,va_list args) -{ - char *b=buf; - char *s; - - int tmpA; - char fmt2[120]; - char *fmt2p; - - fmt2[0]='%'; - for(;(s=strchr(fmt,'%'));fmt=s) - { - memcpy(buf,fmt,s-fmt); - buf+=s-fmt; - fmt=s; - fmt2p=fmt2+1; - s++; - unknown_character: - switch((*(fmt2p++)=*(s++))) - { - default: - goto unknown_character; - - case '*': - fmt2p--; - sprintf(fmt2p,"%d",va_arg(args,int)); - fmt2p+=strlen(fmt2p); - goto unknown_character; - - case 0: - Pike_fatal("Error in vsprintf format.\n"); - return 0; - - case '%': - *(buf++)='%'; - break; - - case 'p': - case 's': - *fmt2p=0; - sprintf(buf,fmt2,va_arg(args,char *)); - buf+=strlen(buf); - break; - - case 'd': - case 'c': - case 'x': - case 'X': - *fmt2p=0; - sprintf(buf,fmt2,va_arg(args,int)); - buf+=strlen(buf); - break; - - case 'f': - case 'e': - case 'E': - case 'g': - *fmt2p=0; - sprintf(buf,fmt2,va_arg(args,double)); - buf+=strlen(buf); - break; - } - } - tmpA=strlen(fmt); - memcpy(buf,fmt,tmpA); - buf+=tmpA; - *buf=0; - return buf-b; -} -#endif - #ifndef HAVE_VSNPRINTF /* Warning: It's possible to trick this with something like * snprintf("...%c...", 0). */ @@ -344,8 +272,8 @@ PMOD_EXPORT int VSNPRINTF(char *buf, size_t size, const char *fmt, va_list args) buf = alloca(size=1000); } buf[size - 1] = 0; - res = VSPRINTF (buf, fmt, args); - if (buf[size - 1]) Pike_fatal ("Buffer overflow in VSPRINTF.\n"); + res = vsprintf (buf, fmt, args); + if (buf[size - 1]) Pike_fatal ("Buffer overflow in vsprintf.\n"); return res; } #endif diff --git a/src/port.h b/src/port.h index 3f286a4f68..1029e03e4a 100644 --- a/src/port.h +++ b/src/port.h @@ -194,11 +194,8 @@ char *strchr(const char *s,int c); #define HAVE_VFPRINTF 1 #define VFPRINTF vfprintf -#ifndef HAVE_VSPRINTF -PMOD_EXPORT int VSPRINTF(char *buf,const char *fmt,va_list args); -#else -# define VSPRINTF vsprintf -#endif +#define HAVE_VSPRINTF 1 +#define VSPRINTF vsprintf #ifndef HAVE_VSNPRINTF PMOD_EXPORT int VSNPRINTF(char *buf, size_t size, const char *fmt, va_list args); -- GitLab