diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-05-23 00:34:42 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-05-23 00:34:42 +0200 |
commit | 9e07219c7814972893d1f3bb67b43108fe83212a (patch) | |
tree | 81352d21edcc0a021849fe9d4b0978e0595a60e1 | |
parent | 765b0eed3ef29a80115708c3249d3a541509cd24 (diff) | |
download | 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>
-rw-r--r-- | include/usage.h | 8 | ||||
-rw-r--r-- | procps/ps.c | 22 |
2 files changed, 22 insertions, 8 deletions
diff --git a/include/usage.h b/include/usage.h index 8f695f8b8..d53b86731 100644 --- a/include/usage.h +++ b/include/usage.h @@ -3574,11 +3574,11 @@ #if ENABLE_DESKTOP #define ps_trivial_usage \ - "" + "[-o COL1,COL2=HEADER]" IF_FEATURE_SHOW_THREADS(" [-T]") #define ps_full_usage "\n\n" \ - "Report process status\n" \ + "Show list of processes\n" \ "\nOptions:" \ - "\n -o col1,col2=header Select columns for display" \ + "\n -o COL1,COL2=HEADER Select columns for display" \ IF_FEATURE_SHOW_THREADS( \ "\n -T Show threads" \ ) @@ -3594,7 +3594,7 @@ #define ps_trivial_usage \ "" #define ps_full_usage "\n\n" \ - "Report process status\n" \ + "Show list of processes\n" \ USAGE_PS \ IF_SELINUX( \ "\n -Z Show selinux context" \ diff --git a/procps/ps.c b/procps/ps.c index c3b200866..a3220a926 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) |