diff options
author | itchyny <itchyny@cybozu.co.jp> | 2023-06-04 11:48:33 +0900 |
---|---|---|
committer | Nico Williams <nico@cryptonector.com> | 2023-07-08 22:25:22 -0500 |
commit | 88b45771bdfc3cc9e286d0bd55c653aaab885172 (patch) | |
tree | fb4889ef856daf32ddae4e96a39e43b93ccdf578 | |
parent | af57893bc2e3f9db52dc7bceee1d960539e36f06 (diff) |
Fix string multiplication with a value between 0.0 and 1.0
This commit fixes a regression of 6306ac89667c.
-rw-r--r-- | src/builtin.c | 3 | ||||
-rw-r--r-- | tests/jq.test | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/builtin.c b/src/builtin.c index e8eb2ef3..2236d17a 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -360,7 +360,8 @@ static jv f_multiply(jq_state *jq, jv input, jv a, jv b) { num = a; } jv res = jv_null(); - int n = jv_number_value(num); + double d = jv_number_value(num); + int n = 0.0 < d && d < 1.0 ? 1 : d; if (n > 0) { size_t alen = jv_string_length_bytes(jv_copy(str)); res = jv_string_empty(alen * n); diff --git a/tests/jq.test b/tests/jq.test index a4b8d5fd..35cae263 100644 --- a/tests/jq.test +++ b/tests/jq.test @@ -1284,6 +1284,10 @@ indices(", ") ["a", "ab", "abc"] ["aaa", "ababab", "abcabcabc"] +[.[] * "abc"] +[-1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 3.7, 10.0] +[null,null,null,"abc","abc","abc","abcabcabc","abcabcabcabcabcabcabcabcabcabc"] + [.[] / ","] ["a, bc, def, ghij, jklmn, a,b, c,d, e,f", "a,b,c,d, e,f,g,h"] [["a"," bc"," def"," ghij"," jklmn"," a","b"," c","d"," e","f"],["a","b","c","d"," e","f","g","h"]] |