Yet another major reorganization and a few new features.
diff --git a/tools/winapi_check/winapi_function.pm b/tools/winapi_check/winapi_function.pm
index a43ff57..6a3d0ec 100644
--- a/tools/winapi_check/winapi_function.pm
+++ b/tools/winapi_check/winapi_function.pm
@@ -74,13 +74,27 @@
}
}
+sub external_name {
+ my $self = shift;
+
+ foreach my $winapi (@winapis) {
+ my $external_name = $self->_external_name($winapi, @_);
+
+ if(defined($external_name)) {
+ return $external_name;
+ }
+ }
+
+ return undef;
+}
+
sub external_name16 { my $self = shift; return $self->_external_name($win16api, @_); }
sub external_name32 { my $self = shift; return $self->_external_name($win32api, @_); }
sub external_names16 { my $self = shift; return $self->_external_names($win16api, @_); }
sub external_names32 { my $self = shift; return $self->_external_names($win32api, @_); }
-sub external_names { my $self = shift; return ($self->external_names16,$self->external_names32); }
+sub external_names { my $self = shift; return ($self->external_names16, $self->external_names32); }
########################################################################
# module
@@ -201,10 +215,14 @@
my $return_type = $self->return_type;
my $internal_name = $self->internal_name;
my $calling_convention = $self->calling_convention;
- my @argument_types = @{$self->argument_types};
- if($#argument_types < 0) {
- @argument_types = ("void");
+ my $refargument_types = $self->argument_types;
+ my @argument_types = ();
+ if(defined($refargument_types)) {
+ @argument_types = @$refargument_types;
+ if($#argument_types < 0) {
+ @argument_types = ("void");
+ }
}
my $prefix = "";
@@ -326,10 +344,14 @@
sub _argument_kinds {
my $self = shift;
my $winapi = shift;
- my @argument_types = @{$self->argument_types};
+ my $refargument_types = $self->argument_types;
+
+ if(!defined($refargument_types)) {
+ return undef;
+ }
my @argument_kinds;
- foreach my $argument_type (@argument_types) {
+ foreach my $argument_type (@$refargument_types) {
my $argument_kind = $winapi->translate_argument($argument_type);
if(defined($argument_kind) && $argument_kind eq "longlong") {