diff --git a/src/port/snprintf.c b/src/port/snprintf.c index d945304b26..f52e1f4fe1 100644 --- a/src/port/snprintf.c +++ b/src/port/snprintf.c @@ -66,13 +66,41 @@ * causing nasty effects. **************************************************************/ -/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.10 2005/03/02 00:02:13 momjian Exp $";*/ +/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.11 2005/03/02 03:21:52 momjian Exp $";*/ int snprintf(char *str, size_t count, const char *fmt,...); int vsnprintf(char *str, size_t count, const char *fmt, va_list args); int printf(const char *format, ...); static void dopr(char *buffer, const char *format, va_list args, char *end); +/* + * If vsnprintf() is not before snprintf() in this file, snprintf() + * will call the system vsnprintf() on MinGW. + */ +int +vsnprintf(char *str, size_t count, const char *fmt, va_list args) +{ + char *end; + str[0] = '\0'; + end = str + count - 1; + dopr(str, fmt, args, end); + if (count > 0) + end[0] = '\0'; + return strlen(str); +} + +int +snprintf(char *str, size_t count, const char *fmt,...) +{ + int len; + va_list args; + + va_start(args, fmt); + len = vsnprintf(str, count, fmt, args); + va_end(args); + return len; +} + int printf(const char *fmt,...) { @@ -90,31 +118,6 @@ printf(const char *fmt,...) return len; } -int -snprintf(char *str, size_t count, const char *fmt,...) -{ - int len; - va_list args; - - va_start(args, fmt); - len = vsnprintf(str, count, fmt, args); - va_end(args); - return len; -} - - -int -vsnprintf(char *str, size_t count, const char *fmt, va_list args) -{ - char *end; - str[0] = '\0'; - end = str + count - 1; - dopr(str, fmt, args, end); - if (count > 0) - end[0] = '\0'; - return strlen(str); -} - /* * dopr(): poor man's version of doprintf */