diff options
author | Rob Landley | 2006-03-11 18:22:35 +0000 |
---|---|---|
committer | Rob Landley | 2006-03-11 18:22:35 +0000 |
commit | 1c60d9762e150ed9f3bd4584a639ff2d6996699c (patch) | |
tree | 8e669ca1b29672e01df57512a286416a380a430c /coreutils/who.c | |
parent | 9e094552c8ca9f7e518a071f12eeafda81e2423b (diff) | |
download | busybox-1c60d9762e150ed9f3bd4584a639ff2d6996699c.zip busybox-1c60d9762e150ed9f3bd4584a639ff2d6996699c.tar.gz |
Size reduction by Tito.
Diffstat (limited to 'coreutils/who.c')
-rw-r--r-- | coreutils/who.c | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/coreutils/who.c b/coreutils/who.c index 1156ba2..2773e1a 100644 --- a/coreutils/who.c +++ b/coreutils/who.c @@ -14,14 +14,10 @@ *---------------------------------------------------------------------- */ -#include <sys/types.h> -#include <fcntl.h> -#include <unistd.h> +#include <stdio.h> #include <stdlib.h> #include <utmp.h> #include <sys/stat.h> -#include <errno.h> -#include <string.h> #include <time.h> #include "busybox.h" @@ -29,36 +25,24 @@ int who_main(int argc, char **argv) { struct utmp *ut; struct stat st; - int devlen, len; - time_t now, idle; + time_t idle; + char *name; if (argc > 1) bb_show_usage(); setutent(); - devlen = sizeof("/dev/") - 1; printf("USER TTY IDLE FROM HOST\n"); while ((ut = getutent()) != NULL) { - char name[40]; if (ut->ut_user[0] && ut->ut_type == USER_PROCESS) { - len = strlen(ut->ut_line); - if (ut->ut_line[0] == '/') { - strncpy(name, ut->ut_line, len); - name[len] = '\0'; - strcpy(ut->ut_line, ut->ut_line + devlen); - } else { - strcpy(name, "/dev/"); - strncpy(name+devlen, ut->ut_line, len); - name[devlen+len] = '\0'; - } - + /* ut->ut_line is device name of tty - "/dev/" */ printf("%-10s %-8s ", ut->ut_user, ut->ut_line); + name = concat_path_file("/dev/", ut->ut_line); if (stat(name, &st) == 0) { - now = time(NULL); - idle = now - st.st_atime; + idle = time(NULL) - st.st_atime; if (idle < 60) printf("00:00m "); @@ -75,6 +59,7 @@ int who_main(int argc, char **argv) printf("%-8s ", "?"); printf("%-12.12s %s\n", ctime((time_t*)&(ut->ut_tv.tv_sec)) + 4, ut->ut_host); + free(name); } } endutent(); |