summaryrefslogtreecommitdiff
path: root/procps
diff options
context:
space:
mode:
authorDenys Vlasenko2010-05-23 00:34:42 +0200
committerDenys Vlasenko2010-05-23 00:34:42 +0200
commit9e07219c7814972893d1f3bb67b43108fe83212a (patch)
tree81352d21edcc0a021849fe9d4b0978e0595a60e1 /procps
parent765b0eed3ef29a80115708c3249d3a541509cd24 (diff)
downloadbusybox-9e07219c7814972893d1f3bb67b43108fe83212a.zip
busybox-9e07219c7814972893d1f3bb67b43108fe83212a.tar.gz
ps: make "ps -o BAD" emit list of good -o params
also make ps help more informative function old new delta find_out_spec 58 103 +45 packed_usage 27039 27079 +40 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'procps')
-rw-r--r--procps/ps.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/procps/ps.c b/procps/ps.c
index c3b2008..a3220a9 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -232,7 +232,6 @@ static void func_tty(char *buf, int size, const procps_status_t *ps)
snprintf(buf, size+1, "%u,%u", ps->tty_major, ps->tty_minor);
}
-
#if ENABLE_FEATURE_PS_ADDITIONAL_COLUMNS
static void func_rgroup(char *buf, int size, const procps_status_t *ps)
@@ -250,9 +249,10 @@ static void func_nice(char *buf, int size, const procps_status_t *ps)
sprintf(buf, "%*d", size, ps->niceness);
}
-#endif /* FEATURE_PS_ADDITIONAL_COLUMNS */
+#endif
#if ENABLE_FEATURE_PS_TIME
+
static void func_etime(char *buf, int size, const procps_status_t *ps)
{
/* elapsed time [[dd-]hh:]mm:ss; here only mm:ss */
@@ -278,6 +278,7 @@ static void func_time(char *buf, int size, const procps_status_t *ps)
mm /= 60;
snprintf(buf, size+1, "%3lu:%02u", mm, ss);
}
+
#endif
#if ENABLE_SELINUX
@@ -337,11 +338,24 @@ static ps_out_t* new_out_t(void)
static const ps_out_t* find_out_spec(const char *name)
{
unsigned i;
+#if ENABLE_DESKTOP
+ char buf[ARRAY_SIZE(out_spec)*7 + 1];
+ char *p = buf;
+#endif
+
for (i = 0; i < ARRAY_SIZE(out_spec); i++) {
- if (!strncmp(name, out_spec[i].name6, 6))
+ if (strncmp(name, out_spec[i].name6, 6) == 0)
return &out_spec[i];
+#if ENABLE_DESKTOP
+ p += sprintf(p, "%.6s,", out_spec[i].name6);
+#endif
}
- bb_error_msg_and_die("bad -o argument '%s'", name);
+#if ENABLE_DESKTOP
+ p[-1] = '\0';
+ bb_error_msg_and_die("bad -o argument '%s', supported arguments: %s", name, buf);
+#else
+ bb_error_msg_and_die("bad -o argument '%s'");
+#endif
}
static void parse_o(char* opt)