Update src/tools/make_ctags to avoid Exuberant tags option
authorBruce Momjian <bruce@momjian.us>
Fri, 24 Feb 2012 21:17:07 +0000 (16:17 -0500)
committerBruce Momjian <bruce@momjian.us>
Fri, 24 Feb 2012 21:17:19 +0000 (16:17 -0500)
that has been renamed and undocumented since 2003;  instead, use the
documented option.  Add comments.

src/tools/make_ctags

index 4fc01f543d025a6c4386d1399152c02c3b6b18c1..37ac134aa3dff87df821e256c4fe1314668c2f99 100755 (executable)
@@ -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