summaryrefslogtreecommitdiff
path: root/src/win32/posix_w32.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32/posix_w32.c')
-rw-r--r--src/win32/posix_w32.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/win32/posix_w32.c b/src/win32/posix_w32.c
index 91585aeae..8e70719f9 100644
--- a/src/win32/posix_w32.c
+++ b/src/win32/posix_w32.c
@@ -341,8 +341,12 @@ done:
int p_vsnprintf(char *buffer, size_t count, const char *format, va_list argptr)
{
#ifdef _MSC_VER
- int len = _vsnprintf(buffer, count, format, argptr);
- return (len < 0) ? _vscprintf(format, argptr) : len;
+ int len;
+
+ if (count == 0 || (len = _vsnprintf(buffer, count, format, argptr)) < 0)
+ return p_vscprintf(format, argptr);
+
+ return len;
#else /* MinGW */
return vsnprintf(buffer, count, format, argptr);
#endif