default to not sorting tty names with alphabetical sort and add

a new -A switch to sort them again.

enable the sorting code if either utmp or utmpx are enabled,
not just both.  shouldn't matter as we enable both.
This commit is contained in:
mrg 2022-05-26 02:24:00 +00:00
parent fd0c7d1ecd
commit 4350eb0487
2 changed files with 18 additions and 10 deletions

View File

@ -1,4 +1,4 @@
.\" $NetBSD: w.1,v 1.19 2018/12/06 19:15:35 sevan Exp $ .\" $NetBSD: w.1,v 1.20 2022/05/26 02:24:00 mrg Exp $
.\" .\"
.\" Copyright (c) 1980, 1990, 1991, 1993 .\" Copyright (c) 1980, 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved. .\" The Regents of the University of California. All rights reserved.
@ -29,7 +29,7 @@
.\" .\"
.\" @(#)w.1 8.1 (Berkeley) 6/6/93 .\" @(#)w.1 8.1 (Berkeley) 6/6/93
.\" .\"
.Dd December 6, 2018 .Dd May 25, 2022
.Dt W 1 .Dt W 1
.Os .Os
.Sh NAME .Sh NAME
@ -37,7 +37,7 @@
.Nd who present users are and what they are doing .Nd who present users are and what they are doing
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl hinw .Op Fl Ahinw
.Op Fl M Ar core .Op Fl M Ar core
.Op Fl N Ar system .Op Fl N Ar system
.Op Ar user .Op Ar user
@ -61,6 +61,8 @@ and the name and arguments of the current process.
.Pp .Pp
The options are as follows: The options are as follows:
.Bl -tag -width Ds .Bl -tag -width Ds
.It Fl A
Sort tty names alphabetically, instead of utmp or utmpx order.
.It Fl h .It Fl h
Suppress the heading. Suppress the heading.
.It Fl i .It Fl i
@ -94,7 +96,9 @@ list of users on the system
.Xr ps 1 , .Xr ps 1 ,
.Xr uptime 1 , .Xr uptime 1 ,
.Xr who 1 , .Xr who 1 ,
.Xr getloadavg 3 .Xr getloadavg 3 ,
.Xr utmp 5 ,
.Xr utmpx 5
.Sh HISTORY .Sh HISTORY
The The
.Nm .Nm

View File

@ -1,4 +1,4 @@
/* $NetBSD: w.c,v 1.91 2021/04/17 06:14:15 maya Exp $ */ /* $NetBSD: w.c,v 1.92 2022/05/26 02:24:00 mrg Exp $ */
/*- /*-
* Copyright (c) 1980, 1991, 1993, 1994 * Copyright (c) 1980, 1991, 1993, 1994
@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 1991, 1993, 1994\
#if 0 #if 0
static char sccsid[] = "@(#)w.c 8.6 (Berkeley) 6/30/94"; static char sccsid[] = "@(#)w.c 8.6 (Berkeley) 6/30/94";
#else #else
__RCSID("$NetBSD: w.c,v 1.91 2021/04/17 06:14:15 maya Exp $"); __RCSID("$NetBSD: w.c,v 1.92 2022/05/26 02:24:00 mrg Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -95,7 +95,8 @@ int argwidth; /* width of tty left to print process args */
int header = 1; /* true if -h flag: don't print heading */ int header = 1; /* true if -h flag: don't print heading */
int nflag; /* true if -n flag: don't convert addrs */ int nflag; /* true if -n flag: don't convert addrs */
int wflag; /* true if -w flag: wide printout */ int wflag; /* true if -w flag: wide printout */
int sortidle; /* sort bu idle time */ int sortidle; /* sort by idle time */
int alphasort; /* sort by tty alphabeta, not numeric */
char *sel_user; /* login of particular user selected */ char *sel_user; /* login of particular user selected */
char domain[MAXHOSTNAMELEN + 1]; char domain[MAXHOSTNAMELEN + 1];
int maxname = 8, maxline = 3, maxhost = 16; int maxname = 8, maxline = 3, maxhost = 16;
@ -158,12 +159,15 @@ main(int argc, char **argv)
options = ""; options = "";
} else { } else {
wcmd = 1; wcmd = 1;
options = "hiM:N:nw"; options = "AhiM:N:nw";
} }
memf = nlistf = NULL; memf = nlistf = NULL;
while ((ch = getopt(argc, argv, options)) != -1) while ((ch = getopt(argc, argv, options)) != -1)
switch (ch) { switch (ch) {
case 'A':
alphasort = 1;
break;
case 'h': case 'h':
header = 0; header = 0;
break; break;
@ -382,8 +386,8 @@ main(int argc, char **argv)
*nextp = save; *nextp = save;
} }
} }
#if defined(SUPPORT_UTMP) && defined(SUPPORT_UTMPX) #if defined(SUPPORT_UTMP) || defined(SUPPORT_UTMPX)
else if (ehead != NULL) { else if (ehead != NULL && alphasort) {
struct entry *from = ehead, *save; struct entry *from = ehead, *save;
ehead = NULL; ehead = NULL;