This commit adds int64 support for cjson. To enable int64, you need to
define the macro ENABLE_INT64. To make it more clear, you need to build
cjson like this:
mkdir build
cd build
cmake -DENABLE_INT64=ON ..
make
This implementation changed the type of valueint in struct cJSON: from
int to long long(int64), and added a new flag cJSON_IsInt64.
For a int64 cJSON item, the value of item->type would be cJSON_Number |
cJSON_IsInt64.
The existing functions parse_number and print_number can handle int64
now.
Considering I have added a new type cJSON_IsInt64, some new functions
have been added:
CJSON_PUBLIC(long long *) cJSON_GetInt64NumberValue(cJSON * const item)
CJSON_PUBLIC(cJSON_bool) cJSON_IsInt64Number(const cJSON * const item)
CJSON_PUBLIC(cJSON *) cJSON_CreateInt64Number(long long integer)
CJSON_PUBLIC(cJSON*) cJSON_AddInt64NumberToObject(cJSON * const object, const char * const name, const long long integer)
CJSON_PUBLIC(long long) cJSON_SetInt64NumberValue(cJSON * const object, const long long integer)
And some existing functions are also adjusted for int64, including
parse_number, cJSON_SetNumberHelper, print_number, cJSON_CreateNumber,
cJSON_Compare and compare_json(in cJSON_Utils).
Besides the code changes, we have also added some testcases for int64.
These tests will run if ENABLE_INT64 is turned on.
Added blank lines before list items and headings. This change creates consistency between different markdown parsers. There's no difference in the output of Github flavored markdown.
See https://babelmark.github.io/