# New Ticket Created by "Paul Cochrane" # Please include the string: [perl #40394] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40394 >
Hi, This patch gets code_coda.t to test for multiply-defined codas (for those cases when a file append or automated tool adds a coda unnecessarily). I have a feeling it's not pretty code, but my perl foo is only slowly improving. Regards, Paul Files affected by this patch: parrot/t/codingstd/code_coda.t
Index: t/codingstd/code_coda.t =================================================================== --- t/codingstd/code_coda.t (revision 14683) +++ t/codingstd/code_coda.t (working copy) @@ -46,6 +46,7 @@ my $DIST = Parrot::Distribution->new; my @files = @ARGV ? @ARGV : source_files(); my @comments; +my @coda_extras; foreach my $file ( @files ) { my $buf; @@ -72,11 +73,36 @@ # append to the comments array if the code doesn't match push @comments => "$path\n" unless $buf =~ m{\Q$coda\E\n*\z}; + + # make an array of the buffer's lines to pass to grep nicely + my @buf_lines = split m/\n/, $buf; + + # check to see how often 'Local variables:' occurs + my $emacs_coda_count = grep m{ + \* \s* Local \s* variables: \s* + }gxms, @buf_lines; + + # check to see how often 'vim:' occurs + my $vim_coda_count = grep m{ + \* \s* vim: \s* + }gxms, @buf_lines; + + # if either the emacs or vim coda is found more than once, record the + # file name + print "emacs coda count: ", $emacs_coda_count, "\n"; + if (($emacs_coda_count > 1) || + ($vim_coda_count > 1)) { + push @coda_extras => "$path\n"; + } } +# check that the coda exists ok(!scalar(@comments), 'C code coda') or diag("C code coda missing in ".scalar @comments." files:[EMAIL PROTECTED]"); +# check for extra emacs/vim codas +ok(!scalar(@coda_extras), 'C code coda') + or diag("C code coda repeating in ".scalar @coda_extras." files:[EMAIL PROTECTED]"); exit; @@ -94,4 +120,9 @@ ); } -## vim: expandtab sw=4 +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: