diff options
-rw-r--r-- | login-utils/last.c | 13 | ||||
-rw-r--r-- | tests/expected/last/last | 10 |
2 files changed, 16 insertions, 7 deletions
diff --git a/login-utils/last.c b/login-utils/last.c index 73a4b4791..419162e29 100644 --- a/login-utils/last.c +++ b/login-utils/last.c @@ -370,7 +370,7 @@ static void trim_trailing_spaces(char *s) */ static int list(const struct last_control *ctl, struct utmp *p, time_t t, int what) { - time_t secs, tmp; + time_t secs, tmp, epoch; char logintime[LAST_TIMESTAMP_LEN]; char logouttime[LAST_TIMESTAMP_LEN]; char length[LAST_TIMESTAMP_LEN]; @@ -421,7 +421,16 @@ static int list(const struct last_control *ctl, struct utmp *p, time_t t, int wh mins = (secs / 60) % 60; hours = (secs / 3600) % 24; days = secs / 86400; - if (days) + + epoch = time(NULL); + if (t == epoch) { + if (ctl->fulltime) + sprintf(logouttime, " still running"); + else { + sprintf(logouttime, " still"); + sprintf(length, "running"); + } + } else if (days) sprintf(length, "(%d+%02d:%02d)", days, hours, mins); else sprintf(length, " (%02d:%02d)", hours, mins); diff --git a/tests/expected/last/last b/tests/expected/last/last index baa6ebcd1..2ff5cc19b 100644 --- a/tests/expected/last/last +++ b/tests/expected/last/last @@ -1,7 +1,7 @@ ~~~ basic output ~~~ rick long never-gonna-logo Thu Jan 1 00:00 - 03:14 (24855+03:14) torvalds linux hobby Mon Aug 26 00:57 still logged in -reboot system boot system-name Wed Aug 28 18:00 - 18:50 (00:50) +reboot system boot system-name Wed Aug 28 18:00 still running reboot system boot system-name Wed Aug 28 16:00 - 17:00 (01:00) IPv4 root dns-server Wed Aug 28 13:00 - 14:00 (01:00) nonvalid foo zero Wed Aug 28 12:00 - down (03:00) @@ -18,7 +18,7 @@ wtmp begins Wed Aug 28 03:00:00 2013 ~~~ include system ~~~ rick long never-gonna-logo Thu Jan 1 00:00 - 03:14 (24855+03:14) torvalds linux hobby Mon Aug 26 00:57 still logged in -reboot system boot system-name Wed Aug 28 18:00 - 18:50 (00:50) +reboot system boot system-name Wed Aug 28 18:00 still running shutdown system down system-name Wed Aug 28 17:00 - 18:00 (01:00) reboot system boot system-name Wed Aug 28 16:00 - 17:00 (01:00) shutdown system down system-name Wed Aug 28 15:00 - 16:00 (01:00) @@ -57,7 +57,7 @@ wtmp begins Wed Aug 28 03:00:00 2013 ~~~ full times ~~~ rick long never-gonna-logo Thu Jan 1 00:00:00 1970 - Tue Jan 19 03:14:07 2038 (24855+03:14) torvalds linux hobby Mon Aug 26 00:57:08 1991 still logged in -reboot system boot system-name Wed Aug 28 18:00:00 2013 - Wed Aug 28 18:50:27 2013 (00:50) +reboot system boot system-name Wed Aug 28 18:00:00 2013 still running reboot system boot system-name Wed Aug 28 16:00:00 2013 - Wed Aug 28 17:00:00 2013 (01:00) IPv4 root dns-server Wed Aug 28 13:00:00 2013 - Wed Aug 28 14:00:00 2013 (01:00) nonvalid foo zero Wed Aug 28 12:00:00 2013 - down (03:00) @@ -74,7 +74,7 @@ wtmp begins Wed Aug 28 03:00:00 2013 ~~~ no time ~~~ rick long never-gonna-logo (24855+03:14) torvalds linux hobby logged in -reboot system boot system-name (00:50) +reboot system boot system-name running reboot system boot system-name (01:00) IPv4 root dns-server (01:00) nonvalid foo zero (03:00) @@ -91,7 +91,7 @@ wtmp begins Wed Aug 28 03:00:00 2013 ~~~ iso-8601 time ~~~ rick long never-gonna-logout 1970-01-01T00:00:00+0000 - 2038-01-19T03:14:07+0000 (24855+03:14) torvalds linux hobby 1991-08-26T00:57:08+0000 still logged in -reboot system boot system-name 2013-08-28T18:00:00+0000 - 2013-08-28T18:50:27+0000 (00:50) +reboot system boot system-name 2013-08-28T18:00:00+0000 still running reboot system boot system-name 2013-08-28T16:00:00+0000 - 2013-08-28T17:00:00+0000 (01:00) IPv4 root dns-server 2013-08-28T13:00:00+0000 - 2013-08-28T14:00:00+0000 (01:00) nonvalid foo zero 2013-08-28T12:00:00+0000 - down (03:00) |