summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMantas Mikulėnas <grawity@gmail.com>2013-02-17 21:00:34 +0200
committerLennart Poettering <lennart@poettering.net>2013-03-01 19:22:30 +0100
commit41330ddb033f2cbeeb565e43708be91d5df28fb2 (patch)
tree226dba84740f0c87d4a7b1e3ab5ad3eb0cc45542
parent41be2ca14d34b67776240bc67facf341b156b974 (diff)
inhibit: make the output more readable
The columnar output can become pretty horrible. When GNOME inhibits power/suspend/hibernate keys, the "WHAT" column's text extends to "WHO" and even "WHY". At the same time, all texts in "WHY" are of the form GNOME handlin...sses Receiving sle...ions GNOME needs t...reen This patch splits each inhibit entry into four lines, allowing the full text to fit in a normal-width terminal.
-rw-r--r--src/login/inhibit.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/src/login/inhibit.c b/src/login/inhibit.c
index 9b6613340f..586582190e 100644
--- a/src/login/inhibit.c
+++ b/src/login/inhibit.c
@@ -99,18 +99,9 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) {
goto finish;
}
- printf("%-21s %-20s %-20s %-5s %6s %6s\n",
- "WHAT",
- "WHO",
- "WHY",
- "MODE",
- "UID",
- "PID");
-
dbus_message_iter_recurse(&iter, &sub);
while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) {
const char *what, *who, *why, *mode;
- char *ewho, *ewhy;
dbus_uint32_t uid, pid;
if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRUCT) {
@@ -130,21 +121,21 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) {
goto finish;
}
- ewho = ellipsize(who, 20, 66);
- ewhy = ellipsize(why, 20, 66);
-
- printf("%-21s %-20s %-20s %-5s %6lu %6lu\n",
- what, ewho ? ewho : who, ewhy ? ewhy : why, mode, (unsigned long) uid, (unsigned long) pid);
-
- free(ewho);
- free(ewhy);
+ printf(" Who: %s (UID %lu, PID %lu)\n"
+ " What: %s\n"
+ " Why: %s\n"
+ " Mode: %s\n\n",
+ who, (unsigned long) uid, (unsigned long) pid,
+ what,
+ why,
+ mode);
dbus_message_iter_next(&sub);
n++;
}
- printf("\n%u inhibitors listed.\n", n);
+ printf("%u inhibitors listed.\n", n);
r = 0;
finish: