From: Daniel Wagner Date: Fri, 8 Jul 2022 10:15:50 +0000 (+0200) Subject: json: Add helper to serialize long double types X-Git-Tag: v2.1-rc0~10^2~1 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b27e420d9caf2e5b61d0a192f610303cd0101845;p=users%2Fsagi%2Fnvme-cli.git json: Add helper to serialize long double types Introduce a helper to create a struct json_object from a long double type. Signed-off-by: Daniel Wagner --- diff --git a/util/json.c b/util/json.c index 77aeea06..fd528611 100644 --- a/util/json.c +++ b/util/json.c @@ -1,2 +1,19 @@ // SPDX-License-Identifier: GPL-2.0-or-later +#include + #include "json.h" + +struct json_object *util_json_object_new_double(long double d) +{ + struct json_object *obj; + char *str; + + if (asprintf(&str, "%Lf", d) < 0) + return NULL; + + obj = json_object_new_string(str); + + free(str); + return obj; + +} diff --git a/util/json.h b/util/json.h index dc8ebdb1..2b8022a9 100644 --- a/util/json.h +++ b/util/json.h @@ -25,6 +25,8 @@ } else \ json_object_object_add(o, k, json_object_new_int(v)) #endif +#define json_object_add_value_double(o, k, v) \ + json_object_object_add(o, k, util_json_object_new_double(v)) #define json_object_add_value_float(o, k, v) \ json_object_object_add(o, k, json_object_new_double(v)) #define json_object_add_value_string(o, k, v) \ @@ -41,4 +43,7 @@ printf("%s", json_object_to_json_string_ext(o, \ JSON_C_TO_STRING_PRETTY | \ JSON_C_TO_STRING_NOSLASHESCAPE)) + +struct json_object *util_json_object_new_double(long double d); + #endif