completed the move, output.* --> escape.*
This commit is contained in:
parent
b67dc52160
commit
f2a0a095ba
@ -1,56 +0,0 @@
|
||||
// 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;
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
#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
|
34
top.c
34
top.c
@ -43,6 +43,7 @@
|
||||
#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"
|
||||
@ -282,11 +283,8 @@ static inline char *scat (char *restrict dst, const char *restrict src)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 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
|
||||
@ -296,20 +294,6 @@ static char *strim_0 (char *str)
|
||||
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
|
||||
@ -1016,7 +1000,6 @@ static void prochlp (proc_t *this)
|
||||
// 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++;
|
||||
@ -2909,6 +2892,7 @@ static void task_show (const WIN_t *q, const proc_t *p)
|
||||
unsigned w = Fieldstab[i].width;
|
||||
|
||||
switch (i) {
|
||||
#if 0
|
||||
case P_CMD:
|
||||
{ const char *cp;
|
||||
if (CHKw(q, Show_CMDLIN)) {
|
||||
@ -2930,6 +2914,16 @@ static void task_show (const WIN_t *q, const proc_t *p)
|
||||
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;
|
||||
|
6
w.c
6
w.c
@ -10,7 +10,6 @@
|
||||
#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>
|
||||
@ -221,11 +220,6 @@ static void showinfo(utmp_t *u, int formtype, int maxcmd, int from) {
|
||||
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("-");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user