]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
json: Add helper to serialize long double types
authorDaniel Wagner <dwagner@suse.de>
Fri, 8 Jul 2022 10:15:50 +0000 (12:15 +0200)
committerDaniel Wagner <dwagner@suse.de>
Mon, 11 Jul 2022 09:41:34 +0000 (11:41 +0200)
Introduce a helper to create a struct json_object from a long double
type.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
util/json.c
util/json.h

index 77aeea066926ae2d97a80184b6c390430cf4d5a8..fd52861166d47ffe1c2c4fd37f3c98466af94a93 100644 (file)
@@ -1,2 +1,19 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
+#include <stdio.h>
+
 #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;
+
+}
index dc8ebdb1a8bca51dcd74309414c59aaef7e4cb89..2b8022a98ad308cd08dc220cd4d2b855e3bef89a 100644 (file)
@@ -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