Signed-off-by: Weifeng Su <suweifeng1@huawei.com> (cherry picked from commit 555072b545dc76bcc5d0133a7de768d518d6f2a5)
74 lines
2.5 KiB
Diff
74 lines
2.5 KiB
Diff
From dd3cb0892d142e370413e1cba582d390042883e5 Mon Sep 17 00:00:00 2001
|
|
From: Craig Small <csmall@dropbear.xyz>
|
|
Date: Mon, 19 Dec 2022 16:50:12 +1100
|
|
Subject: [PATCH] ps: Correct BSD c option
|
|
|
|
procps 3.3.17 the c option changed the command/args field
|
|
to cmd but this got removed as part of newlib
|
|
|
|
Functionality is back in with a test case.
|
|
|
|
References:
|
|
https://bugs.debian.org/1026326
|
|
|
|
Signed-off-by: Craig Small <csmall@dropbear.xyz>
|
|
---
|
|
NEWS | 1 +
|
|
src/ps/output.c | 7 +++++--
|
|
testsuite/ps.test/ps_output.exp | 6 ++++++
|
|
3 files changed, 12 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/NEWS b/NEWS
|
|
index 2d13978d..8a2d6b04 100644
|
|
--- a/NEWS
|
|
+++ b/NEWS
|
|
@@ -2,7 +2,8 @@ procps-ng-NEXT
|
|
---------------
|
|
* docs: Don't install English manpages twice
|
|
* skill: Match on -p again Debian #1025915
|
|
+ * ps: c flag shows command name again Debian #1026326
|
|
* vmstat: Referesh memory statistics Debian #1027963
|
|
procps-ng-4.0.2
|
|
---------------
|
|
* library revision - 0:1:0
|
|
diff --git a/src/ps/output.c b/src/ps/output.c
|
|
index 5a14f5be..26001a6c 100644
|
|
--- a/src/ps/output.c
|
|
+++ b/src/ps/output.c
|
|
@@ -403,13 +403,16 @@ Modifications to the arguments are not shown.
|
|
static int pr_args(char *restrict const outbuf, const proc_t *restrict const pp){
|
|
char *endp;
|
|
int rightward, fh;
|
|
-setREL2(CMDLINE,ENVIRON)
|
|
+setREL3(CMDLINE,CMD,ENVIRON)
|
|
endp = outbuf;
|
|
rightward = max_rightward;
|
|
fh = forest_helper(outbuf);
|
|
endp += fh;
|
|
rightward -= fh;
|
|
- endp += escape_str(endp, rSv(CMDLINE, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
|
|
+ if (!bsd_c_option)
|
|
+ endp += escape_str(endp, rSv(CMDLINE, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
|
|
+ else
|
|
+ endp += escape_str(endp, rSv(CMD, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
|
|
if(bsd_e_option && rightward>1) {
|
|
char *e = rSv(ENVIRON, str, pp);
|
|
if(*e != '-' || *(e+1) != '\0') {
|
|
diff --git a/testsuite/ps.test/ps_output.exp b/testsuite/ps.test/ps_output.exp
|
|
index 998490e5..b0f789e0 100644
|
|
--- a/testsuite/ps.test/ps_output.exp
|
|
+++ b/testsuite/ps.test/ps_output.exp
|
|
@@ -51,3 +51,9 @@ expect_pass "$test" "error: missing AIX field descriptor"
|
|
set test "ps with unknown AIX field"
|
|
spawn $ps -o "%p %Z"
|
|
expect_pass "$test" "error: unknown AIX field descriptor"
|
|
+
|
|
+make_testproc
|
|
+set test "ps with c option"
|
|
+spawn $ps co command $testproc1_pid
|
|
+expect_pass "$test" "^COMMAND\\s+spcorp\\s*$"
|
|
+kill_testproc
|
|
--
|
|
2.33.0
|
|
|