diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c index 3ecd4af46fb73882d3bfdbcf9b6c043148cd4950..2e3e077a66c59cd1fb895e911ad6e79897a1bcff 100644 --- a/src/backend/port/snprintf.c +++ b/src/backend/port/snprintf.c @@ -41,9 +41,6 @@ #include "regex/cdefs.h" #include <stdarg.h> -#define VA_LOCAL_DECL va_list args; -#define VA_START(f) va_start(args, f) -#define VA_END va_end(args) #include <sys/ioctl.h> #include <sys/param.h> @@ -75,34 +72,30 @@ typedef long long long_long; * causing nast effects. **************************************************************/ -/*static char _id[] = "$Id: snprintf.c,v 1.12 1998/12/18 06:59:39 momjian Exp $";*/ +/*static char _id[] = "$Id: snprintf.c,v 1.13 1998/12/18 07:03:06 momjian Exp $";*/ static char *end; static int SnprfOverflow; int snprintf(char *str, size_t count, const char *fmt,...); -int vsnprintf(char *str, size_t count, const char *fmt,...); -static void dopr(char *buffer, const char *format,...); +int vsnprintf(char *str, size_t count, const char *fmt, va_list args); +static void dopr(char *buffer, const char *format, va_list args); int snprintf(char *str, size_t count, const char *fmt,...) { int len; + va_list args; - VA_LOCAL_DECL - - VA_START(fmt); + va_start(args, fmt); len = vsnprintf(str, count, fmt, args); - VA_END; + va_end(args); return len; } int -vsnprintf(char *str, size_t count, const char *fmt,...) +vsnprintf(char *str, size_t count, const char *fmt, va_list args) { - VA_LOCAL_DECL - - VA_START(fmt); str[0] = 0; end = str + count - 1; SnprfOverflow = 0; @@ -112,7 +105,6 @@ vsnprintf(char *str, size_t count, const char *fmt,...) if (SnprfOverflow) elog(NOTICE, "vsnprintf overflow, len = %d, str = %s", count, str); - VA_END; return strlen(str); } @@ -122,7 +114,7 @@ vsnprintf(char *str, size_t count, const char *fmt,...) static void fmtstr __P((char *value, int ljust, int len, int zpad, int maxwidth)); -#ifndef HAVE_LONG_LONG_INT_64 +#ifndef HAVE_LONG_INT_64 static void fmtnum __P((long value, int base, int dosign, int ljust, int len, int zpad)); #else static void fmtnum __P((long_long value, int base, int dosign, int ljust, int len, int zpad)); @@ -133,16 +125,16 @@ static char *output; static void dopr_outch __P((int c)); static void -dopr(char *buffer, const char *format,...) +dopr(char *buffer, const char *format, va_list args) { int ch; #ifdef HAVE_LONG_LONG_INT_64 long_long value; + int longlongflag = 0; #else long value; #endif int longflag = 0; - int longlongflag = 0; int pointflag = 0; int maxwidth = 0; char *strvalue; @@ -150,10 +142,6 @@ dopr(char *buffer, const char *format,...) int len; int zpad; - VA_LOCAL_DECL - - VA_START(format); - output = buffer; while ((ch = *format++)) { @@ -162,13 +150,15 @@ dopr(char *buffer, const char *format,...) case '%': ljust = len = zpad = maxwidth = 0; longflag = pointflag = 0; +#ifdef HAVE_LONG_LONG_INT_64 + longlongflag = 0; +#endif nextch: ch = *format++; switch (ch) { case 0: dostr("**end of format**", 0); - VA_END; return; case '-': ljust = 1; @@ -200,16 +190,13 @@ dopr(char *buffer, const char *format,...) pointflag = 1; goto nextch; case 'l': +#ifdef HAVE_LONG_LONG_INT_64 if (longflag) - { longlongflag = 1; - goto nextch; - } else - { +#endif longflag = 1; - goto nextch; - } + goto nextch; case 'u': case 'U': /* fmtnum(value,base,dosign,ljust,len,zpad) */ @@ -255,6 +242,7 @@ dopr(char *buffer, const char *format,...) } else value = va_arg(args, int); + fmtnum(value, 10, 1, ljust, len, zpad); break; case 'x': @@ -311,7 +299,6 @@ dopr(char *buffer, const char *format,...) } } *output = 0; - VA_END; } static void @@ -362,7 +349,7 @@ int base, zpad; { int signvalue = 0; -#ifdef HAVE_LONG_LONG_INT_64 +#ifdef HAVE_LONG_INT_64 unsigned long_long uvalue; #else unsigned long uvalue;