diff options
-rw-r--r-- | login-utils/last.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/login-utils/last.c b/login-utils/last.c index 9682764f0..8d82c106e 100644 --- a/login-utils/last.c +++ b/login-utils/last.c @@ -138,6 +138,7 @@ static struct last_timefmt timefmts[] = { /* Global variables */ static unsigned int recsdone; /* Number of records listed */ static time_t lastdate; /* Last date we've seen */ +static time_t currentdate; /* date when we started processing the file */ /* --time-format=option parser */ static int which_time_format(const char *optarg) @@ -372,7 +373,7 @@ static void trim_trailing_spaces(char *s) */ static int list(const struct last_control *ctl, struct utmp *p, time_t logout_time, int what) { - time_t secs, utmp_time, now; + time_t secs, utmp_time; char logintime[LAST_TIMESTAMP_LEN]; char logouttime[LAST_TIMESTAMP_LEN]; char length[LAST_TIMESTAMP_LEN]; @@ -428,8 +429,7 @@ static int list(const struct last_control *ctl, struct utmp *p, time_t logout_ti hours = (secs / 3600) % 24; days = secs / 86400; - now = time(NULL); - if (logout_time == now) { + if (logout_time == currentdate) { if (ctl->time_fmt > LAST_TIMEFTM_SHORT_CTIME) { sprintf(logouttime, " still running"); length[0] = 0; @@ -638,7 +638,7 @@ static void process_wtmp_file(const struct last_control *ctl, /* * Fill in 'lastdate' */ - lastdate = lastdown; + lastdate = currentdate = lastrch = lastdown; /* * Install signal handlers |