svn commit: r183899 - user/edwin/top/top-3.8b1/usr.bin/top
Edwin Groothuis
edwin at FreeBSD.org
Tue Oct 14 23:51:31 UTC 2008
Author: edwin
Date: Tue Oct 14 23:51:30 2008
New Revision: 183899
URL: http://svn.freebsd.org/changeset/base/183899
Log:
Display the original command between ()'s just like the old top did
when the command and the first argument of the command-line-arguments
don't match.
According to include/sys/user.h, PS_INMEM is obsoleted in favour
of P_INMEM, not the other way around.
Modified:
user/edwin/top/top-3.8b1/usr.bin/top/machine.c
Modified: user/edwin/top/top-3.8b1/usr.bin/top/machine.c
==============================================================================
--- user/edwin/top/top-3.8b1/usr.bin/top/machine.c Tue Oct 14 22:48:38 2008 (r183898)
+++ user/edwin/top/top-3.8b1/usr.bin/top/machine.c Tue Oct 14 23:51:30 2008 (r183899)
@@ -734,9 +734,10 @@ fmt_command(char *buf, int sz, struct ki
char *bufp;
char **args;
char *ps;
+ char *rawcmd;
int argc;
-#if OSMAJOR <= 4
+#if OSMAJOR > 4
inmem = (PP(pp, flag) & P_INMEM);
#else
inmem = (PP(pp, sflag) & PS_INMEM);
@@ -747,7 +748,9 @@ fmt_command(char *buf, int sz, struct ki
/* get the pargs structure */
if ((args = kvm_getargv(kd, pp, sz)) != NULL)
{
- /* successfull retrieval: now convert nulls and cr/lf in to spaces */
+ /*
+ * successfull retrieval: now convert nulls and cr/lf in to spaces
+ */
bufp = cmd;
cmd[0] = '\0';
argc = 0;
@@ -765,6 +768,17 @@ fmt_command(char *buf, int sz, struct ki
*ps = ' ';
}
+ if ((rawcmd = strrchr(args[0], '/')) != NULL)
+ rawcmd++;
+ else
+ rawcmd = args[0];
+
+ if (strcmp(rawcmd, pp->ki_comm) != 0) {
+ strcat(cmd, " (");
+ strcat(cmd, pp->ki_comm);
+ strcat(cmd, ")");
+ }
+
/* format cmd as our answer */
return snprintf(buf, sz, "%s", cmd);
}
More information about the svn-src-user
mailing list