]> granicus.if.org Git - jq/commit
Print offending object in runtime error messages
authorAssaf Gordon <assafgordon@gmail.com>
Fri, 17 Apr 2015 22:18:33 +0000 (18:18 -0400)
committerNicolas Williams <nico@cryptonector.com>
Thu, 21 May 2015 23:49:24 +0000 (18:49 -0500)
commit7b6a018dff623a4f13f6bcd52c7c56d9b4a4165f
tree9e5a63bde790eb18aed024fc6ae39b0ec05056cf
parenta50e548cc5313c187483bc8fb1b95e1798e8ef65
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)
builtin.c
execute.c
jv.h
jv_print.c
tests/all.test