From: Remi Collet Date: Thu, 13 Dec 2012 10:22:31 +0000 (+0100) Subject: Save space, drop unuseful trailing zeroes X-Git-Tag: json-c-0.11-20130402~14^2~1 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=8c847968c7de17be6cf3878a4e6adca8ab8d8f14;p=thirdparty%2Fjson-c.git Save space, drop unuseful trailing zeroes --- diff --git a/json_object.c b/json_object.c index eeba91b5..b078017f 100644 --- a/json_object.c +++ b/json_object.c @@ -552,13 +552,25 @@ static int json_object_double_to_json_string(struct json_object* jso, int level, int flags) { - char buf[128], *p; + char buf[128], *p, *q; int size; size = snprintf(buf, 128, "%f", jso->o.c_double); p = strchr(buf, ','); if (p) { *p = '.'; + } else { + p = strchr(buf, '.'); + } + if (p) { + /* last useful digit, always keep 1 zero */ + p++; + for (q=p ; *q ; q++) { + if (*q!='0') p=q; + } + /* drop trailing zeroes */ + *(++p) = 0; + size = p-buf; } printbuf_memappend(pb, buf, size); return size;