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. --- src/login/inhibit.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/login/inhibit.c b/src/login/inhibit.c index 9b66133..b3b310d 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,19 @@ 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", + who, (unsigned long) uid, (unsigned long) pid); + printf(" What: %s\n", what); + printf(" Why: %s\n", why); + printf(" Mode: %s\n", mode); + printf("\n"); dbus_message_iter_next(&sub); n++; } - printf("\n%u inhibitors listed.\n", n); + printf("%u inhibitors listed.\n", n); r = 0; finish: -- 1.8.1.3 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel