char *args; /* arg list of interesting process */
struct kinfo_proc *dkp; /* debug option proc list */
char *from; /* "from": name or addr */
+ char *save_from; /* original "from": name or addr */
} *ep, *ehead = NULL, **nextp = &ehead;
#define debugproc(p) *(&((struct kinfo_proc *)p)->ki_udata)
if (*argv)
sel_users = argv;
- save_p = NULL;
setutxent();
for (nusers = 0; (utmp = getutxent()) != NULL;) {
struct addrinfo hints, *res;
ep->from = strdup(p);
if ((i = strlen(p)) > fromwidth)
fromwidth = i;
+ if (save_p != p)
+ ep->save_from = strdup(save_p);
}
endutxent();
strncmp(ep->utmp.ut_line, "cua", 3) ?
ep->utmp.ut_line : ep->utmp.ut_line + 3) : "-");
- if (save_p && save_p != p)
- xo_attr("address", "%s", save_p);
+ if (ep->save_from)
+ xo_attr("address", "%s", ep->save_from);
xo_emit("{:from/%-*.*s/%@**@s} ",
fromwidth, fromwidth, ep->from);
t = ep->utmp.ut_tv.tv_sec;