- API files update.

- Minor bug fixes.
This commit is contained in:
Patrik Stridvall 2003-08-08 21:04:17 +00:00 committed by Alexandre Julliard
parent c0a3cb13e0
commit c5f834ce6a
11 changed files with 597 additions and 86 deletions

View File

@ -53,7 +53,7 @@ sub file_type {
m%^(?:libtest|rc|server|tests|tools)/% && return "";
m%^(?:programs|debugger|miscemu)/% && return "wineapp";
m%^(?:library|tsx11|unicode)/% && return "library";
m%^(?:libs)/% && return "library";
m%^windows/x11drv/wineclipsrv\.c$% && return "application";
return "winelib";
@ -78,7 +78,7 @@ sub file_skip {
$_ = file_absolutize($_);
m%^(?:libtest|programs|rc|server|tests|tools)/% && return 1;
m%^(?:debugger|miscemu|tsx11|server|unicode)/% && return 1;
m%^(?:debugger|miscemu|libs|server)/% && return 1;
m%^dlls/wineps/data/% && return 1;
m%^windows/x11drv/wineclipsrv\.c$% && return 1;
m%^dlls/winmm/wineoss/midipatch\.c$% && return 1;

View File

@ -2,24 +2,33 @@
%long
BOOL
DWORD
HRESULT
INT
LONG
UINT
ULONG
%ptr
LPAVICOMPRESSOPTIONS *
LPAVIFILEINFOA
LPAVISTREAMINFOA
LPBITMAPINFOHEADER
LPCLSID
LPLONG
LPVOID
PAVIFILE
PAVIFILE *
PAVISTREAM
PAVISTREAM *
PGETFRAME
%str
LPCSTR
LPSTR
%void
@ -114,6 +123,55 @@ HTASK16
INT16
WORD
%%ctl3d.dll
%long
DWORD
HBRUSH
LONG
LPARAM
%void
void
%word
BOOL16
HDC16
HINSTANCE16
HWND16
INT16
UINT16
WORD
WPARAM16
%%ctl3dv2.dll
%long
DWORD
HBRUSH
LONG
LPARAM
LRESULT
%void
void
%word
BOOL16
HDC16
HINSTANCE16
HWND16
INT16
UINT16
WORD
WPARAM16
%%ddeml.dll
%long
@ -218,16 +276,13 @@ LPBYTE
LPCVOID
LPDEVMODEA
LPDWORD
LPENUMLOGFONT16
LPFONTINFO16
LPGLYPHMETRICS16
LPINT16
LPKERNINGPAIR16
LPLOGFONT16
LPNEWTEXTMETRIC16
LPOUTLINETEXTMETRIC16
LPPALETTEENTRY
LPPDEVICE
LPPOINT16
LPRASTERIZER_STATUS
LPRECT16
@ -294,6 +349,7 @@ BOOL
DWORD
HANDLE
HINSTANCE
HKEY
HMODULE
INT
LONG
@ -350,7 +406,6 @@ HANDLE16
HFILE16
HGLOBAL16
HINSTANCE16
HKEY
HLOCAL16
HMODULE16
HQUEUE16
@ -411,7 +466,6 @@ LPVOID
%str
LPCSTR
LPSTR
%void
@ -621,13 +675,29 @@ WORD
DWORD
HRESULT
ULONG
%longlong
ULARGE_INTEGER
%ptr
IDataObject *
IDataObject **
ILockBytes16 *
LPDROPTARGET
LPLOCKBYTES16 *
LPMONIKER *
LPRUNNINGOBJECTTABLE *
LPVOID
LPVOID *
REFIID
REFCLSID
STATSTG16 *
ULONG *
void *
void **
%str
@ -639,6 +709,7 @@ void
%word
BOOL16
HGLOBAL16
HICON16
HWND16
@ -766,21 +837,26 @@ OLE_SERVER_USE
BOOL
DWORD
HKEY
LPARAM
WPARAM
int
%ptr
HINF16 *
LPBYTE
LPDEVICE_INFO16
LPDWORD
LPEXPANDVTBL
LPHKEY16
LPLOGDISKDESC
LPLPDEVICE_INFO16
LPVIRTNODE
LPVOID
PHKEY
VIFPROC
VOID *
%str
@ -795,7 +871,7 @@ void
HINF16
HINSTANCE16
HKEY
HKEY16
HWND16
INT16
LOGDISKID16
@ -803,7 +879,6 @@ RETERR16
UINT16
VHSTR
WORD
WPARAM
%%shell.dll
@ -811,6 +886,7 @@ WPARAM
BOOL
DWORD
HKEY
LPARAM
LRESULT
@ -841,7 +917,6 @@ HDROP16
HGLOBAL16
HICON16
HINSTANCE16
HKEY
HWND16
INT16
UINT16
@ -881,6 +956,7 @@ LARGE_INTEGER
%ptr
IID *
ILockBytes16 *
IStorage16 *
IStorage16 **
IStream16 *
@ -894,6 +970,10 @@ ULARGE_INTEGER *
ULONG *
void *
%segptr
SEGPTR
%str
LPCOLESTR16
@ -1010,7 +1090,6 @@ BOOL
COLORREF
DWORD
HHOOK
INT
LONG
LPARAM
LRESULT

View File

@ -3,6 +3,7 @@
%long
ACCESS_MASK
ACL_INFORMATION_CLASS
ALG_ID
BOOL
BYTE
@ -128,10 +129,13 @@ INT
LONG
UINT
ULONG
int
%ptr
AVISAVECALLBACK
CLSID *
LONG *
LPAVICOMPRESSOPTIONS *
LPAVICOMPRESSOPTIONS
LPAVIFILEINFOA
@ -378,14 +382,17 @@ void
BOOL
DWORD
HANDLE
HCERTSTORE
%ptr
BYTE *
DWORD *
GUID *
PCCERT_CONTEXT
SIP_ADD_NEWPROVIDER *
SIP_DISPATCH_INFO *
void *
%str
@ -396,16 +403,55 @@ LPSTR
LPCWSTR
%%ctl3d32.dll
%long
BOOL
DWORD
HBRUSH
HDC
HINSTANCE
HWND
LONG
LPARAM
LRESULT
UINT
WORD
WPARAM
int
%void
void
%%d3d8.dll
%long
BOOL
HRESULT
UINT
%ptr
IDirect3D8 *
LPVOID
%void
void
%%d3d9.dll
%long
HRESULT
UINT
%ptr
IDirect3D8 *
IDirect3D9 *
%%dciman32.dll
@ -459,6 +505,19 @@ LPVOID *
REFCLSID
REFIID
%%devenum.dll
%long
HRESULT
%ptr
REFCLSID
REFIID
LPVOID *
%%dinput.dll
%long
@ -470,6 +529,7 @@ HRESULT
%ptr
LPDIRECTINPUTA *
LPDIRECTINPUTW *
LPUNKNOWN
LPVOID *
REFCLSID
@ -490,6 +550,102 @@ LPVOID *
REFCLSID
REFIID
%%dmband.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dmcompos.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dmime.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dmloader.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dmscript.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dmstyle.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dmsynth.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dmusic.dll
%long
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%dplayx.dll
%long
@ -511,6 +667,18 @@ LPVOID *
REFCLSID
REFIID
%%dpnhpast.dll
%long
HRESULT
%ptr
LPVOID
REFCLSID
REFIID
%%dsound.dll
%long
@ -526,11 +694,11 @@ LPDIRECTSOUND8 *
LPDIRECTSOUNDCAPTURE *
LPDSENUMCALLBACKA
LPDSENUMCALLBACKW
LPGUID
LPUNKNOWN
LPVOID
LPVOID *
REFCLSID
REFGUID
REFIID
%%gdi32.dll
@ -559,6 +727,7 @@ INT
LONG
LPARAM
UINT
ULONG
WORD
%long --extension
@ -647,6 +816,7 @@ RGBQUAD *
RGNDATA *
TEXTMETRICA *
TEXTMETRICW *
TRIVERTEX *
WORD *
XFORM *
void *
@ -811,6 +981,51 @@ LPSTR
LPCWSTR
LPWSTR
%%iphlpapi.dll
%long
BOOL
DWORD
IPAddr
IPMask
UINT
ULONG
%ptr
HANDLE *
LPDWORD
LPOVERLAPPED
OVERLAPPED *
PDWORD
PFIXED_INFO
PHANDLE
PIP_ADAPTER_INDEX_MAP
PIP_ADAPTER_INFO
PIP_INTERFACE_INFO
PIP_PER_ADAPTER_INFO
PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS
PMIB_ICMP
PMIB_IFROW
PMIB_IFTABLE
PMIB_IPADDRTABLE
PMIB_IPFORWARDROW
PMIB_IPFORWARDTABLE
PMIB_IPNETROW
PMIB_IPNETTABLE
PMIB_IPSTATS
PMIB_TCPROW
PMIB_TCPSTATS
PMIB_TCPTABLE
PMIB_UDPSTATS
PMIB_UDPTABLE
PULONG
%wstr
LPWSTR
%%joystick.drv
%long
@ -857,6 +1072,7 @@ unsigned char
BOOL16
HANDLE16
HFILE16
HGLOBAL16
HINSTANCE16
HLOCAL16
@ -869,6 +1085,7 @@ UINT16
%long --pointer
LONG_PTR
ULONG_PTR
%longlong
@ -907,6 +1124,8 @@ FINDEX_SEARCH_OPS
GET_FILEEX_INFO_LEVELS
HANDLE *
INPUT_RECORD *
LANGUAGEGROUP_ENUMPROCA
LANGUAGEGROUP_ENUMPROCW
LARGE_INTEGER *
LOCALE_ENUMPROCA
LOCALE_ENUMPROCW
@ -930,6 +1149,7 @@ LPFILETIME
LPINPUT_RECORD
LPLDT_ENTRY
LPMEMORYSTATUS
LPMEMORYSTATUSEX
LPMODULEENTRY32
LPOSVERSIONINFOEXA
LPOSVERSIONINFOEXW
@ -1020,16 +1240,14 @@ LPWSTR
HFILE
INT
LONG
UINT
WORD
%ptr
LPOFSTRUCT
LPVOID
%str
LPCSTR
LPSTR
%void
@ -1038,7 +1256,6 @@ void
%wstr
LPCWSTR
LPWSTR
%%mapi32.dll
@ -1236,6 +1453,29 @@ LONG
UINT
WORD
%%msdmo.dll
%long
DWORD
HRESULT
unsigned long
%ptr
DMO_MEDIA_TYPE **
DMO_MEDIA_TYPE *
DMO_PARTIAL_MEDIATYPE *
IEnumDMO **
REFCLSID
REFGUID
WCHAR *
unsigned long *
%wstr
LPCWSTR
%%msg711.acm
%long
@ -1253,14 +1493,11 @@ UINT
BOOL
HDC
UINT
ULONG
int
%ptr
BLENDFUNCTION
TRIVERTEX *
void *
%void
@ -1288,6 +1525,16 @@ LRESULT
LPARAM
UINT
%%msnet32
%long
LONG
%ptr
LPVOID
%%msvcrt.dll
%double
@ -1296,7 +1543,9 @@ double
%long
DWORD
INT
LCID
LONG
MSVCRT_clock_t
MSVCRT_complex
@ -1337,22 +1586,20 @@ PEXCEPTION_FRAME
PEXCEPTION_FRAME *
PEXCEPTION_POINTERS
PEXCEPTION_RECORD
WCHAR **
WORD **
_HEAPINFO *
_INITTERMFUN *
_JUMP_BUFFER *
__non_rtti_object *
_onexit_t
_onexit_t **
_se_translator_function
bad_cast *
bad_typeid *
char *
char **
char ***
cxx_exception_type *
exception *
int *
struct MSVCRT_lconv *
struct MSVCRT_tm *
struct _diskfree_t *
struct _finddata_t *
@ -1385,6 +1632,16 @@ MSVCRT_ldiv_t
VOID
void
%%msvcrtd.dll
%long
int
%ptr
void *
%%msvcrt20.dll
%long
@ -1416,6 +1673,7 @@ HPALETTE
HWND
INT
LONG
LPARAM
LRESULT
UINT
WORD
@ -1428,6 +1686,8 @@ LONG *
LPBITMAPINFO
LPBITMAPINFOHEADER
LPDWORD
LPOPENFILENAMEA
LPOPENFILENAMEW
LPVOID
PCOMPVARS
@ -1444,6 +1704,25 @@ void
LPCWSTR
%%mswsock.dll
%long
DWORD
HANDLE
SOCKET
%ptr
LPDWORD
LPOVERLAPPED
LPTRANSMIT_FILE_BUFFERS
PVOID
%void
void
%%netapi32.dll
%long
@ -1483,6 +1762,7 @@ BOOL
BOOLEAN
BYTE
CCHAR
CHAR
DWORD
FILE_INFORMATION_CLASS
FS_INFORMATION_CLASS
@ -1492,6 +1772,7 @@ HMODULE
INT
KEY_INFORMATION_CLASS
KEY_VALUE_INFORMATION_CLASS
LCID
LONG
MEMORY_INFORMATION_CLASS
NTSTATUS
@ -1514,6 +1795,10 @@ long
unsigned int
unsigned long
%long --pointer
ULONG_PTR
%long --extension
obj_handle_t
@ -1525,17 +1810,29 @@ ULONGLONG
%ptr
BOOLEAN *
CONTEXT *
CONTEXT86 *
CLIENT_ID *
CURDIR *
DOS_PATHNAME_TYPE
DWORD *
EXCEPTION_FRAME *
EXCEPTION_RECORD *
GENERIC_MAPPING *
HANDLE *
HANDLERPROC
HMODULE *
IO_STATUS_BLOCK *
IMAGE_NT_HEADERS *
IMAGE_RESOURCE_DIRECTORY **
IMAGE_RESOURCE_DATA_ENTRY *
IMAGE_RESOURCE_DATA_ENTRY **
IMAGE_SECTION_HEADER **
INT *
LARGE_INTEGER *
LCID *
LDR_RESOURCE_INFO *
LPBYTE
LPCVOID
LPCVOID *
@ -1546,15 +1843,23 @@ LPTIME_ZONE_INFORMATION
LPVOID
LPVOID *
LPWSTR *
LUID *
LUID_AND_ATTRIBUTES *
MESSAGE_RESOURCE_ENTRY **
OBJECT_ATTRIBUTES *
OEM_STRING *
PACCESS_MASK
PACE_HEADER
PACE_HEADER *
PACL
PACL *
PANSI_STRING
PBOOLEAN
PBYTE
PCANSI_STRING
PCHAR
PCRTL_BITMAP
PCSZ
PDWORD
PEXCEPTION_FRAME
PEXCEPTION_RECORD
@ -1566,10 +1871,13 @@ PIMAGE_SECTION_HEADER
PIO_APC_ROUTINE
PIO_STATUS_BLOCK
PLARGE_INTEGER
PLDR_MODULE *
PLPCMESSAGE
PLPCSECTIONINFO
PLPCSECTIONMAPINFO
PLUID
PLUID_AND_ATTRIBUTES
PNTAPCFUNC
POBJDIR_INFORMATION
POBJECT_ATTRIBUTES
PPRIVILEGE_SET
@ -1582,6 +1890,7 @@ PSID
PSID *
PSID_IDENTIFIER_AUTHORITY
PSTRING
PSYSTEM_MODULE_INFORMATION
PTIMERAPCROUTINE
PTIME_FIELDS
PTOKEN_PRIVILEGES
@ -1589,17 +1898,22 @@ PULONG
PUNICODE_STRING
PVOID
PVOID *
PWSTR *
RTL_CRITICAL_SECTION *
SIZE_T *
STRING *
TIME_ZONE_INFORMATION *
UINT *
ULONG *
ULONGLONG *
USHORT *
UNICODE_STRING *
VOID *
WCHAR **
struct _TEB *
union cptable *
void *
void **
wine_signal_handler
%ptr --extension
@ -1624,6 +1938,8 @@ void
LPCWSTR
LPWSTR
PCWSTR
PWSTR
%%odbc32.dll
@ -1665,6 +1981,7 @@ DWORD
HACCEL
HANDLE
HGLOBAL
HICON
HINSTANCE
HMENU
HOLEMENU
@ -1704,6 +2021,7 @@ IUnknown **
LPBC
LPBC *
LPCLSID
LPCRECT
LPDATAADVISEHOLDER *
LPDATAOBJECT
LPDROPTARGET
@ -1741,6 +2059,7 @@ LPVOID
LPVOID *
MULTI_QI *
OLECHAR *
PROPVARIANT *
PSECURITY_DESCRIPTOR
REFCLSID
REFGUID
@ -1776,7 +2095,6 @@ double
BOOL
BYTE
CALLCONV
CHAR
DISPID
DWORD
FLOAT
@ -1802,21 +2120,25 @@ int
short
signed char
unsigned int
unsigned long
%ptr
BSTR *
BYTE *
CHAR *
COLORREF *
CY *
DATE *
DECIMAL *
DISPID *
DISPPARAMS *
EXCEPINFO *
FLOAT *
ICreateTypeLib **
IID *
INTERFACEDATA *
IRecordInfo *
IRecordInfo **
ITypeInfo *
ITypeInfo **
ITypeLib *
@ -1860,8 +2182,12 @@ VOID *
double *
int *
short *
signed char *
void *
void **
unsigned char *
unsigned long *
%str
@ -2019,7 +2345,6 @@ GLdouble *
GLfloat *
GLint *
GLshort *
GLstring
GLubyte *
GLuint *
GLushort *
@ -2027,6 +2352,7 @@ GLvoid *
GLvoid **
LPGLYPHMETRICSFLOAT
LPLAYERPLANEDESCRIPTOR
char *
void *
%str
@ -2065,6 +2391,31 @@ LPSTR
LPWSTR
%%qcap.dll
%long
HRESULT
%ptr
REFCLSID
REFIID
LPVOID *
%%quartz.dll
%long
DWORD
HRESULT
%ptr
REFCLSID
REFIID
LPVOID *
%%rasapi32.dll
%long
@ -2090,6 +2441,7 @@ LPRASDIALPARAMSA
LPRASENTRYA
LPRASENTRYW
LPRASENTRYNAMEA
LPRASENTRYNAMEW
LPVOID
%str
@ -2114,6 +2466,7 @@ DLLVERSIONINFO *
%long
DWORD
HMODULE
HRESULT
RPC_BINDING_HANDLE
@ -2211,9 +2564,11 @@ BOOL
DWORD
HDEVINFO
HINF
HINSTANCE
HKEY
HSPFILEQ
HWND
INT
LONG
UINT
@ -2248,9 +2603,8 @@ void *
%str
LPCSTR
LPSTR
PCSTR
PCWSTR
PWSTR
%void
@ -2259,12 +2613,15 @@ void
%wstr
LPCWSTR
PCWSTR
PWSTR
%%shdocvw.dll
%long
BOOL
DWORD
HRESULT
%ptr
@ -2312,6 +2669,7 @@ POINT
%ptr
CABINETSTATE *
CLSID *
DLLVERSIONINFO *
DWORD *
@ -2344,9 +2702,10 @@ LPFNCREATEINSTANCE
LPFNFMCALLBACK
LPITEMIDLIST
LPITEMIDLIST *
LPITEMIDLIST **
LPLONG
LPMALLOC *
LPMEASUREITEMSTRUCT
LPNOTIFYREGISTER
LPPOINT
LPSCROLLSAMPLES
LPSECURITY_ATTRIBUTES
@ -2402,6 +2761,7 @@ ASSOCKEY
ASSOCSTR
BOOL
COLORREF
DISPID
DWORD
HANDLE
HDC
@ -2430,6 +2790,7 @@ URLIS
WCHAR
WORD
WPARAM
char
int
%longlong
@ -2446,11 +2807,14 @@ HICON *
HKEY *
HWND *
IBindCtx *
IConnectionPoint *
IConnectionPoint **
IDispatch **
IFACE_INDEX_TBL *
IID *
INT *
IPropertyBag *
IShellFolder *
IStream *
IStream **
ITEMIDLIST *
@ -2466,11 +2830,11 @@ LPCSTR *
LPCVOID
LPCWSTR *
LPDWORD
LPDWORD *
LPINT
LPITEMIDLIST
LPOPENFILENAMEW
LPPAGESETUPDLGW
LPPOLICYDATA
LPPRINTDLGW
LPSECURITY_ATTRIBUTES
LPSHELLEXECUTEINFOW
@ -2486,6 +2850,7 @@ LPWORD
LPWSTR *
OLECMD *
OLECMDTEXT *
PHKEY
PHUSKEY
PLONG
PSECURITY_DESCRIPTOR
@ -2674,6 +3039,7 @@ pTW_IDENTITY
BOOL
DWORD
HRESULT
QUERYOPTION
long
%ptr
@ -2688,7 +3054,9 @@ IEnumFORMATETC *
IMoniker *
IMoniker **
LPBC
LPBINDSTATUSCALLBACK
LPWSTR *
LPUNKNOWN
LPVOID
LPVOID *
REFCLSID
@ -2820,7 +3188,6 @@ LPSCROLLINFO
LPSECURITY_ATTRIBUTES
LPTPMPARAMS
LPVOID
LPWINE_CLIPFORMAT
LPWORD
MENUITEMINFOA *
MENUITEMINFOW *
@ -2842,7 +3209,7 @@ PROPENUMPROCW
PSECURITY_DESCRIPTOR
PSECURITY_INFORMATION
PSECURITY_QUALITY_OF_SERVICE
PUINT
PUINT_PTR
PVOID
PWINDOWINFO
RECT *
@ -2860,7 +3227,6 @@ WNDCLASSEXW *
WNDCLASSW *
WNDENUMPROC
WNDPROC
char *
va_list
%ptr --extension
@ -2956,7 +3322,6 @@ WORD
BOOL
BYTE
DWORD
HANDLE
UINT
int
@ -3068,12 +3433,15 @@ LPCWSTR
%%wininet.dll
%double
FILETIME
GROUPID
%long
BOOL
DWORD
FILETIME
GROUPID
HANDLE
HINTERNET
HRESULT
@ -3096,6 +3464,7 @@ LPINTERNET_CACHE_ENTRY_INFOW
LPURL_COMPONENTSA
LPURL_COMPONENTSW
LPVOID
LPVOID *
LPWIN32_FIND_DATAA
LPWIN32_FIND_DATAW
@ -3375,7 +3744,11 @@ UINT
INT *
LPDWORD
LPGUID
LPINT
LPSERVICE_ASYNC_INFO
LPSERVICE_INFOA
LPSERVICE_INFOW
LPVOID
char *
struct netent *
@ -3383,11 +3756,16 @@ struct netent *
%str
LPCSTR
LPSTR
%void
void
%wstr
LPWSTR
%%x11drv.dll
%long
@ -3397,6 +3775,7 @@ CHAR
COLORREF
DWORD
HANDLE
HANDLE16
HBITMAP
HBRUSH
HDC
@ -3425,9 +3804,11 @@ DEVICEFONTENUMPROC
DEVMODEA *
DWORD *
HANDLE *
HANDLE16 *
INT *
LPBYTE
LPCVOID
LPDEVMODEW
LPINT
LPLOGFONTW
LPPALETTEENTRY

View File

@ -257,7 +257,7 @@ sub parse_spec_file {
s/^\s*(.*?)\s*$/$1/;
if(s/^(.*?)\s*\#\s*(.*)\s*$/$1/) {
my $comment = $2;
if ($comment =~ /^Wine/) { # FIXME: Kludge
if ($comment =~ /^Wine/i) { # FIXME: Kludge
$wine_extension = 1;
}
}
@ -271,7 +271,7 @@ sub parse_spec_file {
my $ordinal;
if(/^(\d+|@)\s+
(pascal|pascal16|stdcall|cdecl|varargs)\s+
((?:(?:-noimport|-noname|-norelay|-i386|-ret64|-register|-interrupt)\s+)*)(\S+)\s*\(\s*(.*?)\s*\)\s*(\S*)$/x)
((?:(?:-noimport|-noname|-norelay|-i386|-ret64|-register|-interrupt|-private)\s+)*)(\S+)\s*\(\s*(.*?)\s*\)\s*(\S*)$/x)
{
my $calling_convention = $2;
my $flags = $3;
@ -283,6 +283,8 @@ sub parse_spec_file {
$flags =~ s/\s+/ /g;
$internal_name = $external_name if !$internal_name;
if($flags =~ /-noname/) {
# $external_name = "@";
}
@ -294,7 +296,7 @@ sub parse_spec_file {
}
if ($internal_name =~ /^(.*?)\.(.*?)$/) {
my $forward_module = $1;
my $forward_module = lc($1);
my $forward_name = $2;
if (0) {
@ -378,7 +380,7 @@ sub parse_spec_file {
}
}
}
} elsif(/^(\d+|@)\s+stub(?:\s+(-noimport|-noname|-norelay|-i386|-ret64))?\s+(\S+)$/) {
} elsif(/^(\d+|@)\s+stub(?:\s+(-noimport|-noname|-norelay|-i386|-ret64|-private))?\s+(\S+)$/) {
$ordinal = $1;
my $flags = $2;
@ -427,25 +429,14 @@ sub parse_spec_file {
} else { # if($$function_external_module{$external_name} !~ /$module/) {
$$function_external_module{$external_name} .= " & $module";
}
} elsif(/^(\d+|@)\s+forward(?:\s+(?:-noimport|-norelay|-i386|-ret64))?\s+(\S+)\s+(\S+)\.(\S+)$/) {
$ordinal = $1;
my $external_name = $2;
my $forward_module = lc($3);
my $forward_name = $4;
if ($external_name ne "@") {
$$module_external_calling_convention{$module}{$external_name} = "forward";
} else {
$$module_external_calling_convention{$module}{"\@$ordinal"} = "forward";
}
$$function_forward{$module}{$external_name} = [$forward_module, $forward_name];
} elsif(/^(\d+|@)\s+extern\s+(\S+)\s*(\S*)$/) {
} elsif(/^(\d+|@)\s+extern(?:\s+(?:-noimport|-norelay|-i386|-ret64))?\s+(\S+)\s*(\S*)$/) {
$ordinal = $1;
my $external_name = $2;
my $internal_name = $3;
$internal_name = $external_name if !$internal_name;
if ($external_name ne "@") {
$$module_external_calling_convention{$module}{$external_name} = "extern";
} else {
@ -928,17 +919,13 @@ sub function_wine_extension {
sub is_function_stub {
my $self = shift;
my $module_external_calling_convention = \%{$self->{MODULE_EXTERNAL_CALLING_CONVENTION}};
my $modules = \%{$self->{MODULES}};
my $module = shift;
my $name = shift;
foreach my $module (keys(%$modules)) {
if($$module_external_calling_convention{$module}{$name} eq "stub") {
return 1;
}
if($$module_external_calling_convention{$module}{$name} eq "stub") {
return 1;
}
return 0;
}

View File

@ -46,8 +46,12 @@ dlls/crypt32
% dlls/ctl3d/ctl3d.spec
dlls/ctl3d
% dlls/ctl3d/ctl3d32.spec
dlls/ctl3d
% dlls/ctl3d/ctl3dv2.spec
dlls/ctl3d
@ -64,6 +68,10 @@ dlls/d3d8
dlls/d3d9
% dlls/d3dim/d3dim.spec
dlls/d3dim
% dlls/d3dx8/d3dx8.spec
dlls/d3dx8
@ -240,6 +248,10 @@ dlls/msvcrt20
dlls/msvcrtd
% dlls/mswsock/mswsock.spec
dlls/mswsock
% dlls/kernel/stress.spec
dlls/kernel
@ -306,6 +318,8 @@ dlls/msacm/winemp3
% dlls/msnet32/msnet32.spec
dlls/msnet32
% dlls/msvideo/msvfw32.spec
dlls/msvideo

View File

@ -54,6 +54,9 @@ sub new {
$configure_ac_file =~ s/^\.\///;
$config_h_in_file =~ s/^\.\///;
$$conditional_headers{"config.h"}++;
$output->progress("$api_file");
open(IN, "< $api_file");
@ -101,16 +104,28 @@ sub new {
# skip comments
if(/^dnl/) { next; }
if(/^AC_CHECK_HEADERS\(\s*([^,\)]*)(?:,|\))?/) {
foreach my $name (split(/\s+/, $1)) {
if(/AC_CHECK_HEADERS\(\s*([^,\)]*)(?:,|\))?/) {
my $headers = $1;
$headers =~ s/^\s*\[\s*(.*?)\s*\]\s*$/$1/;
foreach my $name (split(/\s+/, $headers)) {
$$conditional_headers{$name}++;
}
} elsif(/^AC_CHECK_FUNCS\(\s*([^,\)]*)(?:,|\))?/) {
foreach my $name (split(/\s+/, $1)) {
} elsif(/AC_CHECK_FUNCS\(\s*([^,\)]*)(?:,|\))?/) {
my $funcs = $1;
$funcs =~ s/^\s*\[\s*(.*?)\s*\]\s*$/$1/;
foreach my $name (split(/\s+/, $funcs)) {
$$conditional_functions{$name}++;
}
} elsif(/^AC_FUNC_ALLOCA/) {
} elsif(/AC_FUNC_ALLOCA/) {
$$conditional_headers{"alloca.h"}++;
} elsif (/AC_DEFINE\(\s*HAVE_(.*?)_H/) {
my $name = lc($1);
$name =~ s/_/\//;
$name .= ".h";
next if $name =~ m%correct/%;
$$conditional_headers{$name}++;
}
}

View File

@ -79,27 +79,42 @@ sub begin_if {
local $_ = shift;
while(!/^$/) {
if(/^0\s*\&\&/) {
if(/^0\s*\&\&/s) {
$_ = "0";
} elsif(/^1\s*\|\|/) {
} elsif(/^1\s*\|\|/s) {
$_ = "1";
}
if(/^(!)?defined\s*\(\s*(.+?)\s*\)\s*((\&\&|\|\|)\s*)?/){
if (/^(!\s*)?defined\s*\(\s*(\w+)\s*\)\s*(?:(\&\&|\|\|)\s*)?/s ||
/^(!\s*)?defined\s*(\w+)\s*(?:(\&\&|\|\|)\s*)?/s)
{
$_ = $';
if(defined($1) && $1 eq "!") {
$self->undefine($2);
push @$stack, $2;
my $sign = $1;
my $var = $2;
if (defined($sign) && $sign eq "!") {
$self->undefine($var);
push @$stack, $var;
} else {
$self->define($2);
push @$stack, $2;
$self->define($var);
push @$stack, $var;
}
} elsif(/^(\w+)\s*(<|<=|==|!=|>=|>)\s*(\w+)\s*((\&\&|\|\|)\s*)?/) {
$_ = $';
} elsif(/^(!)?(\w+)\s*$/) {
$_ = $';
} elsif(/^\(|\)/) {
} elsif (/^(!\s*)?(\w+)\s*(?:(<|<=|==|!=|>=|>|\+|\-|\*\/)\s*(\w+)\s*)?(?:(\&\&|\|\|)\s*)?/s) {
$_ = $';
my $sign = $1;
my $var = $2;
if (defined($sign) && $sign eq "!") {
$self->undefine($var);
push @$stack, $var;
} else {
$self->define($var);
push @$stack, $var;
}
} elsif(/^(!\s*)?\(/s) {
$_ = "";
} else {
print "*** Can't parse '#$directive $_' ***\n";
$_ = "";

View File

@ -538,9 +538,14 @@ 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 =~ /^(?:ntdll_misc\.h)$/) { # FIXME: Kludge
$include = "dlls/ntdll/$header";
} elsif($header =~ /^(?:controls\.h|message\.h)$/) { # FIXME: Kludge
$include = "dlls/user/$header";
} elsif($header =~ /^(?:ts_xlib\.h|winproc\.h|x11font\.h|)$/) { # FIXME: Kludge
} elsif($header =~ /^(?:ts_xlib\.h|winproc\.h|x11drv\.h|x11font\.h)$/) { # FIXME: Kludge
$include = "dlls/x11drv/$header";
} elsif($check_local && $header ne "config.h") {
$output->write("$file: #include \"$header\": file not found\n");
@ -613,14 +618,26 @@ 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}})) {
$include2info{$name}{used}++;
}
} elsif($header =~ /^(?:ntdll_misc\.h)$/) { # FIXME: Kludge
$include2info{"dlls/ntdll/$header"}{used}++;
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}})) {
$include2info{$name}{used}++;
}
} elsif($header =~ /^(?:ts_xlib\.h|winproc\.h|x11font\.h|)$/) { # FIXME: Kludge
} elsif($header =~ /^(?:ts_xlib\.h|winproc\.h|x11drv\.h|x11font\.h)$/) { # FIXME: Kludge
$include2info{"dlls/x11drv/$header"}{used}++;
foreach my $name (keys(%{$include2info{"dlls/user/$header"}{includes}})) {
foreach my $name (keys(%{$include2info{"dlls/x11drv/$header"}{includes}})) {
$include2info{$name}{used}++;
}
} elsif(-e "$wine_dir/include/$header") {

View File

@ -87,7 +87,7 @@ sub check_documentation {
my $ordinal2 = $7;
if ($winapi->function_wine_extension(lc($module2), $external_name2)) {
$output->write("documentation: $external_name2 (\U$module2\E.$ordinal2) is a Wine extension \\\n$documentation\n");
# $output->write("documentation: $external_name2 (\U$module2\E.$ordinal2) is a Wine extension \\\n$documentation\n");
}
if(length($1) != 1 || length($2) < 1 ||
@ -108,6 +108,7 @@ sub check_documentation {
}
if((($options->documentation_name && !$found_name) ||
($options->documentation_ordinal && !$found_ordinal)) &&
!$winapi->is_function_stub($module, $external_name) &&
!$winapi->function_wine_extension($module, $external_name))
{
$documentation_error = 1;
@ -202,7 +203,7 @@ sub check_documentation {
for my $argument_documentation (@$refargument_documentations) {
$n++;
if($argument_documentation ne "") {
if($argument_documentation !~ /^\/\*\s+\[(?:in|out|in\/out|\?\?\?)\].*?\*\/$/s) {
if($argument_documentation !~ /^\/\*\s+\[(?:in|out|in\/out|\?\?\?|I|O|I\/O)\].*?\*\/$/s) {
$output->write("argument $n documentation: \\\n$argument_documentation\n");
}
}

View File

@ -38,6 +38,7 @@ sub check_modules {
if(!$winapi->is_module($module)) { next; }
my $functions = $$module2functions{$module};
foreach my $internal_name ($winapi->all_internal_functions_in_module($module)) {
next if $internal_name =~ /\./;
my $function = $functions->{$internal_name};
if(!defined($function) && !$nativeapi->is_function($internal_name) &&
!($module eq "user" && $internal_name =~

View File

@ -221,7 +221,8 @@ sub parse_c_file {
# remove preprocessor directives
if(s/^\s*\#/\#/s) {
if(/^\#.*?\\$/s) {
if(/^(\#.*?)\\$/s) {
$_ = "$1\n";
$lookahead = 1;
next;
} elsif(s/^\#\s*(\w+)((?:\s+(.*?))?\s*)$//s) {
@ -533,7 +534,7 @@ sub parse_c_file {
((?:const\s+|enum\s+|long\s+|signed\s+|short\s+|struct\s+|union\s+|unsigned\s+)*?)
(\w+)
(?:\s+const)?
((?:\s*\*+\s*|\s+)\w+\s*(?:\[[^\]]*\])?
((?:\s*\*+\s*|\s+)\w+\s*(?:\[[^\]]*\])*
(?:\s*,\s*(?:\s*\*+\s*|\s+)\w+\s*(?:\[[^\]]*\])?)*)
\s*;/sx)
{