Get rid of the static module list.
diff --git a/tools/winapi_check/modules.pm b/tools/winapi_check/modules.pm
index daa91ae..a463f24 100644
--- a/tools/winapi_check/modules.pm
+++ b/tools/winapi_check/modules.pm
@@ -95,54 +95,35 @@
my $self = {};
bless ($self, $class);
- my $spec_file_found = $self->read_module_file();
+ my $spec_file_found = $self->find_spec_files();
$self->read_spec_files($spec_file_found);
return $self;
}
-sub read_module_file {
+sub find_spec_files {
my $self = shift;
my $dir2spec_file = \%{$self->{DIR2SPEC_FILE}};
my $spec_file2dir = \%{$self->{SPEC_FILE2DIR}};
- my $module_file = "$winapi_check_dir/modules.dat";
-
- $output->progress("modules.dat");
+ $output->progress("modules");
my $spec_file_found = {};
my $allowed_dir;
my $spec_file;
- open(IN, "< $module_file");
- local $/ = "\n";
- while(<IN>) {
- s/^\s*?(.*?)\s*$/$1/; # remove whitespace at begining and end of line
- s/^(.*?)\s*#.*$/$1/; # remove comments
- /^$/ && next; # skip empty lines
+ my @spec_files = <{dlls/*/*.spec,dlls/*/*/*.spec}>;
- if(/^%\s+(.*?)$/) {
- $spec_file = $1;
+ foreach $spec_file (@spec_files) {
+ $spec_file =~ /(.*)\/.*\.spec/;
- if(!-f "$wine_dir/$spec_file") {
- $output->write("modules.dat: $spec_file: file ($spec_file) doesn't exist or is no file\n");
- }
+ $allowed_dir = $1;
- $$spec_file_found{$spec_file}++;
- $$spec_file2dir{$spec_file} = {};
- next;
- } else {
- $allowed_dir = $1;
- $$spec_file2dir{$spec_file}{$allowed_dir}++;
- }
- $$dir2spec_file{$allowed_dir}{$spec_file}++;
-
- if(!-d "$wine_dir/$allowed_dir") {
- $output->write("modules.dat: $spec_file: directory ($allowed_dir) doesn't exist or is no directory\n");
- }
+ $$spec_file_found{$spec_file}++;
+ $$spec_file2dir{$spec_file}{$allowed_dir}++;
+ $$dir2spec_file{$allowed_dir}{$spec_file}++;
}
- close(IN);
return $spec_file_found;
}
@@ -192,7 +173,7 @@
foreach my $spec_file (@spec_files) {
if(!$$spec_file_found{$spec_file} && $spec_file !~ m%tests/[^/]+$%) {
- $output->write("modules.dat: $spec_file: exists but is not specified\n");
+ $output->write("modules: $spec_file: exists but is not specified\n");
}
}
}
@@ -359,7 +340,7 @@
foreach my $module ($self->all_modules) {
if(!$$used_module_dirs{$module}{$dir}) {
my $spec_file = $$module2spec_file{$module};
- push @messages, "modules.dat: $spec_file: directory ($dir) is not used\n";
+ push @messages, "modules: $spec_file: directory ($dir) is not used\n";
}
}
}