From 7b2e8ec2a1bb581aaba76b691317c51ebcbf8da2 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 12 May 2021 17:28:56 +0200 Subject: [PATCH] [Dev] move and improve word duplicates detection script --- {doc/value => devel_tools}/duplicates.pl | 37 +++++++++++++++++------- 1 file changed, 26 insertions(+), 11 deletions(-) rename {doc/value => devel_tools}/duplicates.pl (55%) 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 1188d66babb..ba91fcccfdd 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 ; } - -- GitLab