Fix halt_error to print message without prefix in raw mode (fix #1902) (#2632)

This commit is contained in:
itchyny authored and GitHub committed 2023-06-27 07:33:21 +09:00
1 parent e468eaa396
commit 98835eec24
2 files changed
+14 -4

No files matched your search

+4 -2
View File
@@ -216,12 +216,14 @@ static int process(jq_state *jq, jv value, int flags, int dumpopts) {
jv_free(exit_code);
jv error_message = jq_get_error_message(jq);
if (jv_get_kind(error_message) == JV_KIND_STRING) {
fprintf(stderr, "jq: error: %s", jv_string_value(error_message));
// No prefix should be added to the output of `halt_error`.
fwrite(jv_string_value(error_message), 1,
jv_string_length_bytes(jv_copy(error_message)), stderr);
} else if (jv_get_kind(error_message) == JV_KIND_NULL) {
// Halt with no output
} else if (jv_is_valid(error_message)) {
error_message = jv_dump_string(jv_copy(error_message), 0);
fprintf(stderr, "jq: error: %s\n", jv_string_value(error_message));
fprintf(stderr, "%s\n", jv_string_value(error_message));
} // else no message on stderr; use --debug-trace to see a message
fflush(stderr);
jv_free(error_message);