diff --git a/compat/snprintf.c b/compat/snprintf.c
index 357e733074ea7c85f880fa577ad65dfb3787fec7..4d07087abd4f956b4dbe209236e6abafd459b1e4 100644 (file)
--- a/compat/snprintf.c
+++ b/compat/snprintf.c
/*
* The size parameter specifies the available space, i.e. includes
* the trailing NUL byte; but Windows's vsnprintf expects the
- * number of characters to write without the trailing NUL.
+ * number of characters to write, and does not necessarily write the
+ * trailing NUL.
*/
#ifndef SNPRINTF_SIZE_CORR
+#if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ < 4
+#define SNPRINTF_SIZE_CORR 1
+#else
#define SNPRINTF_SIZE_CORR 0
#endif
+#endif
#undef vsnprintf
int git_vsnprintf(char *str, size_t maxsize, const char *format, va_list ap)