Francois Gouget : winapi_test: Add support for more base types.
Alexandre Julliard
julliard at winehq.org
Tue Apr 14 16:15:27 CDT 2020
Module: wine
Branch: master
Commit: 8bd4bc47166716762bf03e29e87b9eaaa9cb7b41
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8bd4bc47166716762bf03e29e87b9eaaa9cb7b41
Author: Francois Gouget <fgouget at free.fr>
Date: Tue Apr 14 20:10:04 2020 +0200
winapi_test: Add support for more base types.
Signed-off-by: Francois Gouget <fgouget at free.fr>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
tools/winapi/winapi_test | 98 +++++++++++++++++++++++++++---------------------
1 file changed, 55 insertions(+), 43 deletions(-)
diff --git a/tools/winapi/winapi_test b/tools/winapi/winapi_test
index 453b7a42e1..8b7596f040 100755
--- a/tools/winapi/winapi_test
+++ b/tools/winapi/winapi_test
@@ -177,42 +177,74 @@ sub _find_align_kind_size($) {
$align = $pointer_size;
$kind = "pointer";
$size = $pointer_size;
+ } elsif (/^(?:void|VOID)$/) {
+ $align = 4;
+ $kind = "signed";
+ $size = 4;
} elsif(/^char$/) {
$align = 1;
$kind = "char";
$size = 1;
- } elsif(/^(?:(signed|unsigned)\s+)?(?:__int8|char|byte)$/) {
+ } elsif(/^(?:(signed|unsigned)\s+)?(?:__int8|char)$/) {
$align = 1;
$kind = defined($1) ? $1 : "signed";
$size = 1;
+ } elsif(/^CHAR$/) {
+ $align = 1;
+ $kind = "signed";
+ $size = 1;
+ } elsif(/^(?:byte|BOOLEAN|BYTE|UCHAR)$/) {
+ $align = 1;
+ $kind = "unsigned";
+ $size = 1;
} elsif (/^(?:(signed|unsigned)\s+)?(?:__int16|short(?:\s+int)?)$/) {
$align = 2;
$kind = defined($1) ? $1 : "signed";
$size = 2;
- } elsif (/^(?:wchar_t)$/) {
+ } elsif (/^SHORT$/) {
$align = 2;
$kind = "signed";
$size = 2;
+ } elsif (/^(?:char16_t|wchar_t|USHORT|WCHAR|WORD)$/) {
+ $align = 2;
+ $kind = "unsigned";
+ $size = 2;
} elsif (/^(signed|unsigned)$/) {
$align = 4;
- $kind = defined($1) ? $1 : "signed";
+ $kind = $1;
$size = 4;
} elsif (/^(?:(signed|unsigned)\s+)?(?:__int32|int)$/) {
$align = 4;
$kind = defined($1) ? $1 : "signed";
$size = 4;
+ } elsif (/^(?:BOOL|INT|LONG)$/) {
+ $align = 4;
+ $kind = "signed";
+ $size = 4;
+ } elsif (/^(?:DWORD|FOURCC|LCID|UINT|ULONG)$/) {
+ $align = 4;
+ $kind = "unsigned";
+ $size = 4;
+ } elsif (/^(?:float|FLOAT)$/) {
+ $align = 4;
+ $kind = "float";
+ $size = 4;
} elsif (/^(?:(signed|unsigned)\s+)?(?:long(?:\s+int)?)$/) {
$align = $pointer_size;
$kind = defined($1) ? $1 : "signed";
$size = $pointer_size;
- } elsif (/^(?:float)$/) {
- $align = 4;
- $kind = "float";
- $size = 4;
} elsif (/^(?:(signed|unsigned)\s+)?__int64$/) {
$align = 8;
$kind = defined($1) ? $1 : "signed";
$size = 8;
+ } elsif (/^(?:INT64|LONG64|LONGLONG)$/) {
+ $align = 8;
+ $kind = "signed";
+ $size = 8;
+ } elsif (/^(?:UINT64|ULONG64|DWORD64|ULONGLONG|DWORDLONG)$/) {
+ $align = 8;
+ $kind = "unsigned";
+ $size = 8;
} elsif (/^(?:double|DOUBLE|DATE)$/) {
$align = 8;
$kind = "float";
@@ -221,58 +253,38 @@ sub _find_align_kind_size($) {
$align = 4;
$kind = "float";
$size = 12;
- } elsif (/^H(?:DC|BITMAP|BRUSH|ICON|INSTANCE|KEY|MENU|METAFILE|WND)$/) {
+ } elsif (/^(?:INT|LONG)_PTR$/) {
+ $align = $pointer_size;
+ $kind = "signed";
+ $size = $pointer_size;
+ } elsif (/^(?:UINT|MMVERSION|ULONG|DWORD)_PTR$/) {
+ $align = $pointer_size;
+ $kind = "unsigned";
+ $size = $pointer_size;
+ } elsif (/^H(?:ANDLE|DC|BITMAP|BRUSH|ICON|INSTANCE|KEY|MENU|METAFILE|MMIO|TASK|WND)$/) {
$align = $pointer_size;
$kind = "pointer";
$size = $pointer_size;
- } elsif (/^LP(?:BYTE|CSTR|CWSTR|DWORD|STR|VOID|WSTR)$/) {
+ } elsif (/^(?:HPSTR|LP[A-Z0-9_]+|PVOID)$/) {
$align = $pointer_size;
$kind = "pointer";
$size = $pointer_size;
- } elsif (/^(?:FILETIME)$/) {
+ } elsif (/^POINTS$/) {
+ $align = 2;
+ $kind = "struct";
+ $size = 4;
+ } elsif (/^(?:FILETIME|LUID|POINT|POINTL)$/) {
$align = 4;
$kind = "struct";
$size = 8;
- } elsif (/^GUID$/) {
+ } elsif (/^(?:CLSID|GUID|RECT|RECTL)$/) {
$align = 4;
$kind = "struct";
$size = 16;
- } elsif (/^(?:VOID)$/) {
- $align = 4;
- $kind = "signed";
- $size = 4;
- } elsif (/^(?:SHORT)$/) {
- $align = 2;
- $kind = "unsigned";
- $size = 2;
- } elsif (/^(?:BYTE)$/) {
- $align = 1;
- $kind = "unsigned";
- $size = 1;
- } elsif (/^(?:DWORD)$/) {
- $align = 4;
- $kind = "unsigned";
- $size = 4;
- } elsif (/^(?:WORD)$/) {
- $align = 2;
- $kind = "unsigned";
- $size = 2;
- } elsif (/^(?:INT64|LONG64|LONGLONG)$/) {
- $align = 8;
- $kind = "signed";
- $size = 8;
- } elsif (/^(?:UINT64|ULONG64|DWORD64|ULONGLONG|DWORDLONG)$/) {
- $align = 8;
- $kind = "unsigned";
- $size = 8;
} elsif (/^(?:LARGE_INTEGER)$/) {
$align = 8;
$kind = "union";
$size = 8;
- } elsif (/^(?:POINTS)$/) {
- $align = 2;
- $kind = "struct";
- $size = 4;
} elsif (/^(struct|union)$/) {
$kind = $1;
if (!$size_parse_reported{$_}) {
More information about the wine-cvs
mailing list