aboutsummaryrefslogtreecommitdiff
path: root/fixtags.pl
diff options
context:
space:
mode:
Diffstat (limited to 'fixtags.pl')
-rw-r--r--fixtags.pl25
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;