summaryrefslogtreecommitdiff
path: root/src/win32
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2013-02-28 15:09:32 -0800
committerVicent Martí <vicent@github.com>2013-02-28 15:09:32 -0800
commitcc427158d4fafa26e3d2d9f69da51a1a8d8a92d4 (patch)
treec3d5277d1ebc912a6d939d68918e1ad2513909c5 /src/win32
parent5fa8abb86843950a95d220f90cce49cf8d6df830 (diff)
parentf443a72d334f8f52c3431e6b4181704a3f125d5e (diff)
downloadlibgit2-cc427158d4fafa26e3d2d9f69da51a1a8d8a92d4.tar.gz
Merge pull request #1373 from arrbee/why-cdecl-why
Why cdecl why?
Diffstat (limited to 'src/win32')
-rw-r--r--src/win32/msvc-compat.h9
-rw-r--r--src/win32/posix_w32.c3
2 files changed, 11 insertions, 1 deletions
diff --git a/src/win32/msvc-compat.h b/src/win32/msvc-compat.h
index 714a85e21..50865ed17 100644
--- a/src/win32/msvc-compat.h
+++ b/src/win32/msvc-compat.h
@@ -37,6 +37,15 @@
/* MSVC doesn't define ssize_t at all */
typedef SSIZE_T ssize_t;
+/* define snprintf using variadic macro support if available */
+#if _MSC_VER >= 1400
+# define snprintf(BUF, SZ, FMT, ...) _snprintf_s(BUF, SZ, _TRUNCATE, FMT, __VA_ARGS__)
+#else
+# define snprintf _snprintf
#endif
+#endif
+
+#define GIT_STDLIB_CALL __cdecl
+
#endif /* INCLUDE_msvc_compat__ */
diff --git a/src/win32/posix_w32.c b/src/win32/posix_w32.c
index c439dadce..4d56299f7 100644
--- a/src/win32/posix_w32.c
+++ b/src/win32/posix_w32.c
@@ -375,7 +375,8 @@ int p_vsnprintf(char *buffer, size_t count, const char *format, va_list argptr)
#ifdef _MSC_VER
int len;
- if (count == 0 || (len = _vsnprintf(buffer, count, format, argptr)) < 0)
+ if (count == 0 ||
+ (len = _vsnprintf_s(buffer, count, _TRUNCATE, format, argptr)) < 0)
return _vscprintf(format, argptr);
return len;