Commit 9c39156e authored by Patrik Stridvall's avatar Patrik Stridvall Committed by Alexandre Julliard

- API files update.

- Minor bug fixes.
parent 5a864b2f
......@@ -244,6 +244,30 @@ VOID
BOOL16
WORD
%%display.drv
%long
DWORD
%ptr
LPCURSORINFO16
struct tagCURSORICONINFO *
%str
LPSTR
%void
VOID
%word
BOOL16
WORD
%%gdi.exe
%long
......@@ -453,6 +477,40 @@ INT16
UINT16
WORD
%%keyboard.drv
%long
DWORD
LONG
%ptr
LPBYTE
LPKBINFO
LPVOID
%segptr
FARPROC16
%str
LPCSTR
LPSTR
%void
VOID
void
%word
CHAR
INT16
UINT16
WORD
%%lzexpand.dll
%long
......@@ -478,6 +536,24 @@ HFILE16
INT16
UINT16
%%mouse.drv
%ptr
LPMOUSEINFO
%segptr
FARPROC16
%void
VOID
%word
WORD
%%mmsystem.dll
%long
......@@ -995,7 +1071,7 @@ BOOL16
INT16
UINT16
%%system.dll
%%system.drv
%long
......@@ -1133,6 +1209,7 @@ RECT16 *
SCROLLINFO *
SEGPTR *
UINT16 *
VA_LIST16
WINDOWPLACEMENT16 *
WNDCLASS16 *
WNDCLASSEX16 *
......@@ -1427,6 +1504,7 @@ INT16 *
LPWSADATA16
ULONG *
char *
struct WS_in_addr
struct WS_sockaddr *
struct WS_timeval *
ws_fd_set16 *
......@@ -1440,10 +1518,6 @@ SEGPTR
LPCSTR
%unknown
struct in_addr
%void
void
......
......@@ -538,9 +538,10 @@ foreach my $file (@c_files) {
} else {
$include = "$header";
}
} elsif($header =~ /^(?:\.\.\/kernel\/(kernel_private\.h))$/) { # FIXME: Kludge
my $header2 = $1;
$include = "dlls/kernel/$header2";
} elsif($header =~ /^(?:kernel_private\.h)$/) { # FIXME: Kludge
$include = "dlls/kernel/$header";
} elsif($header =~ /^(?:gdi_private\.h)$/) { # FIXME: Kludge
$include = "dlls/gdi/$header";
} elsif($header =~ /^(?:ntdll_misc\.h)$/) { # FIXME: Kludge
$include = "dlls/ntdll/$header";
} elsif($header =~ /^(?:controls\.h|message\.h)$/) { # FIXME: Kludge
......@@ -618,10 +619,14 @@ foreach my $file (@c_files) {
$include2info{$name}{used}++;
}
}
} elsif($header =~ /^(?:\.\.\/kernel\/(kernel_private\.h))$/) { # FIXME: Kludge
my $header2 = $1;
$include2info{"dlls/kernel/$header2"}{used}++;
foreach my $name (keys(%{$include2info{"dlls/kernel/$header2"}{includes}})) {
} elsif($header =~ /^(?:kernel_private\.h)$/) { # FIXME: Kludge
$include2info{"dlls/kernel/$header"}{used}++;
foreach my $name (keys(%{$include2info{"dlls/kernel/$header"}{includes}})) {
$include2info{$name}{used}++;
}
} elsif($header =~ /^(?:gdi_private\.h)$/) { # FIXME: Kludge
$include2info{"dlls/gdi/$header"}{used}++;
foreach my $name (keys(%{$include2info{"dlls/gdi/$header"}{includes}})) {
$include2info{$name}{used}++;
}
} elsif($header =~ /^(?:ntdll_misc\.h)$/) { # FIXME: Kludge
......@@ -629,7 +634,6 @@ foreach my $file (@c_files) {
foreach my $name (keys(%{$include2info{"dlls/ntdll/$header"}{includes}})) {
$include2info{$name}{used}++;
}
} elsif($header =~ /^(?:controls\.h|message\.h)$/) { # FIXME: Kludge
$include2info{"dlls/user/$header"}{used}++;
foreach my $name (keys(%{$include2info{"dlls/user/$header"}{includes}})) {
......
......@@ -125,13 +125,20 @@ sub check_documentation {
if(!$documentation_error && $options->documentation_wrong) {
foreach (split(/\n/, $documentation)) {
if(/^\s*\*\s*(\S+)\s*[\(\[]\s*(\w+)\s*\.\s*([^\s\)\]]*)\s*[\)\]].*?$/) {
if (/^\s*\*\s*(\S+)\s*[\(\[]\s*(\w+(?:\.(?:DRV|VXD))?)\s*\.\s*([^\s\)\]]*)\s*[\)\]].*?$/) {
my $external_name = $1;
my $module = $2;
my $ordinal = $3;
if(!$options->documentation_pedantic && $ordinal ne "@") {
if ($ordinal eq "@") {
# Nothing
} elsif ($ordinal =~ /^\d+$/) {
$ordinal = int($ordinal);
} elsif ($ordinal eq "init") {
$ordinal = 0;
} else {
$output->write("documentation: $external_name (\U$module\E.$ordinal) wrong\n");
next;
}
my $found = 0;
......@@ -156,7 +163,8 @@ sub check_documentation {
}
if(!$found) {
if (!$found && $external_name ne "DllMain" && $ordinal !~ /^0$/) {
$output->write("documentation: $external_name (\U$module\E.$ordinal) wrong\n");
}
}
......
......@@ -147,7 +147,7 @@ sub _check_function {
}
}
my $declared_calling_convention = $winapi->function_internal_calling_convention($internal_name);
my $declared_calling_convention = $winapi->function_internal_calling_convention($internal_name) || "";
my @declared_argument_kinds = split(/\s+/, $winapi->function_internal_arguments($internal_name));
my $declared_register = 0;
......@@ -171,16 +171,22 @@ sub _check_function {
}
if($declared_calling_convention eq "varargs") {
if($#argument_types != -1 && $argument_types[$#argument_types] eq "...") {
if ($#argument_types != -1 &&
(($winapi->name eq "win32" && $argument_types[$#argument_types] eq "...") ||
($winapi->name eq "win16" && $argument_types[$#argument_types] eq "VA_LIST16")))
{
pop @argument_types;
} else {
$output->write("function not implemented as vararg\n");
$output->write("function not implemented as varargs\n");
}
} elsif($#argument_types != -1 && $argument_types[$#argument_types] eq "...") {
if($#argument_types == 0 || $winapi->name eq "win16") {
} elsif ($#argument_types != -1 &&
(($winapi->name eq "win32" && $argument_types[$#argument_types] eq "...") ||
($winapi->name eq "win16" && $argument_types[$#argument_types] eq "VA_LIST16")))
{
if($#argument_types == 0) {
pop @argument_types;
} else {
$output->write("function not declared as vararg\n");
$output->write("function not declared as varargs\n");
}
}
......
......@@ -499,20 +499,29 @@ sub parse_c_file {
my @arguments32 = ("HWAVEOUT", $4);
&$function_begin($documentation_line, $documentation,
$function_line, "", "UINT16", "WINAPI", "waveOut" . $2 . "16", \@arguments16);
&$function_end($., "");
&$function_end($function_line, "");
&$function_begin($documentation_line, $documentation,
$function_line, "", "UINT", "WINAPI", "waveOut" . $2, \@arguments32);
&$function_end($., "");
&$function_end($function_line, "");
} elsif($1 eq 2) {
my @arguments16 = ("UINT16", $4);
my @arguments32 = ("UINT", $4);
&$function_begin($documentation_line, $documentation,
$function_line, "", "UINT16", "WINAPI", "waveOut". $2 . "16", \@arguments16);
&$function_end($., "");
&$function_end($function_line, "");
&$function_begin($documentation_line, $documentation,
$function_line, "", "UINT", "WINAPI", "waveOut" . $2, \@arguments32);
&$function_end($., "");
&$function_end($function_line, "");
}
} elsif(/DEFINE_THISCALL_WRAPPER\((\S*)\)/s) {
my @lines = split(/\n/, $&);
my $function_line = $. - scalar(@lines) + 1;
$_ = $'; $again = 1;
&$function_begin($documentation_line, $documentation,
$function_line, "", "void", "", "__thiscall_" . $1, \());
&$function_end($function_line, "");
} elsif(/DEFINE_REGS_ENTRYPOINT_\d+\(\s*(\S*)\s*,\s*([^\s,\)]*).*?\)/s) {
$_ = $'; $again = 1;
$regs_entrypoints{$2} = $1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment