- Minor API files fixes.

- Minor bug fixes and additions.
This commit is contained in:
Patrik Stridvall 2000-07-15 21:32:55 +00:00 committed by Alexandre Julliard
parent e03fe5a420
commit c5f948c256
13 changed files with 113 additions and 20 deletions

View File

@ -41,9 +41,9 @@ dlls/ddraw/dclipper
dlls/dinput dlls/dinput
% dlls/dplayx/dplay.spec % dlls/dplay/dplay.spec
dlls/dplayx dlls/dplay
% dlls/dplayx/dplayx.spec % dlls/dplayx/dplayx.spec
@ -128,10 +128,6 @@ memory
misc misc
windows windows
% dlls/kernel/wow32.spec
relay32
% dlls/kernel/wprocs.spec % dlls/kernel/wprocs.spec
if1632 if1632
@ -267,6 +263,10 @@ dlls/rasapi32
dlls/richedit dlls/richedit
% dlls/setupapi/setupapi.spec
dlls/setupapi
% dlls/setupx/setupx.spec % dlls/setupx/setupx.spec
dlls/setupx dlls/setupx
@ -281,14 +281,14 @@ misc
dlls/shell32 dlls/shell32
memory memory
% dlls/shell32/shfolder.spec % dlls/shfolder/shfolder.spec
dlls/shfolder
% dlls/shlwapi/shlwapi.spec
dlls/shell32 dlls/shell32
dlls/shlwapi
% dlls/shell32/shlwapi.spec
dlls/shell32
memory
% dlls/sound/sound.spec % dlls/sound/sound.spec
@ -461,9 +461,10 @@ dlls/winsock
dlls/winsock dlls/winsock
% dlls/winsock/wsock32.spec % dlls/wsock32/wsock32.spec
dlls/winsock dlls/winsock
dlls/wsock32
misc misc
% dlls/winspool/winspool.drv.spec % dlls/winspool/winspool.drv.spec
@ -471,6 +472,10 @@ misc
dlls/winspool dlls/winspool
win32 win32
% dlls/wow32/wow32.spec
relay32
% dlls/x11drv/x11drv.spec % dlls/x11drv/x11drv.spec
dlls/x11drv dlls/x11drv

View File

@ -14,12 +14,12 @@ LONG
UINT UINT
WCHAR WCHAR
clock_t clock_t
size_t
time_t time_t
%long # --forbidden %long # --forbidden
int int
long
unsigned int unsigned int
unsigned long unsigned long
@ -35,7 +35,6 @@ LPINT
LPSTR * LPSTR *
LPSTR ** LPSTR **
LPVOID LPVOID
LPWSTR *
PCONTEXT PCONTEXT
PEXCEPTION_FRAME PEXCEPTION_FRAME
PEXCEPTION_FRAME * PEXCEPTION_FRAME *

View File

@ -23,6 +23,7 @@ LONG
UINT UINT
WCHAR WCHAR
WORD WORD
WOW_HANDLE_TYPE
%long --pointer %long --pointer
@ -78,6 +79,7 @@ LONG *
LPBOOL LPBOOL
LPBYTE LPBYTE
LPCHAR_INFO LPCHAR_INFO
LPCOMMCONFIG
LPCOMMPROP LPCOMMPROP
LPCOMMTIMEOUTS LPCOMMTIMEOUTS
LPCOMSTAT LPCOMSTAT
@ -122,6 +124,7 @@ OFSTRUCT *
OSVERSIONINFOA * OSVERSIONINFOA *
OSVERSIONINFOW * OSVERSIONINFOW *
PAPCFUNC PAPCFUNC
PBOOL
PDWORD PDWORD
PEXCEPTION_POINTERS PEXCEPTION_POINTERS
PHANDLE PHANDLE

View File

@ -31,7 +31,10 @@ WCHAR
%long # --forbidden %long # --forbidden
int int
long
size_t
unsigned int unsigned int
unsigned long
%longlong %longlong
@ -90,7 +93,6 @@ PVOID *
PWCHAR PWCHAR
VOID * VOID *
struct _TEB * struct _TEB *
va_list
void * void *
%str %str

View File

@ -71,6 +71,7 @@ USHORT *
VARIANT * VARIANT *
VARIANTARG * VARIANTARG *
VARIANT_BOOL * VARIANT_BOOL *
VARTYPE *
char * char *
double * double *
short * short *
@ -81,6 +82,7 @@ void **
LPCOLESTR LPCOLESTR
LPOLESTR LPOLESTR
LPSTR
%void %void

View File

@ -0,0 +1,15 @@
%long
BOOL
DWORD
%ptr
PSP_FILE_CALLBACK_A
PSP_FILE_CALLBACK_W
PVOID
%str
PCSTR
PWSTR

View File

@ -11,6 +11,7 @@ HMENU
HPALETTE HPALETTE
HRESULT HRESULT
HWND HWND
UCHAR
UINT UINT
WCHAR WCHAR
WORD WORD

View File

@ -16,6 +16,7 @@ HCURSOR
HDC HDC
HDDEDATA HDDEDATA
HDESK HDESK
HDEVNOTIFY
HDWP HDWP
HFONT HFONT
HHOOK HHOOK

View File

@ -3,18 +3,46 @@
BOOL BOOL
DWORD DWORD
GROUP GROUP
HANDLE
HWND
INT INT
LONG LONG
SOCKET SOCKET
UINT UINT
WSAEVENT WSAEVENT
int
u_long
u_short
%long # --forbidden %long # --forbidden
int SOCKET16
%ptr %ptr
FARPROC
INT *
LPWSADATA LPWSADATA
LPWSANETWORKEVENTS LPWSANETWORKEVENTS
LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFOA
ULONG *
char *
struct WIN_hostent *
struct WIN_protoent *
struct WIN_servent *
struct sockaddr *
struct timeval *
ws_fd_set32 *
%str
LPCSTR
LPSTR
%unknown
struct in_addr
%void
void

View File

@ -183,6 +183,21 @@ sub read_spec_files {
$win32api->parse_spec_file("$wine_dir/$file"); $win32api->parse_spec_file("$wine_dir/$file");
} }
} }
foreach my $self ($win16api, $win32api) {
my $function_forward = \%{$self->{FUNCTION_FORWARD}};
my $function_internal_name = \%{$self->{FUNCTION_INTERNAL_NAME}};
my $function_module = \%{$self->{FUNCTION_MODULE}};
foreach my $forward_name (sort(keys(%$function_forward))) {
$$function_forward{$forward_name} =~ /^(\S*):(\S*)\.(\S*)$/;
(my $from_module, my $to_module, my $external_name) = ($1, $2, $3);
my $internal_name = $$function_internal_name{$external_name};
if(defined($internal_name)) {
$$function_module{$internal_name} .= " & $from_module";
}
}
}
} }
sub read_all_spec_files { sub read_all_spec_files {
@ -215,8 +230,10 @@ sub parse_spec_file {
my $output = \${$self->{OUTPUT}}; my $output = \${$self->{OUTPUT}};
my $function_arguments = \%{$self->{FUNCTION_ARGUMENTS}}; my $function_arguments = \%{$self->{FUNCTION_ARGUMENTS}};
my $function_calling_convention = \%{$self->{FUNCTION_CALLING_CONVENTION}}; my $function_calling_convention = \%{$self->{FUNCTION_CALLING_CONVENTION}};
my $function_internal_name = \%{$self->{FUNCTION_INTERNAL_NAME}};
my $function_external_name = \%{$self->{FUNCTION_EXTERNAL_NAME}}; my $function_external_name = \%{$self->{FUNCTION_EXTERNAL_NAME}};
my $function_stub = \%{$self->{FUNCTION_STUB}}; my $function_stub = \%{$self->{FUNCTION_STUB}};
my $function_forward = \%{$self->{FUNCTION_FORWARD}};
my $function_module = \%{$self->{FUNCTION_MODULE}}; my $function_module = \%{$self->{FUNCTION_MODULE}};
my $modules = \%{$self->{MODULES}}; my $modules = \%{$self->{MODULES}};
my $module_files = \%{$self->{MODULE_FILES}}; my $module_files = \%{$self->{MODULE_FILES}};
@ -260,13 +277,19 @@ sub parse_spec_file {
$ordinal = $1; $ordinal = $1;
# FIXME: Internal name existing more than once not handled properly # FIXME: Internal name existing more than once not handled properly
$$function_internal_name{$external_name} = $internal_name;
$$function_external_name{$internal_name} = $external_name; $$function_external_name{$internal_name} = $external_name;
$$function_arguments{$internal_name} = $arguments; $$function_arguments{$internal_name} = $arguments;
$$function_calling_convention{$internal_name} = $calling_convention; $$function_calling_convention{$internal_name} = $calling_convention;
if(!$$function_module{$internal_name}) { if(!$$function_module{$internal_name}) {
$$function_module{$internal_name} = "$module"; $$function_module{$internal_name} = "$module";
} elsif($$function_module{$internal_name} !~ /$module/) { } elsif($$function_module{$internal_name} !~ /$module/) {
if(0) {
$$output->write("$file: $external_name: the internal function ($internal_name) " .
"already belongs to a module ($$function_module{$internal_name})\n");
}
$$function_module{$internal_name} .= " & $module"; $$function_module{$internal_name} .= " & $module";
} }
if(0 && $$options->spec_mismatch) { if(0 && $$options->spec_mismatch) {
@ -319,6 +342,14 @@ sub parse_spec_file {
} elsif($$function_module{$internal_name} !~ /$module/) { } elsif($$function_module{$internal_name} !~ /$module/) {
$$function_module{$internal_name} .= " & $module"; $$function_module{$internal_name} .= " & $module";
} }
} elsif(/^(\d+|@)\s+forward\s+(\S+)\s+(\S+)\.(\S+)$/) {
$ordinal = $1;
my $external_name = $2;
my $forward_module = lc($3);
my $forward_name = $4;
$$function_forward{$external_name} = "$module:$forward_module.$forward_name";
} elsif(/^(\d+|@)\s+(equate|long|word|extern|forward)/) { } elsif(/^(\d+|@)\s+(equate|long|word|extern|forward)/) {
# ignore # ignore
} else { } else {

View File

@ -447,6 +447,12 @@ foreach my $file ($options->c_files) {
my @uc_modules32 = split(/\s*\&\s*/, uc($module32)); my @uc_modules32 = split(/\s*\&\s*/, uc($module32));
push @uc_modules32, "wine"; push @uc_modules32, "wine";
foreach my $uc_module32 (@uc_modules32) {
if($uc_module32 =~ /^WS2_32$/) {
push @uc_modules32, "WSOCK32";
}
}
$name1 = $internal_name; $name1 = $internal_name;
foreach my $uc_module32 (@uc_modules32) { foreach my $uc_module32 (@uc_modules32) {
if($name1 =~ s/^$uc_module32\_//) { last; } if($name1 =~ s/^$uc_module32\_//) { last; }

View File

@ -122,7 +122,7 @@ sub check_function {
$#argument_types--; $#argument_types--;
} }
if($internal_name =~ /^CRTDLL__ftol|CRTDLL__CIpow$/) { # FIXME: Kludge if($internal_name =~ /^NTDLL__ftol|NTDLL__CIpow$/) { # FIXME: Kludge
# ignore # ignore
} else { } else {
my $n = 0; my $n = 0;

View File

@ -31,7 +31,7 @@ my %options = (
"shared" => { default => 0, description => "show shared functions between Win16 and Win32" }, "shared" => { default => 0, description => "show shared functions between Win16 and Win32" },
"shared-segmented" => { default => 0, description => "segmented shared functions between Win16 and Win32 checking" }, "shared-segmented" => { default => 0, description => "segmented shared functions between Win16 and Win32 checking" },
"config" => { default => 1, description => "check configuration include consistancy" }, "config" => { default => 1, parent => "local", description => "check configuration include consistancy" },
"config-unnessary" => { default => 0, parent => "config", description => "check for unnessary #include \"config.h\"" }, "config-unnessary" => { default => 0, parent => "config", description => "check for unnessary #include \"config.h\"" },
"spec-mismatch" => { default => 0, description => "spec file mismatch checking" }, "spec-mismatch" => { default => 0, description => "spec file mismatch checking" },
@ -77,7 +77,7 @@ my %options = (
"global" => { default => 1, description => "global checking" }, "global" => { default => 1, description => "global checking" },
"declared" => { default => 1, parent => "global", description => "declared checking" }, "declared" => { default => 1, parent => "global", description => "declared checking" },
"implemented" => { default => 1, parent => "global", description => "implemented checking" }, "implemented" => { default => 1, parent => "local", description => "implemented checking" },
"implemented-win32" => { default => 0, parent => "implemented", description => "implemented as win32 checking" }, "implemented-win32" => { default => 0, parent => "implemented", description => "implemented as win32 checking" },
"include" => { default => 1, parent => "global", description => "include checking" }, "include" => { default => 1, parent => "global", description => "include checking" },
"headers" => { default => 0, parent => "global", description => "headers checking" }, "headers" => { default => 0, parent => "global", description => "headers checking" },