Several MSVC fixestags/json-c-0.12-20140410
@@ -4,7 +4,7 @@ | |||||
#include "json_config.h" | #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 */ | /* Anything less than Visual Studio C++ 10 is missing stdint.h and inttypes.h */ | ||||
typedef __int32 int32_t; | typedef __int32 int32_t; | ||||
@@ -37,6 +37,13 @@ | |||||
char* strndup(const char* str, size_t n); | char* strndup(const char* str, size_t n); | ||||
#endif /* !HAVE_STRNDUP */ | #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. | // Don't define this. It's not thread-safe. | ||||
/* #define REFCOUNT_DEBUG 1 */ | /* #define REFCOUNT_DEBUG 1 */ | ||||
@@ -159,14 +159,15 @@ int json_parse_double(const char *buf, double *retval) | |||||
static void sscanf_is_broken_test() | static void sscanf_is_broken_test() | ||||
{ | { | ||||
int64_t num64; | int64_t num64; | ||||
int ret_errno, is_int64_min, ret_errno2, is_int64_max; | |||||
(void)sscanf(" -01234567890123456789012345", "%" SCNd64, &num64); | (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); | (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 || | if (ret_errno != ERANGE || !is_int64_min || | ||||
ret_errno2 != ERANGE || !is_int64_max) | ret_errno2 != ERANGE || !is_int64_max) | ||||