From 88b45771bdfc3cc9e286d0bd55c653aaab885172 Mon Sep 17 00:00:00 2001 From: itchyny Date: Sun, 4 Jun 2023 11:48:33 +0900 Subject: [PATCH] Fix string multiplication with a value between 0.0 and 1.0 This commit fixes a regression of 6306ac89667c. --- src/builtin.c | 3 ++- tests/jq.test | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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"]]