EOF after newline in string mishandled (fix #951)
This commit is contained in:
1 parent
58f082d74f
commit
c4524da3e0
2 files changed
+13
-4
No files matched your search
+1
-3
@@ -435,10 +435,8 @@ jv jq_util_input_next_input(jq_util_input_state *state) {
|
||||
} else {
|
||||
if (jv_parser_remaining(state->parser) == 0) {
|
||||
is_last = jq_util_input_read_more(state);
|
||||
if (is_last && state->buf_valid_len == 0) {
|
||||
if (is_last && state->buf_valid_len == 0)
|
||||
value = jv_invalid();
|
||||
break;
|
||||
}
|
||||
jv_parser_set_buf(state->parser, state->buf, state->buf_valid_len, !is_last);
|
||||
}
|
||||
value = jv_parser_next(state->parser);
|
||||
|
||||
+12
-1
@@ -109,10 +109,21 @@ printf '1' | $JQ -ce --seq . > $d/out 2>&1
|
||||
cmp $d/out $d/expected
|
||||
|
||||
cat > $d/expected <<EOF
|
||||
jq: error (at <stdin>:1): Unfinished abandoned text at EOF at line 2, column 0
|
||||
EOF
|
||||
printf '1\n' | $JQ -cen --seq '[inputs] == []' >/dev/null 2> $d/out
|
||||
if printf '1\n' | $JQ -cen --seq '[inputs] == []' >/dev/null 2> $d/out; then
|
||||
printf 'Error expected but jq exited successfully\n' 1>&2
|
||||
exit 2
|
||||
fi
|
||||
cmp $d/out $d/expected
|
||||
|
||||
# Regression test for #951
|
||||
printf '"a\n' > $d/input
|
||||
if $VALGRIND $Q $JQ -e . $d/input; then
|
||||
printf 'Issue #951 is back?\n' 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
## Test streaming parser
|
||||
|
||||
## If we add an option to stream to the `import ... as $symbol;` directive
|
||||
|
||||
Reference in new issue
Block a user