54 lines
1.2 KiB
Perl
Executable file
54 lines
1.2 KiB
Perl
Executable file
#!/usr/bin/perl -w
|
|
use strict;
|
|
use File::Find ();
|
|
|
|
# -----------------------------------------------------------------------------
|
|
#
|
|
# Script
|
|
# find-templateInComments
|
|
#
|
|
# Description
|
|
# Search for *.[CH] files with '<xxx>' tags within the first comment block
|
|
# These likely need to be quoted as '\<xxx\>' for Doxygen.
|
|
# - print filename and lineNumber
|
|
#
|
|
# -----------------------------------------------------------------------------
|
|
|
|
my $re_filespec = qr{^.+\.[CH]$};
|
|
|
|
# for the convenience of &wanted calls, including -eval statements:
|
|
## use vars qw( *name *dir *prune );
|
|
## *name = *File::Find::name;
|
|
## *dir = *File::Find::dir;
|
|
## *prune = *File::Find::prune;
|
|
|
|
sub wanted {
|
|
unless ( lstat($_) and -f _ and -r _ and not -l _ and /$re_filespec/ ) {
|
|
return;
|
|
}
|
|
|
|
local @ARGV = $_;
|
|
while (<>) {
|
|
if (m{^\s*/\*} ... m{\*/})
|
|
{
|
|
if (m{\<\s*\w+\s*\>}) {
|
|
print "$File::Find::name line=$.\n";
|
|
}
|
|
|
|
if (m{\*/}) {
|
|
last;
|
|
}
|
|
}
|
|
}
|
|
|
|
close ARGV;
|
|
}
|
|
|
|
|
|
## Traverse desired filesystems
|
|
for my $dir (@ARGV) {
|
|
no warnings 'File::Find';
|
|
warn "(**) checking '$dir' ...\n";
|
|
File::Find::find( { wanted => \&wanted }, $dir );
|
|
}
|
|
|