Nicolas Williams
ddad9618dc
Test fix for mktime
2015-03-31 10:03:35 -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
William Langford
0f7759f831
Fix #735
2015-03-23 22:11:55 -04:00
Nicolas Williams
ccfba00178
Add more date builtins
2015-03-09 11:27:58 -05:00
Nicolas Williams
33a85679b9
Fix #718
2015-03-06 00:18:45 -06: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
3b8d08177f
Fix #702
2015-02-18 10:21:21 -06:00
Nicolas Williams
8afdeee785
Make Oniguruma/regexp optional
...
Tests won't pass if built without Oniguruma. We don't have a way to
make a test optional yet. That will come later. For now the ability to
reduce build-time dependencies could really help some users.
2015-02-15 18:32:01 -06:00
Nicolas Williams
a83a9e0bc2
Reduce number of msg callback typedefs
2015-02-13 15:58:02 -06:00
Kim Toms
ca78a746e6
Enhance from_entries to better deal with Amazon AWS Tags
2015-02-10 08:33:56 -05:00
Joel Purra
4d05dc55a3
Empty arrays join/1 to an empty string, fixes #668 bug introduced by 9760245
2015-01-14 12:27:55 +01:00
Nicolas Williams
aeb52e29d6
Add debug
and stderr
builtins
...
And refactor setup of jv dump flags.
2015-01-14 01:39:13 -06:00
Nicolas Williams
97602456e3
join/1: respect empty strings ( fix #668 )
2015-01-14 01:32:25 -06:00
Nicolas Williams
ae7f8d6ab9
Further module system revamp ( fix #659 )
...
To import a module now use:
# Import module.jq file:
import "relative/path/to/module" as foo;
# Use the module's defs as foo::<def-name>
To import a JSON file:
# Read file.json:
import "relative/path/to/file" as $foo;
#
# Use as $foo::foo
Using `-L` now drops the builtin library path and appends the requested
path to the empty array (or the result of an earlier `-L`).
Support for the `$JQ_LIBRARY_PATH` environment variable has been
removed.
2014-12-31 20:09:53 -06:00
Nicolas Williams
7dc34b92af
Add label $name | EXP
; fix break
...
This is to fix the problem where `break` is dynamic, not lexical.
With this it should be possible to do this sort of thing:
label $break | inputs | if ... then $break|error else . end
This is a backwards-incompatible change for master, but the previous
`break` hadn't shipped yet.
Still needed:
- testing
2014-12-30 11:42:45 -06:00
Nicolas Williams
cbfc0d6130
Remove string indexing by string ( fix #454 )
...
This turns out to have been a bad idea:
"foo"|.["o"]
it interacts badly with `path()`.
See #454 for the gory details.
2014-12-30 11:31:52 -06:00
pkoppstein
00f018a054
bsearch(x) (binary search): builtin.c (tested), with documentation and test case. Always yields an integer (even if input is unsorted); returns (-1 - ix) if x is not in input array.
2014-12-27 18:44:20 -06:00
pkoppstein
56344670f4
ascii_upcase/0 and ascii_downcase/0
2014-12-27 18:38:52 -06:00
Nicolas Williams
5df20f4954
Add debug
builtin
...
And refactor setup of jv dump flags.
2014-12-27 18:25:34 -06:00
Nicolas Williams
a9c613e87d
Don't force C API users to set input cb
2014-12-27 18:15:10 -06:00
Nicolas Williams
5bfb9781f7
Add Streaming parser (--stream)
...
Streaming means that outputs are produced as soon as possible. With the
`foreach` syntax one can write programs which reduce portions of the
streaming parse of a large input (reduce into proper JSON values, for
example), and discard the rest, processing incrementally.
This:
$ jq -c --stream .
should produce the same output as this:
$ jq -c '. as $dot | path(..) as $p | $dot | getpath($p) | [$p,.]'
The output of `jq --stream .` should be a sequence of`[[<path>],<leaf>]`
and `[[<path>]]` values. The latter indicate that the array/object at
that path ended.
Scalars and empty arrays and objects are leaf values for this purpose.
For example, a truncated input produces a path as soon as possible, then
later the error:
$ printf '[0,\n'|./jq -c --stream .
[[0],0]
parse error: Unfinished JSON term at EOF at line 3, column 0
$
2014-12-26 23:05:56 -06:00
Nicolas Williams
e51e916e31
Fix foreach
non-progation of errors
...
Errors were being re-propagated as "break".
Also add `error/0` builtin, which made this fix easier.
2014-12-26 23:05:20 -06:00
Nicolas Williams
c02fcc8fef
Fix in and inside
2014-12-26 22:56:48 -06:00
Nico Williams
3234a7681e
Merge pull request #366 from slapresta/inversed-contains
...
Added `in` command
2014-12-26 22:00:41 -06:00
Nico Williams
36077da66a
Merge pull request #628 from slapresta/map-on-objects
...
Modify map\1 so that it works on objects
2014-12-26 21:50:11 -06:00
Nicolas Williams
0053aa868c
Add @tsv; fix #645
2014-12-24 11:21:18 -06:00
Nico Williams
2775b90b20
Merge pull request #601 from slapresta/redefine-any-all
...
Define {any,all}/0,1 in terms of {any,all}/2
2014-12-23 23:37:25 -06:00
Nicolas Williams
9017b83d4e
Make values
faster ( fix #652 )
2014-12-23 23:22:57 -06:00
Santiago Lapresta
84d3203dd1
Define map_values
2014-12-22 23:05:35 +01:00
Santiago Lapresta
a3234034b5
in
is now inside
, added in
as inverse of has
2014-12-22 22:17:53 +01:00
Santiago Lapresta
b748eae035
Added in
command
2014-12-22 22:14:06 +01:00
Nicolas Williams
be11b2768f
Add until(cond; next); fix #639
2014-12-12 17:35:59 -06:00
William Langford
30e00820a7
Fix #600 . Add regression test
2014-11-12 20:46:34 -05:00
Santiago Lapresta
dc5e77ef8e
Define {any,all}/2 independently from {any,all}/0
2014-10-21 13:00:38 +02:00
Santiago Lapresta
72735167f9
Define {any,all}/{0,1} in terms of {any,all}/2
2014-10-20 22:01:25 +02:00
William Langford
3411167c03
Properly call onig_error_code_to_str
...
Fix #585
2014-10-06 21:48:56 -04:00
pkoppstein
85f0e30c81
fix sub ( #586 ); add gsub/3; add transpose/0.
...
Signed-off-by: William Langford <wlangfor@gmail.com >
2014-10-06 21:32:07 -04:00
Nicolas Williams
1796a716ea
Restore split/1
; don't use regexp ( fix #576 )
2014-10-03 17:58:45 -05:00
Nicolas Williams
0b29b44cab
from-entries should work with EC2 ( fix #592 )
2014-10-03 17:47:13 -05:00
Nicolas Williams
a0a350f468
Remove sort/1 and group/1
...
Reserve these for sorting with jq-coded comparators.
2014-10-03 17:47:13 -05:00
Nicolas Williams
4a57b84db0
to_entries should not sort keys ( fix #561 )
2014-09-30 21:52:30 -05:00
Nicolas Williams
9bd55487ea
C-coded builtins should not assert ( fix #553 )
2014-08-21 00:12:29 -05:00
Nicolas Williams
1ba8c2cfa6
Add module
directive, modulemeta
builtin
...
Fix #425 .
2014-08-14 03:26:26 -05:00
Nicolas Williams
908c10928b
Fix #549
2014-08-11 14:58:44 -05:00
Nicolas Williams
8a561120c4
More constant folding: null, true, and false
...
A step towards doing constant folding for arrays and objects.
2014-08-09 19:15:50 -05:00
Nicolas Williams
4249bbf0d5
Make nwise
private
2014-08-08 19:36:43 -05:00
Nicolas Williams
8a57c27e92
Make regexp builtins and range/3 use #524 too
2014-08-08 19:31:11 -05:00
Nicolas Williams
8706b6b16a
Use def f($a): ...;
syntax for builtins
2014-08-08 19:23:46 -05:00
pkoppstein
a696c6b551
regex filters ( #432 ): scan, splits, split, sub, gsub
2014-08-08 17:00:14 -05:00