1
0
mirror of https://github.com/stedolan/jq.git synced 2024-05-11 05:55:39 +00:00

720 Commits

Author SHA1 Message Date
559863ca68 Streaming parser torture tests 2014-12-26 23:18:07 -06:00
845ad5e969 Fuzz JSON parser 2014-12-26 23:05:57 -06:00
243b1f8e5e Better quoting in tests/run 2014-12-26 23:05:56 -06:00
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
906d2537b9 Allow C-coded functions to empty
Just return a jv_invalid() without a message.
2014-12-26 23:05:56 -06:00
bbb287f54b Add BLOCK_8() macro 2014-12-26 23:05:56 -06:00
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
46e3125e26 Allow zero-length buffers in jv_parser_set_buf()
If the caller is at EOF and has no more bytes to feed the parser, how is
the parser to be told about the EOF condition?  A small fix to allow
zero-length buffers in jv_parser_set_buf() fixes this problem (it also
makes it easier to deal with async I/O: feed the parser whatever is
available, including nothing).
2014-12-26 22:56:48 -06:00
c02fcc8fef Fix in and inside 2014-12-26 22:56:48 -06:00
25d4cbd1b3 Merge pull request #624 from Janrain-Colin/patch-1
Doc correction
2014-12-26 22:14:17 -06:00
3234a7681e Merge pull request #366 from slapresta/inversed-contains
Added `in` command
2014-12-26 22:00:41 -06:00
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
9e1fd8cf4d Fix infinite loop in read_more() (fix #656) 2014-12-24 16:49:55 -06:00
a55085b662 Fix EOF handling; fix #656 2014-12-24 16:07:36 -06:00
e0f9b6a5cd Merge pull request #651 from eiiches/fix-examples
Fix several errors in the manual
2014-12-24 11:29:29 -06:00
0053aa868c Add @tsv; fix #645 2014-12-24 11:21:18 -06:00
fab2048648 Merge pull request #653 from msabramo/patch-1
.travis.yml: Set sudo false; use containers
2014-12-24 11:20:47 -06:00
56ae88d9d5 Module search revamp for pkg managers
The search path listed in an import directive can now be an array.  The
top-level search path is appended.  Null and empty strings in the path
terminate any search.  The "." in "." and "./*" is replaced with the
directory containing the file doing the import (for command-line
programs this is the current directory, though that may be a bad idea).

No version numbers or anything of the sort are gratuitously added to the
search paths.

All this makes external package managers possible by allowing
dependencies to be installed local to dependents.
2014-12-24 02:31:51 -06:00
1cdcff1c01 Fix bug caused by 8ca07a0 2014-12-24 02:25:11 -06:00
8ca07a08c3 Fix #348: reject unescaped control chars 2014-12-24 00:01:43 -06:00
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
ae312bd7fe Use __attribute__ __printf__ with GCC 2014-12-23 23:22:57 -06:00
9017b83d4e Make values faster (fix #652) 2014-12-23 23:22:57 -06:00
02cf1831e9 Fix #649 2014-12-23 18:16:21 -06:00
d237de7b30 .travis.yml: Set sudo false; use containers
This is the way to enable Travis's fancy new containers, which should result in faster builds.
2014-12-22 21:37:23 -08:00
84d3203dd1 Define map_values 2014-12-22 23:05:35 +01:00
a3234034b5 in is now inside, added in as inverse of has 2014-12-22 22:17:53 +01:00
b748eae035 Added in command 2014-12-22 22:14:06 +01:00
a6656edc7c Fix examples in manual 2014-12-21 03:26:04 +09:00
b4a9ea56ae Fix indents in manual.yml 2014-12-21 03:24:45 +09:00
fdbc91e3c4 HTML-escape jq programs in manual 2014-12-21 03:24:41 +09:00
bd67bb8273 Fix examples in manual 2014-12-21 03:24:38 +09:00
54a0470c42 Merge pull request #611 from StevenMaude/tutorial-typo-fixes
Fix typos in tutorial
2014-12-12 17:46:17 -06:00
3dd790c408 Merge pull request #616 from ianmiell/ianmiell_requirements
Requirements made slightly more complete
2014-12-12 17:45:17 -06:00
be11b2768f Add until(cond; next); fix #639 2014-12-12 17:35:59 -06:00
2075bec60f Fix #647, but caused by 89791a0 2014-12-12 17:05:16 -06:00
44c2382402 Add --argjson, fix #648 2014-12-12 16:40:07 -06:00
fd041c2064 Merge pull request #642 from Janrain-Colin/patch-3
fix typo in manual
2014-12-12 16:03:18 -06:00
c6495f6632 fix typo in manual 2014-12-06 16:27:43 -08:00
7243989c52 Fix refcount leak, fix #618 2014-11-29 15:24:43 -06:00
46613af64c STOREV/LOADV* should also print refcnts 2014-11-28 20:52:22 -06:00
79000644c6 Enable printing of stack val refcnts 2014-11-28 19:35:29 -06:00
b349e7d9a8 Print stack value refcounts when tracing (#636) 2014-11-28 19:26:41 -06:00
6c8882caf3 Doc correction 2014-11-23 11:37:50 -08:00
30e00820a7 Fix #600. Add regression test 2014-11-12 20:46:34 -05:00
0f81e1bcd0 Requirements made slightly more complete: cf https://github.com/ianmiell/shutit/blob/master/library/jq/jq.py 2014-11-11 23:02:31 +00:00
cb376b27f8 Fix typos in tutorial
parrent > parent, url > URL
2014-11-05 10:47:37 +00:00
dc5e77ef8e Define {any,all}/2 independently from {any,all}/0 2014-10-21 13:00:38 +02:00
72735167f9 Define {any,all}/{0,1} in terms of {any,all}/2 2014-10-20 22:01:25 +02:00
89791a000b Add support for JSON sequence MIME type
Per draft-ietf-json-text-sequence-07 (which soon will be published as an
RFC).
2014-10-12 08:44:40 -05:00