2022-12-29 06:31:12

by Kevin Hao

[permalink] [raw]
Subject: [PATCH] scripts/tags.sh: Fix the Kconfig tags generation when using latest ctags

The Kconfig language has already been built-in in the latest ctags, so
it would error exit if we try to define it as an user-defined language
via '--langdef=kconfig'. This results that there is no Kconfig tags in
the final tag file. Fix this by skipping the user Kconfig definition for
the latest ctags.

Signed-off-by: Kevin Hao <[email protected]>
---
scripts/tags.sh | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index e137cf15aae9..c56b13ae3fdf 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -264,10 +264,12 @@ exuberant()
--$CTAGS_EXTRA=+fq --c-kinds=+px --fields=+iaS --langmap=c:+.h \
"${regex[@]}"

- setup_regex exuberant kconfig
- all_kconfigs | xargs $1 -a \
- --langdef=kconfig --language-force=kconfig "${regex[@]}"
-
+ KCONFIG_ARGS=""
+ if ! $1 --list-languages | grep -iq kconfig; then
+ setup_regex exuberant kconfig
+ KCONFIG_ARGS="--langdef=kconfig --language-force=kconfig ${regex[@]}"
+ fi
+ all_kconfigs | xargs $1 -a $KCONFIG_ARGS
}

emacs()
--
2.38.1


2022-12-29 12:48:21

by Cristian Ciocaltea

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: Fix the Kconfig tags generation when using latest ctags


On 12/29/22 07:54, Kevin Hao wrote:
> The Kconfig language has already been built-in in the latest ctags, so
> it would error exit if we try to define it as an user-defined language
> via '--langdef=kconfig'. This results that there is no Kconfig tags in
> the final tag file. Fix this by skipping the user Kconfig definition for
> the latest ctags.
>
> Signed-off-by: Kevin Hao <[email protected]>
> ---
> scripts/tags.sh | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index e137cf15aae9..c56b13ae3fdf 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -264,10 +264,12 @@ exuberant()
> --$CTAGS_EXTRA=+fq --c-kinds=+px --fields=+iaS --langmap=c:+.h \
> "${regex[@]}"
>
> - setup_regex exuberant kconfig
> - all_kconfigs | xargs $1 -a \
> - --langdef=kconfig --language-force=kconfig "${regex[@]}"
> -
> + KCONFIG_ARGS=""
> + if ! $1 --list-languages | grep -iq kconfig; then
> + setup_regex exuberant kconfig
> + KCONFIG_ARGS="--langdef=kconfig --language-force=kconfig ${regex[@]}"
> + fi
> + all_kconfigs | xargs $1 -a $KCONFIG_ARGS
> }

The 'regex' array needs quoting to prevent word splitting/globbing. I
would suggest to transform 'KCONFIG_ARGS' into an array as well:

KCONFIG_ARGS=()
if ! $1 --list-languages | grep -iq kconfig; then
setup_regex exuberant kconfig
KCONFIG_ARGS=(--langdef=kconfig --language-force=kconfig "${regex[@]}")
fi
all_kconfigs | xargs $1 -a "${KCONFIG_ARGS[@]}"


> emacs()

2022-12-30 03:45:54

by Kevin Hao

[permalink] [raw]
Subject: Re: [PATCH] scripts/tags.sh: Fix the Kconfig tags generation when using latest ctags

On Thu, Dec 29, 2022 at 02:33:15PM +0200, Cristian Ciocaltea wrote:
>
> On 12/29/22 07:54, Kevin Hao wrote:
> > The Kconfig language has already been built-in in the latest ctags, so
> > it would error exit if we try to define it as an user-defined language
> > via '--langdef=kconfig'. This results that there is no Kconfig tags in
> > the final tag file. Fix this by skipping the user Kconfig definition for
> > the latest ctags.
> >
> > Signed-off-by: Kevin Hao <[email protected]>
> > ---
> > scripts/tags.sh | 10 ++++++----
> > 1 file changed, 6 insertions(+), 4 deletions(-)
> >
> > diff --git a/scripts/tags.sh b/scripts/tags.sh
> > index e137cf15aae9..c56b13ae3fdf 100755
> > --- a/scripts/tags.sh
> > +++ b/scripts/tags.sh
> > @@ -264,10 +264,12 @@ exuberant()
> > --$CTAGS_EXTRA=+fq --c-kinds=+px --fields=+iaS --langmap=c:+.h \
> > "${regex[@]}"
> > - setup_regex exuberant kconfig
> > - all_kconfigs | xargs $1 -a \
> > - --langdef=kconfig --language-force=kconfig "${regex[@]}"
> > -
> > + KCONFIG_ARGS=""
> > + if ! $1 --list-languages | grep -iq kconfig; then
> > + setup_regex exuberant kconfig
> > + KCONFIG_ARGS="--langdef=kconfig --language-force=kconfig ${regex[@]}"
> > + fi
> > + all_kconfigs | xargs $1 -a $KCONFIG_ARGS
> > }
>
> The 'regex' array needs quoting to prevent word splitting/globbing.

Fair enough.

> I would
> suggest to transform 'KCONFIG_ARGS' into an array as well:

Sounds great. V2 is coming.

Thanks,
Kevin

>
> KCONFIG_ARGS=()
> if ! $1 --list-languages | grep -iq kconfig; then
> setup_regex exuberant kconfig
> KCONFIG_ARGS=(--langdef=kconfig --language-force=kconfig "${regex[@]}")
> fi
> all_kconfigs | xargs $1 -a "${KCONFIG_ARGS[@]}"
>
>
> > emacs()


Attachments:
(No filename) (1.77 kB)
signature.asc (499.00 B)
Download all attachments