journalctl: make sure that journalctl's --all switch also has an effect on json output

With this change, binary record data is formatted as string if --all is
specified when using json output. This is inline with the effect of --all on
the other available output modes.

Fixes: #3416
This commit is contained in:
Lennart Poettering 2016-06-30 17:41:19 -07:00
parent c24f1f9df1
commit 8980058a37

View file

@ -489,7 +489,7 @@ static int output_verbose(
off = ANSI_NORMAL;
}
if (flags & OUTPUT_SHOW_ALL ||
if ((flags & OUTPUT_SHOW_ALL) ||
(((length < PRINT_CHAR_THRESHOLD) || flags & OUTPUT_FULL_WIDTH)
&& utf8_is_printable(data, length))) {
fprintf(f, " %s%.*s=", on, fieldlen, (const char*)data);
@ -607,7 +607,7 @@ void json_escape(
if (!(flags & OUTPUT_SHOW_ALL) && l >= JSON_THRESHOLD)
fputs("null", f);
else if (!utf8_is_printable(p, l)) {
else if (!(flags & OUTPUT_SHOW_ALL) && !utf8_is_printable(p, l)) {
bool not_first = false;
fputs("[ ", f);