diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/tools/make_ctags | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/src/tools/make_ctags b/src/tools/make_ctags index 4fc01f543d0..37ac134aa3d 100755 --- a/src/tools/make_ctags +++ b/src/tools/make_ctags @@ -5,20 +5,41 @@ trap "rm -f /tmp/$$" 0 1 2 3 15 rm -f ./tags -cv=`ctags --version 2>&1 | grep Exuberant` +IS_EXUBERANT="" +ctags --version 2>&1 | grep Exuberant && IS_EXUBERANT="Y" -if [ -z "$cv" ] -then FLAGS="-dt" -else FLAGS="--c-types=+dfmstuv" +# List of kinds supported by Exuberant Ctags 5.8 +# generated by ctags --list-kinds +# c classes +# d macro definitions +# e enumerators (values inside an enumeration) +# f function definitions +# g enumeration names +# l local variables [off] +# m class, struct, and union members +# n namespaces +# p function prototypes [off] +# s structure names +# t typedefs +# u union names +# v variable definitions +# x external and forward variable declarations [off] + +if [ "$IS_EXUBERANT" ] +then FLAGS="--c-kinds=+dfmstuv" +else FLAGS="-dt" fi -find `pwd`/ \( -name _deadcode -prune \) -o \ - -type f -name '*.[chyl]' -print | - xargs ctags "$FLAGS" -a -f tags +# this is outputting the tags into the file 'tags', and appending +find `pwd`/ -type f -name '*.[chyl]' -print | + xargs ctags -a -f tags "$FLAGS" -if [ -z "$cv" ] -then - LC_ALL=C +# Exuberant tags has a header that we cannot sort in with the other entries +# so we skip the sort step +# Why are we sorting this? I guess some tag implementation need this, +# particularly for append mode. bjm 2012-02-24 +if [ ! "$IS_EXUBERANT" ] +then LC_ALL=C export LC_ALL sort tags >/tmp/$$ && mv /tmp/$$ tags fi |