diff options
author | Freya Murphy <freya@freyacat.org> | 2023-12-15 23:31:50 -0500 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2023-12-15 23:31:50 -0500 |
commit | 8a4f45db71d4e77c869d1389b7828735bfa02fcc (patch) | |
tree | 4b20201be1d810815df81c37f1d64ba0449f00cb | |
parent | dont allow empty compound key names (diff) | |
download | nbtvis-8a4f45db71d4e77c869d1389b7828735bfa02fcc.tar.gz nbtvis-8a4f45db71d4e77c869d1389b7828735bfa02fcc.tar.bz2 nbtvis-8a4f45db71d4e77c869d1389b7828735bfa02fcc.zip |
fix json fp precision, fix multi value json compound tags
-rw-r--r-- | src/json/print.c | 4 | ||||
-rw-r--r-- | src/json/read.c | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/json/print.c b/src/json/print.c index e8b6996..97ccce8 100644 --- a/src/json/print.c +++ b/src/json/print.c @@ -124,10 +124,10 @@ static bool json_print_data(const tag_t *tag, const stream_t *stream, int depth) ok = printi(stream, 0, "%ld", tag->data.l); break; case TAG_FLOAT: - ok = printi(stream, 0, "%f", tag->data.f); + ok = printi(stream, 0, "%.9g", tag->data.f); break; case TAG_DOUBLE: - ok = printi(stream, 0, "%lf", tag->data.d); + ok = printi(stream, 0, "%.17g", tag->data.d); break; case TAG_BYTE_ARRAY: ok = json_print_byte_array(&tag->data, stream); diff --git a/src/json/read.c b/src/json/read.c index b95bc13..1401633 100644 --- a/src/json/read.c +++ b/src/json/read.c @@ -562,6 +562,11 @@ static bool json_read_compound(tagdata_t *data, const stream_t *stream) { } if (next.type == TOK_COMMA) { + if (json_next_token(&next, stream) == false) { + free(tags); + free(name); + return false; + } continue; } else if (next.type == TOK_RBRACE) { break; |