From c846a886db9b5cfa1e1c79bcb85c1d08531e17a4 Mon Sep 17 00:00:00 2001 From: albert <> Date: Tue, 26 Nov 2002 00:04:25 +0000 Subject: [PATCH] part 2 --- w.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/w.c b/w.c index 3b3384b0..136257f8 100644 --- a/w.c +++ b/w.c @@ -123,7 +123,9 @@ static void print_logintime(time_t logt, FILE* fout) { */ static proc_t *getproc(const utmp_t *restrict const u, const char *restrict const tty, const unsigned long long *restrict jcpu, const int *restrict found_utpid) { int line; - proc_t **p, *best = NULL, *secondbest = NULL; + proc_t **pptr = procs; + proc_t *best = NULL; + proc_t *secondbest = NULL; unsigned uid = ~0U; if(!ignoreuser){ @@ -139,22 +141,23 @@ static proc_t *getproc(const utmp_t *restrict const u, const char *restrict cons line = tty_to_dev(tty); *jcpu = 0; *found_utpid = 0; - for(p = procs; *p; p++) { - if((**p).pid == u->ut_pid) { + for(; *pptr; pptr++) { + const proc_t *restrict const tmp = *pptr; + if(tmp->pid == u->ut_pid) { *found_utpid = 1; - best = *p; + best = tmp; } - if((**p).tty != line) continue; - (*jcpu) += (**p).utime + (**p).stime; - secondbest = *p; + if(tmp->tty != line) continue; + (*jcpu) += tmp->utime + tmp->stime; + secondbest = tmp; /* same time-logic here as for "best" below */ - if(! (secondbest && (**p).start_time <= secondbest->start_time) ){ - secondbest = *p; + if(! (secondbest && tmp->start_time <= secondbest->start_time) ){ + secondbest = tmp; } - if(!ignoreuser && uid != (**p).euid && uid != (**p).ruid) continue; - if((**p).pid != (**p).tpgid) continue; - if(best && (**p).start_time <= best->start_time) continue; - best = *p; + if(!ignoreuser && uid != tmp->euid && uid != tmp->ruid) continue; + if(tmp->pid != tmp->tpgid) continue; + if(best && tmp->start_time <= best->start_time) continue; + best = tmp; } return best ? best : secondbest; }