On Sun, Apr 15, 2018 at 6:42 PM, Nguyễn Thái Ngọc Duy <[email protected]> wrote:
> common-cmds.h is used to extract the list of common commands (by
> group) and a one-line summary of each command. Some information is
> dropped, for example command category or summary of other commands.
> Update generate-cmdlist.sh to keep all the information. The extra info
> will be used shortly.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]>
> ---
> generate-cmdlist.sh | 61 +++++++++++++++++++++++++++++++++------------
> help.c | 42 ++++++++++++++++++++++++++-----
> 2 files changed, 81 insertions(+), 22 deletions(-)
>
> diff --git a/generate-cmdlist.sh b/generate-cmdlist.sh
> index eeea4b67ea..e0893e979a 100755
> --- a/generate-cmdlist.sh
> +++ b/generate-cmdlist.sh
> -printf 'static struct cmdname_help common_cmds[] = {\n'
> -grep -f "$match" "$1" |
> -sed 's/^git-//' |
> +printf 'static struct cmdname_help command_list[] = {\n'
> +command_list "$1" |
> sort |
> -while read cmd tags
> +while read cmd category tags
> do
> - tag=$(echo "$tags" | sed "$substnum; s/[^0-9]//g")
> + name=${cmd/git-}
There are two issues with this line:
- This is a "regular" shell script, therefore it must not use pattern
substitution.
- The pattern substitution would remove the string "git-" in the middle of
the variable as well; I suspect this is undesired.
I think that the remove matching prefix pattern substitution should be
used here.