bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add "comm" as a format spec to ps


From: Samuel Thibault
Subject: Re: [PATCH] Add "comm" as a format spec to ps
Date: Wed, 8 Dec 2021 17:51:46 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Samuel

Andrea Monaco, le mer. 08 déc. 2021 15:38:09 +0100, a ecrit:
> 
> Hello,
> 
> 
> on my system I found that doing
> 
>  $ gdb foo [TAB]
> 
> that is, trying completion on the second argument of a call to gdb,
> yields a
> 
>  ps: comm: Unknown format spec
> 
> That's because bash has specific completion rules for many common
> programs.  In particular in /usr/share/bash-completion/completions/gdb I
> have "ps axo comm,pid"; comm is 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).
> 
> This patch adds it.  So now we have completion of PIDs matching a given
> program, which is useful when attaching gdb to a running process.
> 
> 
> Cheers,
> 
> Andrea Monaco
> 
> 
> 
> diff --git a/libps/spec.c b/libps/spec.c
> index c9164f9d..cbb00a3f 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,
> 

-- 
Samuel
<d> bah à défaut de ligne TGV, ils ont un GR
 -+- #ens-mim - comment ça, paumé ?! -+-



reply via email to

[Prev in Thread] Current Thread [Next in Thread]