47 lines
1 KiB
Text
47 lines
1 KiB
Text
|
#!/usr/bin/perl -w
|
||
|
use strict;
|
||
|
use File::Find ();
|
||
|
|
||
|
# -----------------------------------------------------------------------------
|
||
|
#
|
||
|
# Script
|
||
|
# find-longlines
|
||
|
#
|
||
|
# Description
|
||
|
# Search for *.[CH] files that exceed the 80-column width
|
||
|
#
|
||
|
# - print filename lineNumber and offending line (with truncation point)
|
||
|
#
|
||
|
# -----------------------------------------------------------------------------
|
||
|
|
||
|
my $maxlen = 80;
|
||
|
my $re_filespec = qr{^.+\.[CH]$};
|
||
|
my $count;
|
||
|
|
||
|
sub wanted {
|
||
|
unless ( lstat($_) and -f _ and -r _ and not -l _ and /$re_filespec/ ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
local @ARGV = $_;
|
||
|
while (<>) {
|
||
|
chomp;
|
||
|
s{\s+$}{}; # trim
|
||
|
|
||
|
if ( $maxlen < length ) {
|
||
|
$count++;
|
||
|
substr( $_, $maxlen, 0 ) = "||->>"; # show truncation point
|
||
|
print "$File::Find::name $. $_\n";
|
||
|
}
|
||
|
}
|
||
|
close ARGV;
|
||
|
}
|
||
|
|
||
|
## Traverse desired filesystems
|
||
|
for my $dir (@ARGV) {
|
||
|
no warnings 'File::Find';
|
||
|
warn "(**) checking '$dir' ...\n";
|
||
|
File::Find::find( { wanted => \&wanted }, $dir );
|
||
|
}
|
||
|
|