mirror of
https://codeberg.org/landley/toybox.git
synced 2026-01-26 14:13:25 +00:00
who: make the output more like coreutils who.
Also add a TODO for the (undocumented, half-finished) -a option.
This commit is contained in:
parent
354cc6aa0c
commit
fa8a717bb9
@ -8,6 +8,8 @@
|
||||
*
|
||||
* Posix says to support many options (-abdHlmpqrstTu) but this
|
||||
* isn't aimed at minicomputers with modem pools.
|
||||
*
|
||||
* TODO: -a doesn't know how to format other entries
|
||||
|
||||
USE_WHO(NEWTOY(who, "a", TOYFLAG_USR|TOYFLAG_BIN))
|
||||
|
||||
@ -18,7 +20,7 @@ config WHO
|
||||
help
|
||||
usage: who
|
||||
|
||||
Print logged user information on system
|
||||
Print information about logged in users.
|
||||
*/
|
||||
|
||||
#define FOR_who
|
||||
@ -29,20 +31,15 @@ void who_main(void)
|
||||
struct utmpx *entry;
|
||||
|
||||
setutxent();
|
||||
|
||||
while ((entry = getutxent())) {
|
||||
if (FLAG(a) || entry->ut_type == USER_PROCESS) {
|
||||
time_t time;
|
||||
int time_size;
|
||||
char *times;
|
||||
time_t t = entry->ut_tv.tv_sec;
|
||||
struct tm *tm = localtime(&t);
|
||||
|
||||
time = entry->ut_tv.tv_sec;
|
||||
times = ctime(&time);
|
||||
time_size = strlen(times) - 2;
|
||||
printf("%s\t%s\t%*.*s\t(%s)\n", entry->ut_user, entry->ut_line,
|
||||
time_size, time_size, ctime(&time), entry->ut_host);
|
||||
strftime(toybuf, sizeof(toybuf), "%F %H:%M", tm);
|
||||
printf("%s\t%s\t%s (%s)\n", entry->ut_user, entry->ut_line,
|
||||
toybuf, entry->ut_host);
|
||||
}
|
||||
}
|
||||
|
||||
endutxent();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user