diff --git a/src/login/loginctl.c b/src/login/loginctl.c index fdf899c37f1..3f8f1aa9bed 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -180,6 +180,8 @@ static int list_sessions(int argc, char *argv[], void *userdata) { (void) table_set_align_percent(table, TABLE_HEADER_CELL(0), 100); (void) table_set_align_percent(table, TABLE_HEADER_CELL(1), 100); + (void) table_set_ersatz_string(table, TABLE_ERSATZ_DASH); + for (;;) { _cleanup_(sd_bus_error_free) sd_bus_error e = SD_BUS_ERROR_NULL; const char *id, *user, *seat, *object; @@ -206,8 +208,8 @@ static int list_sessions(int argc, char *argv[], void *userdata) { TABLE_STRING, id, TABLE_UID, (uid_t) uid, TABLE_STRING, user, - TABLE_STRING, seat, - TABLE_STRING, strna(i.tty), + TABLE_STRING, empty_to_null(seat), + TABLE_STRING, empty_to_null(i.tty), TABLE_STRING, i.state, TABLE_BOOLEAN, i.idle_hint); if (r < 0) @@ -259,6 +261,7 @@ static int list_users(int argc, char *argv[], void *userdata) { return log_oom(); (void) table_set_align_percent(table, TABLE_HEADER_CELL(0), 100); + (void) table_set_ersatz_string(table, TABLE_ERSATZ_DASH); for (;;) { _cleanup_(sd_bus_error_free) sd_bus_error error_property = SD_BUS_ERROR_NULL; @@ -328,6 +331,8 @@ static int list_seats(int argc, char *argv[], void *userdata) { if (!table) return log_oom(); + (void) table_set_ersatz_string(table, TABLE_ERSATZ_DASH); + for (;;) { const char *seat; @@ -504,6 +509,8 @@ static int print_session_status_info(sd_bus *bus, const char *path) { if (!table) return log_oom(); + (void) table_set_ersatz_string(table, TABLE_ERSATZ_NA); + if (dual_timestamp_is_set(&i.timestamp)) { r = table_add_cell(table, NULL, TABLE_FIELD, "Since"); if (r < 0) @@ -540,22 +547,25 @@ static int print_session_status_info(sd_bus *bus, const char *path) { return table_log_add_error(r); } - r = table_add_cell(table, NULL, TABLE_FIELD, "Seat"); - if (r < 0) - return table_log_add_error(r); - if (i.vtnr > 0) - r = table_add_cell_stringf(table, NULL, "%s; vc%u", i.seat, i.vtnr); - else - r = table_add_cell(table, NULL, TABLE_STRING, i.seat); - if (r < 0) - return table_log_add_error(r); + if (!isempty(i.seat)) { + r = table_add_cell(table, NULL, TABLE_FIELD, "Seat"); + if (r < 0) + return table_log_add_error(r); - if (i.tty) + if (i.vtnr > 0) + r = table_add_cell_stringf(table, NULL, "%s; vc%u", i.seat, i.vtnr); + else + r = table_add_cell(table, NULL, TABLE_STRING, i.seat); + if (r < 0) + return table_log_add_error(r); + } + + if (!isempty(i.tty)) r = table_add_many(table, TABLE_FIELD, "TTY", TABLE_STRING, i.tty); - else if (i.display) + else if (!isempty(i.display)) r = table_add_many(table, TABLE_FIELD, "Display", TABLE_STRING, i.display); @@ -692,6 +702,8 @@ static int print_user_status_info(sd_bus *bus, const char *path) { if (!table) return log_oom(); + (void) table_set_ersatz_string(table, TABLE_ERSATZ_NA); + if (dual_timestamp_is_set(&i.timestamp)) { r = table_add_cell(table, NULL, TABLE_FIELD, "Since"); if (r < 0) @@ -790,6 +802,8 @@ static int print_seat_status_info(sd_bus *bus, const char *path) { if (!table) return log_oom(); + (void) table_set_ersatz_string(table, TABLE_ERSATZ_NA); + if (!strv_isempty(i.sessions)) { _cleanup_strv_free_ char **sessions = TAKE_PTR(i.sessions); diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 641050f8ba5..c6133077f0c 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -861,12 +861,12 @@ void user_update_last_session_timer(User *u) { } static const char* const user_state_table[_USER_STATE_MAX] = { - [USER_OFFLINE] = "offline", - [USER_OPENING] = "opening", + [USER_OFFLINE] = "offline", + [USER_OPENING] = "opening", [USER_LINGERING] = "lingering", - [USER_ONLINE] = "online", - [USER_ACTIVE] = "active", - [USER_CLOSING] = "closing" + [USER_ONLINE] = "online", + [USER_ACTIVE] = "active", + [USER_CLOSING] = "closing" }; DEFINE_STRING_TABLE_LOOKUP(user_state, UserState); diff --git a/test/units/testsuite-35.sh b/test/units/testsuite-35.sh index fa942091e6f..36e26da885a 100755 --- a/test/units/testsuite-35.sh +++ b/test/units/testsuite-35.sh @@ -544,7 +544,7 @@ testcase_list_users_sessions_seats() { assert_eq "$(loginctl list-sessions --no-legend | awk '$3 == "logind-test-user" { print $5 }')" tty2 assert_eq "$(loginctl list-sessions --no-legend | awk '$3 == "logind-test-user" { print $6 }')" active assert_eq "$(loginctl list-sessions --no-legend | awk '$3 == "logind-test-user" { print $7 }')" no - assert_eq "$(loginctl list-sessions --no-legend | awk '$3 == "logind-test-user" { print $8 }')" '' + assert_eq "$(loginctl list-sessions --no-legend | awk '$3 == "logind-test-user" { print $8 }')" '-' loginctl list-seats --no-legend | grep -Fwq "${seat?}"