- Set the minimum width for login name to 4, the width of "USER".

- Fix the number of colmuns left for proc. args.  Previously, an effect of
  NUL was canceled implicitly, but now we must handle it explicitly.
- Fix the width for tty name.
This commit is contained in:
enami 2000-07-15 22:45:14 +00:00
parent 24c327fe78
commit ce5e5c761e
1 changed files with 7 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: w.c,v 1.38 2000/07/13 14:28:07 simonb Exp $ */
/* $NetBSD: w.c,v 1.39 2000/07/15 22:45:14 enami Exp $ */
/*-
* Copyright (c) 1980, 1991, 1993, 1994
@ -43,7 +43,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 1991, 1993, 1994\n\
#if 0
static char sccsid[] = "@(#)w.c 8.6 (Berkeley) 6/30/94";
#else
__RCSID("$NetBSD: w.c,v 1.38 2000/07/13 14:28:07 simonb Exp $");
__RCSID("$NetBSD: w.c,v 1.39 2000/07/15 22:45:14 enami Exp $");
#endif
#endif /* not lint */
@ -94,7 +94,7 @@ kvm_t *kd;
time_t now; /* the current time of day */
time_t uptime; /* time of last reboot & elapsed time since */
int ttywidth; /* width of tty */
int argwidth; /* width of tty */
int argwidth; /* width of tty left to print process args */
int header = 1; /* true if -h flag: don't print heading */
int nflag; /* true if -n flag: don't convert addrs */
int sortidle; /* sort bu idle time */
@ -228,7 +228,7 @@ main(argc, argv)
if ((kp = kvm_getproc2(kd, KERN_PROC_ALL, 0,
sizeof(struct kinfo_proc2), &nentries)) == NULL)
errx(1, "%s", kvm_geterr(kd));
lognamelen = 0;
lognamelen = sizeof("USER") - 1 /* NUL */;
for (i = 0; i < nentries; i++, kp++) {
if (kp->p_stat == SIDL || kp->p_stat == SZOMB)
@ -249,10 +249,10 @@ main(argc, argv)
}
}
argwidth = printf("%-*sTTY %-*s %*s IDLE WHAT\n",
argwidth = printf("%-*s TTY %-*s %*s IDLE WHAT\n",
lognamelen, "USER", UT_HOSTSIZE, "FROM",
7 /* "dddhhXm" */, "LOGIN@");
argwidth -= sizeof("WHAT\n");
argwidth -= sizeof("WHAT\n") - 1 /* NUL */;
if ((ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) == -1 &&
ioctl(STDERR_FILENO, TIOCGWINSZ, &ws) == -1 &&
@ -317,7 +317,7 @@ main(argc, argv)
(int)(ep->utmp.ut_host + UT_HOSTSIZE - x), x);
p = buf;
}
(void)printf("%-*s %-2.2s %-*.*s ",
(void)printf("%-*s %-3.3s %-*.*s ",
lognamelen, ep->kp->p_login,
(strncmp(ep->utmp.ut_line, "tty", 3) &&
strncmp(ep->utmp.ut_line, "dty", 3)) ?