summaryrefslogtreecommitdiff
path: root/usr/src/cmd/prstat/prutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/prstat/prutil.c')
-rw-r--r--usr/src/cmd/prstat/prutil.c76
1 files changed, 3 insertions, 73 deletions
diff --git a/usr/src/cmd/prstat/prutil.c b/usr/src/cmd/prstat/prutil.c
index 551c72cc8a..8c90cb2e15 100644
--- a/usr/src/cmd/prstat/prutil.c
+++ b/usr/src/cmd/prstat/prutil.c
@@ -25,7 +25,7 @@
* Use is subject to license terms.
*
* Portions Copyright 2009 Chad Mynhier
- * Copyright 2018 Joyent, Inc. All rights reserved.
+ * Copyright 2017 Joyent, Inc. All rights reserved.
*/
#include <sys/types.h>
@@ -325,16 +325,14 @@ getzonename(zoneid_t zoneid, char *str, size_t len, int trunc, size_t width)
/*
* Remove all unprintable characters from process name
*/
-static void
-stripfname(char *buf, size_t bufsize, const char *pname)
+void
+stripfname(char *buf)
{
int bytesleft = PRFNSZ;
wchar_t wchar;
int length;
char *cp;
- (void) strlcpy(buf, pname, bufsize);
-
buf[bytesleft - 1] = '\0';
for (cp = buf; *cp != '\0'; cp += length) {
@@ -354,71 +352,3 @@ stripfname(char *buf, size_t bufsize, const char *pname)
bytesleft -= length;
}
}
-
-
-/*
- * prstat has always implicitly wanted a terminal width of at least 80 columns
- * (when a TTY is present). If run in a terminal narrower than 80 columns,
- * prstat output may wrap. For wider terminals, we allow the last column to use
- * the additional space.
- *
- * We never truncate if using -c, or not outputting to a TTY.
- */
-static int
-format_namewidth(void)
-{
- int prefixlen = 0;
-
- if (opts.o_cols == 0 || !(opts.o_outpmode & (OPT_TERMCAP | OPT_TRUNC)))
- return (0);
-
- if (opts.o_outpmode & OPT_PSINFO) {
- if (opts.o_outpmode & OPT_LGRP)
- prefixlen = 64;
- else
- prefixlen = 59;
- } else if (opts.o_outpmode & OPT_MSACCT) {
- prefixlen = 64;
- }
-
- return (opts.o_cols - prefixlen);
-}
-
-void
-format_name(lwp_info_t *lwp, char *buf, size_t buflen)
-{
- int pname_width = PRFNSZ;
- char nr_suffix[20];
- char pname[PRFNSZ];
- int width;
- int n;
-
- stripfname(pname, sizeof (pname), lwp->li_info.pr_fname);
-
- if (opts.o_outpmode & OPT_LWPS) {
- n = snprintf(nr_suffix, sizeof (nr_suffix), "%d",
- lwp->li_info.pr_lwp.pr_lwpid);
- } else {
- n = snprintf(nr_suffix, sizeof (nr_suffix), "%d",
- lwp->li_info.pr_nlwp + lwp->li_info.pr_nzomb);
- }
-
- width = format_namewidth();
-
- /* If we're over budget, truncate the process name not the LWP part. */
- if (strlen(pname) > (width - n - 1)) {
- pname_width = width - n - 1;
- pname[pname_width - 1] = '*';
- }
-
- if ((opts.o_outpmode & OPT_LWPS) && lwp->li_lwpname[0] != '\0') {
- n = snprintf(buf, buflen, "%.*s/%s [%s]", pname_width,
- pname, nr_suffix, lwp->li_lwpname);
- } else {
- n = snprintf(buf, buflen, "%.*s/%s", pname_width,
- pname, nr_suffix);
- }
-
- if (width > 0 && strlen(buf) > width)
- buf[width] = '\0';
-}