From 00a833c5b6f44c8cf2a7a9838de32d0dc5400a90 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 17 Mar 2013 00:50:03 +0100 Subject: [PATCH] jshn: add support for the double datatype Signed-off-by: Felix Fietkau --- jshn.c | 8 ++++++++ sh/jshn.sh | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/jshn.c b/jshn.c index 781861d..f71e6e6 100644 --- a/jshn.c +++ b/jshn.c @@ -112,6 +112,9 @@ static int add_json_element(const char *key, json_object *obj) case json_type_int: type = "int"; break; + case json_type_double: + type = "double"; + break; default: return -1; } @@ -141,6 +144,9 @@ static int add_json_element(const char *key, json_object *obj) case json_type_int: fprintf(stdout, "' %d;\n", json_object_get_int(obj)); break; + case json_type_double: + fprintf(stdout, "' %lf;\n", json_object_get_double(obj)); + break; default: return -1; } @@ -212,6 +218,8 @@ static void jshn_add_object_var(json_object *obj, bool array, const char *prefix new = json_object_new_string(var); } else if (!strcmp(type, "int")) { new = json_object_new_int(atoi(var)); + } else if (!strcmp(type, "double")) { + new = json_object_new_double(strtod(var, NULL)); } else if (!strcmp(type, "boolean")) { new = json_object_new_boolean(!!atoi(var)); } else { diff --git a/sh/jshn.sh b/sh/jshn.sh index 1d9fc80..b4bb1e1 100644 --- a/sh/jshn.sh +++ b/sh/jshn.sh @@ -182,6 +182,10 @@ json_add_boolean() { _json_add_generic boolean "$1" "$2" } +json_add_double() { + _json_add_generic double "$1" "$2" +} + # functions read access to json variables json_load() {