Several bug fixes and additions.
diff --git a/tools/winapi_check/winapi.pm b/tools/winapi_check/winapi.pm
index f462941..968a721 100644
--- a/tools/winapi_check/winapi.pm
+++ b/tools/winapi_check/winapi.pm
@@ -286,8 +286,16 @@
$ordinal = $1;
# FIXME: Internal name existing more than once not handled properly
- $$function_internal_name{$external_name} = $internal_name;
- $$function_external_name{$internal_name} = $external_name;
+ if(!$$function_internal_name{$external_name}) {
+ $$function_internal_name{$external_name} = $internal_name;
+ } else {
+ $$function_internal_name{$external_name} .= " & $internal_name";
+ }
+ if(!$$function_external_name{$internal_name}) {
+ $$function_external_name{$internal_name} = $external_name;
+ } else {
+ $$function_external_name{$internal_name} .= " & $external_name";
+ }
$$function_internal_arguments{$internal_name} = $arguments;
$$function_external_arguments{$external_name} = $arguments;
if(!$$function_internal_ordinal{$internal_name}) {
@@ -304,12 +312,12 @@
$$function_external_calling_convention{$external_name} = $calling_convention;
if(!$$function_internal_module{$internal_name}) {
$$function_internal_module{$internal_name} = "$module";
- } else { # if($$function_internal_module{$internal_name} !~ /$module/) {
+ } else {
$$function_internal_module{$internal_name} .= " & $module";
}
if(!$$function_external_module{$external_name}) {
$$function_external_module{$external_name} = "$module";
- } else { # if($$function_external_module{$external_name} !~ /$module/) {
+ } else {
$$function_external_module{$external_name} .= " & $module";
}