diff options
-rw-r--r-- | sys-utils/dmesg.1 | 3 | ||||
-rw-r--r-- | sys-utils/dmesg.c | 13 |
2 files changed, 9 insertions, 7 deletions
diff --git a/sys-utils/dmesg.1 b/sys-utils/dmesg.1 index 5a6910aaa..4531edb55 100644 --- a/sys-utils/dmesg.1 +++ b/sys-utils/dmesg.1 @@ -35,7 +35,8 @@ Clear the ring buffer contents after printing. .IP "\fB\-D, \-\-console-off\fP" Disable printing messages to the console. .IP "\fB\-d, \-\-show-delta\fP" -Display the time spent between messages. +Display the timestamp and time delta spent between messages. If used together +with --notime then only the time delta without the timestamp is printed. .IP "\fB\-E, \-\-console-on\fP" Enable printing messages to the console. .IP "\fB\-f, \-\-facility \fIlist\fP" diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c index 2be34075a..7123c7fb6 100644 --- a/sys-utils/dmesg.c +++ b/sys-utils/dmesg.c @@ -512,14 +512,14 @@ static int get_next_record(struct dmesg_control *ctl, struct dmesg_record *rec) if (*begin == '[' && (*(begin + 1) == ' ' || isdigit(*(begin + 1)))) { - if (ctl->notime) { /* ignore timestamp */ + if (ctl->delta || ctl->ctime) { + begin = parse_timestamp(begin + 1, &rec->tv); + } else if (ctl->notime) { while (begin < end) { begin++; if (*(begin - 1) == ']') break; } - } else if (ctl->delta || ctl->ctime) { - begin = parse_timestamp(begin + 1, &rec->tv); } } @@ -596,6 +596,8 @@ static void print_buffer(const char *buf, size_t size, if (ctl->ctime && *tbuf) printf("[%s ", tbuf); + else if (ctl->notime) + putchar('['); else printf("[%5d.%06d ", (int) rec.tv.tv_sec, (int) rec.tv.tv_usec); @@ -738,9 +740,8 @@ int main(int argc, char *argv[]) errx(EXIT_FAILURE, _("--raw can't be used together with level, " "facility, decode, delta, ctime or notime options")); - if (ctl.notime && (ctl.ctime || ctl.delta)) - errx(EXIT_FAILURE, _("--notime can't be used together with ctime " - "or delta options")); + if (ctl.notime && ctl.ctime) + errx(EXIT_FAILURE, _("--notime can't be used together with ctime ")); switch (cmd) { case SYSLOG_ACTION_READ_ALL: |