diff --git a/doc/value/duplicates.pl b/devel_tools/duplicates.pl similarity index 55% rename from doc/value/duplicates.pl rename to devel_tools/duplicates.pl index 1188d66babbdd17c0dc2f7f7006aaa632217ee97..ba91fcccfdd869819e6ed19491723f03f9af9cfa 100755 --- a/doc/value/duplicates.pl +++ b/devel_tools/duplicates.pl @@ -14,21 +14,21 @@ if (!@ARGV) { while (1) { my $FileName = shift @ARGV ; - # Exit code = number of duplicates found. + # Exit code = number of duplicates found. exit $DupCount if (!$FileName) ; - open FILE, $FileName or die $!; - + open FILE, $FileName or die $!; + my $LastWord = "" ; my $LineNum = 0 ; - + while (<FILE>) { chomp ; $LineNum ++ ; - + my @words = split (/(\W+)/) ; - + foreach my $word (@words) { # Skip spaces: next if $word =~ /^\s*$/ ; @@ -38,9 +38,25 @@ while (1) { $LastWord = "" ; next ; } - - # Found a dup? - if (lc($word) eq lc($LastWord)) { + + # Skip numbers + if ($word =~ /^\d+$/) { + $LastWord = "" ; + next ; + } + + # Found a dup? + # note: some words are ignored, such as "long long", + # or some variable/field names + if ($word eq $LastWord && length($word) >= 3 && + !($word eq "lexbuf") && + !($word eq "ofs") && + !($word eq "addr") && + !($word eq "ros") && + !($word eq "end") && + !($word eq "args") && + !($word eq "pos") && + !($word eq "long")) { print "$FileName:$LineNum $word\n" ; $DupCount ++ ; } # Thanks to Sean Cronin for tip on case. @@ -49,7 +65,6 @@ while (1) { $LastWord = $word ; } } - + close FILE ; } -