Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
ae9cf771
Commit
ae9cf771
authored
May 17, 2004
by
Patrik Stridvall
Committed by
Alexandre Julliard
May 17, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- API files update.
- Minor bug fixes.
parent
d134aa59
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
345 additions
and
72 deletions
+345
-72
win16.api
tools/winapi/win16.api
+1
-0
win32.api
tools/winapi/win32.api
+280
-59
winapi_local.pm
tools/winapi_check/winapi_local.pm
+1
-1
winapi_parser.pm
tools/winapi_check/winapi_parser.pm
+63
-12
No files found.
tools/winapi/win16.api
View file @
ae9cf771
...
...
@@ -945,6 +945,7 @@ void
%word
DI_FUNCTION16
HINF16
HINSTANCE16
HKEY16
...
...
tools/winapi/win32.api
View file @
ae9cf771
...
...
@@ -97,6 +97,7 @@ PVALENTA
PVALENTW
SECURITY_ATTRIBUTES *
SECURITY_DESCRIPTOR *
WCHAR *
%str
...
...
@@ -112,6 +113,19 @@ VOID
LPCWSTR
LPWSTR
%%amstream.dll
%long
DWORD
HRESULT
%ptr
LPVOID *
REFCLSID
REFIID
%%avicap32.dll
%long
...
...
@@ -245,6 +259,23 @@ PVOID
PVOID *
char *
%%cards.dll
%long
BOOL
DWORD
HDC
int
%ptr
int *
%void
void
%%cfgmgr32.dll
%long
...
...
@@ -368,7 +399,7 @@ BOOL
DWORD
HRESULT
HWND
UINT
WORD
short
%ptr
...
...
@@ -424,6 +455,7 @@ BOOL
DWORD
HANDLE
HCERTSTORE
HCRYPTPROV
%ptr
...
...
@@ -442,7 +474,6 @@ void *
%str
LPCSTR
LPSTR
%wstr
...
...
@@ -498,6 +529,54 @@ UINT
IDirect3D9 *
%%dbghelp.dll
%long
BOOL
DWORD
HANDLE
HMODULE
IMAGEHLP_SYMBOL_TYPE_INFO
ULONG
unsigned long
%ptr
DWORD *
LPAPI_VERSION
LPSTACKFRAME
LPVOID
PDWORD
PENUMLOADED_MODULES_CALLBACK
PFIND_DEBUG_FILE_CALLBACK
PFUNCTION_TABLE_ACCESS_ROUTINE
PGET_MODULE_BASE_ROUTINE
PIMAGE_DEBUG_INFORMATION
PIMAGEHLP_CONTEXT
PIMAGEHLP_LINE
PIMAGEHLP_MODULE
PIMAGEHLP_SYMBOL
PIMAGEHLP_STACK_FRAME
PREAD_PROCESS_MEMORY_ROUTINE
PSYM_ENUMERATESYMBOLS_CALLBACK
PSYM_ENUMMODULES_CALLBACK
PSYM_ENUMSOURCFILES_CALLBACK
PSYM_ENUMSYMBOLS_CALLBACK
PSYMBOL_REGISTERED_CALLBACK
PSYMBOL_INFO
PTRANSLATE_ADDRESS_ROUTINE
PVOID
char *
void *
%str
LPCSTR
LPSTR
PCSTR
PSTR
%%dciman32.dll
%long
...
...
@@ -722,6 +801,21 @@ LPVOID *
REFCLSID
REFIID
%%dpnet.dll
%long
BOOL
HRESULT
%ptr
LPUNKNOWN
LPVOID *
REFCLSID
REFGUID
REFIID
%%dpnhpast.dll
%long
...
...
@@ -740,13 +834,19 @@ REFIID
DWORD
HRESULT
HWND
%ptr
IUnknown *
LPCDSBUFFERDESC
LPCDSCBUFFERDESC
LPCGUID
LPDIRECTSOUND8 *
LPDIRECTSOUNDBUFFER8 *
LPDIRECTSOUNDCAPTURE *
LPDIRECTSOUNDCAPTUREBUFFER8 *
LPDIRECTSOUNDFULLDUPLEX *
LPDSENUMCALLBACKA
LPDSENUMCALLBACKW
LPGUID
...
...
@@ -768,6 +868,13 @@ REFCLSID
REFIID
LPVOID *
%%dxdiagn.dll
%ptr
REFCLSID
REFIID
%%gdi32.dll
%long
...
...
@@ -813,6 +920,7 @@ ABORTPROC
BITMAP *
BITMAPINFO *
BITMAPINFOHEADER *
BLENDFUNCTION
BYTE *
COLORADJUSTMENT *
DCHOOKPROC
...
...
@@ -866,7 +974,6 @@ LPRECT
LPRGNDATA
LPSIZE
LPVOID
LPVOID *
LPWORD
LPXFORM
MAT2 *
...
...
@@ -888,6 +995,7 @@ TEXTMETRICW *
TRIVERTEX *
WORD *
XFORM *
VOID **
void *
%ptr --extension
...
...
@@ -944,6 +1052,7 @@ unsigned int
%ptr
void (*)(int)
void *
void **
...
...
@@ -951,6 +1060,22 @@ void **
void
%%hhctrl.ocx
%long
DWORD
HWND
UINT
%str
LPCSTR
%wstr
LPCWSTR
%%iccvid.dll
%long
...
...
@@ -1006,7 +1131,6 @@ UINT
BOOL
DWORD
HANDLE
HMODULE
ULONG
WORD
...
...
@@ -1014,36 +1138,21 @@ WORD
DIGEST_FUNCTION
DIGEST_HANDLE
LPAPI_VERSION
LPDWORD
LPSTACKFRAME
LPSYSTEMTIME
LPVOID
PCHAR
PCHAR *
PDWORD
PENUMLOADED_MODULES_CALLBACK
PFUNCTION_TABLE_ACCESS_ROUTINE
PGET_MODULE_BASE_ROUTINE
PIMAGEHLP_MODULE
PIMAGEHLP_STATUS_ROUTINE
PIMAGEHLP_SYMBOL
PIMAGE_DEBUG_INFORMATION
PIMAGE_LOAD_CONFIG_DIRECTORY
PIMAGE_NT_HEADERS
PLOADED_IMAGE
PREAD_PROCESS_MEMORY_ROUTINE
PSYMBOL_REGISTERED_CALLBACK
PSYM_ENUMMODULES_CALLBACK
PSYM_ENUMSYMBOLS_CALLBACK
PTRANSLATE_ADDRESS_ROUTINE
PVOID
PWIN_CERTIFICATE
ULONG *
%str
LPCSTR
LPSTR
%void
...
...
@@ -1177,6 +1286,7 @@ HINSTANCE
HLOCAL
HMODULE
HRSRC
HWND
INT
LANGID
LATENCY_TIME
...
...
@@ -1276,7 +1386,6 @@ LPDWORD
LPFIBER_START_ROUTINE
LPFILETIME
LPHEAPLIST32
LPINPUT_RECORD
LPLDT_ENTRY
LPMEMORYSTATUS
LPMEMORYSTATUSEX
...
...
@@ -1320,6 +1429,7 @@ PDWORD
PEXCEPTION_POINTERS
PHANDLE
PHANDLER_ROUTINE
PINPUT_RECORD
PIO_COUNTERS
PLARGE_INTEGER
PLONG
...
...
@@ -1340,6 +1450,7 @@ WAITORTIMERCALLBACK
WIN32_FIND_DATAA *
WIN32_FIND_DATAW *
WORD *
char *
struct ThunkDataCommon *
va_list
va_list *
...
...
@@ -1396,16 +1507,52 @@ LPWSTR
%long
BOOL
CMC_enum
CMC_return_code
CMC_session_id
DWORD
FLAGS
HRESULT
INT
LONG
SCODE
ULONG
int
%long --ptr
ULONG_PTR
%longlong
FILETIME
LONGLONG
%ptr
ALLOCATEMORE *
CMC_buffer
CMC_extension *
LPALLOCATEBUFFER
LPFREEBUFFER
LPLHANDLE
LPMAPIADVISESINK
LPMAPIADVISESINK *
LPMAPISESSION *
LPSPropTagArray
LPSPropValue
LPSRowSet
LPSRow
LPSTR *
LPSTREAM *
LPVOID
LPVOID *
VOID *
LPWSTR *
PULONG
PUSHORT
ULONG *
void *
%str
...
...
@@ -1415,6 +1562,11 @@ LPSTR
VOID
%wstr
LPCWSTR
LPWSTR
%%mcianim.drv
%long
...
...
@@ -1671,13 +1823,17 @@ LPCSTR
BOOL
DWORD
HINSTANCE
HRESULT
HWND
INSTALLSTATE
INSTALLUILEVEL
LANGID
MSICOLINFO
MSICONDITION
MSIHANDLE
UINT
WORD
int
unsigned int
...
...
@@ -1690,8 +1846,11 @@ FILETIME *
HWND *
INSTALLSTATE *
INT *
LPVOID *
MSIHANDLE *
PCCERT_CONTEXT *
REFCLSID
REFIID
UINT *
char *
...
...
@@ -1707,16 +1866,6 @@ LPWSTR
%%msimg32.dll
%long
BOOL
HDC
int
%ptr
BLENDFUNCTION
%void
void
...
...
@@ -1766,12 +1915,12 @@ INT
LCID
LONG
MSVCRT_clock_t
MSVCRT_complex
MSVCRT_size_t
MSVCRT_time_t
MSVCRT_wchar_t
int
long
short
unsigned int
unsigned long
unsigned short int
...
...
@@ -1783,9 +1932,10 @@ unsigned __int64
%ptr
MSVCRT__onexit_t
MSVCRT__onexit_t **
MSVCRT_EXCEPTION_FRAME *
MSVCRT_FILE *
MSVCRT_exception *
MSVCRT_fpos_t *
MSVCRT_free_func
MSVCRT_malloc_func
...
...
@@ -1807,25 +1957,25 @@ WORD **
_HEAPINFO *
_INITTERMFUN *
_JUMP_BUFFER *
_onexit_t
_onexit_t **
_se_translator_function
char *
char **
char ***
cxx_exception_type *
int (*)(void *, void *)
int *
struct MSVCRT__exception *
struct MSVCRT__diskfree_t *
struct MSVCRT__finddata_t *
struct MSVCRT__finddatai64_t *
struct MSVCRT__stat *
struct MSVCRT__stati64 *
struct MSVCRT__wfinddata_t *
struct MSVCRT__wfinddatai64_t *
struct MSVCRT_lconv *
struct MSVCRT_tm *
struct _diskfree_t *
struct _finddata_t *
struct _finddatai64_t *
struct _stat *
struct _stati64 *
struct _timeb *
struct _utimbuf *
struct _wfinddata_t *
struct _wfinddatai64_t *
terminate_function
type_info *
unexpected_function
...
...
@@ -1833,6 +1983,7 @@ unsigned char *
unsigned int *
unsigned long *
va_list
void (*)(void)
void *
%ptr --extension
...
...
@@ -1844,6 +1995,7 @@ _beginthreadex_start_routine_t
MSVCRT_div_t
MSVCRT_ldiv_t
struct MSVCRT__complex
%void
...
...
@@ -1855,9 +2007,11 @@ void
%long
int
unsigned long
%ptr
char *
int *
void *
...
...
@@ -1869,8 +2023,8 @@ int
%ptr
WCHAR **
char **
WCHAR **
*
char **
*
int *
%void
...
...
@@ -2040,6 +2194,7 @@ SYSTEM_INFORMATION_CLASS
THREADINFOCLASS
TIMER_TYPE
TOKEN_TYPE
UCHAR
UINT
ULONG
WCHAR
...
...
@@ -2076,6 +2231,8 @@ DWORD *
EXCEPTION_RECORD *
EXCEPTION_REGISTRATION_RECORD *
EXCEPTION_REGISTRATION_RECORD **
FILE_NETWORK_OPEN_INFORMATION *
FILE_BASIC_INFORMATION *
GENERIC_MAPPING *
GUID *
HANDLE *
...
...
@@ -2118,6 +2275,7 @@ PCANSI_STRING
PCHAR
PCRTL_BITMAP
PCSZ
PDEBUG_BUFFER
PDWORD
PEXCEPTION_RECORD
PGENERIC_MAPPING
...
...
@@ -2176,6 +2334,7 @@ UNICODE_STRING *
VOID *
WCHAR **
union cptable *
va_list *
void *
void **
wine_signal_handler
...
...
@@ -2330,7 +2489,9 @@ REFIID
SNB
SOLE_AUTHENTICATION_SERVICE *
STGMEDIUM *
STGOPTIONS *
ULONG *
WCHAR *
WORD *
void *
void **
...
...
@@ -2349,12 +2510,15 @@ void
%long
DWORD
HRESULT
HWND
LONG
WPARAM
%ptr
LPUNKNOWN
REFIID
void **
...
...
@@ -2437,6 +2601,7 @@ LONG64 *
LPBSTR
LPBYTE
LPCLSID
LPCUSTDATA
LPDWORD
LPFONTDESC
LPOCPFIPARAMS
...
...
@@ -2782,7 +2947,6 @@ CStdPSFactoryBuffer *
LPPSFACTORYBUFFER
LPRPCCHANNELBUFFER
LPRPCSTUBBUFFER
LPSTR *
LPUNKNOWN
LPVOID
LPVOID *
...
...
@@ -2791,32 +2955,28 @@ MIDL_STUB_MESSAGE *
PFORMAT_STRING
PMIDL_STUB_DESC
PMIDL_STUB_MESSAGE
PRPC_BINDING_VECTOR
PRPC_MESSAGE
PRPC_POLICY
PRPCOLEMESSAGE
PUUID_VECTOR
ProxyFileInfo **
REFCLSID
REFIID
RPC_AUTH_KEY_RETRIEVAL_FN
RPC_BINDING_HANDLE *
RPC_BINDING_VECTOR *
RPC_BINDING_VECTOR **
RPC_BLOCKING_FN
RPC_IF_CALLBACK_FN *
RPC_MGR_EPV *
RPC_STATUS *
UUID *
UUID_VECTOR *
unsigned char *
unsigned char **
unsigned short *
unsigned short **
void *
%str
LPSTR
%wstr
LPWSTR
...
...
@@ -2854,6 +3014,36 @@ PVTableProvStruc
LPCWSTR
%%secur32.dll
%long
SECURITY_STATUS
ULONG
unsigned long
%ptr
HANDLE *
PCredHandle
PCtxtHandle
PLUID
PSecBuffer
PSecBufferDesc
PSecPkgInfoA *
PSecPkgInfoW *
PSecurityFunctionTableA
PSecurityFunctionTableW
PTimeStamp
PULONG
PVOID
SEC_CHAR *
SEC_GET_KEY_FN
SEC_WCHAR *
unsigned long *
void *
void **
%%serialui.dll
%long
...
...
@@ -2880,7 +3070,9 @@ LPCSTR
BOOL
DWORD
HANDLE
HDEVINFO
HDSKSPC
HINF
HINSTANCE
HKEY
...
...
@@ -2900,6 +3092,7 @@ UINT_PTR
BYTE *
GUID *
INFCONTEXT *
LONGLONG *
LPDWORD
LPCVOID
LPGUID
...
...
@@ -2918,7 +3111,6 @@ PSP_FILE_CALLBACK_W
PSP_FILE_COPY_PARAMS_A
PSP_FILE_COPY_PARAMS_W
PSP_INF_INFORMATION
PSTR
PSTR *
PUINT
PVOID
...
...
@@ -2928,7 +3120,9 @@ void *
%str
LPCSTR
LPSTR
PCSTR
PSTR
%void
...
...
@@ -2937,6 +3131,7 @@ void
%wstr
LPCWSTR
LPWSTR
PCWSTR
PWSTR
...
...
@@ -3118,6 +3313,10 @@ WPARAM
char
int
%long --ptr
INT_PTR
%longlong
LONGLONG
...
...
@@ -3127,6 +3326,7 @@ LONGLONG
BOOL *
BSTR *
CLSID *
DLGPROC
DLLVERSIONINFO *
DWORD *
HICON *
...
...
@@ -3170,6 +3370,7 @@ LPSHLWAPI_CLIST *
LPSTR *
LPSTRRET
LPTHREAD_START_ROUTINE
LPUNKNOWN
LPVOID
LPVOID *
LPWORD
...
...
@@ -3182,6 +3383,7 @@ PLONG
PSECURITY_DESCRIPTOR
PVOID
RECT *
REFCLSID
REFGUID
REFIID
SHFILEINFOW *
...
...
@@ -3191,6 +3393,7 @@ ULARGE_INTEGER *
VARIANT *
VOID *
WNDCLASSA *
int *
unsigned char *
va_list
void **
...
...
@@ -3296,6 +3499,7 @@ LPSTR
BOOL
COLORREF
DWORD
HANDLE
HBITMAP
HDC
HFONT
...
...
@@ -3313,7 +3517,6 @@ int
BITMAPINFO *
CREATESTRUCTA *
DC *
DEVMODEW *
DWORD *
INT *
...
...
@@ -3376,6 +3579,7 @@ IBindCtx **
IBindStatusCallback *
IBindStatusCallback **
IEnumFORMATETC *
IInternetSession **
IMoniker *
IMoniker **
LPBC
...
...
@@ -3386,7 +3590,6 @@ LPVOID
LPVOID *
REFCLSID
REFIID
void **
%str
...
...
@@ -3399,6 +3602,7 @@ void
%wstr
LPCWSTR
LPWSTR
%%user32.dll
...
...
@@ -3476,6 +3680,8 @@ POINT
BOOL *
COLORREF *
DLGPROC
DESKTOPENUMPROCA
DESKTOPENUMPROCW
DRAWSTATEPROC
DWORD *
GRAYSTRINGPROC
...
...
@@ -3535,6 +3741,7 @@ PROPENUMPROCW
PSECURITY_DESCRIPTOR
PSECURITY_INFORMATION
PSECURITY_QUALITY_OF_SERVICE
PTITLEBARINFO
PUINT_PTR
PVOID
PWINDOWINFO
...
...
@@ -3547,6 +3754,8 @@ TRACKMOUSEEVENT *
UINT *
WINDOWPLACEMENT *
WINEVENTPROC
WINSTAENUMPROCA
WINSTAENUMPROCW
WNDCLASSA *
WNDCLASSEXA *
WNDCLASSEXW *
...
...
@@ -3674,7 +3883,7 @@ LPWSTR
DWORD
%%vnb.vxd
%%vnb
t
.vxd
%long
...
...
@@ -3839,6 +4048,7 @@ WORD
BOOL
COLORREF
DWORD
HANDLE
HBITMAP
HBRUSH
HDC
...
...
@@ -3854,7 +4064,6 @@ WORD
%ptr
BITMAPINFO *
DC *
DEVMODEW *
DOCINFOA *
DWORD *
...
...
@@ -3890,7 +4099,6 @@ LPCWSTR
%double
FILETIME
GROUPID
%long
...
...
@@ -3904,6 +4112,10 @@ HWND
INTERNET_PORT
LONG
%longlong
FILETIME
%ptr
GOPHER_ATTRIBUTE_ENUMERATORA
...
...
@@ -4039,6 +4251,13 @@ LPSTR
LPCWSTR
LPWSTR
%%winnls32.dll
%long
BOOL
HWND
%%winspool.drv
%long
...
...
@@ -4161,6 +4380,7 @@ INT *
LPCONDITIONPROC
LPDWORD
LPGUID
LPHANDLE
LPINT
LPQOS
LPSOCKADDR
...
...
@@ -4175,6 +4395,8 @@ LPWSAPROTOCOL_INFOA
LPWSAPROTOCOL_INFOW
LPWSASERVICECLASSINFOA
LPWSASERVICECLASSINFOW
LPWSAQUERYSETA
LPWSAQUERYSETW
WS_fd_set *
char *
int *
...
...
@@ -4272,7 +4494,6 @@ BITMAPINFO *
BYTE *
CREATESTRUCTA *
CURSORICONINFO *
DC *
DEVMODEW *
DWORD *
FONTENUMPROCW
...
...
@@ -4290,7 +4511,6 @@ LPPOINT
LPRECT
LPSIZE
LPVOID
LPVOID *
LPWTPACKET *
PIXELFORMATDESCRIPTOR *
POINT *
...
...
@@ -4300,6 +4520,7 @@ TEXTMETRICW *
WINDOWPOS *
X11DRV_PDEVICE *
X11DRV_PDEVICE **
VOID **
void *
%str
...
...
tools/winapi_check/winapi_local.pm
View file @
ae9cf771
...
...
@@ -223,7 +223,7 @@ sub _check_function {
if
(
defined
(
$kind
)
&&
$kind
eq
"struct16"
)
{
$n
+=
4
;
(
"long"
,
"long"
,
"long"
,
"long"
);
}
elsif
(
defined
(
$kind
)
&&
$kind
eq
"longlong"
)
{
}
elsif
(
defined
(
$kind
)
&&
$kind
=~
/^(?:longlong)$/
)
{
$n
+=
2
;
(
"long"
,
"long"
);
}
else
{
...
...
tools/winapi_check/winapi_parser.pm
View file @
ae9cf771
...
...
@@ -359,7 +359,7 @@ sub parse_c_file {
next
;
}
elsif
(
/
(
extern
\
s
+|
static
\
s
+
)?((
struct
\
s
+|
union
\
s
+|
enum
\
s
+|
signed
\
s
+|
unsigned
\
s
+
)?
\
w
+
((
\
s
*\*
)
+\
s
*|\
s
+
))
((
__cdecl
|
__stdcall
|
CDECL
|
VFWAPIV
|
VFWAPI
|
WINAPIV
|
WINAPI
|
CALLBACK
)
\
s
+
)?
(
\
w
+
(
\
(
\
w
+\
))?)
\
s
*\
((
[
^\
)]
*
)
\
)
\
s
*
(
\
{
|\
;)
/
sx
)
(
\
w
+
(
\
(
\
w
+\
))?)
\
s
*\
((
.*
?
)
\
)
\
s
*
(
\
{
|\
;)
/
sx
)
{
my
@lines
=
split
(
/\n/
,
$&
);
my
$function_line
=
$.
-
scalar
(
@lines
)
+
1
;
...
...
@@ -400,11 +400,15 @@ sub parse_c_file {
my
@argument_types
;
my
@argument_names
;
my
@arguments
=
split
(
/,/
,
$arguments
);
foreach
my
$n
(
0
..
$#arguments
)
{
my
@arguments
;
my
$n
=
0
;
while
(
$arguments
=~
s/^((?:[^,\(\)]*|(?:\([^\)]*\))?)+)(?:,|$)//
&&
$1
)
{
my
$argument
=
$1
;
push
@arguments
,
$argument
;
my
$argument_type
=
""
;
my
$argument_name
=
""
;
my
$argument
=
$arguments
[
$n
];
$argument
=~
s/^\s*(.*?)\s*$/$1/
;
# print " " . ($n + 1) . ": '$argument'\n";
$argument
=~
s/^(IN OUT(?=\s)|IN(?=\s)|OUT(?=\s)|\s*)\s*//
;
...
...
@@ -413,27 +417,74 @@ sub parse_c_file {
$argument_type
=
"..."
;
$argument_name
=
"..."
;
}
elsif
(
$argument
=~
/^
((?:
struct
\
s
+|
union
\
s
+|
enum
\
s
+|
(?:
signed
\
s
+|
unsigned
\
s
+
)
((?:
struct
\
s
+|
union
\
s
+|
enum
\
s
+|
register
\
s
+|
(?:
signed
\
s
+|
unsigned
\
s
+
)
(?:
short
\
s
+
(?
=
int
)
|
long
\
s
+
(?
=
int
))?)?
\
w
+
)
\
s
*
((?:
const
)?
\
s
*
(?:
\*
\
s
*
?)
*
)
\
s
*
(?:
WINE_UNUSED
\
s
+
)?(
\
w
*
)
\
s
*
(?:
\
[
\
]
|\
s
+
OPTIONAL
)?
/
x
)
((?:
__RPC_FAR
|
const
|
CONST
)?
\
s
*
(?:
\*\
s
*
(?:
__RPC_FAR
|
const
|
CONST
)?
\
s
*
?)
*
)
\
s
*
(?:
WINE_UNUSED
\
s
+
)?(
\
w
*
)
\
s
*
(?:
\
[
\
]
|\
s
+
OPTIONAL
|\
s
+
WINE_UNUSED
)?
$
/
x
)
{
$argument_type
=
"$1"
;
if
(
$2
ne
""
)
{
$argument_type
=
$1
;
if
(
$2
)
{
$argument_type
.=
" $2"
;
}
$argument_name
=
$3
;
}
elsif
(
$argument
=~
/^
((?:
struct
\
s
+|
union
\
s
+|
enum
\
s
+|
register
\
s
+|
(?:
signed
\
s
+|
unsigned
\
s
+
)
(?:
short
\
s
+
(?
=
int
)
|
long
\
s
+
(?
=
int
))?)?
\
w
+
)
\
s
*
((?:
const
)?
\
s
*
(?:
\*\
s
*
(?:
const
)?
\
s
*
?)
*
)
\
s
*
(?:
__cdecl
\
s
+|
__stdcall
\
s
+|
CALLBACK
\
s
+|
WINAPI
\
s
+
)?
\
(
\
s
*
(?:
__cdecl
|
__stdcall
|
CALLBACK
|
WINAPI
)?
\
s
*\*\
s
*
((?:
\
w
+
)?)
\
s
*\
)
\
s
*
\
(
\
s
*
(
.*
?)
\
s
*\
)
$
/
x
)
{
my
$return_type
=
$1
;
if
(
$2
)
{
$return_type
.=
" $2"
;
}
$argument_name
=
$3
;
my
$arguments
=
$4
;
$return_type
=~
s/\s+/ /g
;
$arguments
=~
s/\s*,\s*/,/g
;
$argument_type
=
"$return_type (*)($arguments)"
;
}
elsif
(
$argument
=~
/^
((?:
struct
\
s
+|
union
\
s
+|
enum
\
s
+|
register
\
s
+|
(?:
signed
\
s
+|
unsigned
\
s
+
)
(?:
short
\
s
+
(?
=
int
)
|
long
\
s
+
(?
=
int
))?)?
\
w
+
)
\
s
*
((?:
const
)?
\
s
*
(?:
\*\
s
*
(?:
const
)?
\
s
*
?)
*
)
\
s
*
(
\
w
+
)
\
s
*\
[
\
s
*
(
.*
?)
\
s
*\
](?:
\
[
\
s
*
(
.*
?)
\
s
*\
])?
$
/
x
)
{
my
$return_type
=
$1
;
if
(
$2
)
{
$return_type
.=
" $2"
;
}
$argument_name
=
$3
;
$argument_type
=~
s/\s*const\s*/ /
;
$argument_type
=~
s/^\s*(.*?)\s*$/$1/
;
$argument_type
=
"$return_type\[$4\]"
;
if
(
defined
(
$5
))
{
$argument_type
.=
"\[$5\]"
;
}
$argument_name
=~
s/^\s*(.*?)\s*$/$1/
;
# die "$file: $.: syntax error: '$argument_type':'$argument_name'\n"
;
}
else
{
die
"$file: $.: syntax error: '$argument'\n"
;
}
$argument_type
=~
s/\s*const\s*/ /g
;
# Remove const
$argument_type
=~
s/([^\*\(\s])\*/$1 \*/g
;
# Assure whitespace between non-* and *
$argument_type
=~
s/,([^\s])/, $1/g
;
# Assure whitespace after ,
$argument_type
=~
s/\*\s+\*/\*\*/g
;
# Remove whitespace between * and *
$argument_type
=~
s/([\(\[])\s+/$1/g
;
# Remove whitespace after ( and [
$argument_type
=~
s/\s+([\)\]])/$1/g
;
# Remove whitespace before ] and )
$argument_type
=~
s/\s+/ /
;
# Remove multiple whitespace
$argument_type
=~
s/^\s*(.*?)\s*$/$1/
;
# Remove leading and trailing whitespace
$argument_name
=~
s/^\s*(.*?)\s*$/$1/
;
# Remove leading and trailing whitespace
$argument_types
[
$n
]
=
$argument_type
;
$argument_names
[
$n
]
=
$argument_name
;
# print " " . ($n + 1) . ": '" . $argument_types[$n] . "', '" . $argument_names[$n] . "'\n";
$n
++
;
}
if
(
$#argument_types
==
0
&&
$argument_types
[
0
]
=~
/^void$/i
)
{
$#argument_types
=
-
1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment