#include <stdio.h>
#include <sys/types.h>
#include <string.h>
-#include "procps.h"
+#include <proc/procps.h>
+
#include "escape.h"
#include "readproc.h"
// escape an argv or environment string array
//
// bytes arg means sizeof(buf)
-int escape_strlist(char *restrict dst, char *restrict const *restrict src, size_t bytes, int *cells){
+static int escape_strlist(char *restrict dst, char *restrict const *restrict src, size_t bytes, int *cells){
size_t i = 0;
for(;;){
return end; // bytes, not including the NUL
}
-/////////////////////////////////////////////////
-
-// copy an already 'escaped' string,
-// using the traditional escape.h calling conventions
-int escaped_copy(char *restrict dst, const char *restrict src, int bufsize, int *maxroom){
- int n;
- if (bufsize > *maxroom+1) bufsize = *maxroom+1;
- n = snprintf(dst, bufsize, "%s", src);
- if (n >= bufsize) n = bufsize-1;
- *maxroom -= n;
- return n;
-}
#ifndef PROCPS_PROC_ESCAPE_H
#define PROCPS_PROC_ESCAPE_H
-#include <proc/readproc.h>
#include <features.h>
+#include "readproc.h"
__BEGIN_DECLS
-#define ESC_STRETCH 1 // since we mangle to '?' this is 1 (would be 4 for octal escapes)
#define ESC_ARGS 0x1 // try to use cmdline instead of cmd
#define ESC_BRACKETS 0x2 // if using cmd, put '[' and ']' around it
#define ESC_DEFUNCT 0x4 // mark zombies with " <defunct>"
-extern int escape_strlist(char *__restrict dst, char *__restrict const *__restrict src, size_t n, int *cells);
-extern int escape_str(char *__restrict dst, const char *__restrict src, int bufsize, int *maxcells);
-extern int escape_command(char *__restrict const outbuf, const proc_t *__restrict const pp, int bytes, int *cells, unsigned flags);
-extern int escaped_copy(char *__restrict dst, const char *__restrict src, int bufsize, int *maxroom);
+
+int escape_command(char *__restrict const outbuf, const proc_t *__restrict const pp, int bytes, int *cells, unsigned flags);
__END_DECLS
#endif
LIBPROCPS_0 {
global:
- escape_command;
escape_str;
- escape_strlist;
- escaped_copy;
fatal_proc_unmounted;
procps_cpu_count;
procps_diskstat_dev_count;
/* includes that show public exports go here */
#include <proc/diskstat.h>
-#include <proc/escape.h>
#include <proc/meminfo.h>
#include <proc/namespace.h>
#include <proc/pids.h>
#include <proc/vmstat.h>
#include <proc/uptime.h>
+// FIXME: only public function in escape.c
+#define ESC_STRETCH 1 // since we mangle to '?' this is 1 (would be 4 for octal escapes)
+int escape_str(char *__restrict dst, const char *__restrict src, int bufsize, int *maxcells);
+
#endif
procps_meminfo_unref(&mem_info);
}
+// copy an already 'escaped' string,
+static int escaped_copy(char *restrict dst, const char *restrict src, int bufsize, int *maxroom){
+ int n;
+ if (bufsize > *maxroom+1)
+ bufsize = *maxroom+1;
+ n = snprintf(dst, bufsize, "%s", src);
+ if (n >= bufsize)
+ n = bufsize-1;
+ *maxroom -= n;
+ return n;
+}
/***************************************************************************/
/************ Lots of format functions, starting with the NOP **************/
}
-#ifdef SIGNAL_STRING
static int help_pr_sig(char *restrict const outbuf, const char *restrict const sig){
long len = 0;
len = strlen(sig);
return snprintf(outbuf, COLWID, "<%s", sig+len-8);
return snprintf(outbuf, COLWID, "%s", sig+len-8);
}
-#else
-static int help_pr_sig(unsigned long long sig){
- if(wide_signals) return snprintf(outbuf, COLWID, "%016Lx", sig);
- if(sig>>32) return snprintf(outbuf, COLWID, "<%08Lx", sig&0xffffffffLL);
- return snprintf(outbuf, COLWID, "%08Lx", sig&0xffffffffLL);
-}
-#endif
// This one is always thread-specific pending. (from Dragonfly BSD)
static int pr_tsig(char *restrict const outbuf, const proc_t *restrict const pp){