- Minor API files update.
- Minor bug fixes.
This commit is contained in:
parent
9db72e3b58
commit
41f99ba2c9
@ -75,6 +75,10 @@ objects
|
|||||||
|
|
||||||
dlls/gdi
|
dlls/gdi
|
||||||
|
|
||||||
|
% dlls/glu32/glu32.spec
|
||||||
|
|
||||||
|
dlls/glu32
|
||||||
|
|
||||||
% dlls/icmp/icmp.spec
|
% dlls/icmp/icmp.spec
|
||||||
|
|
||||||
dlls/icmp
|
dlls/icmp
|
||||||
|
@ -8,7 +8,6 @@ ULONG
|
|||||||
|
|
||||||
%ptr
|
%ptr
|
||||||
|
|
||||||
IAVIFile *
|
|
||||||
LPCLSID
|
LPCLSID
|
||||||
PAVIFILE
|
PAVIFILE
|
||||||
PAVIFILE *
|
PAVIFILE *
|
||||||
|
@ -9,13 +9,12 @@ ULONG
|
|||||||
%ptr
|
%ptr
|
||||||
|
|
||||||
AVICOMPRESSOPTIONS *
|
AVICOMPRESSOPTIONS *
|
||||||
|
AVIFILEINFOA *
|
||||||
|
AVIFILEINFOW *
|
||||||
AVISTREAMINFOA *
|
AVISTREAMINFOA *
|
||||||
AVISTREAMINFOW *
|
AVISTREAMINFOW *
|
||||||
CLSID *
|
CLSID *
|
||||||
IAVIFile *
|
|
||||||
LONG *
|
LONG *
|
||||||
LPAVIFILEINFOA
|
|
||||||
LPAVIFILEINFOW
|
|
||||||
LPBITMAPINFOHEADER
|
LPBITMAPINFOHEADER
|
||||||
LPCLSID
|
LPCLSID
|
||||||
LPVOID
|
LPVOID
|
||||||
|
13
tools/winapi_check/win32/glu32.api
Normal file
13
tools/winapi_check/win32/glu32.api
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
%double
|
||||||
|
|
||||||
|
double
|
||||||
|
|
||||||
|
%long
|
||||||
|
|
||||||
|
int
|
||||||
|
|
||||||
|
%ptr
|
||||||
|
|
||||||
|
char *
|
||||||
|
void *
|
||||||
|
|
@ -100,6 +100,7 @@ LPMEMORYSTATUS
|
|||||||
LPMEMORY_BASIC_INFORMATION
|
LPMEMORY_BASIC_INFORMATION
|
||||||
LPMODULEENTRY32
|
LPMODULEENTRY32
|
||||||
LPOVERLAPPED
|
LPOVERLAPPED
|
||||||
|
LPOVERLAPPED *
|
||||||
LPOVERLAPPED_COMPLETION_ROUTINE
|
LPOVERLAPPED_COMPLETION_ROUTINE
|
||||||
LPPROCESSENTRY32
|
LPPROCESSENTRY32
|
||||||
LPPROCESS_HEAP_ENTRY
|
LPPROCESS_HEAP_ENTRY
|
||||||
|
@ -4,4 +4,4 @@ DWORD
|
|||||||
HDRVR
|
HDRVR
|
||||||
LONG
|
LONG
|
||||||
UINT
|
UINT
|
||||||
WORD
|
|
||||||
|
@ -65,7 +65,9 @@ struct _stat *
|
|||||||
struct _timeb *
|
struct _timeb *
|
||||||
struct _utimbuf *
|
struct _utimbuf *
|
||||||
struct _wfinddata_t *
|
struct _wfinddata_t *
|
||||||
|
terminate_function
|
||||||
type_info *
|
type_info *
|
||||||
|
unexpected_function
|
||||||
unsigned char *
|
unsigned char *
|
||||||
unsigned int *
|
unsigned int *
|
||||||
va_list
|
va_list
|
||||||
|
@ -19,6 +19,7 @@ HWND
|
|||||||
LPARAM
|
LPARAM
|
||||||
LRESULT
|
LRESULT
|
||||||
UCHAR
|
UCHAR
|
||||||
|
REGSAM
|
||||||
UINT
|
UINT
|
||||||
WCHAR
|
WCHAR
|
||||||
WORD
|
WORD
|
||||||
|
@ -21,12 +21,13 @@ int
|
|||||||
%ptr
|
%ptr
|
||||||
|
|
||||||
BYTE *
|
BYTE *
|
||||||
WINDOWPOS *
|
CREATESTRUCTA *
|
||||||
LPBYTE
|
LPBYTE
|
||||||
LPDIDEVICEOBJECTDATA
|
LPDIDEVICEOBJECTDATA
|
||||||
LPDWORD
|
LPDWORD
|
||||||
LPMOUSE_EVENT_PROC
|
LPMOUSE_EVENT_PROC
|
||||||
LPVOID
|
LPVOID
|
||||||
|
WINDOWPOS *
|
||||||
struct tagCURSORICONINFO *
|
struct tagCURSORICONINFO *
|
||||||
struct tagWND *
|
struct tagWND *
|
||||||
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
%long
|
%long
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
|
DWORD
|
||||||
HRESULT
|
HRESULT
|
||||||
long
|
long
|
||||||
|
|
||||||
%ptr
|
%ptr
|
||||||
|
|
||||||
|
IBindCtx *
|
||||||
|
IBindStatusCallback *
|
||||||
|
IBindStatusCallback **
|
||||||
IMoniker *
|
IMoniker *
|
||||||
IMoniker **
|
IMoniker **
|
||||||
LPVOID *
|
LPVOID *
|
||||||
|
@ -7,4 +7,4 @@ DWORD
|
|||||||
|
|
||||||
LPDWORD
|
LPDWORD
|
||||||
LPSRB
|
LPSRB
|
||||||
LPVOID
|
PASPI32BUFF
|
||||||
|
@ -11,6 +11,7 @@ HWND
|
|||||||
INT
|
INT
|
||||||
LONG
|
LONG
|
||||||
UINT
|
UINT
|
||||||
|
WPARAM
|
||||||
WORD
|
WORD
|
||||||
|
|
||||||
%long # --forbidden
|
%long # --forbidden
|
||||||
@ -23,11 +24,15 @@ int
|
|||||||
|
|
||||||
BYTE *
|
BYTE *
|
||||||
CURSORICONINFO *
|
CURSORICONINFO *
|
||||||
|
CREATESTRUCTA *
|
||||||
|
HANDLE *
|
||||||
LPBYTE
|
LPBYTE
|
||||||
LPDIDEVICEOBJECTDATA
|
LPDIDEVICEOBJECTDATA
|
||||||
LPDWORD
|
LPDWORD
|
||||||
LPMOUSE_EVENT_PROC
|
LPMOUSE_EVENT_PROC
|
||||||
|
LPRECT
|
||||||
LPVOID
|
LPVOID
|
||||||
|
RECT *
|
||||||
WINDOWPOS *
|
WINDOWPOS *
|
||||||
WND *
|
WND *
|
||||||
|
|
||||||
|
@ -15,21 +15,34 @@
|
|||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
my $wine_dir;
|
my $wine_dir;
|
||||||
|
my $winapi_dir;
|
||||||
my $winapi_check_dir;
|
my $winapi_check_dir;
|
||||||
|
my $tool;
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
|
|
||||||
if($0 =~ /^((.*?)\/?tools\/winapi_check)\/winapi_check$/)
|
if($0 =~ m%^((.*?)/?tools/([^/]+))/winapi_check$%)
|
||||||
{
|
{
|
||||||
$winapi_check_dir = $1;
|
$winapi_dir = $1;
|
||||||
if($2 ne "")
|
$winapi_check_dir = $1;
|
||||||
{
|
$tool = $3;
|
||||||
$wine_dir = $2;
|
|
||||||
} else {
|
if(defined($2) && $2 ne "")
|
||||||
$wine_dir = ".";
|
{
|
||||||
}
|
$wine_dir = $2;
|
||||||
|
} else {
|
||||||
|
$wine_dir = ".";
|
||||||
|
}
|
||||||
|
|
||||||
|
$winapi_dir =~ s%^\./%%;
|
||||||
|
$winapi_dir =~ s/$tool/winapi/;
|
||||||
|
|
||||||
|
$winapi_check_dir =~ s%^\./%%;
|
||||||
|
} else {
|
||||||
|
print STDERR "$tool: You must run this tool in the main Wine directory or a sub directory\n";
|
||||||
|
exit 1;
|
||||||
}
|
}
|
||||||
@INC = ($winapi_check_dir);
|
@INC = ($winapi_check_dir, $winapi_dir);
|
||||||
|
|
||||||
require "modules.pm";
|
require "modules.pm";
|
||||||
require "nativeapi.pm";
|
require "nativeapi.pm";
|
||||||
@ -63,7 +76,8 @@ if(length($wine_dir) != 1) {
|
|||||||
$pwd =~ s/\/([^\/]*)$//;
|
$pwd =~ s/\/([^\/]*)$//;
|
||||||
$current_dir = "$1/$current_dir";
|
$current_dir = "$1/$current_dir";
|
||||||
}
|
}
|
||||||
$current_dir =~ s/\/.$//;
|
$current_dir =~ s%/\.$%%;
|
||||||
|
$current_dir =~ s%^\./%%;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $output = 'output'->new;
|
my $output = 'output'->new;
|
||||||
@ -88,12 +102,12 @@ sub file_type {
|
|||||||
|
|
||||||
$file_dir =~ s/^$wine_dir\///;
|
$file_dir =~ s/^$wine_dir\///;
|
||||||
|
|
||||||
if($file_dir =~ /^(libtest|program|rc|tests|tools)/ ||
|
if($file_dir =~ /^(libtest|programs|rc|server|tests|tools)/ ||
|
||||||
$file =~ /dbgmain\.c$/ ||
|
$file =~ /dbgmain\.c$/ ||
|
||||||
$file =~ /wineclipsrv\.c$/) # FIXME: Kludge
|
$file =~ /wineclipsrv\.c$/) # FIXME: Kludge
|
||||||
{
|
{
|
||||||
return "application";
|
return "application";
|
||||||
} elsif($file_dir =~ /^(debug|miscemu)/) {
|
} elsif($file_dir =~ /^(debugger|miscemu)/) {
|
||||||
return "emulator";
|
return "emulator";
|
||||||
} else {
|
} else {
|
||||||
return "library";
|
return "library";
|
||||||
@ -103,13 +117,28 @@ sub file_type {
|
|||||||
sub file_skip {
|
sub file_skip {
|
||||||
local $_ = shift;
|
local $_ = shift;
|
||||||
|
|
||||||
if(/agl.c$/) {
|
s%^\./%%;
|
||||||
return 1;
|
|
||||||
}
|
m%^(?:libtest|programs|rc|server|tests|tools)/% && return 1;
|
||||||
|
m%^(?:debugger|miscemu|tsx11|unicode)/% && return 1;
|
||||||
|
m%^dlls/wineps/data/% && return 1;
|
||||||
|
m%^windows/x11drv/wineclipsrv.c% && return 1;
|
||||||
|
m%^dlls/winmm/wineoss/midipatch.c% && return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub files_skip {
|
||||||
|
my @files;
|
||||||
|
foreach my $file (@_) {
|
||||||
|
if(!file_skip($file)) {
|
||||||
|
push @files, $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return @files;
|
||||||
|
}
|
||||||
|
|
||||||
my $modules = 'modules'->new($options, $output, $wine_dir, $current_dir, \&file_type, "$winapi_check_dir/modules.dat");
|
my $modules = 'modules'->new($options, $output, $wine_dir, $current_dir, \&file_type, "$winapi_check_dir/modules.dat");
|
||||||
|
|
||||||
my $win16api = 'winapi'->new($options, $output, "win16", "$winapi_check_dir/win16");
|
my $win16api = 'winapi'->new($options, $output, "win16", "$winapi_check_dir/win16");
|
||||||
@ -181,14 +210,17 @@ my %includes;
|
|||||||
|
|
||||||
my %declared_functions;
|
my %declared_functions;
|
||||||
|
|
||||||
|
my @c_files = files_skip($options->c_files);
|
||||||
|
my @h_files = files_skip($options->h_files);
|
||||||
|
|
||||||
my $progress_output;
|
my $progress_output;
|
||||||
my $progress_current=0;
|
my $progress_current=0;
|
||||||
my $progress_max=scalar($options->c_files);
|
my $progress_max=scalar(@c_files);
|
||||||
|
|
||||||
if($options->headers) {
|
if($options->headers) {
|
||||||
$progress_max += scalar($options->h_files);
|
$progress_max += scalar(@h_files);
|
||||||
|
|
||||||
foreach my $file ($options->h_files) {
|
foreach my $file (@h_files) {
|
||||||
my %functions;
|
my %functions;
|
||||||
|
|
||||||
$progress_current++;
|
$progress_current++;
|
||||||
@ -197,6 +229,9 @@ if($options->headers) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $found_function = sub {
|
my $found_function = sub {
|
||||||
|
my $line = shift;
|
||||||
|
my $refdebug_channels = shift;
|
||||||
|
my @debug_channels = @$refdebug_channels;
|
||||||
my $documentation = shift;
|
my $documentation = shift;
|
||||||
my $linkage = shift;
|
my $linkage = shift;
|
||||||
my $return_type = shift;
|
my $return_type = shift;
|
||||||
@ -260,7 +295,7 @@ if($options->headers) {
|
|||||||
my %module_pseudo_stub_count16;
|
my %module_pseudo_stub_count16;
|
||||||
my %module_pseudo_stub_count32;
|
my %module_pseudo_stub_count32;
|
||||||
|
|
||||||
foreach my $file ($options->c_files) {
|
foreach my $file (@c_files) {
|
||||||
my %functions = ();
|
my %functions = ();
|
||||||
|
|
||||||
my $file_module16 = $modules->allowed_modules_in_file("$current_dir/$file");
|
my $file_module16 = $modules->allowed_modules_in_file("$current_dir/$file");
|
||||||
@ -278,11 +313,10 @@ foreach my $file ($options->c_files) {
|
|||||||
|
|
||||||
my $file_type = file_type($file);
|
my $file_type = file_type($file);
|
||||||
|
|
||||||
if(file_skip($file)) {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $found_function = sub {
|
my $found_function = sub {
|
||||||
|
my $line = shift;
|
||||||
|
my $refdebug_channels = shift;
|
||||||
|
my @debug_channels = @$refdebug_channels;
|
||||||
my $documentation = shift;
|
my $documentation = shift;
|
||||||
my $linkage = shift;
|
my $linkage = shift;
|
||||||
my $return_type = shift;
|
my $return_type = shift;
|
||||||
|
@ -9,6 +9,11 @@ sub parse_c_file {
|
|||||||
my $function_found_callback = shift;
|
my $function_found_callback = shift;
|
||||||
my $preprocessor_found_callback = shift;
|
my $preprocessor_found_callback = shift;
|
||||||
|
|
||||||
|
# global
|
||||||
|
my $debug_channels = [];
|
||||||
|
|
||||||
|
# local
|
||||||
|
my $line_number = 0;
|
||||||
my $documentation;
|
my $documentation;
|
||||||
my $linkage;
|
my $linkage;
|
||||||
my $return_type;
|
my $return_type;
|
||||||
@ -44,12 +49,11 @@ sub parse_c_file {
|
|||||||
$statements = "";
|
$statements = "";
|
||||||
};
|
};
|
||||||
my $function_end = sub {
|
my $function_end = sub {
|
||||||
&$function_found_callback($documentation,$linkage,$return_type,
|
&$function_found_callback($line_number,$debug_channels,$documentation,$linkage,$return_type,
|
||||||
$calling_convention,$function,$argument_types,
|
$calling_convention,$function,$argument_types,
|
||||||
$argument_names,$argument_documentations,$statements);
|
$argument_names,$argument_documentations,$statements);
|
||||||
$function = "";
|
$function = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
my %regs_entrypoints;
|
my %regs_entrypoints;
|
||||||
my @comments = ();
|
my @comments = ();
|
||||||
my $level = 0;
|
my $level = 0;
|
||||||
@ -219,6 +223,8 @@ sub parse_c_file {
|
|||||||
((__cdecl|__stdcall|CDECL|VFWAPIV|VFWAPI|WINAPIV|WINAPI|CALLBACK)\s+)?
|
((__cdecl|__stdcall|CDECL|VFWAPIV|VFWAPI|WINAPIV|WINAPI|CALLBACK)\s+)?
|
||||||
(\w+(\(\w+\))?)\s*\(([^\)]*)\)\s*(\{|\;)/sx)
|
(\w+(\(\w+\))?)\s*\(([^\)]*)\)\s*(\{|\;)/sx)
|
||||||
{
|
{
|
||||||
|
$line_number = $. - $lookahead_count;
|
||||||
|
|
||||||
$_ = $'; $again = 1;
|
$_ = $'; $again = 1;
|
||||||
|
|
||||||
if($11 eq "{") {
|
if($11 eq "{") {
|
||||||
@ -380,6 +386,12 @@ sub parse_c_file {
|
|||||||
} elsif(/DEFINE_REGS_ENTRYPOINT_\d+\(\s*(\S*)\s*,\s*([^\s,\)]*).*?\)/s) {
|
} elsif(/DEFINE_REGS_ENTRYPOINT_\d+\(\s*(\S*)\s*,\s*([^\s,\)]*).*?\)/s) {
|
||||||
$_ = $'; $again = 1;
|
$_ = $'; $again = 1;
|
||||||
$regs_entrypoints{$2} = $1;
|
$regs_entrypoints{$2} = $1;
|
||||||
|
} elsif(/DEFAULT_DEBUG_CHANNEL\s*\((\S+)\)/s) {
|
||||||
|
$_ = $'; $again = 1;
|
||||||
|
unshift @$debug_channels, $1;
|
||||||
|
} elsif(/(DEFAULT|DECLARE)_DEBUG_CHANNEL\s*\((\S+)\)/s) {
|
||||||
|
$_ = $'; $again = 1;
|
||||||
|
push @$debug_channels, $1;
|
||||||
} elsif(/\'[^\']*\'/s) {
|
} elsif(/\'[^\']*\'/s) {
|
||||||
$_ = $'; $again = 1;
|
$_ = $'; $again = 1;
|
||||||
} elsif(/\"[^\"]*\"/s) {
|
} elsif(/\"[^\"]*\"/s) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user