From 867b8079569662ce2a22f2885ac8cdf168def822 Mon Sep 17 00:00:00 2001 From: Andrea Monaco Date: Wed, 8 Dec 2021 17:51:08 +0100 Subject: Add "comm" as a format spec to ps comm was not recognized by Hurd's ps as a format spec, but is required by POSIX to display the command name (like "exe", but without the full path). --- libps/spec.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'libps/spec.c') diff --git a/libps/spec.c b/libps/spec.c index c9164f9d..adca2e9c 100644 --- a/libps/spec.c +++ b/libps/spec.c @@ -372,6 +372,17 @@ ps_get_exe (struct proc_stat *ps, char **exe_p, int *exe_len_p) } const struct ps_getter ps_exe_getter = {"exe", PSTAT_EXE, ps_get_exe}; + +static void +ps_get_comm (struct proc_stat *ps, char **comm_p, int *comm_len_p) +{ + /* The GNU basename doesn't alter the string passed as arg */ + *comm_p = basename (proc_stat_exe (ps)); + *comm_len_p = strlen (*comm_p); +} +const struct ps_getter ps_comm_getter = +{"comm", PSTAT_EXE, ps_get_comm}; + /* ---------------------------------------------------------------- */ /* some printing functions */ @@ -1128,6 +1139,8 @@ static const struct ps_fmt_spec specs[] = &ps_args_getter, ps_emit_args, ps_cmp_strings,ps_nominal_string}, {"Arg0", 0, 0, -1, 0, &ps_args_getter, ps_emit_string, ps_cmp_strings,ps_nominal_string}, + {"Comm", "COMMAND", 0, -1, 0, + &ps_comm_getter, ps_emit_string, ps_cmp_strings,ps_nominal_string}, {"Env", 0, 0, -1, 0, &ps_env_getter, ps_emit_args, ps_cmp_strings,ps_nominal_string}, {"Start", 0, -7, 1, 0, -- cgit v1.2.3