David Tolnay
e17ccf2297
Support numbers and boolean in join ( fix #930 )
2015-10-25 12:40:15 -07:00
David Tolnay
b7a219a91d
mktemp needs 6 or more X's ( fix #1000 )
...
mktemp(1) isn't posix specified, but it's reasonable to use
mktemp(3) to implement it which requires 6 trailing X's in
the format
Thanks @sthen
2015-10-24 11:21:18 -07:00
David Tolnay
6c31850e86
If-then-else documentation for forking conditional ( fix #942 )
2015-10-17 21:15:24 -07:00
David Tolnay
c8dc164566
Support lowercase name in from_entries ( fix #990 )
2015-10-17 20:50:40 -07:00
David Tolnay
4490d9d1f6
Support NaN in path expressions ( fix #962 )
2015-09-24 10:33:34 -07:00
Nicolas Williams
c4524da3e0
EOF after newline in string mishandled ( fix #951 )
2015-09-22 20:11:54 -07:00
David Tolnay
58f082d74f
Delete negative indices in array ( fix #954 )
2015-09-21 20:33:06 -07:00
David Tolnay
154d0ee4a8
Fix assert fail if object literal key is not a string ( fix #953 )
2015-09-21 12:47:06 -07:00
Joel Nothman
83e8ec587f
utf8bytelength: count UTF8 string bytelength
...
[Builtin name changed, and it only works on string inputs. -Nico]
2015-09-13 01:01:24 -05:00
David Tolnay
6c3934de15
Fix decoding of UTF-8 sequence length ( fix #922 )
2015-08-22 12:31:36 -07:00
David Tolnay
b8f71d3659
Fix assert fail when delpaths is given non-array ( fix #901 )
2015-08-16 19:44:16 -07:00
David Tolnay
58a053d7de
Fix memory leak in non-constant module declaration
2015-08-13 21:42:35 -07:00
David Tolnay
7b5c6a9224
Fix assert fail on invalid import path ( fix #899 )
2015-08-13 21:42:35 -07:00
David Tolnay
5479d7f2dc
Fix assert fail on non-object import metadata ( fix #900 )
2015-08-13 21:42:35 -07:00
Nicolas Williams
b119853aef
Test main.c fix for #817
2015-08-13 09:08:37 -07:00
Nicolas Williams
9a3f802d20
Fix #896 , double-free in setpath
2015-08-11 17:46:15 -05:00
David Tolnay
a47b32999b
Fix range(value;stream) ( fix #886 )
2015-08-06 23:05:03 -07:00
Nicolas Williams
b5edbf7ffa
OS X's mktemp -d requires template ( fix #876 )
2015-07-28 00:28:54 -05:00
Santiago Lapresta
3d49fc59dd
Implement flatten/0 in terms of flatten/1
2015-07-24 21:55:43 -07:00
David Tolnay
16e8d0b1ab
detect invalid path expression ( fix #862 )
2015-07-24 20:23:07 -07:00
David Tolnay
66ef8e2c24
Resolve shift/reduce conflict of 'def' vs '|'
...
This was an important conflict. In the following expression:
def a: 0; . | a
Bison needs to decide between these two equally valid
parses:
(def a: 0; .) | a
def a: 0; (. | a)
For jq we want the second one, because the first results in
"a/0 is not defined". In the current parser the first parse
is a reduce and the second parse is a shift. Since Bison
prefers to shift in shift/reduce conflicts, we accidentally
got the correct behavior.
This commit adds a precedence level FUNCDEF which is lower
precedence than '|', meaning we explicitly choose the
correct parse.
Of course many unit tests already cover this case, but I
added one specifically for it.
2015-07-19 09:42:01 -07:00
Nicolas Williams
579518c78d
Use include for import into namespace
2015-07-10 10:19:33 -05:00
David Tolnay
6e27de4f74
strftime wrong day-of-week ( fix #838 )
2015-07-01 20:37:16 -07:00
Nicolas Williams
fd4f4f2087
Make --run-tests' jv_test() quiet
2015-06-28 13:39:32 -05:00
Nicolas Williams
32c4759e6b
Add more basic number tests
2015-06-27 23:15:16 -05:00
David Tolnay
d7e35101c5
add configure option to run tests without valgrind
2015-06-27 11:24:53 -07:00
Nicolas Williams
1defaa7b00
Fix braino in merging the previous commit
...
There's a mantest that shows how to use `env`. Well, we need to set the
env var as expected then, else it will fail.
2015-06-27 13:00:41 -05:00
Nicolas Williams
aaf305868c
Restore import into caller's namespace
2015-06-26 23:40:37 -05:00
Nicolas Williams
a011ac6392
Use set -u in tests/setup
2015-06-26 23:36:34 -05:00
Nicolas Williams
25d47ca08e
Add streaming utilities ( fix #827 )
2015-06-26 20:45:06 -05:00
Nicolas Williams
5108a451ca
Alternative implementation of tovalues
2015-06-26 20:17:02 -05:00
David Tolnay
1146b8b84a
separate jq, oniguruma, sh, and man tests
2015-06-18 23:55:43 -05:00
Nicolas Williams
b9c2a326ba
Fix #814 : raise on div-0, add inf isinf nan isnan
2015-06-17 19:58:55 -05:00
Nicolas Williams
4ef04e5b5c
Sequence parser: wait for RS on startup ( fix #687 )
...
Per-RFC7464.
2015-06-17 11:24:34 -05:00
David Tolnay
d3343d5113
array and object destructuring ( fix #533 )
...
`. as [$i, $j, $k] | ...`
`. as {a: $i, b: $j} | ...`
`. as [[[$i]], {a: $j}] | ...`
`foreach . as [$i, $j, $k] (...)`
`reduce . as {a: $i, b: $j} (...)`
2015-06-09 17:29:48 -05:00
Nicolas Williams
11f084f9a7
Keywords should be OK as object keys ( fix #794 )
...
With this change it's now OK to use keywords as object keys like so:
{if:0}
2015-05-25 13:34:07 -05:00
Assaf Gordon
7b6a018dff
Print offending object in runtime error messages
...
When reporting an error to the user, add information about the offending
object/value (possibly truncated).
The goal is to give a user some context regarding which input object
caused the runtime error.
Examples:
$ echo '"hello"' | ./jq '-.'
jq: error: string ("hello") cannot be negated
$ echo '"very-long-string"' | ./jq '-.'
jq: error: string ("very-long-...) cannot be negated
$ echo '["1",2]' | ./jq '.|join(",")'
jq: error: string (",") and number (2) cannot be added
$ echo '["1","2",{"a":{"b":{"c":33}}}]' | ./jq '.|join(",")'
jq: error: string (",") and object ({"a":{"b":{...) cannot be added
$ echo '{"a":{"b":{"c":33}}}' | ./jq '.a | @tsv'
jq: error: object ({"b":{"c":33}}) cannot be tsv-formatted, only array
(Fix #754 )
2015-05-21 18:49:24 -05:00
Nicolas Williams
4b258f7d31
Don't test input_filename/line_number yet
2015-05-21 17:55:27 -05:00
Assaf Gordon
d1cb8ee0ad
Add filename/line functions to jq ( fix #753 )
...
This adds `input_filename` and `input_line_number` built-in functions
for use in, for example, `error` messages.
Example:
$ printf '{"a":1}\n{"a":2}\n' > 4.json
$ printf '{"a":"hello"}\n' > 5.json
$ ./jq '{ "file":input_filename, "line":input_line_number, "value":.a }' 4.json 5.json
{
"file": "4.json",
"line": 1,
"value": 1
}
{
"file": "4.json",
"line": 2,
"value": 2
}
{
"file": "5.json",
"line": 1,
"value": "hello"
}
2015-05-21 00:49:32 -05:00
Nicolas Williams
cbdaeb4062
Fix gsub, add gsub/3 ( fix #782 )
2015-05-18 23:02:11 -05:00
Nicolas Williams
821d6404b6
Add error injection library
2015-05-11 21:36:46 -05:00
Nicolas Williams
dad6e42934
--raw-input ought to read NULs (partial fix #760 )
...
We can't know how many bytes fgets() read when we reach EOF and fgets()
didn't see a newline; we can only assume that at least strlen(buf) bytes
were read. This is quite obnoxious if one wants to use NULs in raw
input, but at least we can make reading "a\0b\0c\0" with no newline
yield "a\0b\0c", losing only the final sequence of NULs.
We can't use getline() either, since it will want to allocate a buffer
big enough for an entire line, and we might not have any newlines in our
input. A complete fix will have to use getc() or read(), preferably the
latter.
2015-04-23 23:43:44 -05:00
Nicolas Williams
24005287f4
Add $__loc__ ( fix #740 )
2015-03-30 22:36:04 -05:00
Nicolas Williams
1dcfc2f547
Include filename and lineno in error messages
2015-03-30 15:56:29 -05:00
Nicolas Williams
ffa2832e33
Drop name-less label/break for now
...
See #734 and #658 .
2015-03-24 01:21:17 -05:00
Nicolas Williams
ccfba00178
Add more date builtins
2015-03-09 11:27:58 -05:00
Nicolas Williams
a4b9552c82
Add date builtins ( fix #364 )
...
Windows support for strptime() is missing. We can add a copy of one
from a BSD later.
2015-03-06 00:14:15 -06:00
Nicolas Williams
b82c231900
Remove -i option ( #704 )
...
In-place editing should be implemented with builtins for file I/O.
2015-03-05 21:52:02 -06:00
Nicolas Williams
c86ef36769
Test in-place functionality; fix #704
2015-02-18 18:01:12 -06:00
Nicolas Williams
3b8d08177f
Fix #702
2015-02-18 10:21:21 -06:00