aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/top
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2008-01-09 18:06:24 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2008-01-09 18:06:24 +0000
commitdbb295662035a42acb0014325e04e2cb9ebfa8bd (patch)
tree7227af220d557c3c92c71e07a629431802e4950c /usr.bin/top
parentb9dca7a18c11513a7e1839ef815e33c0f4975906 (diff)
downloadsrc-dbb295662035a42acb0014325e04e2cb9ebfa8bd.tar.gz
src-dbb295662035a42acb0014325e04e2cb9ebfa8bd.zip
Improve -u (limit uid lookups) behavior.
Submitted by: David Frascone <dave@frascone.com> PR: 119490
Notes
Notes: svn path=/head/; revision=175195
Diffstat (limited to 'usr.bin/top')
-rw-r--r--usr.bin/top/machine.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/usr.bin/top/machine.c b/usr.bin/top/machine.c
index cc12705b4c89..d6fa14c04286 100644
--- a/usr.bin/top/machine.c
+++ b/usr.bin/top/machine.c
@@ -60,7 +60,11 @@ extern struct process_select ps;
extern char* printable(char *);
static int smpmode;
enum displaymodes displaymode;
+#ifdef TOP_USERNAME_LEN
+static int namelength = TOP_USERNAME_LEN;
+#else
static int namelength = 8;
+#endif
static int cmdlengthdelta;
/* Prototypes for top internals */
@@ -223,7 +227,7 @@ static void getsysctl(const char *name, void *ptr, size_t len);
static int swapmode(int *retavail, int *retfree);
int
-machine_init(struct statics *statics)
+machine_init(struct statics *statics, char do_unames)
{
int pagesize;
size_t modelen;
@@ -237,9 +241,11 @@ machine_init(struct statics *statics)
modelen != sizeof(smpmode))
smpmode = 0;
- while ((pw = getpwent()) != NULL) {
+ if (do_unames) {
+ while ((pw = getpwent()) != NULL) {
if (strlen(pw->pw_name) > namelength)
namelength = strlen(pw->pw_name);
+ }
}
if (smpmode && namelength > SMPUNAMELEN)
namelength = SMPUNAMELEN;