]> granicus.if.org Git - jq/log
jq
9 years agoAdd combinations/0 and combinations/1
Santiago Lapresta [Thu, 4 Jun 2015 16:30:38 +0000 (18:30 +0200)]
Add combinations/0 and combinations/1

9 years agoWriteFile() on WIN32 when stdout isatty (fix #824)
Nicolas Williams [Mon, 22 Jun 2015 23:15:51 +0000 (18:15 -0500)]
WriteFile() on WIN32 when stdout isatty (fix #824)

Use WriteFile() and bypass stdio IFF stdout isatty and we're on Windows.

9 years agoFix test failure introduced by previous commit
Nicolas Williams [Mon, 22 Jun 2015 23:32:28 +0000 (18:32 -0500)]
Fix test failure introduced by previous commit

9 years agofix errors flagged by clang static analyzer
David Tolnay [Fri, 19 Jun 2015 17:33:35 +0000 (10:33 -0700)]
fix errors flagged by clang static analyzer

builtin.c: bug - free of uninitialized jv
compile.c: missing assertion
jq_test.c: buggy logic / unreachable code
jv.c: missing assertion
jv_alloc.c: false positive - intentional read of uninitialized memory
jv_file.c: dead code

9 years agoFix #811: use CommandLineToArgvW() and _wfopen()
Nicolas Williams [Fri, 19 Jun 2015 22:10:45 +0000 (17:10 -0500)]
Fix #811: use CommandLineToArgvW() and _wfopen()

9 years agofix use after free in f_strptime
David Tolnay [Fri, 19 Jun 2015 05:15:41 +0000 (22:15 -0700)]
fix use after free in f_strptime

9 years agoseparate jq, oniguruma, sh, and man tests
David Tolnay [Fri, 19 Jun 2015 02:38:25 +0000 (19:38 -0700)]
separate jq, oniguruma, sh, and man tests

9 years agoargv[] may not be UTF-8 (fix #811)
Nicolas Williams [Fri, 19 Jun 2015 02:24:41 +0000 (21:24 -0500)]
argv[] may not be UTF-8 (fix #811)

9 years agoAdd alloca() discovery to configure.ac
Doug Luce [Thu, 18 Jun 2015 18:07:16 +0000 (11:07 -0700)]
Add alloca() discovery to configure.ac

The build failed on FreeBSD as there is no alloca.h.  This patch is
lifted from the autoconf documentation.

9 years agoFix `finites`
Nicolas Williams [Thu, 18 Jun 2015 15:14:52 +0000 (10:14 -0500)]
Fix `finites`

9 years agofix broken tests in manual.yml
David Tolnay [Thu, 18 Jun 2015 04:49:56 +0000 (21:49 -0700)]
fix broken tests in manual.yml

9 years agoFix #802
Nicolas Williams [Thu, 18 Jun 2015 05:03:46 +0000 (00:03 -0500)]
Fix #802

9 years agoAdd isnormal and related, rename *inf
Nicolas Williams [Thu, 18 Jun 2015 04:14:26 +0000 (23:14 -0500)]
Add isnormal and related, rename *inf

9 years agoFix #814: raise on div-0, add inf isinf nan isnan
Nicolas Williams [Thu, 18 Jun 2015 00:46:57 +0000 (19:46 -0500)]
Fix #814: raise on div-0, add inf isinf nan isnan

9 years agoFix infinite loop on error in sequence parser
Nicolas Williams [Thu, 18 Jun 2015 00:46:15 +0000 (19:46 -0500)]
Fix infinite loop on error in sequence parser

9 years agoSequence parser: wait for RS on startup (fix #687)
Nicolas Williams [Wed, 17 Jun 2015 16:24:34 +0000 (11:24 -0500)]
Sequence parser: wait for RS on startup (fix #687)

Per-RFC7464.

9 years agoFix infinite loop on EOF bug
Nicolas Williams [Wed, 17 Jun 2015 16:23:58 +0000 (11:23 -0500)]
Fix infinite loop on EOF bug

9 years agoAdd Missing Makefile Dependency
Aaron Peschel [Tue, 9 Jun 2015 23:45:06 +0000 (16:45 -0700)]
Add Missing Makefile Dependency

main.c requires version.h, but there is no logic marking this dependency
in the Makefile. This commit adds the dependency to the Makefile
template.

9 years agoClarify array destructuring docs
Nicolas Williams [Tue, 9 Jun 2015 22:29:37 +0000 (17:29 -0500)]
Clarify array destructuring docs

9 years agoarray and object destructuring (fix #533)
David Tolnay [Mon, 8 Jun 2015 04:45:14 +0000 (21:45 -0700)]
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} (...)`

9 years agoRemove extension from links
cdnbacon [Tue, 2 Jun 2015 19:00:14 +0000 (15:00 -0400)]
Remove extension from links

The downloads are available without an extension.

9 years agoAdd --tab and -indent n options
Nicolas Williams [Thu, 4 Jun 2015 01:20:11 +0000 (20:20 -0500)]
Add --tab and -indent n options

9 years agoImprove usage message
Nicolas Williams [Fri, 29 May 2015 20:35:30 +0000 (15:35 -0500)]
Improve usage message

9 years agoFixup --slurpfile/argile docs
Nicolas Williams [Fri, 29 May 2015 20:25:30 +0000 (15:25 -0500)]
Fixup --slurpfile/argile docs

9 years agoAdd --slurpfile
Nicolas Williams [Fri, 29 May 2015 19:19:23 +0000 (14:19 -0500)]
Add --slurpfile

9 years agoBetter handling of stdout errors
Nicolas Williams [Fri, 29 May 2015 16:50:08 +0000 (11:50 -0500)]
Better handling of stdout errors

9 years agoFix --argfile memleak (fix #799 part 2)
Nicolas Williams [Fri, 29 May 2015 16:49:45 +0000 (11:49 -0500)]
Fix --argfile memleak (fix #799 part 2)

9 years agoFix jv_load_file() (partial fix #799)
Nicolas Williams [Fri, 29 May 2015 16:48:10 +0000 (11:48 -0500)]
Fix jv_load_file() (partial fix #799)

9 years agoRevert "Fix #705 (--argfile weirdness)"
Nicolas Williams [Fri, 29 May 2015 15:38:08 +0000 (10:38 -0500)]
Revert "Fix #705 (--argfile weirdness)"

This reverts commit 3d2ab93b116f966b071e835a6656452cafc61aef.

9 years agoRevert "Better argfile fix (#705, fix #736)"
Nicolas Williams [Fri, 29 May 2015 15:37:58 +0000 (10:37 -0500)]
Revert "Better argfile fix (#705, fix #736)"

This reverts commit 4f8567476d3a6e8b5b422d05190f777221b984fb.

9 years agoAdd jv_mem_strdup*() and callocs too
Nicolas Williams [Tue, 26 May 2015 02:12:29 +0000 (21:12 -0500)]
Add jv_mem_strdup*() and callocs too

9 years agoAdd ./configure --enable-all-static instead
Nicolas Williams [Tue, 26 May 2015 02:19:56 +0000 (21:19 -0500)]
Add ./configure --enable-all-static instead

9 years agoAlways add -all-static when --enable-static
Nicolas Williams [Mon, 25 May 2015 19:14:53 +0000 (14:14 -0500)]
Always add -all-static when --enable-static

9 years agoUpdate parser.c
Nicolas Williams [Mon, 25 May 2015 18:17:22 +0000 (13:17 -0500)]
Update parser.c

9 years agoKeywords should be OK as object keys (fix #794)
Nicolas Williams [Mon, 25 May 2015 18:16:45 +0000 (13:16 -0500)]
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}

9 years agoFix Windows build: util.c
Nicolas Williams [Mon, 25 May 2015 07:06:44 +0000 (02:06 -0500)]
Fix Windows build: util.c

9 years agoFix #793
Steven Penny [Sun, 24 May 2015 14:42:13 +0000 (09:42 -0500)]
Fix #793

9 years agoAdd wrapping and clamping to jv_array_slice
Travis Gockel [Thu, 5 Mar 2015 04:09:00 +0000 (21:09 -0700)]
Add wrapping and clamping to jv_array_slice

Fix #716.  Fix #717.

9 years agoPrint offending object in runtime error messages
Assaf Gordon [Fri, 17 Apr 2015 22:18:33 +0000 (18:18 -0400)]
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)

9 years agoFix error message for @tsv
Nicolas Williams [Thu, 21 May 2015 23:20:05 +0000 (18:20 -0500)]
Fix error message for @tsv

9 years agoDon't test input_filename/line_number yet
Nicolas Williams [Thu, 21 May 2015 22:47:01 +0000 (17:47 -0500)]
Don't test input_filename/line_number yet

9 years agoAdd filename/line functions to jq (fix #753)
Assaf Gordon [Fri, 17 Apr 2015 20:08:10 +0000 (16:08 -0400)]
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"
    }

9 years agoFix formatting error in manual.yml
Nicolas Williams [Thu, 21 May 2015 05:11:11 +0000 (00:11 -0500)]
Fix formatting error in manual.yml

9 years agoReport filename:line on runtime errors (fix #752)
Assaf Gordon [Fri, 17 Apr 2015 19:28:00 +0000 (15:28 -0400)]
Report filename:line on runtime errors (fix #752)

With this patch, jq run-time errors printed to stderr will contain the
filename and line of the offending input.

But note that the JSON text parser does (yet) print the input filename
on parse error.  A jq run-time error is a jq program error, not
including syntax errors nor JSON text input format errors.

Examples:

With stdin and multiple lines:

    $ printf '{"a":43}\n{"a":{"b":66}}\n' | ./jq '.a+1'
    44
    jq: error (at stdin:2): object and number cannot be added

With multiple files:

    $ printf '{"a":43}' > 1.json
    $ printf '{"a":"hello"}\n' > 2.json
    $ printf '{"a":{"b":66}}\n' > 3.json
    $ ./jq '[.a]|@tsv' 1.json 2.json 3.json
    "43"
    "hello"
    jq: error (at 3.json:1): object is not valid in a csv row

With very long lines (spanning multiple `fgets` calls):

    $ (  printf '{"a":43}\n' ;
         printf '{"a":{"b":[' ; seq 10000 | paste -d, -s | tr -d '\n' ;
         printf ']}}\n' ;
         printf '{"a":"hello"}\n' ) | ./jq '[.a] | @tsv'
    "43"
    jq: error (at stdin:2): object is not valid in a csv row
    "hello"

With raw input:

    $ seq 1000 | ./jq --raw-input 'select(.=="700") | . + 10'
    jq: error (at stdin:700): string and number cannot be added

Caveat:
The reported line will be the last line of the (valid) parsed JSON data.
Example:

    $ printf '{\n"a":\n"hello"\n\n\n}\n' | ./jq '.a+4'
    jq: error (at stdin:6): string and number cannot be added

9 years agoFix spelling
Nicolas Williams [Wed, 20 May 2015 15:21:30 +0000 (10:21 -0500)]
Fix spelling

9 years agoDocument gsub/3
Nicolas Williams [Tue, 19 May 2015 06:19:51 +0000 (01:19 -0500)]
Document gsub/3

9 years agoFix gsub, add gsub/3 (fix #782)
Nicolas Williams [Tue, 19 May 2015 04:02:11 +0000 (23:02 -0500)]
Fix gsub, add gsub/3 (fix #782)

9 years agoAdd -all-static when --enable-static
Nicolas Williams [Mon, 18 May 2015 17:07:29 +0000 (12:07 -0500)]
Add -all-static when --enable-static

9 years agoFix --stream assertion
Nicolas Williams [Tue, 12 May 2015 02:29:50 +0000 (21:29 -0500)]
Fix --stream assertion

9 years agoAdd error injection library
Nicolas Williams [Mon, 4 May 2015 00:23:37 +0000 (19:23 -0500)]
Add error injection library

9 years agoReport read errors too (and fix #772)
Nicolas Williams [Tue, 28 Apr 2015 22:27:12 +0000 (17:27 -0500)]
Report read errors too (and fix #772)

9 years agoFix README
Nicolas Williams [Sat, 2 May 2015 22:36:33 +0000 (17:36 -0500)]
Fix README

9 years agoREADME: send questions to SO and Freenode
Nicolas Williams [Sat, 2 May 2015 22:34:52 +0000 (17:34 -0500)]
README: send questions to SO and Freenode

9 years agousage() should check fprintf() result (fix #771)
Nicolas Williams [Tue, 28 Apr 2015 15:39:34 +0000 (10:39 -0500)]
usage() should check fprintf() result (fix #771)

9 years agoUse jv_mem_alloc() in compile.c (fix #771)
Nicolas Williams [Tue, 28 Apr 2015 15:37:37 +0000 (10:37 -0500)]
Use jv_mem_alloc() in compile.c (fix #771)

9 years agoFix header guards (fix #770)
Nicolas Williams [Tue, 28 Apr 2015 15:36:21 +0000 (10:36 -0500)]
Fix header guards (fix #770)

9 years ago--raw-input wrongly adds NULs (fix #761)
Nicolas Williams [Fri, 24 Apr 2015 15:42:19 +0000 (10:42 -0500)]
--raw-input wrongly adds NULs (fix #761)

9 years agoWith `inputs` builtin, -n and -R can now coexist
Nicolas Williams [Fri, 24 Apr 2015 04:37:11 +0000 (23:37 -0500)]
With `inputs` builtin, -n and -R can now coexist

9 years ago--raw-input ought to read NULs (partial fix #760)
Nicolas Williams [Thu, 23 Apr 2015 23:27:53 +0000 (18:27 -0500)]
--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.

9 years ago--slurp --raw-input is broken (fix #761)
Nicolas Williams [Thu, 23 Apr 2015 23:26:57 +0000 (18:26 -0500)]
--slurp --raw-input is broken (fix #761)

9 years agofrom_entries is broken (fix #767)
Nicolas Williams [Thu, 23 Apr 2015 23:25:32 +0000 (18:25 -0500)]
from_entries is broken (fix #767)

9 years agoregex functions: report informative error if not available.
Assaf Gordon [Wed, 22 Apr 2015 21:34:49 +0000 (17:34 -0400)]
regex functions: report informative error if not available.

When trying to use the new regex functions (match/test/sub/capture/etc)
in a JQ that was compiled without the ONIGURAMA regex library,
report an informative error message instead of a 'not defined' error.

Before:

    $ echo '"foo"' | ./jq-old 'test("foo")'
    jq: error: test/1 is not defined at <top-level>, line 1:
    test("foo")
    jq: 1 compile error

After:

    $ echo '"foo"' | ./jq 'test("foo")'
    jq: error: jq was compiled without ONIGURAMA regex libary. match/test/sub and related functions are not available.

9 years agoFixes manual generation with psych
Andrew O'Brien [Tue, 21 Apr 2015 12:00:28 +0000 (08:00 -0400)]
Fixes manual generation with psych

When running `make` I ran into a couple of problems building the manual. While
I'm not entirely sure that this is the root cause, it appears to have been
related to the fact that ruby 2.0 dropped syck completely in favor of psych
(which was introduced in 1.9.2) for YAML processing. I'm currently using ruby
2.1.0p0.

I'm assuming that the fact that the YAML engine was explicitly set to syck in
the Rakefile was an attempt to work around some incompatibility between the two
libraries, so I looked into what would be necessary to get it to work with the
newer one. The changes to `manual.yml` ended up being pretty minor: I ran it
through `iconv` to convert some ISO-8859-1 characters to UTF-8 and added some
quotes in places (apparently you can't start a string value with '`').

9 years agoHandle NUL in escaped-string output 758/head
Assaf Gordon [Mon, 20 Apr 2015 20:51:48 +0000 (16:51 -0400)]
Handle NUL in escaped-string output

When escaping string (e.g. for `@tsv` or `@csv` outputs),
escape NULs as '\0'.

Existing behaviour, unchanged by this patch:

    $ echo '"a\u0000b"' | ./jq '.'
    "a\u0000b"
    $ echo '"a\u0000b"' | ./jq -r '.' | od -a
    0000000   a nul   b  nl
    0000004

When using `@tsv`, escape NUL to `\0`:

    $ echo '"a\u0000b"' | ./jq -r '[.]|@tsv'
    a\0b
    $ echo '"a\u0000b"' | ./jq '[.]|@tsv'
    "a\\0b"

9 years agomanual.yml: Clarify how to specify keys with ":" and special chars.
tal@whatexit.org [Fri, 3 Apr 2015 13:53:51 +0000 (13:53 +0000)]
manual.yml: Clarify how to specify keys with ":" and special chars.

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
9 years agodocs: expand @tsv section - add escape sequences. 751/head
Assaf Gordon [Thu, 16 Apr 2015 03:24:24 +0000 (23:24 -0400)]
docs: expand @tsv section - add escape sequences.

9 years ago@tsv: escape \r, \n, \\
Assaf Gordon [Wed, 15 Apr 2015 19:55:27 +0000 (15:55 -0400)]
@tsv: escape \r, \n, \\

When using '@tsv' output format with '-r' option,
escape \r, \n and \\ in addition to \t.

Example:
    $ printf '{"id":"hello\\ttab\\nworld","x":43 }' | jq .
    {
      "id": "hello\ttab\nworld",
      "x": 43
    }

Before: newlines are not escaped, generating invalid TSV output:

    $ printf '{"id":"hello\\ttab\\nworld","x":43 }' \
        | ./jq-old -r '[.id,.x] | @tsv'
    hello\ttab
    world 43

After: newlines are properly escaped:

    $ printf '{"id":"hello\\ttab\\nworld","x":43 }' \
        | ./jq-new -r '[.id, .x] | @tsv'
    hello\ttab\nworld 43

Before: backslashes themselves are not escaped, so there's no way to
distinguish between escaped characters and 'real' backslashes
(in the example below, there is should not be newline, despite the
output containing "\n".

    $ printf '{"x":"hello\\ttab\\\\new world"}' \
        | ./jq-old -r '[.x]|@tsv'
    hello\ttab\new world

After: backslashes are escaped:

    $ printf '{"x":"hello\\ttab\\\\new world"}' \
        | ./jq-new -r '[.x]|@tsv'
    hello\ttab\\new world

9 years agoTest fix for mktime
Nicolas Williams [Tue, 31 Mar 2015 15:03:35 +0000 (10:03 -0500)]
Test fix for mktime

9 years agoAdd `$__loc__` (fix #740)
Nicolas Williams [Mon, 30 Mar 2015 20:55:54 +0000 (15:55 -0500)]
Add `$__loc__` (fix #740)

9 years agoInclude filename and lineno in error messages
Nicolas Williams [Mon, 30 Mar 2015 00:12:23 +0000 (19:12 -0500)]
Include filename and lineno in error messages

9 years agoTweak fix for #719
Nicolas Williams [Tue, 24 Mar 2015 20:05:06 +0000 (15:05 -0500)]
Tweak fix for #719

9 years agodetect and report output writing errors
Assaf Gordon [Fri, 6 Mar 2015 18:54:53 +0000 (13:54 -0500)]
detect and report output writing errors

Detect output errors when the program exits.

Currently:
    $ echo '{}' | jq . > /dev/full && echo ok
    ok

with the patch:
    $ echo '{}' | jq . > /dev/full && echo ok
    Error: writing output failed: No space left on device

also apply to hardware/network/other I/O errors.

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
9 years agoAdds Dockerfile
Santiago Lapresta [Wed, 18 Mar 2015 00:12:08 +0000 (01:12 +0100)]
Adds Dockerfile

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
9 years agopartial handling of input errors
Assaf Gordon [Tue, 10 Mar 2015 21:02:02 +0000 (17:02 -0400)]
partial handling of input errors

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
9 years agoalways propagate input errors to exit code
Assaf Gordon [Tue, 10 Mar 2015 03:43:31 +0000 (23:43 -0400)]
always propagate input errors to exit code

Improve robustness in automated system when using exit code in shell scripts,
by exiting with code 2 if there was any input error (even overriding other
possible error exit codes).
Exit code 2 is already used to indicate system errors.

Without the patch:
   $ jq . no-such-file ; echo $?
   jq: no-such-file: No such file or directory
   0

With the patch:
   $ jq . no-such-file ; echo $?
   jq: no-such-file: No such file or directory
   2

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
9 years agoBetter argfile fix (#705, fix #736)
Nicolas Williams [Tue, 24 Mar 2015 19:53:35 +0000 (14:53 -0500)]
Better argfile fix (#705, fix #736)

9 years agoDrop name-less label/break for now
Nicolas Williams [Mon, 23 Mar 2015 19:57:35 +0000 (14:57 -0500)]
Drop name-less label/break for now

See #734 and #658.

9 years agoFix #735
William Langford [Tue, 24 Mar 2015 02:11:55 +0000 (22:11 -0400)]
Fix #735

9 years agoAdd more date builtins
Nicolas Williams [Sun, 8 Mar 2015 23:56:51 +0000 (18:56 -0500)]
Add more date builtins

9 years agoMerge pull request #720 from agordon/exit-code-5-exceptions
Nico Williams [Sun, 8 Mar 2015 22:09:07 +0000 (17:09 -0500)]
Merge pull request #720 from agordon/exit-code-5-exceptions

exit with non-zero code on runtime exceptions

9 years agoAutomake: jq depends on version.h (fix #721)
Nicolas Williams [Sun, 8 Mar 2015 21:52:08 +0000 (16:52 -0500)]
Automake: jq depends on version.h (fix #721)

9 years agoexit with non-zero code on runtime exceptions 720/head
Assaf Gordon [Fri, 6 Mar 2015 23:42:16 +0000 (18:42 -0500)]
exit with non-zero code on runtime exceptions

With this change, runtime exceptions are propagated to non-zero exit
code of 'jq', allow better scripting and automation. The new exit code
value is 5.

This allows using the shell's and/or operations ('&&' and '||') to
detect input runtime exceptions.

Before:
runtime exceptions are printed to STDERR, but not reported as non-zero exit-code:
    $ echo '"hello"' | jq '.|tonumber' ; echo $?
    jq: error: Invalid numeric literal at EOF at line 1, column 5 (while parsing 'hello')
    0

After:
    $ echo '"hello"' | ./jq '.|tonumber' ;  echo $?
    jq: error: Invalid numeric literal at EOF at line 1, column 5 (while parsing 'hello')
    5

Note that there's a subtle interplay when using "-e" option.
The value of the non-zero exit code changes from 4 to 5, but it still
indicates a 'failure' or non-true value.

Before:
    $ echo '"hello"' | jq -e '.|tonumber' ;  echo $?
    jq: error: Invalid numeric literal at EOF at line 1, column 5 (while parsing 'hello')
    4

After:
    $ echo '"hello"' | ./jq -e '.|tonumber' ;  echo $?
    jq: error: Invalid numeric literal at EOF at line 1, column 5 (while parsing 'hello')
    5

9 years agoFix #718
Nicolas Williams [Fri, 6 Mar 2015 06:18:45 +0000 (00:18 -0600)]
Fix #718

9 years agoAdd date builtins (fix #364)
Nicolas Williams [Fri, 6 Mar 2015 06:14:15 +0000 (00:14 -0600)]
Add date builtins (fix #364)

Windows support for strptime() is missing.  We can add a copy of one
from a BSD later.

9 years agoRemove -i option (#704)
Nicolas Williams [Fri, 6 Mar 2015 03:52:02 +0000 (21:52 -0600)]
Remove -i option (#704)

In-place editing should be implemented with builtins for file I/O.

9 years agoFix #705 (--argfile weirdness)
Nicolas Williams [Thu, 19 Feb 2015 00:38:11 +0000 (18:38 -0600)]
Fix #705 (--argfile weirdness)

9 years agoTest in-place functionality; fix #704
Nicolas Williams [Thu, 19 Feb 2015 00:01:12 +0000 (18:01 -0600)]
Test in-place functionality; fix #704

9 years agoFix #702
Nicolas Williams [Wed, 18 Feb 2015 16:21:09 +0000 (10:21 -0600)]
Fix #702

9 years agoMerge pull request #701 from sseemayer/master
Nico Williams [Wed, 18 Feb 2015 16:00:23 +0000 (10:00 -0600)]
Merge pull request #701 from sseemayer/master

Correct automake and autoconf version requirements

9 years agoCorrect automake and autoconf version requirements 701/head
Stefan Seemayer [Wed, 18 Feb 2015 12:15:44 +0000 (13:15 +0100)]
Correct automake and autoconf version requirements

9 years agoMention --disable-maintainer-mode in bison error
Nicolas Williams [Tue, 17 Feb 2015 16:59:27 +0000 (10:59 -0600)]
Mention --disable-maintainer-mode in bison error

9 years agoMerge pull request #699 from hroptatyr/oniguruma-detection
Nico Williams [Mon, 16 Feb 2015 16:54:33 +0000 (10:54 -0600)]
Merge pull request #699 from hroptatyr/oniguruma-detection

Fix oniguruma detection logic

9 years agoFix oniguruma detection logic 699/head
Sebastian Freundt [Mon, 16 Feb 2015 09:00:58 +0000 (09:00 +0000)]
Fix oniguruma detection logic

At the moment, a failed oniguruma header check would leave
HAVE_ONIGURUMA set to 1 still, resulting in a compiler error
in builtin.c.

9 years agoREADME tweaks
Nicolas Williams [Mon, 16 Feb 2015 00:08:09 +0000 (18:08 -0600)]
README tweaks

9 years agoAdd --disable-maintainer-mode; make bison optional
Nicolas Williams [Sun, 15 Feb 2015 23:57:53 +0000 (17:57 -0600)]
Add --disable-maintainer-mode; make bison optional

Also flex is now optional.

The outputs of flex and bison are now committed.  By default they get
built, but users who want to build from git can now

    ./configure --disable-maintainer-mode

to turn off the dependency on bison and flex.

Maintainers must, of course, commit the bison and/or flex outputs when
they make changes to parser.y and/or lexer.l, respectively.

9 years agoMake Oniguruma/regexp optional
Nicolas Williams [Sat, 14 Feb 2015 19:31:34 +0000 (13:31 -0600)]
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.

9 years agoReduce number of msg callback typedefs
Nicolas Williams [Fri, 13 Feb 2015 21:28:30 +0000 (15:28 -0600)]
Reduce number of msg callback typedefs

9 years agoRefactor moar: move parts of main.c into libjq
Nicolas Williams [Mon, 2 Feb 2015 00:35:42 +0000 (18:35 -0600)]
Refactor moar: move parts of main.c into libjq

This adds utility functions for reading and parsing files that should be
easy to use by other apps, together with jq_start()/jq_next().

9 years agoRefactor handling of inputs in main() (fix #667)
Nicolas Williams [Sat, 27 Dec 2014 23:58:47 +0000 (17:58 -0600)]
Refactor handling of inputs in main() (fix #667)

Much of this could be in libjq.  Eventually all of the work of reading
from files and looping over `jq_next()` should move into libjq, with
`main()` mostly doing all the command-line option processing.

9 years agoMerge pull request #692 from kim-toms/enhance-from_entries
Nico Williams [Tue, 10 Feb 2015 16:49:35 +0000 (10:49 -0600)]
Merge pull request #692 from kim-toms/enhance-from_entries

Enhance from_entries to better deal with Amazon AWS Tags