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 @@ int json_parse_double(const char *buf, double *retval) 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)