Several additions and bug fixes.
diff --git a/tools/winapi_check/winapi_documentation.pm b/tools/winapi_check/winapi_documentation.pm
index c28560c..78abc2b 100644
--- a/tools/winapi_check/winapi_documentation.pm
+++ b/tools/winapi_check/winapi_documentation.pm
@@ -2,6 +2,8 @@
use strict;
+use config qw($current_dir $wine_dir);
+
my %comment_width;
my %comment_indent;
my %comment_spacing;
@@ -13,13 +15,17 @@
my $output = shift;
my $win16api = shift;
my $win32api = shift;
+ my $modules = shift;
my $function = shift;
- my $module16 = $function->module16;
- my $module32 = $function->module32;
+ my $file = $function->file;
my $external_name16 = $function->external_name16;
my $external_name32 = $function->external_name32;
my $internal_name = $function->internal_name;
+ my $module16 = $function->module16;
+ my $module32 = $function->module32;
+ my $ordinal16 = $function->ordinal16;
+ my $ordinal32 = $function->ordinal32;
my $documentation = $function->documentation;
my $documentation_line = $function->documentation_line;
my @argument_documentations = @{$function->argument_documentations};
@@ -33,16 +39,18 @@
my @winapis = ($win16api, $win32api);
my @modules = ($module16, $module32);
my @external_names = ($external_name16, $external_name32);
+ my @ordinals = ($ordinal16, $ordinal32);
while(
defined(my $winapi = shift @winapis) &&
defined(my $external_name = shift @external_names) &&
- defined(my $module = shift @modules))
+ defined(my $module = shift @modules) &&
+ defined(my $ordinal = shift @ordinals))
{
- if($winapi->function_stub($internal_name)) { next; }
+ if($winapi->is_function_stub_in_module($module, $internal_name)) { next; }
my @external_name = split(/\s*\&\s*/, $external_name);
my @modules = split(/\s*\&\s*/, $module);
- my @ordinals = split(/\s*\&\s*/, $winapi->function_internal_ordinal($internal_name));
+ my @ordinals = split(/\s*\&\s*/, $ordinal);
my $pedantic_failed = 0;
while(defined(my $external_name = shift @external_name) &&
@@ -98,10 +106,14 @@
my $found = 0;
foreach my $entry2 (winapi::get_all_module_internal_ordinal($internal_name)) {
(my $external_name2, my $module2, my $ordinal2) = @$entry2;
-
+
if($external_name eq $external_name2 &&
lc($module) eq $module2 &&
- $ordinal eq $ordinal2)
+ $ordinal eq $ordinal2 &&
+ ($external_name2 eq "@" ||
+ ($win16api->is_module($module2) && !$win16api->is_function_stub_in_module($module2, $external_name2)) ||
+ ($win32api->is_module($module2) && !$win32api->is_function_stub_in_module($module2, $external_name2))) &&
+ $modules->is_allowed_module_in_file($module2, "$current_dir/$file"))
{
$found = 1;
}