Browse Source

Merge 990fa8e3ee into e48a25cfbb

pull/88/merge
Anatol Belski 12 years ago
parent
commit
0aa4cda62a
3 changed files with 13 additions and 5 deletions
  1. +1
    -1
      json_inttypes.h
  2. +7
    -0
      json_object.c
  3. +5
    -4
      json_util.c

+ 1
- 1
json_inttypes.h View File

@@ -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;


+ 7
- 0
json_object.c View File

@@ -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 */




+ 5
- 4
json_util.c View File

@@ -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)


Loading…
Cancel
Save