- Check for missing modules in modules.dat.
- Minor bug fixes
diff --git a/tools/winapi_check/modules.pm b/tools/winapi_check/modules.pm
index f2a4f33..2018533 100644
--- a/tools/winapi_check/modules.pm
+++ b/tools/winapi_check/modules.pm
@@ -17,10 +17,25 @@
$$output = shift;
my $wine_dir = shift;
my $current_dir = shift;
+ my $file_type = shift;
my $module_file = shift;
$module_file =~ s/^\.\///;
+ my @all_spec_files = map {
+ s/^.\/(.*)$/$1/;
+ if(&$file_type($_) eq "library") {
+ $_;
+ } else {
+ ();
+ }
+ } split(/\n/, `find $wine_dir -name \\*.spec`);
+
+ my %all_spec_files;
+ foreach my $file (@all_spec_files) {
+ $all_spec_files{$file}++ ;
+ }
+
if($$options->progress) {
$$output->progress("$module_file");
}
@@ -37,6 +52,12 @@
if(/^%\s+(.*?)$/) {
$spec_file = $1;
+ if($wine_dir eq ".") {
+ $all_spec_files{$spec_file}--;
+ } else {
+ $all_spec_files{"$wine_dir/$spec_file"}--;
+ }
+ $$spec_files{""}{$spec_file}++; # FIXME: Kludge
next;
} else {
$allowed_dir = $1;
@@ -49,6 +70,12 @@
}
close(IN);
+ foreach my $spec_file (sort(keys(%all_spec_files))) {
+ if($all_spec_files{$spec_file} > 0) {
+ $$output->write("$module_file: $spec_file: exists but is not specified\n");
+ }
+ }
+
return $self;
}