]> granicus.if.org Git - jq/commitdiff
Fix #600. Add regression test
authorWilliam Langford <wlangfor@gmail.com>
Thu, 13 Nov 2014 01:46:34 +0000 (20:46 -0500)
committerWilliam Langford <wlangfor@gmail.com>
Thu, 13 Nov 2014 01:46:34 +0000 (20:46 -0500)
builtin.c
tests/all.test

index ddd207b350453b882fffb92573fb8b652ec09c9f..0629ca9942afdc9b6ba756a2d3bcbcb85aaf44e7 100644 (file)
--- a/builtin.c
+++ b/builtin.c
@@ -1057,9 +1057,7 @@ static const char* const jq_builtins[] = {
        //  # create the \"capture\" object:
   "    | reduce ( $r | .captures | .[] | select(.name != null) | { (.name) : .string } ) as $pair"
   "        ({}; . + $pair)"
-  "    | if . == {} then $in | .[0:$r.offset]+s+.[$r.offset+$r.length:]"
-  "      else (. | s)"
-  "      end"
+  "    | $in[0:$r.offset] + s + $in[$r.offset+$r.length:]"
   "    end ;",
   //
   // repeated substitution of re (which may contain named captures)
index 84d4491d4e13a0bef27611e020dee2ea0bc0f2df..c4c3b0dfbe3f44186e658a5d4652b67637d8e073 100644 (file)
@@ -859,6 +859,10 @@ capture("(?<a>[a-z]+)-(?<n>[0-9]+)")
 ["a,b, c, d, e,f", ", a,b, c, d, e,f, "]
 ["a,b:c, d, e,f",":a,b, c, d, e,f, "]
 
+sub("^(?<head>.)"; "Head=\(.head) Tail=")
+"abcdef"
+"Head=a Tail=bcdef"
+
 [.[] | gsub(", "; ":")]
 ["a,b, c, d, e,f",", a,b, c, d, e,f, "]
 ["a,b:c:d:e,f",":a,b:c:d:e,f:"]