svn commit: r202013 - user/ed/utmpx/usr.bin/w

Ed Schouten ed at FreeBSD.org
Sun Jan 10 16:30:54 UTC 2010


Author: ed
Date: Sun Jan 10 16:30:54 2010
New Revision: 202013
URL: http://svn.freebsd.org/changeset/base/202013

Log:
  Make w(1) behave a little bit better when no TTY is associated.
  
  This allows it to more properly display entries generated by ftpd.

Modified:
  user/ed/utmpx/usr.bin/w/w.c

Modified: user/ed/utmpx/usr.bin/w/w.c
==============================================================================
--- user/ed/utmpx/usr.bin/w/w.c	Sun Jan 10 16:08:14 2010	(r202012)
+++ user/ed/utmpx/usr.bin/w/w.c	Sun Jan 10 16:30:54 2010	(r202013)
@@ -282,7 +282,8 @@ main(int argc, char *argv[])
 	if ((kp = kvm_getprocs(kd, KERN_PROC_ALL, 0, &nentries)) == NULL)
 		err(1, "%s", kvm_geterr(kd));
 	for (i = 0; i < nentries; i++, kp++) {
-		if (kp->ki_stat == SIDL || kp->ki_stat == SZOMB)
+		if (kp->ki_stat == SIDL || kp->ki_stat == SZOMB ||
+		    kp->ki_tdev == NODEV)
 			continue;
 		for (ep = ehead; ep != NULL; ep = ep->next) {
 			if (ep->tdev == kp->ki_tdev) {
@@ -417,9 +418,10 @@ main(int argc, char *argv[])
 		(void)printf("%-*.*s %-*.*s %-*.*s ",
 		    W_DISPUSERSIZE, W_DISPUSERSIZE, ep->utmp.ut_user,
 		    W_DISPLINESIZE, W_DISPLINESIZE,
-		    strncmp(ep->utmp.ut_line, "tty", 3) &&
+		    *ep->utmp.ut_line ?
+		    (strncmp(ep->utmp.ut_line, "tty", 3) &&
 		    strncmp(ep->utmp.ut_line, "cua", 3) ?
-		    ep->utmp.ut_line : ep->utmp.ut_line + 3,
+		    ep->utmp.ut_line : ep->utmp.ut_line + 3) : "-",
 		    W_DISPHOSTSIZE, W_DISPHOSTSIZE, *p ? p : "-");
 		t = ep->utmp.ut_tv.tv_sec;
 		longattime = pr_attime(&t, &now);


More information about the svn-src-user mailing list