chiark / gitweb /
logs: Adapt interface in log-show.c (show_journal_by_unit)
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 17 Jul 2012 05:35:07 +0000 (07:35 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 17 Jul 2012 15:20:58 +0000 (17:20 +0200)
Convert more flag arguments into one flag variable.

src/shared/logs-show.c
src/shared/logs-show.h
src/systemctl/systemctl.c

index af9bcbd..bbfb74c 100644 (file)
@@ -553,15 +553,14 @@ int show_journal_by_unit(
                 unsigned n_columns,
                 usec_t not_before,
                 unsigned how_many,
-                bool show_all,
-                bool follow,
-                bool warn_cutoff) {
+                OutputFlags flags) {
 
         char *m = NULL;
         sd_journal *j = NULL;
         int r;
         unsigned line = 0;
         bool need_seek = false;
+        int warn_cutoff = flags & OUTPUT_WARN_CUTOFF;
 
         assert(mode >= 0);
         assert(mode < _OUTPUT_MODE_MAX);
@@ -633,8 +632,7 @@ int show_journal_by_unit(
 
                         line ++;
 
-                        r = output_journal(j, mode, line, n_columns,
-                                           show_all ? OUTPUT_SHOW_ALL : 0);
+                        r = output_journal(j, mode, line, n_columns, flags);
                         if (r < 0)
                                 goto finish;
                 }
@@ -659,7 +657,7 @@ int show_journal_by_unit(
                         warn_cutoff = false;
                 }
 
-                if (!follow)
+                if (!(flags & OUTPUT_FOLLOW))
                         break;
 
                 r = sd_journal_wait(j, (usec_t) -1);
index beade06..44afaf3 100644 (file)
@@ -42,6 +42,8 @@ typedef enum OutputMode {
 typedef enum OutputFlags {
         OUTPUT_SHOW_ALL = 1 << 0,
         OUTPUT_MONOTONIC_MODE = 1 << 1,
+        OUTPUT_FOLLOW = 1 << 2,
+        OUTPUT_WARN_CUTOFF = 1 << 3,
 } OutputFlags;
 
 int output_journal(sd_journal *j, OutputMode mode, unsigned line,
@@ -53,9 +55,7 @@ int show_journal_by_unit(
                 unsigned n_columns,
                 usec_t not_before,
                 unsigned how_many,
-                bool show_all,
-                bool follow,
-                bool warn_cutoff);
+                OutputFlags flags);
 
 const char* output_mode_to_string(OutputMode m);
 OutputMode output_mode_from_string(const char *s);
index 6ab92ce..344dcd3 100644 (file)
@@ -2592,8 +2592,13 @@ static void print_status_info(UnitStatusInfo *i) {
         }
 
         if (i->id && arg_transport != TRANSPORT_SSH) {
+                int flags = (arg_lines*OUTPUT_SHOW_ALL |
+                             arg_follow*OUTPUT_FOLLOW |
+                             !arg_quiet*OUTPUT_WARN_CUTOFF);
                 printf("\n");
-                show_journal_by_unit(i->id, arg_output, 0, i->inactive_exit_timestamp_monotonic, arg_lines, arg_all, arg_follow, !arg_quiet);
+                show_journal_by_unit(i->id, arg_output, 0,
+                                     i->inactive_exit_timestamp_monotonic,
+                                     arg_lines, flags);
         }
 
         if (i->need_daemon_reload)