[Toybox] [PATCH] who: make the output more like coreutils who.
enh
enh at google.com
Thu Jan 31 13:13:20 PST 2019
Also add a TODO for the (undocumented, half-finished) -a option.
---
toys/posix/who.c | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/toys/posix/who.c b/toys/posix/who.c
index 53252e87..2515af38 100644
--- a/toys/posix/who.c
+++ b/toys/posix/who.c
@@ -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();
}
--
2.20.1.495.gaa96b0ce6b-goog
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-who-make-the-output-more-like-coreutils-who.patch
Type: text/x-patch
Size: 1693 bytes
Desc: not available
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20190131/fc4b7304/attachment-0002.bin>
More information about the Toybox
mailing list