+++ /dev/null
-// Some output conversion routines for libproc
-// Copyright (C) 1996, Charles Blake. See COPYING for details.
-//
-// Copyright 2002, Albert Cahalan
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include "output.h"
-
-#if 1
-/* output a string, converting unprintables to octal as we go, and stopping after
- processing max chars of output (accounting for expansion due to octal rep).
-*/
-unsigned print_str(FILE *restrict file, const char *restrict const s, unsigned max) {
- unsigned i;
- for (i=0; likely(s[i]) && likely(i<max); i++)
- if (likely(isprint(s[i]) || s[i] == ' '))
- fputc(s[i], file);
- else {
- if (max > i+3) {
- fprintf(file, "\\%03o", (unsigned char)s[i]);
- i += 3; /* 4 printed, but i counts one */
- } else
- return max - i;
- }
- return max - i;
-}
-#endif
-
-/* output an argv style NULL-terminated string list, converting unprintables
- to octal as we go, separating items of the list by 'sep' and stopping after
- processing max chars of output (accounting for expansion due to octal rep).
-*/
-unsigned print_strlist(FILE *restrict file, const char *restrict const *restrict strs, unsigned max) {
- unsigned i, n;
- for (n=0; *strs && n<max; strs++) {
- for (i=0; strs[0][i] && n+i < max; i++)
- if (likely(isprint(strs[0][i]) || strs[0][i] == ' '))
- fputc(strs[0][i], file);
- else {
- if (max > n+i+3) {
- fprintf(file, "\\%03o", (unsigned char)strs[0][i]);
- n += 3; /* 4 printed, but i counts one */
- } else
- return max - n;
- }
- n += i;
- if (n + 1 < max) {
- fputc(' ', file);
- n++;
- } else
- return max - n;
- }
- return max - n;
-}
+++ /dev/null
-#ifndef PROCPS_PROC_OUTPUT_H
-#define PROCPS_PROC_OUTPUT_H
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "procps.h"
-
-EXTERN_C_BEGIN
-
-extern unsigned print_str (FILE *restrict file, const char *restrict s, unsigned max);
-extern unsigned print_strlist(FILE *restrict file, const char *restrict const *restrict strs, unsigned max);
-
-EXTERN_C_END
-
-#endif
#include "proc/wchan.h"
#include "proc/procps.h"
#include "proc/readproc.h"
+#include "proc/escape.h"
#include "proc/sig.h"
#ifdef USE_LIB_STA3
#include "proc/status.h"
}
- /*
- * This guy was originally designed just to trim the rc file lines and
- * any 'open_psdb_message' result which arrived with an inappropriate
- * newline (thanks to 'sysmap_mmap') -- but when tabs (^I) were found
- * in some proc cmdlines, a choice was offered twix space or null. */
+// Trim the rc file lines and any 'open_psdb_message' result which arrives
+// with an inappropriate newline (thanks to 'sysmap_mmap')
static char *strim_0 (char *str)
{
static const char ws[] = "\b\e\f\n\r\t\v\x9b"; // 0x9b is an escape
return str;
}
- /*
- * This guy was originally designed just to trim the rc file lines and
- * any 'open_psdb_message' result which arrived with an inappropriate
- * newline (thanks to 'sysmap_mmap') -- but when tabs (^I) were found
- * in some proc cmdlines, a choice was offered twix space or null. */
-static char *strim_1 (char *str)
-{
- static const char ws[] = "\b\e\f\n\r\t\v\x9b"; // 0x9b is an escape
- char *p;
-
- while (unlikely(p = strpbrk(str, ws))) *p = ' ';
- return str;
-}
-
/*
* This guy just facilitates Batch and protects against dumb ttys
// we're just saving elapsed tics, to be converted into %cpu if
// this task wins it's displayable screen row lottery... */
this->pcpu = tics;
- strim_1(this->cmd);
// if (Frames_maxcmdln) { }
// shout this to the world with the final call (or us the next time in)
Frame_maxtask++;
unsigned w = Fieldstab[i].width;
switch (i) {
+#if 0
case P_CMD:
{ const char *cp;
if (CHKw(q, Show_CMDLIN)) {
MKCOL(q->maxcmdln, q->maxcmdln, cp);
}
break;
+#endif
+ case P_CMD:
+ { char tmp[ROWBUFSIZ];
+ unsigned flags;
+ if (CHKw(q, Show_CMDLIN)) flags = ESC_DEFUNCT | ESC_BRACKETS | ESC_ARGS;
+ else flags = ESC_DEFUNCT;
+ escape_command(tmp, p, sizeof tmp, q->maxcmdln, flags);
+ MKCOL(q->maxcmdln, q->maxcmdln, tmp);
+ }
+ break;
case P_COD:
MKCOL(scale_num(PAGES_2K(p->trs), w, s));
break;
#include "proc/readproc.h"
#include "proc/devname.h"
#include "proc/procps.h"
-#include "proc/output.h"
#include "proc/sysinfo.h"
#include "proc/escape.h"
#include <ctype.h>
char cmdbuf[512];
escape_command(cmdbuf, best, sizeof cmdbuf, maxcmd, ESC_ARGS);
fputs(cmdbuf,stdout);
-
-// if (best->cmdline)
-// print_strlist(stdout, best->cmdline, maxcmd);
-// else
-// printf("%*.*s", -maxcmd, maxcmd, best->cmd);
} else {
printf("-");
}