From 5bbbb3676151cc07f81e23d5970bd0db0823df39 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 12 Apr 2022 18:38:12 -0400 Subject: move username check from output to utmpx_state() --- who.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/who.c b/who.c index 729e4a2..7ef8426 100644 --- a/who.c +++ b/who.c @@ -36,6 +36,10 @@ char utmpx_state(const struct utmpx *u) snprintf(term, sizeof(term), "/dev/%s", u->ut_line); struct stat st; + if (u->ut_user[0] == '\0') { + return ' '; + } + if (stat(term, &st) == -1) { return '?'; } @@ -140,7 +144,7 @@ int main(int argc, char *argv[]) struct utmpx *u = NULL; while ((u = getutxent()) != NULL) { if (flags == QUICK) { - printf("%s\n", u->ut_user); + printf("%*s\n", (int)(sizeof(u->ut_user)), u->ut_user); continue; } @@ -163,11 +167,7 @@ int main(int argc, char *argv[]) printf("%-12s\t", u->ut_user); if (flags & TERMINAL) { - if (u->ut_user[0] == '\0') { - printf(" "); - } else { - printf("%c ", utmpx_state(u)); - } + printf("%c ", utmpx_state(u)); } printf("%-8s\t", u->ut_line); -- cgit v1.2.1