Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Beier <dontmind@freeshell.org>2017-10-22 02:42:29 +0300
committerJo-Philipp Wich <jo@mein.io>2018-01-07 18:02:02 +0300
commit6abafba0c4d38d109c7563d9c09b51d627002cb6 (patch)
tree412945d67d1fed9b2e6c9cc3ecfaf395d5a0bf69
parentcfc75c5e8ceca80dd9ca28eec3ddfdfa19bb8be2 (diff)
jshn: read and write 64-bit integers
This allows for reading in and writing out bigger JSON Numbers. Following test script (that fails to print correct values _without_ this commit) verifies the functionality (tested on x86-64 as well as on ar71xx): ---snip--- # assumes you built jshn and sourced jshn.sh echo testing reading-in JSON SHELL_BIGNUM=12147483647 json_init json_load "{ \"bignum\": $SHELL_BIGNUM }" json_get_var BIGNUM bignum echo jshn bignum: $BIGNUM echo shll bignum: $SHELL_BIGNUM echo testing writing-out JSON json_init json_add_int bigint $SHELL_BIGNUM json_dump --snap--- Signed-off-by: Christian Beier <dontmind@freeshell.org> (cherry picked from commit 729f47fd5279f902986457682f8f166c324eafb5)
-rw-r--r--jshn.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/jshn.c b/jshn.c
index 4989099..79136dd 100644
--- a/jshn.c
+++ b/jshn.c
@@ -154,7 +154,7 @@ static int add_json_element(const char *key, json_object *obj)
fprintf(stdout, "' %d;\n", json_object_get_boolean(obj));
break;
case json_type_int:
- fprintf(stdout, "' %d;\n", json_object_get_int(obj));
+ fprintf(stdout, "' %jd;\n", json_object_get_int64(obj));
break;
case json_type_double:
fprintf(stdout, "' %lf;\n", json_object_get_double(obj));
@@ -235,7 +235,7 @@ static void jshn_add_object_var(json_object *obj, bool array, const char *prefix
} else if (!strcmp(type, "string")) {
new = json_object_new_string(var);
} else if (!strcmp(type, "int")) {
- new = json_object_new_int(atoi(var));
+ new = json_object_new_int64(atoll(var));
} else if (!strcmp(type, "double")) {
new = json_object_new_double(strtod(var, NULL));
} else if (!strcmp(type, "boolean")) {