diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2012-07-17 07:35:08 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-07-17 17:20:58 +0200 |
commit | 92a1fd9e95954a557d6fe27b56f5ef1b89fc2f5e (patch) | |
tree | 58cce02cda2c254c7c7cfa54f98213d1a33ce04d /src | |
parent | 085d71209ba32c1e4e72ec031536be892054352e (diff) |
journalctl: do not ellipsize when using pager
If a pager is used, ellipsization is redundant — the pager does
that better by hiding the part that cannot be shown. Pager's advantage
is that the user can press → to view the hidden part of a message,
and then ← to return.
Diffstat (limited to 'src')
-rw-r--r-- | src/journal/journalctl.c | 9 | ||||
-rw-r--r-- | src/shared/logs-show.c | 3 | ||||
-rw-r--r-- | src/shared/logs-show.h | 1 |
3 files changed, 9 insertions, 4 deletions
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 016750c201..e9810c9a3d 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -312,6 +312,7 @@ int main(int argc, char *argv[]) { bool need_seek = false; sd_id128_t previous_boot_id; bool previous_boot_id_valid = false; + bool have_pager; log_parse_environment(); log_open(); @@ -397,7 +398,8 @@ int main(int argc, char *argv[]) { goto finish; } - if (!arg_no_pager && !arg_follow) { + have_pager = !arg_no_pager && !arg_follow; + if (have_pager) { columns(); pager_open(); } @@ -410,6 +412,8 @@ int main(int argc, char *argv[]) { for (;;) { for (;;) { sd_id128_t boot_id; + int flags = (arg_show_all*OUTPUT_SHOW_ALL | + have_pager*OUTPUT_FULL_WIDTH); if (need_seek) { r = sd_journal_next(j); @@ -434,8 +438,7 @@ int main(int argc, char *argv[]) { line ++; - r = output_journal(j, arg_output, line, 0, - arg_show_all ? OUTPUT_SHOW_ALL : 0); + r = output_journal(j, arg_output, line, 0, flags); if (r < 0) goto finish; diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index bbfb74c2bd..43e42f7880 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -225,7 +225,8 @@ static int output_short(sd_journal *j, unsigned line, unsigned n_columns, else if (!utf8_is_printable_n(message, message_len)) { char bytes[FORMAT_BYTES_MAX]; printf(": [%s blob data]\n", format_bytes(bytes, sizeof(bytes), message_len)); - } else if (message_len + n < n_columns) + } else if ((flags & OUTPUT_FULL_WIDTH) || + (message_len + n < n_columns)) printf(": %.*s\n", (int) message_len, message); else if (n < n_columns) { char *e; diff --git a/src/shared/logs-show.h b/src/shared/logs-show.h index 44afaf306a..2e9cf63891 100644 --- a/src/shared/logs-show.h +++ b/src/shared/logs-show.h @@ -44,6 +44,7 @@ typedef enum OutputFlags { OUTPUT_MONOTONIC_MODE = 1 << 1, OUTPUT_FOLLOW = 1 << 2, OUTPUT_WARN_CUTOFF = 1 << 3, + OUTPUT_FULL_WIDTH = 1 << 4, } OutputFlags; int output_journal(sd_journal *j, OutputMode mode, unsigned line, |