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

From: Cristian Ciocaltea
Date: Thu Dec 29 2022 - 07:33:28 EST



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 <haokexin@xxxxxxxxx>
---
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()