diff options
author | Tomas Halman <thalman@redhat.com> | 2022-01-20 10:15:50 +0100 |
---|---|---|
committer | Nico Williams <nico@cryptonector.com> | 2022-05-26 16:02:10 -0500 |
commit | c4d39c4d22f2b12225ca1b311708f7e084ad9ff8 (patch) | |
tree | 1baa3b1df15380d0170ca16d21f9c9b9218ece92 | |
parent | 174db0f93552bdb551ae1f3c5c64744df0ad8e2f (diff) |
Fix iterration problem for non decimal string
When the string transformation to number failed, all following
transformation failed too.
This happend because status in decNumberFromString function is
updated just in error case. Reusing the DEC_CONTEXT that failed
before results into error even if the string is valid number.
-rw-r--r-- | src/jv.c | 1 | ||||
-rw-r--r-- | tests/man.test | 5 |
2 files changed, 6 insertions, 0 deletions
@@ -612,6 +612,7 @@ static jv jvp_literal_number_new(const char * literal) { n->refcnt = JV_REFCNT_INIT; n->literal_data = NULL; decContext *ctx = DEC_CONTEXT(); + decContextClearStatus(ctx, DEC_Conversion_syntax); decNumberFromString(&n->num_decimal, literal, ctx); n->num_double = NAN; diff --git a/tests/man.test b/tests/man.test index 2a49effe..1c6ff67e 100644 --- a/tests/man.test +++ b/tests/man.test @@ -841,3 +841,8 @@ true {"foo": 42} {"foo": 43} +.[]|tonumber? +["1", "hello", "3", 4] +1 +3 +4 |