From owner-svn-src-all@FreeBSD.ORG Thu Mar 24 17:20:24 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A3411065672; Thu, 24 Mar 2011 17:20:24 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4BA678FC0A; Thu, 24 Mar 2011 17:20:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p2OHKOGM052310; Thu, 24 Mar 2011 17:20:24 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p2OHKOUd052306; Thu, 24 Mar 2011 17:20:24 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201103241720.p2OHKOUd052306@svn.freebsd.org> From: Edward Tomasz Napierala Date: Thu, 24 Mar 2011 17:20:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219967 - head/bin/ps X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Mar 2011 17:20:24 -0000 Author: trasz Date: Thu Mar 24 17:20:24 2011 New Revision: 219967 URL: http://svn.freebsd.org/changeset/base/219967 Log: Make "LOGIN" and "CLASS" columns width scale properly instead of wasting space. Modified: head/bin/ps/extern.h head/bin/ps/keyword.c head/bin/ps/print.c Modified: head/bin/ps/extern.h ============================================================================== --- head/bin/ps/extern.h Thu Mar 24 17:09:37 2011 (r219966) +++ head/bin/ps/extern.h Thu Mar 24 17:20:24 2011 (r219967) @@ -75,6 +75,8 @@ void runame(KINFO *, VARENT *); void rvar(KINFO *, VARENT *); int s_comm(KINFO *); int s_label(KINFO *); +int s_loginclass(KINFO *); +int s_logname(KINFO *); int s_rgroupname(KINFO *); int s_runame(KINFO *); int s_uname(KINFO *); Modified: head/bin/ps/keyword.c ============================================================================== --- head/bin/ps/keyword.c Thu Mar 24 17:09:37 2011 (r219966) +++ head/bin/ps/keyword.c Thu Mar 24 17:20:24 2011 (r219967) @@ -79,8 +79,8 @@ static VAR var[] = { CHAR, NULL, 0}, {"blocked", "", "sigmask", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"caught", "", "sigcatch", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, - {"class", "CLASS", NULL, LJUST, loginclass, NULL, MAXLOGNAME-1, 0, - CHAR, NULL, 0}, + {"class", "CLASS", NULL, LJUST|DSIZ, loginclass, s_loginclass, + MAXLOGNAME-1, 0, CHAR, NULL, 0}, {"comm", "COMMAND", NULL, LJUST|DSIZ, ucomm, s_comm, COMMLEN + OCOMMLEN + 1, 0, CHAR, NULL, 0}, {"command", "COMMAND", NULL, COMM|LJUST|USER, command, NULL, 16, 0, @@ -108,8 +108,8 @@ static VAR var[] = { {"lim", "LIM", NULL, 0, maxrss, NULL, 5, 0, CHAR, NULL, 0}, {"lockname", "LOCK", NULL, LJUST, lockname, NULL, 6, 0, CHAR, NULL, 0}, - {"login", "LOGIN", NULL, LJUST, logname, NULL, MAXLOGNAME-1, 0, CHAR, - NULL, 0}, + {"login", "LOGIN", NULL, LJUST|DSIZ, logname, s_logname, MAXLOGNAME-1, + 0, CHAR, NULL, 0}, {"logname", "", "login", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"lstart", "STARTED", NULL, LJUST|USER, lstarted, NULL, 28, 0, CHAR, NULL, 0}, Modified: head/bin/ps/print.c ============================================================================== --- head/bin/ps/print.c Thu Mar 24 17:09:37 2011 (r219966) +++ head/bin/ps/print.c Thu Mar 24 17:20:24 2011 (r219967) @@ -908,7 +908,7 @@ loginclass(KINFO *k, VARENT *ve) * and limits don't apply to system processes. */ if (k->ki_p->ki_flag & P_SYSTEM) { - (void)printf("%-*s", v->width, " -"); + (void)printf("%-*s", v->width, "-"); return; } s = k->ki_p->ki_loginclass; @@ -948,3 +948,30 @@ s_label(KINFO *k) mac_free(proclabel); return (size); } + +int +s_loginclass(KINFO *k) +{ + char *s; + + if (k->ki_p->ki_flag & P_SYSTEM) + return (1); + + s = k->ki_p->ki_loginclass; + if (s == NULL) + return (1); + + return (strlen(s)); +} + +int +s_logname(KINFO *k) +{ + char *s; + + s = k->ki_p->ki_login; + if (s == NULL) + return (1); + + return (strlen(s)); +}