Fix snprintf on Win32:

*  If vsnprintf() is not before snprintf() in this file, snprintf()
 *  will call the system vsnprintf() on MinGW.
This commit is contained in:
Bruce Momjian 2005-03-02 03:21:52 +00:00
parent 9989e90490
commit 47ea7148e3

View File

@ -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
*/