From 47ea7148e3c11deee92e6eda336ca483bd6a858c Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 2 Mar 2005 03:21:52 +0000
Subject: [PATCH] Fix snprintf on Win32:

 *  If vsnprintf() is not before snprintf() in this file, snprintf()
 *  will call the system vsnprintf() on MinGW.
---
 src/port/snprintf.c | 49 ++++++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/src/port/snprintf.c b/src/port/snprintf.c
index d945304b26a..f52e1f4fe1d 100644
--- a/src/port/snprintf.c
+++ b/src/port/snprintf.c
@@ -66,28 +66,27 @@
  * 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
-printf(const char *fmt,...)
+vsnprintf(char *str, size_t count, const char *fmt, va_list args)
 {
-	int			len;
-	va_list			args;
-	char*		buffer[4096];
-	char*			p;
-
-	va_start(args, fmt);
-	len = vsnprintf((char*)buffer, (size_t)4096, fmt, args);
-	va_end(args);
-	p = (char*)buffer;
-	for(;*p;p++)
-		putchar(*p);
-	return len;
+	char *end;
+	str[0] = '\0';
+	end = str + count - 1;
+	dopr(str, fmt, args, end);
+	if (count > 0)
+		end[0] = '\0';
+	return strlen(str);
 }
 
 int
@@ -102,17 +101,21 @@ snprintf(char *str, size_t count, const char *fmt,...)
 	return len;
 }
 
-
 int
-vsnprintf(char *str, size_t count, const char *fmt, va_list args)
+printf(const char *fmt,...)
 {
-	char *end;
-	str[0] = '\0';
-	end = str + count - 1;
-	dopr(str, fmt, args, end);
-	if (count > 0)
-		end[0] = '\0';
-	return strlen(str);
+	int			len;
+	va_list			args;
+	char*		buffer[4096];
+	char*			p;
+
+	va_start(args, fmt);
+	len = vsnprintf((char*)buffer, (size_t)4096, fmt, args);
+	va_end(args);
+	p = (char*)buffer;
+	for(;*p;p++)
+		putchar(*p);
+	return len;
 }
 
 /*
-- 
GitLab