Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e3d5798896 | ||
|
|
cf1842dc6f |
@@ -9,7 +9,7 @@ project(cJSON C)
|
||||
|
||||
set(PROJECT_VERSION_MAJOR 1)
|
||||
set(PROJECT_VERSION_MINOR 4)
|
||||
set(PROJECT_VERSION_PATCH 0)
|
||||
set(PROJECT_VERSION_PATCH 1)
|
||||
set(CJSON_VERSION_SO 1)
|
||||
set(CJSON_UTILS_VERSION_SO 1)
|
||||
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||
|
||||
2
Makefile
2
Makefile
@@ -10,7 +10,7 @@ UTILS_TEST_SRC = cJSON.c cJSON_Utils.c test_utils.c
|
||||
|
||||
LDLIBS = -lm
|
||||
|
||||
LIBVERSION = 1.4.0
|
||||
LIBVERSION = 1.4.1
|
||||
CJSON_SOVERSION = 1
|
||||
UTILS_SOVERSION = 1
|
||||
|
||||
|
||||
46
cJSON.c
46
cJSON.c
@@ -47,7 +47,7 @@ CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void)
|
||||
}
|
||||
|
||||
/* This is a safeguard to prevent copy-pasters from using incompatible C and header files */
|
||||
#if (CJSON_VERSION_MAJOR != 1) || (CJSON_VERSION_MINOR != 4) || (CJSON_VERSION_PATCH != 0)
|
||||
#if (CJSON_VERSION_MAJOR != 1) || (CJSON_VERSION_MINOR != 4) || (CJSON_VERSION_PATCH != 1)
|
||||
#error cJSON.h and cJSON.c have different versions. Make sure that both have the same.
|
||||
#endif
|
||||
|
||||
@@ -372,28 +372,30 @@ static cJSON_bool print_number(const cJSON * const item, printbuffer * const out
|
||||
|
||||
/* This is a nice tradeoff. */
|
||||
output_pointer = ensure(output_buffer, 64, hooks);
|
||||
if (output_pointer != NULL)
|
||||
if (output_pointer == NULL)
|
||||
{
|
||||
/* This checks for NaN and Infinity */
|
||||
if ((d * 0) != 0)
|
||||
{
|
||||
length = sprintf((char*)output_pointer, "null");
|
||||
}
|
||||
else if ((fabs(floor(d) - d) <= DBL_EPSILON) && (fabs(d) < 1.0e60))
|
||||
{
|
||||
/* integer */
|
||||
length = sprintf((char*)output_pointer, "%.0f", d);
|
||||
trim_zeroes = false; /* don't remove zeroes for "big integers" */
|
||||
}
|
||||
else if ((fabs(d) < 1.0e-6) || (fabs(d) > 1.0e9))
|
||||
{
|
||||
length = sprintf((char*)output_pointer, "%e", d);
|
||||
trim_zeroes = false; /* don't remove zeroes in engineering notation */
|
||||
}
|
||||
else
|
||||
{
|
||||
length = sprintf((char*)output_pointer, "%f", d);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* This checks for NaN and Infinity */
|
||||
if ((d * 0) != 0)
|
||||
{
|
||||
length = sprintf((char*)output_pointer, "null");
|
||||
}
|
||||
else if ((fabs(floor(d) - d) <= DBL_EPSILON) && (fabs(d) < 1.0e60))
|
||||
{
|
||||
/* integer */
|
||||
length = sprintf((char*)output_pointer, "%.0f", d);
|
||||
trim_zeroes = false; /* don't remove zeroes for "big integers" */
|
||||
}
|
||||
else if ((fabs(d) < 1.0e-6) || (fabs(d) > 1.0e9))
|
||||
{
|
||||
length = sprintf((char*)output_pointer, "%e", d);
|
||||
trim_zeroes = false; /* don't remove zeroes in engineering notation */
|
||||
}
|
||||
else
|
||||
{
|
||||
length = sprintf((char*)output_pointer, "%f", d);
|
||||
}
|
||||
|
||||
/* sprintf failed */
|
||||
|
||||
Reference in New Issue
Block a user