summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorNicolas Williams <nico@cryptonector.com>2013-05-04 17:03:01 -0500
committerNicolas Williams <nico@cryptonector.com>2013-05-06 12:36:53 -0500
commit65deaaacf507c9e1d01773887d8c56be847ff1bd (patch)
treed208414ebd2b7b0d6554c697299bd1ae049508b2 /main.c
parent74eb914aba5ff4abfed2574f4555c6a358ae6dbd (diff)
Fix #111: exit(1) when inputs are not valid JSON
Diffstat (limited to 'main.c')
-rw-r--r--main.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/main.c b/main.c
index afdff189..423510b6 100644
--- a/main.c
+++ b/main.c
@@ -143,6 +143,7 @@ static int read_more(char* buf, size_t size) {
}
int main(int argc, char* argv[]) {
+ int ret = 0;
if (argc) progname = argv[0];
if (argc > 1 && !strcmp(argv[1], "--run-tests")) {
@@ -276,6 +277,7 @@ int main(int argc, char* argv[]) {
jv msg = jv_invalid_get_msg(value);
fprintf(stderr, "parse error: %s\n", jv_string_value(msg));
jv_free(msg);
+ ret = 1;
break;
} else {
jv_free(value);
@@ -283,11 +285,14 @@ int main(int argc, char* argv[]) {
}
}
jv_parser_free(&parser);
+ if (ret != 0)
+ goto out;
if (options & SLURP) {
process(slurped, jq_flags);
}
}
+out:
jv_mem_free(input_filenames);
bytecode_free(bc);
- return 0;
+ return ret;
}