summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoritchyny <itchyny@cybozu.co.jp>2023-08-13 14:43:55 +0900
committerNico Williams <nico@cryptonector.com>2023-08-16 17:49:44 -0500
commit0733fd3d58b941ab9b8a6d623ec7fb9175f41579 (patch)
treed06c1831536cdb641ee9a022f20aa352a7776c29
parentf85c9fcb78f89fa833f2d5a2cf26b54318e06e05 (diff)
Add a regression test for negative indices and fix a pick/1 test
-rw-r--r--docs/content/manual/manual.yml9
-rw-r--r--jq.1.prebuilt2
-rw-r--r--tests/jq.test10
3 files changed, 11 insertions, 10 deletions
diff --git a/docs/content/manual/manual.yml b/docs/content/manual/manual.yml
index 6382d835..e6edbc7b 100644
--- a/docs/content/manual/manual.yml
+++ b/docs/content/manual/manual.yml
@@ -1048,10 +1048,11 @@ sections:
- title: "`pick(pathexps)`"
body: |
- Emit the projection of the input object or array defined by the specified
- sequence of path expressions, such that if p is any one of these specifications,
- then `(. | p)` will evaluate to the same value as `(. | pick(pathexps) | p)`.
- For arrays, negative indices and .[m:n] specifications should not be used.
+ Emit the projection of the input object or array defined by the
+ specified sequence of path expressions, such that if `p` is any
+ one of these specifications, then `(. | p)` will evaluate to the
+ same value as `(. | pick(pathexps) | p)`. For arrays, negative
+ indices and `.[m:n]` specifications should not be used.
examples:
- program: 'pick(.a, .b.c, .x)'
diff --git a/jq.1.prebuilt b/jq.1.prebuilt
index f386b49c..162881c1 100644
--- a/jq.1.prebuilt
+++ b/jq.1.prebuilt
@@ -1050,7 +1050,7 @@ jq \'map_values(\. // empty)\'
.IP "" 0
.
.SS "pick(pathexps)"
-Emit the projection of the input object or array defined by the specified sequence of path expressions, such that if p is any one of these specifications, then \fB(\. | p)\fR will evaluate to the same value as \fB(\. | pick(pathexps) | p)\fR\. For arrays, negative indices and \.[m:n] specifications should not be used\.
+Emit the projection of the input object or array defined by the specified sequence of path expressions, such that if \fBp\fR is any one of these specifications, then \fB(\. | p)\fR will evaluate to the same value as \fB(\. | pick(pathexps) | p)\fR\. For arrays, negative indices and \fB\.[m:n]\fR specifications should not be used\.
.
.IP "" 4
.
diff --git a/tests/jq.test b/tests/jq.test
index de38e4de..1dcb2542 100644
--- a/tests/jq.test
+++ b/tests/jq.test
@@ -248,9 +248,9 @@ null
2
3
-.[-2]
+[.[-4,-3,-2,-1,0,1,2,3]]
[1,2,3]
-2
+[null,1,2,3,1,2,3,null]
[range(0;10)]
null
@@ -1052,9 +1052,9 @@ pick(first|first)
[[10]]
# negative indices in path expressions (since last/1 is .[-1])
-pick(last)
-[[10,20],30]
-[null,30]
+try pick(last) catch .
+[1,2]
+"Out of bounds negative array index"
#
# Assignment