Merge pull request #88 from weltling/master
Several MSVC fixes
diff --git a/json_inttypes.h b/json_inttypes.h
index 2f84ade..bfe1060 100644
--- a/json_inttypes.h
+++ b/json_inttypes.h
@@ -4,7 +4,7 @@
#include "json_config.h"
-#if defined(_MSC_VER) && _MSC_VER < 1700
+#if defined(_MSC_VER) && _MSC_VER =< 1700
/* Anything less than Visual Studio C++ 10 is missing stdint.h and inttypes.h */
typedef __int32 int32_t;
diff --git a/json_object.c b/json_object.c
index f2b5ce0..facb824 100644
--- a/json_object.c
+++ b/json_object.c
@@ -37,6 +37,13 @@
char* strndup(const char* str, size_t n);
#endif /* !HAVE_STRNDUP */
+#if !defined(HAVE_SNPRINTF) && defined(_MSC_VER)
+ /* MSC has the version as _snprintf */
+# define snprintf _snprintf
+#elif !defined(HAVE_SNPRINTF)
+# error You do not have snprintf on your system.
+#endif /* HAVE_SNPRINTF */
+
// Don't define this. It's not thread-safe.
/* #define REFCOUNT_DEBUG 1 */
diff --git a/json_util.c b/json_util.c
index 111fa01..d62d54e 100644
--- a/json_util.c
+++ b/json_util.c
@@ -159,14 +159,15 @@
static void sscanf_is_broken_test()
{
int64_t num64;
+ int ret_errno, is_int64_min, ret_errno2, is_int64_max;
(void)sscanf(" -01234567890123456789012345", "%" SCNd64, &num64);
- int ret_errno = errno;
- int is_int64_min = (num64 == INT64_MIN);
+ ret_errno = errno;
+ is_int64_min = (num64 == INT64_MIN);
(void)sscanf(" 01234567890123456789012345", "%" SCNd64, &num64);
- int ret_errno2 = errno;
- int is_int64_max = (num64 == INT64_MAX);
+ ret_errno2 = errno;
+ is_int64_max = (num64 == INT64_MAX);
if (ret_errno != ERANGE || !is_int64_min ||
ret_errno2 != ERANGE || !is_int64_max)