Several additions and bug fixes.
diff --git a/tools/winapi_check/winapi.pm b/tools/winapi_check/winapi.pm
index 87657b0..ec47a45 100644
--- a/tools/winapi_check/winapi.pm
+++ b/tools/winapi_check/winapi.pm
@@ -226,9 +226,10 @@
for my $internal_name ($win32api->all_internal_functions) {
my $module16 = $win16api->function_internal_module($internal_name);
+ my $module32 = $win16api->function_internal_module($internal_name);
if(defined($module16) &&
- !$win16api->function_stub($internal_name) &&
- !$win32api->function_stub($internal_name))
+ !$win16api->is_function_stub_in_module($module16, $internal_name) &&
+ !$win32api->is_function_stub_in_module($module32, $internal_name))
{
$win16api->found_shared_internal_function($internal_name);
$win32api->found_shared_internal_function($internal_name);
@@ -248,7 +249,7 @@
my $win32api = shift;
my @files = map {
- s%^\./%%;
+ s%^$wine_dir/%%;
if(&$file_type($_) eq "winelib") {
$_;
} else {
@@ -403,7 +404,7 @@
$internal_name = $external_name;
}
- $$function_stub{$external_name} = 1;
+ $$function_stub{$module}{$external_name} = 1;
if(!$$function_internal_name{$external_name}) {
$$function_internal_name{$external_name} = $internal_name;
} else {
@@ -691,8 +692,22 @@
sub all_functions_stub {
my $self = shift;
my $function_stub = \%{$self->{FUNCTION_STUB}};
+ my $modules = \%{$self->{MODULES}};
- return sort(keys(%$function_stub));
+ my @stubs = ();
+ foreach my $module (keys(%$modules)) {
+ push @stubs, keys(%{$$function_stub{$module}});
+ }
+ return sort(@stubs);
+}
+
+sub all_functions_stub_in_module {
+ my $self = shift;
+ my $function_stub = \%{$self->{FUNCTION_STUB}};
+
+ my $module = shift;
+
+ return sort(keys(%{$$function_stub{$module}}));
}
sub all_internal_functions_found {
@@ -826,13 +841,31 @@
return $$function_external_module{$name};
}
-sub function_stub {
+sub is_function_stub {
+ my $self = shift;
+ my $function_stub = \%{$self->{FUNCTION_STUB}};
+ my $modules = \%{$self->{MODULES}};
+
+ my $module = shift;
+ my $name = shift;
+
+ foreach my $module (keys(%$modules)) {
+ if($$function_stub{$module}{$name}) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+sub is_function_stub_in_module {
my $self = shift;
my $function_stub = \%{$self->{FUNCTION_STUB}};
+ my $module = shift;
my $name = shift;
- return $$function_stub{$name};
+ return $$function_stub{$module}{$name};
}
sub found_internal_function {