summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Lawson <jeff.lawson@flightaware.com>2011-07-30 22:50:36 -0500
committerJeff Lawson <jeff.lawson@flightaware.com>2011-07-30 22:50:36 -0500
commitdca2535092c2a48a1b4aaaacbf68b978c08d535e (patch)
tree62f777ba3c174a7807e0f9ad44fa4b3da04d47c3
parente2d080612f566205d16a65fdad05618f92774d4c (diff)
downloadyajl-dca2535092c2a48a1b4aaaacbf68b978c08d535e.tar.gz
update yajl_gen_double to enforce that serialized double values always contain a decimal point, even if no digits follow the point. this prevents some readers from parsing such values as an integer.
-rw-r--r--src/yajl_gen.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/yajl_gen.c b/src/yajl_gen.c
index 8605982..2bb6ad2 100644
--- a/src/yajl_gen.c
+++ b/src/yajl_gen.c
@@ -222,6 +222,9 @@ yajl_gen_double(yajl_gen g, double number)
if (isnan(number) || isinf(number)) return yajl_gen_invalid_number;
INSERT_SEP; INSERT_WHITESPACE;
sprintf(i, "%.20g", number);
+ if (strspn(i, "0123456789-") == strlen(i)) {
+ strcat(i, ".0");
+ }
g->print(g->ctx, i, (unsigned int)strlen(i));
APPENDED_ATOM;
FINAL_NEWLINE;