[systemd-devel] [PATCH 2/3] Adapt interface in log-show.c (show_journal_by_unit)

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Mon Jul 16 22:35:07 PDT 2012


Convert more flag arguments into one flag variable.
---
 src/shared/logs-show.c    | 10 ++++------
 src/shared/logs-show.h    |  6 +++---
 src/systemctl/systemctl.c |  7 ++++++-
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index af9bcbd..bbfb74c 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -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);
diff --git a/src/shared/logs-show.h b/src/shared/logs-show.h
index beade06..44afaf3 100644
--- a/src/shared/logs-show.h
+++ b/src/shared/logs-show.h
@@ -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);
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index 6ab92ce..344dcd3 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -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)
-- 
1.7.11.1.282.g511ba53



More information about the systemd-devel mailing list