diff options
-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"]] |