chiark / gitweb /
journalctl: properly print headers of empty journals
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 18 Jun 2013 12:48:14 +0000 (08:48 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 18 Jun 2013 12:50:08 +0000 (08:50 -0400)
TODO
src/journal/journal-file.c

diff --git a/TODO b/TODO
index cfd2763a407ed9d79739701bdf33754115d956bd..a6c2c15aa158fb82f075a4c34fa309723d71d87e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -11,8 +11,6 @@ Bugfixes:
 
 * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
 
-* fix --header to files without entries (see test-journal output).
-
 Fedora 19:
 
 * external: maybe it is time to patch procps so that "ps" links to
index ca217f93fef962b7067ea71ef3d85d3adc840125..12364030d959a0050eba1931f51dca97d25ab1bb 100644 (file)
@@ -2270,6 +2270,15 @@ fail:
         log_error("File corrupt");
 }
 
+static const char* format_timestamp_safe(char *buf, size_t l, usec_t t) {
+        const char *x;
+
+        x = format_timestamp(buf, l, t);
+        if (x)
+                return x;
+        return " --- ";
+}
+
 void journal_file_print_header(JournalFile *f) {
         char a[33], b[33], c[33], d[33];
         char x[FORMAT_TIMESTAMP_MAX], y[FORMAT_TIMESTAMP_MAX], z[FORMAT_TIMESTAMP_MAX];
@@ -2317,8 +2326,8 @@ void journal_file_print_header(JournalFile *f) {
                yes_no(journal_file_rotate_suggested(f, 0)),
                le64toh(f->header->head_entry_seqnum),
                le64toh(f->header->tail_entry_seqnum),
-               format_timestamp(x, sizeof(x), le64toh(f->header->head_entry_realtime)),
-               format_timestamp(y, sizeof(y), le64toh(f->header->tail_entry_realtime)),
+               format_timestamp_safe(x, sizeof(x), le64toh(f->header->head_entry_realtime)),
+               format_timestamp_safe(y, sizeof(y), le64toh(f->header->tail_entry_realtime)),
                format_timespan(z, sizeof(z), le64toh(f->header->tail_entry_monotonic), USEC_PER_MSEC),
                le64toh(f->header->n_objects),
                le64toh(f->header->n_entries));