Size reduction by Tito.
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -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(); | |