diff options
Diffstat (limited to 'fixtags.pl')
-rw-r--r-- | fixtags.pl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/fixtags.pl b/fixtags.pl new file mode 100644 index 0000000..ce7567f --- /dev/null +++ b/fixtags.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl -w + +# read a ctags file. for every tag found, create its +# corresponding tag with or without leading _. +# vim wants the tagfile sorted, so do that, too. + +$file = $ARGV[0]; +while(<>) { + push @tags, $_; + next if /^!/; # skip ctags magic tags + + # skip C #defines + my @fields = split '\t'; + next if $fields[1] =~ /\.c$/ && $fields[3] =~ /^d$/; + + if(/^_/) { + s/^_//; + } else { + s/^/_/; + } + push @tags, $_; +} + +open OUT, ">$file" or die $!; +print OUT for sort @tags; |