Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • nrb/dev protected
2 results

gitlab-known-hosts

Blame
  • 0003-libjson-c-Add-support-for-custom-format-strings-for-doubles.patch 3.69 KiB
    From: Jan-Philipp Litza <janphilipp@litza.de>
    Date: Fri, 6 May 2016 16:44:29 +0200
    Subject: libjson-c: Add support for custom format strings for doubles
    
    diff --git a/package/libs/libjson-c/patches/002-custom-format-string.patch b/package/libs/libjson-c/patches/002-custom-format-string.patch
    new file mode 100644
    index 0000000000000000000000000000000000000000..b67433a7baf37654a17fa5036c4266b33bdda9f2
    --- /dev/null
    +++ b/package/libs/libjson-c/patches/002-custom-format-string.patch
    @@ -0,0 +1,91 @@
    +From 21dc5dc92bd56f5f4dc2c90b9ea6bf1e1407714e Mon Sep 17 00:00:00 2001
    +From: Jan-Philipp Litza <janphilipp@litza.de>
    +Date: Fri, 6 May 2016 16:12:44 +0200
    +Subject: [PATCH] Export json_object_double_to_json_string() and use custom
    + format string
    +BCC: janphilipp@litza.de
    +
    +---
    + json_object.c | 12 ++++++------
    + json_object.h | 28 ++++++++++++++++++++++++++++
    + 2 files changed, 34 insertions(+), 6 deletions(-)
    +
    +--- a/json_object.c
    ++++ b/json_object.c
    +@@ -55,7 +55,6 @@ static struct json_object* json_object_n
    + static json_object_to_json_string_fn json_object_object_to_json_string;
    + static json_object_to_json_string_fn json_object_boolean_to_json_string;
    + static json_object_to_json_string_fn json_object_int_to_json_string;
    +-static json_object_to_json_string_fn json_object_double_to_json_string;
    + static json_object_to_json_string_fn json_object_string_to_json_string;
    + static json_object_to_json_string_fn json_object_array_to_json_string;
    + 
    +@@ -560,10 +559,10 @@ int64_t json_object_get_int64(struct jso
    + 
    + /* json_object_double */
    + 
    +-static int json_object_double_to_json_string(struct json_object* jso,
    +-					     struct printbuf *pb,
    +-					     int level,
    +-						 int flags)
    ++int json_object_double_to_json_string(struct json_object* jso,
    ++				      struct printbuf *pb,
    ++				      int level,
    ++				      int flags)
    + {
    +   char buf[128], *p, *q;
    +   int size;
    +@@ -579,7 +578,8 @@ static int json_object_double_to_json_st
    +     else
    +       size = snprintf(buf, sizeof(buf), "-Infinity");
    +   else
    +-    size = snprintf(buf, sizeof(buf), "%.17g", jso->o.c_double);
    ++    size = snprintf(buf, sizeof(buf),
    ++        jso->_userdata ? (const char*) jso->_userdata : "%.17g", jso->o.c_double);
    + 
    +   p = strchr(buf, ',');
    +   if (p) {
    +--- a/json_object.h
    ++++ b/json_object.h
    +@@ -515,6 +515,9 @@ extern int64_t json_object_get_int64(str
    + /* double type methods */
    + 
    + /** Create a new empty json_object of type json_type_double
    ++ *
    ++ * @see json_object_double_to_json_string() for how to set a custom format string.
    ++ *
    +  * @param d the double
    +  * @returns a json_object of type json_type_double
    +  */
    +@@ -543,6 +546,31 @@ extern struct json_object* json_object_n
    +  */
    + extern struct json_object* json_object_new_double_s(double d, const char *ds);
    + 
    ++
    ++/** Serialize a json_object of type json_type_double to a string.
    ++ *
    ++ * This function isn't meant to be called directly. Instead, you can set a
    ++ * custom format string for the serialization of this double using the
    ++ * following call (where "%.17g" actually is the default):
    ++ *
    ++ * @code
    ++ *   jso = json_object_new_double(d);
    ++ *   json_object_set_serializer(jso, json_object_double_to_json_string,
    ++ *       "%.17g", NULL);
    ++ * @endcode
    ++ *
    ++ * @see printf(3) man page for format strings
    ++ *
    ++ * @param jso The json_type_double object that is serialized.
    ++ * @param pb The destination buffer.
    ++ * @param level Ignored.
    ++ * @param flags Ignored.
    ++ */
    ++extern int json_object_double_to_json_string(struct json_object* jso,
    ++					     struct printbuf *pb,
    ++					     int level,
    ++					     int flags);
    ++
    + /** Get the double floating point value of a json_object
    +  *
    +  * The type is coerced to a double if the passed object is not a double.