X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=jshn.c;h=f71e6e685ddcd43117238b40714b4f7140f03cb7;hp=9cbdb3194489d180406c8f656fa98d5c014c82aa;hb=aa01be8ed07f24a375e74c5da7550171d6f9ca8e;hpb=0ab17bcb3aac5ed4234d43d170208adedc9cec71 diff --git a/jshn.c b/jshn.c index 9cbdb31..f71e6e6 100644 --- a/jshn.c +++ b/jshn.c @@ -13,7 +13,12 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include +#ifdef JSONC + #include +#else + #include +#endif + #include #include #include @@ -107,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; } @@ -136,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; } @@ -207,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 {