From owner-svn-src-all@FreeBSD.ORG Thu Sep 29 12:14:57 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id 377021065676; Thu, 29 Sep 2011 12:14:57 +0000 (UTC) Date: Thu, 29 Sep 2011 12:14:57 +0000 From: Alexander Best To: Edward Tomasz Napierala Message-ID: <20110929121457.GA53600@freebsd.org> References: <201109290631.p8T6VgJ3008377@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201109290631.p8T6VgJ3008377@svn.freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r225868 - 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, 29 Sep 2011 12:14:57 -0000 On Thu Sep 29 11, Edward Tomasz Napierala wrote: > Author: trasz > Date: Thu Sep 29 06:31:42 2011 > New Revision: 225868 > URL: http://svn.freebsd.org/changeset/base/225868 > > Log: > Make ps(1) automatically size its column widths. cool to see this committed. :) i think i wrote you about the two spaces between the "TT" and "TIME" field some time ago. you said that the "TT" entry can contain a postfix "-". can you describe a situation, where this can occur? i've never seen the "TT" field contain an entry larger than 2 chars. cheers. alex > > Modified: > head/bin/ps/extern.h > head/bin/ps/keyword.c > head/bin/ps/print.c > head/bin/ps/ps.c > head/bin/ps/ps.h > > Modified: head/bin/ps/extern.h > ============================================================================== > --- head/bin/ps/extern.h Thu Sep 29 06:00:26 2011 (r225867) > +++ head/bin/ps/extern.h Thu Sep 29 06:31:42 2011 (r225868) > @@ -39,63 +39,52 @@ extern fixpt_t ccpu; > extern int cflag, eval, fscale, nlistread, rawcpu; > extern unsigned long mempages; > extern time_t now; > -extern int showthreads, sumrusage, termwidth, totwidth; > +extern int showthreads, sumrusage, termwidth; > extern STAILQ_HEAD(velisthead, varent) varlist; > > __BEGIN_DECLS > -void arguments(KINFO *, VARENT *); > -void command(KINFO *, VARENT *); > -void cputime(KINFO *, VARENT *); > +char *arguments(KINFO *, VARENT *); > +char *command(KINFO *, VARENT *); > +char *cputime(KINFO *, VARENT *); > int donlist(void); > -void elapsed(KINFO *, VARENT *); > -void elapseds(KINFO *, VARENT *); > -void emulname(KINFO *, VARENT *); > +char *elapsed(KINFO *, VARENT *); > +char *elapseds(KINFO *, VARENT *); > +char *emulname(KINFO *, VARENT *); > VARENT *find_varentry(VAR *); > const char *fmt_argv(char **, char *, size_t); > double getpcpu(const KINFO *); > -void kvar(KINFO *, VARENT *); > -void label(KINFO *, VARENT *); > -void loginclass(KINFO *, VARENT *); > -void logname(KINFO *, VARENT *); > -void longtname(KINFO *, VARENT *); > -void lstarted(KINFO *, VARENT *); > -void maxrss(KINFO *, VARENT *); > -void lockname(KINFO *, VARENT *); > -void mwchan(KINFO *, VARENT *); > -void nwchan(KINFO *, VARENT *); > -void pagein(KINFO *, VARENT *); > +char *kvar(KINFO *, VARENT *); > +char *label(KINFO *, VARENT *); > +char *loginclass(KINFO *, VARENT *); > +char *logname(KINFO *, VARENT *); > +char *longtname(KINFO *, VARENT *); > +char *lstarted(KINFO *, VARENT *); > +char *maxrss(KINFO *, VARENT *); > +char *lockname(KINFO *, VARENT *); > +char *mwchan(KINFO *, VARENT *); > +char *nwchan(KINFO *, VARENT *); > +char *pagein(KINFO *, VARENT *); > void parsefmt(const char *, int); > -void pcpu(KINFO *, VARENT *); > -void pmem(KINFO *, VARENT *); > -void pri(KINFO *, VARENT *); > +char *pcpu(KINFO *, VARENT *); > +char *pmem(KINFO *, VARENT *); > +char *pri(KINFO *, VARENT *); > void printheader(void); > -void priorityr(KINFO *, VARENT *); > -void egroupname(KINFO *, VARENT *); > -void rgroupname(KINFO *, VARENT *); > -void runame(KINFO *, VARENT *); > -void rvar(KINFO *, VARENT *); > -int s_comm(KINFO *); > -int s_cputime(KINFO *); > -int s_label(KINFO *); > -int s_loginclass(KINFO *); > -int s_logname(KINFO *); > -int s_egroupname(KINFO *); > -int s_rgroupname(KINFO *); > -int s_runame(KINFO *); > -int s_systime(KINFO *); > -int s_uname(KINFO *); > -int s_usertime(KINFO *); > +char *priorityr(KINFO *, VARENT *); > +char *egroupname(KINFO *, VARENT *); > +char *rgroupname(KINFO *, VARENT *); > +char *runame(KINFO *, VARENT *); > +char *rvar(KINFO *, VARENT *); > void showkey(void); > -void started(KINFO *, VARENT *); > -void state(KINFO *, VARENT *); > -void systime(KINFO *, VARENT *); > -void tdev(KINFO *, VARENT *); > -void tdnam(KINFO *, VARENT *); > -void tname(KINFO *, VARENT *); > -void ucomm(KINFO *, VARENT *); > -void uname(KINFO *, VARENT *); > -void upr(KINFO *, VARENT *); > -void usertime(KINFO *, VARENT *); > -void vsize(KINFO *, VARENT *); > -void wchan(KINFO *, VARENT *); > +char *started(KINFO *, VARENT *); > +char *state(KINFO *, VARENT *); > +char *systime(KINFO *, VARENT *); > +char *tdev(KINFO *, VARENT *); > +char *tdnam(KINFO *, VARENT *); > +char *tname(KINFO *, VARENT *); > +char *ucomm(KINFO *, VARENT *); > +char *uname(KINFO *, VARENT *); > +char *upr(KINFO *, VARENT *); > +char *usertime(KINFO *, VARENT *); > +char *vsize(KINFO *, VARENT *); > +char *wchan(KINFO *, VARENT *); > __END_DECLS > > Modified: head/bin/ps/keyword.c > ============================================================================== > --- head/bin/ps/keyword.c Thu Sep 29 06:00:26 2011 (r225867) > +++ head/bin/ps/keyword.c Thu Sep 29 06:31:42 2011 (r225868) > @@ -57,178 +57,116 @@ static int vcmp(const void *, const voi > #define KOFF(x) offsetof(struct kinfo_proc, x) > #define ROFF(x) offsetof(struct rusage, x) > > -#define EMULLEN 13 /* enough for "FreeBSD ELF32" */ > #define LWPFMT "d" > -#define LWPLEN 6 > #define NLWPFMT "d" > -#define NLWPLEN 4 > #define UIDFMT "u" > -#define UIDLEN 5 > #define PIDFMT "d" > -#define PIDLEN 5 > -#define USERLEN (MAXLOGNAME - 1) > > /* PLEASE KEEP THE TABLE BELOW SORTED ALPHABETICALLY!!! */ > static VAR var[] = { > - {"%cpu", "%CPU", NULL, 0, pcpu, NULL, 5, 0, CHAR, NULL, 0}, > - {"%mem", "%MEM", NULL, 0, pmem, NULL, 4, 0, CHAR, NULL, 0}, > - {"acflag", "ACFLG", NULL, 0, kvar, NULL, 3, KOFF(ki_acflag), USHORT, > - "x", 0}, > - {"acflg", "", "acflag", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"args", "COMMAND", NULL, COMM|LJUST|USER, arguments, NULL, 16, 0, > + {"%cpu", "%CPU", NULL, 0, pcpu, 0, CHAR, NULL, 0}, > + {"%mem", "%MEM", NULL, 0, pmem, 0, CHAR, NULL, 0}, > + {"acflag", "ACFLG", NULL, 0, kvar, KOFF(ki_acflag), USHORT, "x", 0}, > + {"acflg", "", "acflag", 0, NULL, 0, CHAR, NULL, 0}, > + {"args", "COMMAND", NULL, COMM|LJUST|USER, arguments, 0, > 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, s_loginclass, > - MAXLOGNAME-1, 0, CHAR, NULL, 0}, > - {"comm", "COMMAND", NULL, LJUST, ucomm, s_comm, > - COMMLEN + TDNAMLEN + 1, 0, CHAR, NULL, 0}, > - {"command", "COMMAND", NULL, COMM|LJUST|USER, command, NULL, 16, 0, > + {"blocked", "", "sigmask", 0, NULL, 0, CHAR, NULL, 0}, > + {"caught", "", "sigcatch", 0, NULL, 0, CHAR, NULL, 0}, > + {"class", "CLASS", NULL, LJUST, loginclass, 0, CHAR, NULL, 0}, > + {"comm", "COMMAND", NULL, LJUST, ucomm, 0, CHAR, NULL, 0}, > + {"command", "COMMAND", NULL, COMM|LJUST|USER, command, 0, > CHAR, NULL, 0}, > - {"cpu", "CPU", NULL, 0, kvar, NULL, 3, KOFF(ki_estcpu), UINT, "d", > - 0}, > - {"cputime", "", "time", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"egid", "", "gid", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"egroup", "", "group", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"emul", "EMUL", NULL, LJUST, emulname, NULL, EMULLEN, 0, CHAR, > - NULL, 0}, > - {"etime", "ELAPSED", NULL, USER, elapsed, NULL, 12, 0, CHAR, NULL, 0}, > - {"etimes", "ELAPSED", NULL, USER, elapseds, NULL, 12, 0, CHAR, NULL, 0}, > - {"euid", "", "uid", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"f", "F", NULL, 0, kvar, NULL, 8, KOFF(ki_flag), INT, "x", 0}, > - {"flags", "", "f", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"gid", "GID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_groups), > - UINT, UIDFMT, 0}, > - {"group", "GROUP", NULL, LJUST, egroupname, s_egroupname, > - USERLEN, 0, CHAR, NULL, 0}, > - {"ignored", "", "sigignore", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"inblk", "INBLK", NULL, USER, rvar, NULL, 4, ROFF(ru_inblock), LONG, > - "ld", 0}, > - {"inblock", "", "inblk", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"jid", "JID", NULL, 0, kvar, NULL, 6, KOFF(ki_jid), INT, "d", 0}, > - {"jobc", "JOBC", NULL, 0, kvar, NULL, 4, KOFF(ki_jobc), SHORT, "d", > - 0}, > - {"ktrace", "KTRACE", NULL, 0, kvar, NULL, 8, KOFF(ki_traceflag), INT, > - "x", 0}, > - {"label", "LABEL", NULL, LJUST, label, s_label, SHRT_MAX, 0, CHAR, > - NULL, 0}, > - {"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, 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}, > - {"lwp", "LWP", NULL, 0, kvar, NULL, LWPLEN, KOFF(ki_tid), UINT, > - LWPFMT, 0}, > - {"majflt", "MAJFLT", NULL, USER, rvar, NULL, 4, ROFF(ru_majflt), > - LONG, "ld", 0}, > - {"minflt", "MINFLT", NULL, USER, rvar, NULL, 4, ROFF(ru_minflt), > - LONG, "ld", 0}, > - {"msgrcv", "MSGRCV", NULL, USER, rvar, NULL, 4, ROFF(ru_msgrcv), > - LONG, "ld", 0}, > - {"msgsnd", "MSGSND", NULL, USER, rvar, NULL, 4, ROFF(ru_msgsnd), > - LONG, "ld", 0}, > - {"mwchan", "MWCHAN", NULL, LJUST, mwchan, NULL, 6, 0, CHAR, NULL, 0}, > - {"ni", "", "nice", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"nice", "NI", NULL, 0, kvar, NULL, 2, KOFF(ki_nice), CHAR, "d", > - 0}, > - {"nivcsw", "NIVCSW", NULL, USER, rvar, NULL, 5, ROFF(ru_nivcsw), > - LONG, "ld", 0}, > - {"nlwp", "NLWP", NULL, 0, kvar, NULL, NLWPLEN, KOFF(ki_numthreads), > - UINT, NLWPFMT, 0}, > - {"nsignals", "", "nsigs", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"nsigs", "NSIGS", NULL, USER, rvar, NULL, 4, ROFF(ru_nsignals), > - LONG, "ld", 0}, > - {"nswap", "NSWAP", NULL, USER, rvar, NULL, 4, ROFF(ru_nswap), > - LONG, "ld", 0}, > - {"nvcsw", "NVCSW", NULL, USER, rvar, NULL, 5, ROFF(ru_nvcsw), > - LONG, "ld", 0}, > - {"nwchan", "NWCHAN", NULL, LJUST, nwchan, NULL, sizeof(void *) * 2, 0, > - CHAR, NULL, 0}, > - {"oublk", "OUBLK", NULL, USER, rvar, NULL, 4, ROFF(ru_oublock), > - LONG, "ld", 0}, > - {"oublock", "", "oublk", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"paddr", "PADDR", NULL, 0, kvar, NULL, sizeof(void *) * 2, > - KOFF(ki_paddr), KPTR, "lx", 0}, > - {"pagein", "PAGEIN", NULL, USER, pagein, NULL, 6, 0, CHAR, NULL, 0}, > - {"pcpu", "", "%cpu", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"pending", "", "sig", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"pgid", "PGID", NULL, 0, kvar, NULL, PIDLEN, KOFF(ki_pgid), UINT, > - PIDFMT, 0}, > - {"pid", "PID", NULL, 0, kvar, NULL, PIDLEN, KOFF(ki_pid), UINT, > - PIDFMT, 0}, > - {"pmem", "", "%mem", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"ppid", "PPID", NULL, 0, kvar, NULL, PIDLEN, KOFF(ki_ppid), UINT, > - PIDFMT, 0}, > - {"pri", "PRI", NULL, 0, pri, NULL, 3, 0, CHAR, NULL, 0}, > - {"re", "RE", NULL, INF127, kvar, NULL, 3, KOFF(ki_swtime), UINT, "d", > - 0}, > - {"rgid", "RGID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_rgid), > - UINT, UIDFMT, 0}, > - {"rgroup", "RGROUP", NULL, LJUST, rgroupname, s_rgroupname, > - USERLEN, 0, CHAR, NULL, 0}, > - {"rss", "RSS", NULL, 0, kvar, NULL, 6, KOFF(ki_rssize), PGTOK, "ld", 0}, > - {"rtprio", "RTPRIO", NULL, 0, priorityr, NULL, 7, KOFF(ki_pri), CHAR, > - NULL, 0}, > - {"ruid", "RUID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_ruid), > - UINT, UIDFMT, 0}, > - {"ruser", "RUSER", NULL, LJUST, runame, s_runame, USERLEN, > - 0, CHAR, NULL, 0}, > - {"sid", "SID", NULL, 0, kvar, NULL, PIDLEN, KOFF(ki_sid), UINT, > - PIDFMT, 0}, > - {"sig", "PENDING", NULL, 0, kvar, NULL, 8, KOFF(ki_siglist), INT, > - "x", 0}, > - {"sigcatch", "CAUGHT", NULL, 0, kvar, NULL, 8, KOFF(ki_sigcatch), > - UINT, "x", 0}, > - {"sigignore", "IGNORED", NULL, 0, kvar, NULL, 8, KOFF(ki_sigignore), > + {"cpu", "CPU", NULL, 0, kvar, KOFF(ki_estcpu), UINT, "d", 0}, > + {"cputime", "", "time", 0, NULL, 0, CHAR, NULL, 0}, > + {"egid", "", "gid", 0, NULL, 0, CHAR, NULL, 0}, > + {"egroup", "", "group", 0, NULL, 0, CHAR, NULL, 0}, > + {"emul", "EMUL", NULL, LJUST, emulname, 0, CHAR, NULL, 0}, > + {"etime", "ELAPSED", NULL, USER, elapsed, 0, CHAR, NULL, 0}, > + {"etimes", "ELAPSED", NULL, USER, elapseds, 0, CHAR, NULL, 0}, > + {"euid", "", "uid", 0, NULL, 0, CHAR, NULL, 0}, > + {"f", "F", NULL, 0, kvar, KOFF(ki_flag), INT, "x", 0}, > + {"flags", "", "f", 0, NULL, 0, CHAR, NULL, 0}, > + {"gid", "GID", NULL, 0, kvar, KOFF(ki_groups), UINT, UIDFMT, 0}, > + {"group", "GROUP", NULL, LJUST, egroupname, 0, CHAR, NULL, 0}, > + {"ignored", "", "sigignore", 0, NULL, 0, CHAR, NULL, 0}, > + {"inblk", "INBLK", NULL, USER, rvar, ROFF(ru_inblock), LONG, "ld", 0}, > + {"inblock", "", "inblk", 0, NULL, 0, CHAR, NULL, 0}, > + {"jid", "JID", NULL, 0, kvar, KOFF(ki_jid), INT, "d", 0}, > + {"jobc", "JOBC", NULL, 0, kvar, KOFF(ki_jobc), SHORT, "d", 0}, > + {"ktrace", "KTRACE", NULL, 0, kvar, KOFF(ki_traceflag), INT, "x", 0}, > + {"label", "LABEL", NULL, LJUST, label, 0, CHAR, NULL, 0}, > + {"lim", "LIM", NULL, 0, maxrss, 0, CHAR, NULL, 0}, > + {"lockname", "LOCK", NULL, LJUST, lockname, 0, CHAR, NULL, 0}, > + {"login", "LOGIN", NULL, LJUST, logname, 0, CHAR, NULL, 0}, > + {"logname", "", "login", 0, NULL, 0, CHAR, NULL, 0}, > + {"lstart", "STARTED", NULL, LJUST|USER, lstarted, 0, CHAR, NULL, 0}, > + {"lwp", "LWP", NULL, 0, kvar, KOFF(ki_tid), UINT, LWPFMT, 0}, > + {"majflt", "MAJFLT", NULL, USER, rvar, ROFF(ru_majflt), LONG, "ld", 0}, > + {"minflt", "MINFLT", NULL, USER, rvar, ROFF(ru_minflt), LONG, "ld", 0}, > + {"msgrcv", "MSGRCV", NULL, USER, rvar, ROFF(ru_msgrcv), LONG, "ld", 0}, > + {"msgsnd", "MSGSND", NULL, USER, rvar, ROFF(ru_msgsnd), LONG, "ld", 0}, > + {"mwchan", "MWCHAN", NULL, LJUST, mwchan, 0, CHAR, NULL, 0}, > + {"ni", "", "nice", 0, NULL, 0, CHAR, NULL, 0}, > + {"nice", "NI", NULL, 0, kvar, KOFF(ki_nice), CHAR, "d", 0}, > + {"nivcsw", "NIVCSW", NULL, USER, rvar, ROFF(ru_nivcsw), LONG, "ld", 0}, > + {"nlwp", "NLWP", NULL, 0, kvar, KOFF(ki_numthreads), UINT, NLWPFMT, 0}, > + {"nsignals", "", "nsigs", 0, NULL, 0, CHAR, NULL, 0}, > + {"nsigs", "NSIGS", NULL, USER, rvar, ROFF(ru_nsignals), LONG, "ld", 0}, > + {"nswap", "NSWAP", NULL, USER, rvar, ROFF(ru_nswap), LONG, "ld", 0}, > + {"nvcsw", "NVCSW", NULL, USER, rvar, ROFF(ru_nvcsw), LONG, "ld", 0}, > + {"nwchan", "NWCHAN", NULL, LJUST, nwchan, 0, CHAR, NULL, 0}, > + {"oublk", "OUBLK", NULL, USER, rvar, ROFF(ru_oublock), LONG, "ld", 0}, > + {"oublock", "", "oublk", 0, NULL, 0, CHAR, NULL, 0}, > + {"paddr", "PADDR", NULL, 0, kvar, KOFF(ki_paddr), KPTR, "lx", 0}, > + {"pagein", "PAGEIN", NULL, USER, pagein, 0, CHAR, NULL, 0}, > + {"pcpu", "", "%cpu", 0, NULL, 0, CHAR, NULL, 0}, > + {"pending", "", "sig", 0, NULL, 0, CHAR, NULL, 0}, > + {"pgid", "PGID", NULL, 0, kvar, KOFF(ki_pgid), UINT, PIDFMT, 0}, > + {"pid", "PID", NULL, 0, kvar, KOFF(ki_pid), UINT, PIDFMT, 0}, > + {"pmem", "", "%mem", 0, NULL, 0, CHAR, NULL, 0}, > + {"ppid", "PPID", NULL, 0, kvar, KOFF(ki_ppid), UINT, PIDFMT, 0}, > + {"pri", "PRI", NULL, 0, pri, 0, CHAR, NULL, 0}, > + {"re", "RE", NULL, INF127, kvar, KOFF(ki_swtime), UINT, "d", 0}, > + {"rgid", "RGID", NULL, 0, kvar, KOFF(ki_rgid), UINT, UIDFMT, 0}, > + {"rgroup", "RGROUP", NULL, LJUST, rgroupname, 0, CHAR, NULL, 0}, > + {"rss", "RSS", NULL, 0, kvar, KOFF(ki_rssize), PGTOK, "ld", 0}, > + {"rtprio", "RTPRIO", NULL, 0, priorityr, KOFF(ki_pri), CHAR, NULL, 0}, > + {"ruid", "RUID", NULL, 0, kvar, KOFF(ki_ruid), UINT, UIDFMT, 0}, > + {"ruser", "RUSER", NULL, LJUST, runame, 0, CHAR, NULL, 0}, > + {"sid", "SID", NULL, 0, kvar, KOFF(ki_sid), UINT, PIDFMT, 0}, > + {"sig", "PENDING", NULL, 0, kvar, KOFF(ki_siglist), INT, "x", 0}, > + {"sigcatch", "CAUGHT", NULL, 0, kvar, KOFF(ki_sigcatch), UINT, "x", 0}, > + {"sigignore", "IGNORED", NULL, 0, kvar, KOFF(ki_sigignore), > UINT, "x", 0}, > - {"sigmask", "BLOCKED", NULL, 0, kvar, NULL, 8, KOFF(ki_sigmask), > - UINT, "x", 0}, > - {"sl", "SL", NULL, INF127, kvar, NULL, 3, KOFF(ki_slptime), UINT, "d", > - 0}, > - {"start", "STARTED", NULL, LJUST|USER, started, NULL, 7, 0, CHAR, NULL, > - 0}, > - {"stat", "", "state", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"state", "STAT", NULL, 0, state, NULL, 4, 0, CHAR, NULL, 0}, > - {"svgid", "SVGID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_svgid), > - UINT, UIDFMT, 0}, > - {"svuid", "SVUID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_svuid), > - UINT, UIDFMT, 0}, > - {"systime", "SYSTIME", NULL, USER, systime, s_systime, 15, 0, CHAR, > - NULL, 0}, > - {"tdaddr", "TDADDR", NULL, 0, kvar, NULL, sizeof(void *) * 2, > - KOFF(ki_tdaddr), KPTR, "lx", 0}, > - {"tdev", "TDEV", NULL, 0, tdev, NULL, 5, 0, CHAR, NULL, 0}, > - {"tdnam", "TDNAM", NULL, LJUST, tdnam, NULL, COMMLEN, 0, CHAR, NULL, 0}, > - {"time", "TIME", NULL, USER, cputime, s_cputime, 15, 0, CHAR, > - NULL, 0}, > - {"tpgid", "TPGID", NULL, 0, kvar, NULL, 4, KOFF(ki_tpgid), UINT, > - PIDFMT, 0}, > - {"tsid", "TSID", NULL, 0, kvar, NULL, PIDLEN, KOFF(ki_tsid), UINT, > - PIDFMT, 0}, > - {"tsiz", "TSIZ", NULL, 0, kvar, NULL, 4, KOFF(ki_tsize), PGTOK, "ld", 0}, > - {"tt", "TT ", NULL, 0, tname, NULL, 4, 0, CHAR, NULL, 0}, > - {"tty", "TTY", NULL, LJUST, longtname, NULL, 8, 0, CHAR, NULL, 0}, > - {"ucomm", "UCOMM", NULL, LJUST, ucomm, s_comm, > - COMMLEN + TDNAMLEN + 1, 0, CHAR, NULL, 0}, > - {"uid", "UID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_uid), UINT, > - UIDFMT, 0}, > - {"upr", "UPR", NULL, 0, upr, NULL, 3, 0, CHAR, NULL, 0}, > - {"uprocp", "UPROCP", NULL, 0, kvar, NULL, sizeof(void *) * 2, > - KOFF(ki_paddr), KPTR, "lx", 0}, > - {"user", "USER", NULL, LJUST, uname, s_uname, USERLEN, 0, CHAR, > - NULL, 0}, > - {"usertime", "USERTIME", NULL, USER, usertime, s_usertime, 15, 0, > - CHAR, NULL, 0}, > - {"usrpri", "", "upr", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"vsize", "", "vsz", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > - {"vsz", "VSZ", NULL, 0, vsize, NULL, 6, 0, CHAR, NULL, 0}, > - {"wchan", "WCHAN", NULL, LJUST, wchan, NULL, 6, 0, CHAR, NULL, 0}, > - {"xstat", "XSTAT", NULL, 0, kvar, NULL, 4, KOFF(ki_xstat), USHORT, > - "x", 0}, > - {"", NULL, NULL, 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > + {"sigmask", "BLOCKED", NULL, 0, kvar, KOFF(ki_sigmask), UINT, "x", 0}, > + {"sl", "SL", NULL, INF127, kvar, KOFF(ki_slptime), UINT, "d", 0}, > + {"start", "STARTED", NULL, LJUST|USER, started, 0, CHAR, NULL, 0}, > + {"stat", "", "state", 0, NULL, 0, CHAR, NULL, 0}, > + {"state", "STAT", NULL, LJUST, state, 0, CHAR, NULL, 0}, > + {"svgid", "SVGID", NULL, 0, kvar, KOFF(ki_svgid), UINT, UIDFMT, 0}, > + {"svuid", "SVUID", NULL, 0, kvar, KOFF(ki_svuid), UINT, UIDFMT, 0}, > + {"systime", "SYSTIME", NULL, USER, systime, 0, CHAR, NULL, 0}, > + {"tdaddr", "TDADDR", NULL, 0, kvar, KOFF(ki_tdaddr), KPTR, "lx", 0}, > + {"tdev", "TDEV", NULL, 0, tdev, 0, CHAR, NULL, 0}, > + {"tdnam", "TDNAM", NULL, LJUST, tdnam, 0, CHAR, NULL, 0}, > + {"time", "TIME", NULL, USER, cputime, 0, CHAR, NULL, 0}, > + {"tpgid", "TPGID", NULL, 0, kvar, KOFF(ki_tpgid), UINT, PIDFMT, 0}, > + {"tsid", "TSID", NULL, 0, kvar, KOFF(ki_tsid), UINT, PIDFMT, 0}, > + {"tsiz", "TSIZ", NULL, 0, kvar, KOFF(ki_tsize), PGTOK, "ld", 0}, > + {"tt", "TT ", NULL, 0, tname, 0, CHAR, NULL, 0}, > + {"tty", "TTY", NULL, LJUST, longtname, 0, CHAR, NULL, 0}, > + {"ucomm", "UCOMM", NULL, LJUST, ucomm, 0, CHAR, NULL, 0}, > + {"uid", "UID", NULL, 0, kvar, KOFF(ki_uid), UINT, UIDFMT, 0}, > + {"upr", "UPR", NULL, 0, upr, 0, CHAR, NULL, 0}, > + {"uprocp", "UPROCP", NULL, 0, kvar, KOFF(ki_paddr), KPTR, "lx", 0}, > + {"user", "USER", NULL, LJUST, uname, 0, CHAR, NULL, 0}, > + {"usertime", "USERTIME", NULL, USER, usertime, 0, CHAR, NULL, 0}, > + {"usrpri", "", "upr", 0, NULL, 0, CHAR, NULL, 0}, > + {"vsize", "", "vsz", 0, NULL, 0, CHAR, NULL, 0}, > + {"vsz", "VSZ", NULL, 0, vsize, 0, CHAR, NULL, 0}, > + {"wchan", "WCHAN", NULL, LJUST, wchan, 0, CHAR, NULL, 0}, > + {"xstat", "XSTAT", NULL, 0, kvar, KOFF(ki_xstat), USHORT, "x", 0}, > + {"", NULL, NULL, 0, NULL, 0, CHAR, NULL, 0}, > }; > > void > > Modified: head/bin/ps/print.c > ============================================================================== > --- head/bin/ps/print.c Thu Sep 29 06:00:26 2011 (r225867) > +++ head/bin/ps/print.c Thu Sep 29 06:31:42 2011 (r225868) > @@ -64,6 +64,9 @@ __FBSDID("$FreeBSD$"); > > #include "ps.h" > > +#define COMMAND_WIDTH 16 > +#define ARGUMENTS_WIDTH 16 > + > #define ps_pgtok(a) (((a) * getpagesize()) / 1024) > > void > @@ -93,53 +96,42 @@ printheader(void) > (void)putchar('\n'); > } > > -void > +char * > arguments(KINFO *k, VARENT *ve) > { > VAR *v; > - int left; > - char *cp, *vis_args; > + char *vis_args; > > v = ve->var; > if ((vis_args = malloc(strlen(k->ki_args) * 4 + 1)) == NULL) > errx(1, "malloc failed"); > strvis(vis_args, k->ki_args, VIS_TAB | VIS_NL | VIS_NOSLASH); > - if (STAILQ_NEXT(ve, next_ve) == NULL) { > - /* last field */ > - if (termwidth == UNLIMITED) { > - (void)printf("%s", vis_args); > - } else { > - left = termwidth - (totwidth - v->width); > - if (left < 1) /* already wrapped, just use std width */ > - left = v->width; > - for (cp = vis_args; --left >= 0 && *cp != '\0';) > - (void)putchar(*cp++); > - } > - } else { > - (void)printf("%-*.*s", v->width, v->width, vis_args); > - } > - free(vis_args); > + > + if (STAILQ_NEXT(ve, next_ve) != NULL && strlen(vis_args) > ARGUMENTS_WIDTH) > + vis_args[ARGUMENTS_WIDTH] = '\0'; > + > + return (vis_args); > } > > -void > +char * > command(KINFO *k, VARENT *ve) > { > VAR *v; > - int left; > - char *cp, *vis_env, *vis_args; > + char *vis_args, *vis_env, *str; > > v = ve->var; > if (cflag) { > /* If it is the last field, then don't pad */ > if (STAILQ_NEXT(ve, next_ve) == NULL) { > - if (k->ki_d.prefix) > - (void)printf("%s", k->ki_d.prefix); > - (void)printf("%s", k->ki_p->ki_comm); > - if (showthreads && k->ki_p->ki_numthreads > 1) > - (void)printf("/%s", k->ki_p->ki_tdname); > + asprintf(&str, "%s%s%s%s", > + k->ki_d.prefix ? k->ki_d.prefix : "", > + k->ki_p->ki_comm, > + (showthreads && k->ki_p->ki_numthreads > 1) ? "/" : "", > + (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_tdname : ""); > } else > - (void)printf("%-*s", v->width, k->ki_p->ki_comm); > - return; > + str = strdup(k->ki_p->ki_comm); > + > + return (str); > } > if ((vis_args = malloc(strlen(k->ki_args) * 4 + 1)) == NULL) > errx(1, "malloc failed"); > @@ -157,89 +149,84 @@ command(KINFO *k, VARENT *ve) > } else > vis_env = NULL; > > - if (termwidth == UNLIMITED) { > - if (k->ki_d.prefix) > - (void)printf("%s", k->ki_d.prefix); > - if (vis_env) > - (void)printf("%s ", vis_env); > - (void)printf("%s", vis_args); > - } else { > - left = termwidth - (totwidth - v->width); > - if (left < 1) /* already wrapped, just use std width */ > - left = v->width; > - if ((cp = k->ki_d.prefix) != NULL) > - while (--left >= 0 && *cp) > - (void)putchar(*cp++); > - if ((cp = vis_env) != NULL) { > - while (--left >= 0 && *cp) > - (void)putchar(*cp++); > - if (--left >= 0) > - putchar(' '); > - } > - for (cp = vis_args; --left >= 0 && *cp != '\0';) > - (void)putchar(*cp++); > - } > + asprintf(&str, "%s%s%s%s", > + k->ki_d.prefix ? k->ki_d.prefix : "", > + vis_env ? vis_env : "", > + vis_env ? " " : "", > + vis_args); > + > if (vis_env != NULL) > free(vis_env); > - } else > + free(vis_args); > + } else { > /* ki_d.prefix & ki_env aren't shown for interim fields */ > - (void)printf("%-*.*s", v->width, v->width, vis_args); > - free(vis_args); > + str = vis_args; > + > + if (strlen(str) > COMMAND_WIDTH) > + str[COMMAND_WIDTH] = '\0'; > + } > + > + return (str); > } > > -void > +char * > ucomm(KINFO *k, VARENT *ve) > { > - char tmpbuff[COMMLEN + TDNAMLEN + 2]; > VAR *v; > + char *str; > > v = ve->var; > if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field, don't pad */ > - if (k->ki_d.prefix) > - (void)printf("%s", k->ki_d.prefix); > - (void)printf("%s", k->ki_p->ki_comm); > - if (showthreads && k->ki_p->ki_numthreads > 1) > - printf("/%s", k->ki_p->ki_tdname); > + asprintf(&str, "%s%s%s%s", > + k->ki_d.prefix ? k->ki_d.prefix : "", > + k->ki_p->ki_comm, > + (showthreads && k->ki_p->ki_numthreads > 1) ? "/" : "", > + (showthreads && k->ki_p->ki_numthreads > 1) ? k->ki_p->ki_tdname : ""); > } else { > - bzero(tmpbuff, sizeof(tmpbuff)); > if (showthreads && k->ki_p->ki_numthreads > 1) > - sprintf(tmpbuff, "%s/%s", k->ki_p->ki_comm, > - k->ki_p->ki_tdname); > + asprintf(&str, "%s/%s", k->ki_p->ki_comm, k->ki_p->ki_tdname); > else > - sprintf(tmpbuff, "%s", k->ki_p->ki_comm); > - (void)printf("%-*s", v->width, tmpbuff); > + str = strdup(k->ki_p->ki_comm); > } > + return (str); > } > > -void > +char * > tdnam(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > if (showthreads && k->ki_p->ki_numthreads > 1) > - (void)printf("%-*s", v->width, k->ki_p->ki_tdname); > + str = strdup(k->ki_p->ki_tdname); > else > - (void)printf("%-*s", v->width, " "); > + str = strdup(" "); > + > + return (str); > } > > -void > +char * > logname(KINFO *k, VARENT *ve) > { > VAR *v; > - char *s; > > v = ve->var; > - (void)printf("%-*s", v->width, (s = k->ki_p->ki_login, *s) ? s : "-"); > + if (*k->ki_p->ki_login == '\0') > + return (NULL); > + return (strdup(k->ki_p->ki_login)); > } > > -void > +char * > state(KINFO *k, VARENT *ve) > { > int flag, tdflags; > - char *cp; > + char *cp, *buf; > VAR *v; > - char buf[16]; > + > + buf = malloc(16); > + if (buf == NULL) > + errx(1, "malloc failed"); > > v = ve->var; > flag = k->ki_p->ki_flag; > @@ -301,274 +288,270 @@ state(KINFO *k, VARENT *ve) > if (flag & P_JAILED) > *cp++ = 'J'; > *cp = '\0'; > - (void)printf("%-*s", v->width, buf); > + return (buf); > } > > #define scalepri(x) ((x) - PZERO) > > -void > +char * > pri(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > - (void)printf("%*d", v->width, scalepri(k->ki_p->ki_pri.pri_level)); > + asprintf(&str, "%d", scalepri(k->ki_p->ki_pri.pri_level)); > + return (str); > } > > -void > +char * > upr(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > - (void)printf("%*d", v->width, scalepri(k->ki_p->ki_pri.pri_user)); > + asprintf(&str, "%d", scalepri(k->ki_p->ki_pri.pri_user)); > + return (str); > } > #undef scalepri > > -void > +char * > uname(KINFO *k, VARENT *ve) > { > VAR *v; > > v = ve->var; > - (void)printf("%-*s", v->width, user_from_uid(k->ki_p->ki_uid, 0)); > + return (strdup(user_from_uid(k->ki_p->ki_uid, 0))); > } > > -int > -s_uname(KINFO *k) > -{ > - return (strlen(user_from_uid(k->ki_p->ki_uid, 0))); > -} > - > -void > +char * > egroupname(KINFO *k, VARENT *ve) > { > VAR *v; > > v = ve->var; > - (void)printf("%-*s", v->width, > - group_from_gid(k->ki_p->ki_groups[0], 0)); > + return (strdup(group_from_gid(k->ki_p->ki_groups[0], 0))); > } > > -int > -s_egroupname(KINFO *k) > -{ > - return (strlen(group_from_gid(k->ki_p->ki_groups[0], 0))); > -} > - > -void > +char * > rgroupname(KINFO *k, VARENT *ve) > { > VAR *v; > > v = ve->var; > - (void)printf("%-*s", v->width, group_from_gid(k->ki_p->ki_rgid, 0)); > -} > - > -int > -s_rgroupname(KINFO *k) > -{ > - return (strlen(group_from_gid(k->ki_p->ki_rgid, 0))); > + return (strdup(group_from_gid(k->ki_p->ki_rgid, 0))); > } > > -void > +char * > runame(KINFO *k, VARENT *ve) > { > VAR *v; > > v = ve->var; > - (void)printf("%-*s", v->width, user_from_uid(k->ki_p->ki_ruid, 0)); > -} > - > -int > -s_runame(KINFO *k) > -{ > - return (strlen(user_from_uid(k->ki_p->ki_ruid, 0))); > + return (strdup(user_from_uid(k->ki_p->ki_ruid, 0))); > } > > - > -void > +char * > tdev(KINFO *k, VARENT *ve) > { > VAR *v; > dev_t dev; > + char *str; > > v = ve->var; > dev = k->ki_p->ki_tdev; > if (dev == NODEV) > - (void)printf("%*s", v->width, "??"); > + str = strdup("??"); > else > - (void)printf("%#*jx", v->width, (uintmax_t)dev); > + asprintf(&str, "%#jx", (uintmax_t)dev); > + > + return (str); > } > > -void > +char * > tname(KINFO *k, VARENT *ve) > { > VAR *v; > dev_t dev; > - char *ttname; > + char *ttname, *str; > > v = ve->var; > dev = k->ki_p->ki_tdev; > if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) > - (void)printf("%*s ", v->width - 1, "??"); > + str = strdup("?? "); > else { > if (strncmp(ttname, "tty", 3) == 0 || > strncmp(ttname, "cua", 3) == 0) > ttname += 3; > if (strncmp(ttname, "pts/", 4) == 0) > ttname += 4; > - (void)printf("%*.*s%c", v->width - 1, v->width - 1, ttname, > + asprintf(&str, "%s%c", ttname, > k->ki_p->ki_kiflag & KI_CTTY ? ' ' : '-'); > } > + > + return (str); > } > > -void > +char * > longtname(KINFO *k, VARENT *ve) > { > VAR *v; > dev_t dev; > - char *ttname; > + const char *ttname; > > v = ve->var; > dev = k->ki_p->ki_tdev; > if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) > - (void)printf("%-*s", v->width, "??"); > - else > - (void)printf("%-*s", v->width, ttname); > + ttname = "??"; > + > + return (strdup(ttname)); > } > > -void > +char * > started(KINFO *k, VARENT *ve) > { > VAR *v; > time_t then; > struct tm *tp; > static int use_ampm = -1; > - char buf[100]; > + size_t buflen = 100; > + char *buf; > + > + buf = malloc(buflen); > + if (buf == NULL) > + errx(1, "malloc failed"); > > v = ve->var; > - if (!k->ki_valid) { > - (void)printf("%-*s", v->width, "-"); > - return; > - } > + if (!k->ki_valid) > + return (NULL); > if (use_ampm < 0) > use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); > then = k->ki_p->ki_start.tv_sec; > tp = localtime(&then); > if (now - k->ki_p->ki_start.tv_sec < 24 * 3600) { > - (void)strftime(buf, sizeof(buf), > + (void)strftime(buf, buflen, > use_ampm ? "%l:%M%p" : "%k:%M ", tp); > } else if (now - k->ki_p->ki_start.tv_sec < 7 * 86400) { > - (void)strftime(buf, sizeof(buf), > + (void)strftime(buf, buflen, > use_ampm ? "%a%I%p" : "%a%H ", tp); > } else > - (void)strftime(buf, sizeof(buf), "%e%b%y", tp); > - (void)printf("%-*s", v->width, buf); > + (void)strftime(buf, buflen, "%e%b%y", tp); > + return (buf); > } > > -void > +char * > lstarted(KINFO *k, VARENT *ve) > { > VAR *v; > time_t then; > - char buf[100]; > + char *buf; > + size_t buflen = 100; > + > + buf = malloc(buflen); > + if (buf == NULL) > + errx(1, "malloc failed"); > > v = ve->var; > - if (!k->ki_valid) { > - (void)printf("%-*s", v->width, "-"); > - return; > - } > + if (!k->ki_valid) > + return (NULL); > then = k->ki_p->ki_start.tv_sec; > - (void)strftime(buf, sizeof(buf), "%c", localtime(&then)); > - (void)printf("%-*s", v->width, buf); > + (void)strftime(buf, buflen, "%c", localtime(&then)); > + return (buf); > } > > -void > +char * > lockname(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > if (k->ki_p->ki_kiflag & KI_LOCKBLOCK) { > if (k->ki_p->ki_lockname[0] != 0) > - (void)printf("%-*.*s", v->width, v->width, > - k->ki_p->ki_lockname); > + str = strdup(k->ki_p->ki_lockname); > else > - (void)printf("%-*s", v->width, "???"); > + str = strdup("???"); > } else > - (void)printf("%-*s", v->width, "-"); > + str = NULL; > + > + return (str); > } > > -void > +char * > wchan(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > if (k->ki_p->ki_wchan) { > if (k->ki_p->ki_wmesg[0] != 0) > - (void)printf("%-*.*s", v->width, v->width, > - k->ki_p->ki_wmesg); > + str = strdup(k->ki_p->ki_wmesg); > else > - (void)printf("%-*lx", v->width, > - (long)k->ki_p->ki_wchan); > + asprintf(&str, "%lx", (long)k->ki_p->ki_wchan); > } else > - (void)printf("%-*s", v->width, "-"); > + str = NULL; > + > + return (str); > } > > -void > +char * > nwchan(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > - if (k->ki_p->ki_wchan) { > - (void)printf("%0*lx", v->width, > - (long)k->ki_p->ki_wchan); > - } else > - (void)printf("%-*s", v->width, "-"); > + if (k->ki_p->ki_wchan) > + asprintf(&str, "%0lx", (long)k->ki_p->ki_wchan); > + else > + str = NULL; > + > + return (str); > } > > -void > +char * > mwchan(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > if (k->ki_p->ki_wchan) { > if (k->ki_p->ki_wmesg[0] != 0) > - (void)printf("%-*.*s", v->width, v->width, > - k->ki_p->ki_wmesg); > + str = strdup(k->ki_p->ki_wmesg); > else > - (void)printf("%-*lx", v->width, > - (long)k->ki_p->ki_wchan); > + asprintf(&str, "%lx", (long)k->ki_p->ki_wchan); > } else if (k->ki_p->ki_kiflag & KI_LOCKBLOCK) { > if (k->ki_p->ki_lockname[0]) { > - (void)printf("%-*.*s", v->width, v->width, > - k->ki_p->ki_lockname); > + str = strdup(k->ki_p->ki_lockname); > } else > - (void)printf("%-*s", v->width, "???"); > + str = strdup("???"); > } else > - (void)printf("%-*s", v->width, "-"); > + str = NULL; > + > + return (str); > } > > -void > +char * > vsize(KINFO *k, VARENT *ve) > { > VAR *v; > + char *str; > > v = ve->var; > - (void)printf("%*lu", v->width, (u_long)(k->ki_p->ki_size / 1024)); > + asprintf(&str, "%lu", (u_long)(k->ki_p->ki_size / 1024)); > + return (str); > } > > -static void > +static char * > printtime(KINFO *k, VARENT *ve, long secs, long psecs) > /* psecs is "parts" of a second. first micro, then centi */ > { > VAR *v; > - char obuff[128]; > static char decimal_point; > + char *str; > > if (decimal_point == '\0') > decimal_point = localeconv()->decimal_point[0]; > @@ -582,21 +565,12 @@ printtime(KINFO *k, VARENT *ve, long sec > secs += psecs / 100; > psecs = psecs % 100; > } > - (void)snprintf(obuff, sizeof(obuff), "%ld:%02ld%c%02ld", > + asprintf(&str, "%ld:%02ld%c%02ld", > secs / 60, secs % 60, decimal_point, psecs); > - (void)printf("%*s", v->width, obuff); > -} > - > -static int > -sizetime(long secs) > -{ > - > - if (secs < 60) > - return (7); > - return (log10(secs / 60) + 7); > + return (str); > } > > -void > +char * > cputime(KINFO *k, VARENT *ve) > { > long secs, psecs; > @@ -612,10 +586,10 @@ cputime(KINFO *k, VARENT *ve) > secs += k->ki_p->ki_childtime.tv_sec; > psecs += k->ki_p->ki_childtime.tv_usec; > } > - printtime(k, ve, secs, psecs); > + return (printtime(k, ve, secs, psecs)); > > *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***