From: Joel Purra Date: Wed, 14 Jan 2015 11:24:27 +0000 (+0100) Subject: Empty arrays join/1 to an empty string, fixes #668 bug introduced by 9760245 X-Git-Tag: jq-1.5rc2~156^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4d05dc55a374c076d6d3837a09246a4f4cc694c3;p=jq Empty arrays join/1 to an empty string, fixes #668 bug introduced by 9760245 --- diff --git a/builtin.c b/builtin.c index 1722de7..d88c9d7 100644 --- a/builtin.c +++ b/builtin.c @@ -1072,7 +1072,7 @@ static const char* const jq_builtins[] = { "def scalars: select(. == null or . == true or . == false or type == \"number\" or type == \"string\");", "def scalars_or_empty: select(. == null or . == true or . == false or type == \"number\" or type == \"string\" or ((type==\"array\" or type==\"object\") and length==0));", "def leaf_paths: paths(scalars);", - "def join($x): reduce .[] as $i (null; (.//\"\") + (if . == null then $i else $x + $i end));", + "def join($x): reduce .[] as $i (null; (.//\"\") + (if . == null then $i else $x + $i end))//\"\";", "def flatten: reduce .[] as $i ([]; if $i | type == \"array\" then . + ($i | flatten) else . + [$i] end);", "def flatten($x): reduce .[] as $i ([]; if $i | type == \"array\" and $x > 0 then . + ($i | flatten($x-1)) else . + [$i] end);", "def range($x): range(0;$x);", diff --git a/tests/all.test b/tests/all.test index e0fac8d..8961fed 100644 --- a/tests/all.test +++ b/tests/all.test @@ -328,8 +328,8 @@ join(",","/") "a/b/c/d" [.[]|join("a")] -[[""],["",""],["","",""]] -["","a","aa"] +[[],[""],["",""],["","",""]] +["","","a","aa"] # Same check for flatten/1 flatten(-1,3,2,1)