Zbigniew Jędrzejewski-Szmek 930e1b
From 4beb4dc09a06e36a5831530115f1a14beeaa436a Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 930e1b
From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity@gmail.com>
Zbigniew Jędrzejewski-Szmek 930e1b
Date: Mon, 4 Nov 2013 23:01:17 +0200
Zbigniew Jędrzejewski-Szmek 930e1b
Subject: [PATCH] systemctl: make LOAD column width dynamic
Zbigniew Jędrzejewski-Szmek 930e1b
Zbigniew Jędrzejewski-Szmek 930e1b
Otherwise 'not-found' overflows into the ACTIVE column.
Zbigniew Jędrzejewski-Szmek 930e1b
---
Zbigniew Jędrzejewski-Szmek 930e1b
 src/systemctl/systemctl.c | 19 +++++++++++--------
Zbigniew Jędrzejewski-Szmek 930e1b
 1 file changed, 11 insertions(+), 8 deletions(-)
Zbigniew Jędrzejewski-Szmek 930e1b
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
Zbigniew Jędrzejewski-Szmek 930e1b
index 36040db..906982a 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/systemctl/systemctl.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/systemctl/systemctl.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -287,14 +287,16 @@ static bool output_show_unit(const struct unit_info *u) {
Zbigniew Jędrzejewski-Szmek 930e1b
 }
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
 static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
Zbigniew Jędrzejewski-Szmek 930e1b
-        unsigned id_len, max_id_len, active_len, sub_len, job_len, desc_len, n_shown = 0;
Zbigniew Jędrzejewski-Szmek 930e1b
+        unsigned id_len, max_id_len, load_len, active_len, sub_len, job_len, desc_len;
Zbigniew Jędrzejewski-Szmek 930e1b
+        unsigned n_shown = 0;
Zbigniew Jędrzejewski-Szmek 930e1b
         const struct unit_info *u;
Zbigniew Jędrzejewski-Szmek 930e1b
         int job_count = 0;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
-        max_id_len = sizeof("UNIT")-1;
Zbigniew Jędrzejewski-Szmek 930e1b
-        active_len = sizeof("ACTIVE")-1;
Zbigniew Jędrzejewski-Szmek 930e1b
-        sub_len = sizeof("SUB")-1;
Zbigniew Jędrzejewski-Szmek 930e1b
-        job_len = sizeof("JOB")-1;
Zbigniew Jędrzejewski-Szmek 930e1b
+        max_id_len = strlen("UNIT");
Zbigniew Jędrzejewski-Szmek 930e1b
+        load_len = strlen("LOAD");
Zbigniew Jędrzejewski-Szmek 930e1b
+        active_len = strlen("ACTIVE");
Zbigniew Jędrzejewski-Szmek 930e1b
+        sub_len = strlen("SUB");
Zbigniew Jędrzejewski-Szmek 930e1b
+        job_len = strlen("JOB");
Zbigniew Jędrzejewski-Szmek 930e1b
         desc_len = 0;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         for (u = unit_infos; u < unit_infos + c; u++) {
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -302,6 +304,7 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
Zbigniew Jędrzejewski-Szmek 930e1b
                         continue;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
                 max_id_len = MAX(max_id_len, strlen(u->id));
Zbigniew Jędrzejewski-Szmek 930e1b
+                load_len = MAX(load_len, strlen(u->load_state));
Zbigniew Jędrzejewski-Szmek 930e1b
                 active_len = MAX(active_len, strlen(u->active_state));
Zbigniew Jędrzejewski-Szmek 930e1b
                 sub_len = MAX(sub_len, strlen(u->sub_state));
Zbigniew Jędrzejewski-Szmek 930e1b
                 if (u->job_id != 0) {
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -344,7 +347,7 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
Zbigniew Jędrzejewski-Szmek 930e1b
                         continue;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
                 if (!n_shown && !arg_no_legend) {
Zbigniew Jędrzejewski-Szmek 930e1b
-                        printf("%-*s %-6s %-*s %-*s ", id_len, "UNIT", "LOAD",
Zbigniew Jędrzejewski-Szmek 930e1b
+                        printf("%-*s %-*s %-*s %-*s ", id_len, "UNIT", load_len, "LOAD",
Zbigniew Jędrzejewski-Szmek 930e1b
                                active_len, "ACTIVE", sub_len, "SUB");
Zbigniew Jędrzejewski-Szmek 930e1b
                         if (job_count)
Zbigniew Jędrzejewski-Szmek 930e1b
                                 printf("%-*s ", job_len, "JOB");
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -371,9 +374,9 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) {
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
                 e = arg_full ? NULL : ellipsize(u->id, id_len, 33);
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
-                printf("%s%-*s%s %s%-6s%s %s%-*s %-*s%s %-*s",
Zbigniew Jędrzejewski-Szmek 930e1b
+                printf("%s%-*s%s %s%-*s%s %s%-*s %-*s%s %-*s",
Zbigniew Jędrzejewski-Szmek 930e1b
                        on, id_len, e ? e : u->id, off,
Zbigniew Jędrzejewski-Szmek 930e1b
-                       on_loaded, u->load_state, off_loaded,
Zbigniew Jędrzejewski-Szmek 930e1b
+                       on_loaded, load_len, u->load_state, off_loaded,
Zbigniew Jędrzejewski-Szmek 930e1b
                        on_active, active_len, u->active_state,
Zbigniew Jędrzejewski-Szmek 930e1b
                        sub_len, u->sub_state, off_active,
Zbigniew Jędrzejewski-Szmek 930e1b
                        job_count ? job_len + 1 : 0, u->job_id ? u->job_type : "");