2005-04-17 06:20:36 +08:00
|
|
|
#!/usr/bin/perl
|
|
|
|
#
|
|
|
|
# checkincludes: Find files included more than once in (other) files.
|
|
|
|
# Copyright abandoned, 2000, Niels Kristian Bech Jensen <nkbj@image.dk>.
|
|
|
|
|
2009-09-19 03:49:26 +08:00
|
|
|
sub usage {
|
|
|
|
print "Usage: checkincludes.pl <file list>\n";
|
|
|
|
exit 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($#ARGV < 0) {
|
|
|
|
usage();
|
|
|
|
}
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
foreach $file (@ARGV) {
|
|
|
|
open(FILE, $file) or die "Cannot open $file: $!.\n";
|
|
|
|
|
|
|
|
my %includedfiles = ();
|
|
|
|
|
|
|
|
while (<FILE>) {
|
|
|
|
if (m/^\s*#\s*include\s*[<"](\S*)[>"]/o) {
|
|
|
|
++$includedfiles{$1};
|
|
|
|
}
|
|
|
|
}
|
2009-09-19 03:49:25 +08:00
|
|
|
|
|
|
|
close(FILE);
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
foreach $filename (keys %includedfiles) {
|
|
|
|
if ($includedfiles{$filename} > 1) {
|
|
|
|
print "$file: $filename is included more than once.\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|