diff options
Diffstat (limited to 'who.c')
-rw-r--r-- | who.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -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); |