scripts: refactor remove structure forward declarations
Yang Bai [Mon, 12 Mar 2012 08:20:51 +0000 (16:20 +0800)]
Since now it has some problems when generate TAGS,
refactor this code. Now it will not show the error
message and will remove declarations using emacs etags.

Signed-off-by: Yang Bai <hamo.by@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>

scripts/tags.sh

index 0bc8588..0d6004e 100755 (executable)
@@ -166,9 +166,6 @@ exuberant()
        all_defconfigs | xargs -r $1 -a                         \
        --langdef=dotconfig --language-force=dotconfig          \
        --regex-dotconfig='/^#?[[:blank:]]*(CONFIG_[[:alnum:]_]+)/\1/'
-
-       # Remove structure forward declarations.
-       LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' tags
 }
 
 emacs()
@@ -233,6 +230,7 @@ if [ "${ARCH}" = "um" ]; then
        fi
 fi
 
+remove_structs=
 case "$1" in
        "cscope")
                docscope
@@ -245,10 +243,17 @@ case "$1" in
        "tags")
                rm -f tags
                xtags ctags
+               remove_structs=y
                ;;
 
        "TAGS")
                rm -f TAGS
                xtags etags
+               remove_structs=y
                ;;
 esac
+
+# Remove structure forward declarations.
+if [ -n $remove_structs ]; then
+    LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $1
+fi