From e7bff1bb4f7a7a5863f993db162006eb98d3fb67 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 15 Aug 2018 08:07:39 +1000 Subject: [PATCH] Rebase against ba9f3dc198dfc81bb40159077b73b797006bb73c --- patches/Compiler_Warnings/definition | 1 - ...rt-explorer.exe-using-limited-rights.patch | 24 +- ...ly-assign-security-labels-for-tokens.patch | 50 +- ...36-Return-a-mesh-in-D3DXCreateTeapot.patch | 26 - patches/d3dx9_36-D3DXCreateTeapot/definition | 1 - ...sOldCaps-correctly-in-ddraw7_GetCaps.patch | 32 +- ...sible-out-of-bounds-cluster-metrics-.patch | 26 - patches/dwrite-layout-check/definition | 2 - ...oveFile-source-source-should-succeed.patch | 24 +- ...e-should-make-sure-that-it-has-the-d.patch | 34 +- ...ndowscodecs-Use-the-ARRAY_SIZE-macro.patch | 141 -- ...03-localspl-Use-the-ARRAY_SIZE-macro.patch | 147 -- ...04-mmdevapi-Use-the-ARRAY_SIZE-macro.patch | 76 - ...0005-mapi32-Use-the-ARRAY_SIZE-macro.patch | 53 - ...nl386.exe16-Use-the-ARRAY_SIZE-macro.patch | 126 -- ...inetcpl.cpl-Use-the-ARRAY_SIZE-macro.patch | 101 -- ...-hhctrl.ocx-Use-the-ARRAY_SIZE-macro.patch | 68 - .../0009-dpnet-Use-the-ARRAY_SIZE-macro.patch | 27 - .../0010-dx8vb-Use-the-ARRAY_SIZE-macro.patch | 34 - ...0011-fusion-Use-the-ARRAY_SIZE-macro.patch | 78 - .../0012-evr-Use-the-ARRAY_SIZE-macro.patch | 33 - .../0013-d3d10-Use-the-ARRAY_SIZE-macro.patch | 36 - .../0014-d3d8-Use-the-ARRAY_SIZE-macro.patch | 36 - ...d3dcompiler-Use-the-ARRAY_SIZE-macro.patch | 51 - ...0016-d3dxof-Use-the-ARRAY_SIZE-macro.patch | 34 - ...0017-dnsapi-Use-the-ARRAY_SIZE-macro.patch | 44 - ...19-amstream-Use-the-ARRAY_SIZE-macro.patch | 47 - ...20-browseui-Use-the-ARRAY_SIZE-macro.patch | 26 - ...0021-gameux-Use-the-ARRAY_SIZE-macro.patch | 35 - ...22-inetcomm-Use-the-ARRAY_SIZE-macro.patch | 104 -- ...23-iphlpapi-Use-the-ARRAY_SIZE-macro.patch | 67 - ...-superfluous-variable-initialization.patch | 26 - .../0025-itss-Use-the-ARRAY_SIZE-macro.patch | 50 - ...0026-attrib-Use-the-ARRAY_SIZE-macro.patch | 44 - .../0027-clock-Use-the-ARRAY_SIZE-macro.patch | 58 - ...28-hostname-Use-the-ARRAY_SIZE-macro.patch | 55 - ...0029-icinfo-Use-the-ARRAY_SIZE-macro.patch | 26 - .../0030-net-Use-the-ARRAY_SIZE-macro.patch | 63 - ...31-taskkill-Use-the-ARRAY_SIZE-macro.patch | 46 - ...32-ipconfig-Use-the-ARRAY_SIZE-macro.patch | 152 -- ...033-msiexec-Use-the-ARRAY_SIZE-macro.patch | 31 - ...034-taskmgr-Use-the-ARRAY_SIZE-macro.patch | 505 ------ ...uninstaller-Use-the-ARRAY_SIZE-macro.patch | 37 - ...36-wineboot-Use-the-ARRAY_SIZE-macro.patch | 53 - ...037-wordpad-Use-the-ARRAY_SIZE-macro.patch | 73 - ...38-winetest-Use-the-ARRAY_SIZE-macro.patch | 49 - ...ountmgr.sys-Use-the-ARRAY_SIZE-macro.patch | 44 - .../0040-mpr-Use-the-ARRAY_SIZE-macro.patch | 38 - ...041-msacm32-Use-the-ARRAY_SIZE-macro.patch | 172 --- ...042-msrle32-Use-the-ARRAY_SIZE-macro.patch | 39 - ...0043-msvcrt-Use-the-ARRAY_SIZE-macro.patch | 291 ---- ...0044-scrobj-Use-the-ARRAY_SIZE-macro.patch | 35 - ...orage.dll16-Use-the-ARRAY_SIZE-macro.patch | 68 - ...0046-urlmon-Use-the-ARRAY_SIZE-macro.patch | 40 - ...video.dll16-Use-the-ARRAY_SIZE-macro.patch | 26 - ...048-mscoree-Use-the-ARRAY_SIZE-macro.patch | 138 -- ...049-dxdiagn-Use-the-ARRAY_SIZE-macro.patch | 433 ------ ...050-localui-Use-the-ARRAY_SIZE-macro.patch | 52 - ...51-inetmib1-Use-the-ARRAY_SIZE-macro.patch | 35 - ...52-kernel32-Use-the-ARRAY_SIZE-macro.patch | 778 ---------- ...053-mciwave-Use-the-ARRAY_SIZE-macro.patch | 26 - ...054-midimap-Use-the-ARRAY_SIZE-macro.patch | 26 - .../0055-mscms-Use-the-ARRAY_SIZE-macro.patch | 26 - .../0056-msctf-Use-the-ARRAY_SIZE-macro.patch | 26 - ...sscript.ocx-Use-the-ARRAY_SIZE-macro.patch | 26 - .../0001-wined3d-Fix-WINED3D_MCS_COLOR2.patch | 75 - ...ests-Add-a-test-for-D3DMCS_COLOR-1-2.patch | 145 -- ...ests-Add-a-test-for-D3DMCS_COLOR-1-2.patch | 144 -- ...ests-Add-a-test-for-D3DMCS_COLOR-1-2.patch | 172 --- ...-calculate-angle-between-vectors-wit.patch | 33 - .../0007-wine.inf-Add-Sources-key.patch | 26 - ...ms-win-devices-config-l1-1-0-Add-dll.patch | 114 -- ...tUniversalNameW-return-required-size.patch | 50 - ...delimiter-handling-in-basic_istream-.patch | 43 - ...ulate-sti-cli-instructions-on-x86_64.patch | 33 - ...nctions-to-avoid-conflicts-with-nati.patch | 1365 ----------------- ...h-in-waveOutOpen-when-nSamplesPerSec.patch | 68 - ...que-names-for-32-and-64-bit-custom-a.patch | 63 - ...e-driver-vkGetInstanceProcAddr-via-w.patch | 62 - ...ICD-and-thunking-functions-as-privat.patch | 425 ----- ...ible-to-query-IUnknown-from-IWMPCont.patch | 67 - ...mpiler-Make-types-array-static-const.patch | 26 - ...32_NetworkAdapterConfiguration-IPAdd.patch | 90 -- ...32_NetworkAdapterConfiguration-IPSub.patch | 118 -- ...ferral-for-standard-and-custom-actio.patch | 1006 ------------ patches/msi-Deferral/definition | 1 - ...erent-formarts-in-ICGetDisplayFormat.patch | 389 ----- ...-for-negative-width-height-values-pa.patch | 64 - ...zeImage-correctly-in-ICGetDisplayFor.patch | 95 -- ...ide-into-account-and-ask-for-palette.patch | 146 -- ...d-Fix-calculation-of-stride-and-size.patch | 30 +- ...-Improve-heap-allocation-performance.patch | 55 +- ...Return-a-NULL-pointer-for-functions-.patch | 14 +- patches/patchinstall.sh | 325 +--- ...ned3d-Implement-dual-source-blending.patch | 42 +- ...normal-calculation-when-indexed-vert.patch | 44 +- ...nt-blt-textures-on-different-devices.patch | 30 - patches/wined3d-texture-blt-device/definition | 2 - ...e-a-separate-mainloop-and-ctx-for-pu.patch | 12 +- ...etch-actual-program-name-if-possible.patch | 19 +- ...drv-Correct-bBuild-fail-with-GCC-4.5.patch | 24 - patches/winex11-compile-vulkan/definition | 2 - 102 files changed, 208 insertions(+), 10382 deletions(-) delete mode 100644 patches/d3dx9_36-D3DXCreateTeapot/0001-d3dx9_36-Return-a-mesh-in-D3DXCreateTeapot.patch delete mode 100644 patches/d3dx9_36-D3DXCreateTeapot/definition delete mode 100644 patches/dwrite-layout-check/0001-dwrite-Avoid-possible-out-of-bounds-cluster-metrics-.patch delete mode 100644 patches/dwrite-layout-check/definition delete mode 100644 patches/ml-array_size/0001-windowscodecs-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0003-localspl-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0004-mmdevapi-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0005-mapi32-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0006-krnl386.exe16-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0007-inetcpl.cpl-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0008-hhctrl.ocx-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0009-dpnet-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0010-dx8vb-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0011-fusion-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0012-evr-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0013-d3d10-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0014-d3d8-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0015-d3dcompiler-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0016-d3dxof-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0017-dnsapi-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0019-amstream-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0020-browseui-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0021-gameux-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0022-inetcomm-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0023-iphlpapi-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0024-itss-Remove-a-superfluous-variable-initialization.patch delete mode 100644 patches/ml-array_size/0025-itss-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0026-attrib-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0027-clock-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0028-hostname-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0029-icinfo-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0030-net-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0031-taskkill-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0032-ipconfig-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0033-msiexec-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0034-taskmgr-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0035-uninstaller-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0036-wineboot-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0037-wordpad-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0038-winetest-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0039-mountmgr.sys-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0040-mpr-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0041-msacm32-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0042-msrle32-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0043-msvcrt-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0044-scrobj-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0045-storage.dll16-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0046-urlmon-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0047-msvideo.dll16-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0048-mscoree-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0049-dxdiagn-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0050-localui-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0051-inetmib1-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0052-kernel32-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0053-mciwave-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0054-midimap-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0055-mscms-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0056-msctf-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-array_size/0057-msscript.ocx-Use-the-ARRAY_SIZE-macro.patch delete mode 100644 patches/ml-patches/0001-wined3d-Fix-WINED3D_MCS_COLOR2.patch delete mode 100644 patches/ml-patches/0002-d3d9-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch delete mode 100644 patches/ml-patches/0003-d3d8-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch delete mode 100644 patches/ml-patches/0004-ddraw-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch delete mode 100644 patches/ml-patches/0005-dsound-Correctly-calculate-angle-between-vectors-wit.patch delete mode 100644 patches/ml-patches/0007-wine.inf-Add-Sources-key.patch delete mode 100644 patches/ml-patches/0009-api-ms-win-devices-config-l1-1-0-Add-dll.patch delete mode 100644 patches/ml-patches/0010-wnet-Make-WNetGetUniversalNameW-return-required-size.patch delete mode 100644 patches/ml-patches/0011-msvcp90-Fix-EOF-delimiter-handling-in-basic_istream-.patch delete mode 100644 patches/ml-patches/0012-ntoskrnl-Emulate-sti-cli-instructions-on-x86_64.patch delete mode 100644 patches/ml-patches/0014-odbc32-Rename-functions-to-avoid-conflicts-with-nati.patch delete mode 100644 patches/ml-patches/0015-winmm-Don-t-crash-in-waveOutOpen-when-nSamplesPerSec.patch delete mode 100644 patches/ml-patches/0016-msi-Generate-unique-names-for-32-and-64-bit-custom-a.patch delete mode 100644 patches/ml-patches/0017-winevulkan-Expose-driver-vkGetInstanceProcAddr-via-w.patch delete mode 100644 patches/ml-patches/0018-winevulkan-Mark-ICD-and-thunking-functions-as-privat.patch delete mode 100644 patches/ml-patches/0019-wmp-Make-it-possible-to-query-IUnknown-from-IWMPCont.patch delete mode 100644 patches/ml-patches/0021-d3dcompiler-Make-types-array-static-const.patch delete mode 100644 patches/ml-patches/0023-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPAdd.patch delete mode 100644 patches/ml-patches/0024-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPSub.patch delete mode 100644 patches/msi-Deferral/0001-msi-Implement-deferral-for-standard-and-custom-actio.patch delete mode 100644 patches/msi-Deferral/definition delete mode 100644 patches/msvfw32-ICGetDisplayFormat/0001-msvfw32-Try-different-formarts-in-ICGetDisplayFormat.patch delete mode 100644 patches/msvfw32-ICGetDisplayFormat/0002-msvfw32-Add-test-for-negative-width-height-values-pa.patch delete mode 100644 patches/msvfw32-ICGetDisplayFormat/0003-msvfw32-Set-biSizeImage-correctly-in-ICGetDisplayFor.patch delete mode 100644 patches/msvfw32-ICGetDisplayFormat/0004-msvfw32-Take-stride-into-account-and-ask-for-palette.patch delete mode 100644 patches/wined3d-texture-blt-device/0001-wined3d-Dont-blt-textures-on-different-devices.patch delete mode 100644 patches/wined3d-texture-blt-device/definition delete mode 100644 patches/winex11-compile-vulkan/0001-winex11.drv-Correct-bBuild-fail-with-GCC-4.5.patch delete mode 100644 patches/winex11-compile-vulkan/definition diff --git a/patches/Compiler_Warnings/definition b/patches/Compiler_Warnings/definition index 34c12e5c..4dd98ae6 100644 --- a/patches/Compiler_Warnings/definition +++ b/patches/Compiler_Warnings/definition @@ -1,2 +1 @@ -Depends: ml-array_size Depends: ml-patches diff --git a/patches/advapi32-Token_Integrity_Level/0012-user32-Start-explorer.exe-using-limited-rights.patch b/patches/advapi32-Token_Integrity_Level/0012-user32-Start-explorer.exe-using-limited-rights.patch index a89ba828..050cabb1 100644 --- a/patches/advapi32-Token_Integrity_Level/0012-user32-Start-explorer.exe-using-limited-rights.patch +++ b/patches/advapi32-Token_Integrity_Level/0012-user32-Start-explorer.exe-using-limited-rights.patch @@ -1,7 +1,7 @@ -From 31a5f689a12c1db6edcc86dcd8e81f38a5f19fc5 Mon Sep 17 00:00:00 2001 +From baff5c160cf7f1ac0011bf8f55d506bf0346e1fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 7 Aug 2017 02:53:06 +0200 -Subject: user32: Start explorer.exe using limited rights. +Subject: [PATCH] user32: Start explorer.exe using limited rights. --- dlls/advapi32/tests/security.c | 4 ++-- @@ -9,10 +9,10 @@ Subject: user32: Start explorer.exe using limited rights. 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c -index f1a64e29dea..52524ee6fe2 100644 +index f27642e7a7..0271cd72e0 100644 --- a/dlls/advapi32/tests/security.c +++ b/dlls/advapi32/tests/security.c -@@ -7387,7 +7387,7 @@ static void test_token_security_descriptor(void) +@@ -7313,7 +7313,7 @@ static void test_token_security_descriptor(void) ret = GetTokenInformation(token4, TokenIntegrityLevel, buffer_integrity, sizeof(buffer_integrity), &size); ok(ret, "GetTokenInformation failed with error %u\n", GetLastError()); tml = (TOKEN_MANDATORY_LABEL *)buffer_integrity; @@ -21,7 +21,7 @@ index f1a64e29dea..52524ee6fe2 100644 size = 0; ret = GetKernelObjectSecurity(token4, LABEL_SECURITY_INFORMATION, NULL, 0, &size); -@@ -7841,7 +7841,7 @@ static void test_child_token_sd_medium(void) +@@ -7768,7 +7768,7 @@ static void test_child_token_sd_medium(void) ret = GetTokenInformation(token, TokenIntegrityLevel, buffer_integrity, sizeof(buffer_integrity), &size); ok(ret, "GetTokenInformation failed with error %u\n", GetLastError()); tml = (TOKEN_MANDATORY_LABEL *)buffer_integrity; @@ -31,7 +31,7 @@ index f1a64e29dea..52524ee6fe2 100644 HeapFree(GetProcessHeap(), 0, sd); } diff --git a/dlls/user32/win.c b/dlls/user32/win.c -index cbf22374374..ea116b9d139 100644 +index cbfd8bb14a..8039f54fb0 100644 --- a/dlls/user32/win.c +++ b/dlls/user32/win.c @@ -43,6 +43,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(win); @@ -43,15 +43,15 @@ index cbf22374374..ea116b9d139 100644 static DWORD process_layout = ~0u; static struct list window_surfaces = LIST_INIT( window_surfaces ); -@@ -2067,6 +2069,7 @@ HWND WINAPI GetDesktopWindow(void) - WCHAR app[MAX_PATH + sizeof(explorer)/sizeof(WCHAR)]; - WCHAR cmdline[MAX_PATH + (sizeof(explorer) + sizeof(args))/sizeof(WCHAR)]; +@@ -2052,6 +2054,7 @@ HWND WINAPI GetDesktopWindow(void) + WCHAR app[MAX_PATH + ARRAY_SIZE( explorer )]; + WCHAR cmdline[MAX_PATH + ARRAY_SIZE( explorer ) + ARRAY_SIZE( args )]; WCHAR desktop[MAX_PATH]; + HANDLE token; void *redir; SERVER_START_REQ( set_user_object_info ) -@@ -2099,9 +2102,12 @@ HWND WINAPI GetDesktopWindow(void) +@@ -2084,9 +2087,12 @@ HWND WINAPI GetDesktopWindow(void) strcpyW( cmdline, app ); strcatW( cmdline, args ); @@ -66,7 +66,7 @@ index cbf22374374..ea116b9d139 100644 { TRACE( "started explorer pid %04x tid %04x\n", pi.dwProcessId, pi.dwThreadId ); WaitForInputIdle( pi.hProcess, 10000 ); -@@ -2111,6 +2117,8 @@ HWND WINAPI GetDesktopWindow(void) +@@ -2096,6 +2102,8 @@ HWND WINAPI GetDesktopWindow(void) else WARN( "failed to start explorer, err %d\n", GetLastError() ); Wow64RevertWow64FsRedirection( redir ); @@ -76,5 +76,5 @@ index cbf22374374..ea116b9d139 100644 { req->force = 1; -- -2.13.1 +2.18.0 diff --git a/patches/advapi32-Token_Integrity_Level/0013-server-Correctly-assign-security-labels-for-tokens.patch b/patches/advapi32-Token_Integrity_Level/0013-server-Correctly-assign-security-labels-for-tokens.patch index 6ca64505..bc76f1c2 100644 --- a/patches/advapi32-Token_Integrity_Level/0013-server-Correctly-assign-security-labels-for-tokens.patch +++ b/patches/advapi32-Token_Integrity_Level/0013-server-Correctly-assign-security-labels-for-tokens.patch @@ -1,20 +1,20 @@ -From 71366dad7ac934b2e24cfcf19104b4589b91652a Mon Sep 17 00:00:00 2001 +From b14282d138ff6a5ad1d5c152d0a556c9ca648c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 7 Aug 2017 03:33:26 +0200 -Subject: server: Correctly assign security labels for tokens. +Subject: [PATCH] server: Correctly assign security labels for tokens. --- - dlls/advapi32/tests/security.c | 21 ++++++++++----------- - server/process.c | 8 +------- + dlls/advapi32/tests/security.c | 21 +++++++++-------- + server/process.c | 8 +------ server/security.h | 2 +- - server/token.c | 41 ++++++++++++++++++++++++----------------- + server/token.c | 41 ++++++++++++++++++++-------------- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c -index 52524ee6fe2..a35baab0e25 100644 +index 0271cd72e0..3b07e7cd2f 100644 --- a/dlls/advapi32/tests/security.c +++ b/dlls/advapi32/tests/security.c -@@ -7289,7 +7289,6 @@ static void test_token_security_descriptor(void) +@@ -7215,7 +7215,6 @@ static void test_token_security_descriptor(void) defaulted = TRUE; ret = GetSecurityDescriptorDacl(sd2, &present, &acl2, &defaulted); ok(ret, "GetSecurityDescriptorDacl failed with error %u\n", GetLastError()); @@ -22,7 +22,7 @@ index 52524ee6fe2..a35baab0e25 100644 ok(present, "DACL not present\n"); if (present) -@@ -7410,7 +7409,7 @@ static void test_token_security_descriptor(void) +@@ -7336,7 +7335,7 @@ static void test_token_security_descriptor(void) ok(ret, "GetAce failed with error %u\n", GetLastError()); ok(ace->Header.AceType == SYSTEM_MANDATORY_LABEL_ACE_TYPE, "Unexpected ACE type %#x\n", ace->Header.AceType); @@ -31,7 +31,7 @@ index 52524ee6fe2..a35baab0e25 100644 "Expected medium integrity level\n"); } -@@ -7463,8 +7462,8 @@ static void test_token_security_descriptor(void) +@@ -7389,8 +7388,8 @@ static void test_token_security_descriptor(void) sacl = NULL; ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted); ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError()); @@ -42,7 +42,7 @@ index 52524ee6fe2..a35baab0e25 100644 if (sacl) { -@@ -7513,8 +7512,8 @@ static void test_token_security_descriptor(void) +@@ -7439,8 +7438,8 @@ static void test_token_security_descriptor(void) sacl = NULL; ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted); ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError()); @@ -53,7 +53,7 @@ index 52524ee6fe2..a35baab0e25 100644 if (sacl) { -@@ -7578,8 +7577,8 @@ static void test_token_security_descriptor(void) +@@ -7504,8 +7503,8 @@ static void test_token_security_descriptor(void) ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted); ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError()); @@ -64,7 +64,7 @@ index 52524ee6fe2..a35baab0e25 100644 if (sacl) { -@@ -7616,8 +7615,8 @@ static void test_token_security_descriptor(void) +@@ -7542,8 +7541,8 @@ static void test_token_security_descriptor(void) sacl = NULL; ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted); ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError()); @@ -75,7 +75,7 @@ index 52524ee6fe2..a35baab0e25 100644 if (sacl) { -@@ -7834,7 +7833,7 @@ static void test_child_token_sd_medium(void) +@@ -7761,7 +7760,7 @@ static void test_child_token_sd_medium(void) ok(ret, "GetAce failed with error %u\n", GetLastError()); ok(ace_label->Header.AceType == SYSTEM_MANDATORY_LABEL_ACE_TYPE, "Unexpected ACE type %#x\n", ace_label->Header.AceType); @@ -85,10 +85,10 @@ index 52524ee6fe2..a35baab0e25 100644 memset(buffer_integrity, 0, sizeof(buffer_integrity)); diff --git a/server/process.c b/server/process.c -index ef2452fb8fb..ae998ab80b9 100644 +index 7d2206f274..74cc320f44 100644 --- a/server/process.c +++ b/server/process.c -@@ -571,17 +571,11 @@ struct thread *create_process( int fd, struct thread *parent_thread, int inherit +@@ -567,17 +567,11 @@ struct thread *create_process( int fd, struct thread *parent_thread, int inherit : alloc_handle_table( process, 0 ); /* Note: for security reasons, starting a new process does not attempt * to use the current impersonation token for the new process */ @@ -108,7 +108,7 @@ index ef2452fb8fb..ae998ab80b9 100644 if (pipe( request_pipe ) == -1) { diff --git a/server/security.h b/server/security.h -index 32dfe5f8db9..87377ccd673 100644 +index 32dfe5f8db..87377ccd67 100644 --- a/server/security.h +++ b/server/security.h @@ -59,7 +59,7 @@ extern int token_assign_label( struct token *token, PSID label ); @@ -121,10 +121,10 @@ index 32dfe5f8db9..87377ccd673 100644 const LUID_AND_ATTRIBUTES *reqprivs, unsigned int count, LUID_AND_ATTRIBUTES *usedprivs); diff --git a/server/token.c b/server/token.c -index c507294b49d..c6b0f0d39d3 100644 +index 28042471b0..e5639fc0d5 100644 --- a/server/token.c +++ b/server/token.c -@@ -686,7 +686,7 @@ static int filter_privilege( struct privilege *privilege, const LUID_AND_ATTRIBU +@@ -668,7 +668,7 @@ static int filter_privilege( struct privilege *privilege, const LUID_AND_ATTRIBU struct token *token_duplicate( struct token *src_token, unsigned primary, int impersonation_level, const struct security_descriptor *sd, const LUID_AND_ATTRIBUTES *filter_privileges, unsigned int priv_count, @@ -133,7 +133,7 @@ index c507294b49d..c6b0f0d39d3 100644 { const luid_t *modified_id = primary || (impersonation_level == src_token->impersonation_level) ? -@@ -750,6 +750,12 @@ struct token *token_duplicate( struct token *src_token, unsigned primary, +@@ -735,6 +735,12 @@ struct token *token_duplicate( struct token *src_token, unsigned primary, if (sd) default_set_sd( &token->obj, sd, OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION | SACL_SECURITY_INFORMATION ); @@ -146,7 +146,7 @@ index c507294b49d..c6b0f0d39d3 100644 return token; } -@@ -922,6 +928,12 @@ struct token *token_create_admin( void ) +@@ -907,6 +913,12 @@ struct token *token_create_admin( void ) admin_source, NULL, -1, TokenElevationTypeFull, &high_label_sid ); /* we really need a primary group */ assert( token->primary_group ); @@ -159,7 +159,7 @@ index c507294b49d..c6b0f0d39d3 100644 } free( logon_sid ); -@@ -980,6 +992,12 @@ static struct token *token_create_limited( void ) +@@ -965,6 +977,12 @@ static struct token *token_create_limited( void ) admin_source, NULL, -1, TokenElevationTypeLimited, &medium_label_sid ); /* we really need a primary group */ assert( token->primary_group ); @@ -172,7 +172,7 @@ index c507294b49d..c6b0f0d39d3 100644 } free( logon_sid ); -@@ -1448,7 +1466,8 @@ DECL_HANDLER(duplicate_token) +@@ -1433,7 +1451,8 @@ DECL_HANDLER(duplicate_token) TOKEN_DUPLICATE, &token_ops ))) { @@ -182,7 +182,7 @@ index c507294b49d..c6b0f0d39d3 100644 if (token) { unsigned int access = req->access ? req->access : get_handle_access( current->process, req->handle ); -@@ -1478,7 +1497,7 @@ DECL_HANDLER(filter_token) +@@ -1463,7 +1482,7 @@ DECL_HANDLER(filter_token) group_count = get_sid_count( filter_groups, get_req_data_size() - priv_count * sizeof(LUID_AND_ATTRIBUTES) ); token = token_duplicate( src_token, src_token->primary, src_token->impersonation_level, NULL, @@ -191,7 +191,7 @@ index c507294b49d..c6b0f0d39d3 100644 if (token) { unsigned int access = get_handle_access( current->process, req->handle ); -@@ -1813,23 +1832,11 @@ DECL_HANDLER(set_token_default_dacl) +@@ -1789,23 +1808,11 @@ DECL_HANDLER(set_token_default_dacl) DECL_HANDLER(create_token) { struct token *token; @@ -218,5 +218,5 @@ index c507294b49d..c6b0f0d39d3 100644 } } -- -2.13.1 +2.18.0 diff --git a/patches/d3dx9_36-D3DXCreateTeapot/0001-d3dx9_36-Return-a-mesh-in-D3DXCreateTeapot.patch b/patches/d3dx9_36-D3DXCreateTeapot/0001-d3dx9_36-Return-a-mesh-in-D3DXCreateTeapot.patch deleted file mode 100644 index 0d03d023..00000000 --- a/patches/d3dx9_36-D3DXCreateTeapot/0001-d3dx9_36-Return-a-mesh-in-D3DXCreateTeapot.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 34607775675c9475973fd249b8a68a59935b0391 Mon Sep 17 00:00:00 2001 -From: Alistair Leslie-Hughes -Date: Thu, 30 Jul 2015 11:57:28 +1000 -Subject: d3dx9_36: Return a mesh in D3DXCreateTeapot - -Fixes https://bugs.winehq.org/show_bug.cgi?id=36884 ---- - dlls/d3dx9_36/mesh.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c -index 39d279d..59e385e4 100644 ---- a/dlls/d3dx9_36/mesh.c -+++ b/dlls/d3dx9_36/mesh.c -@@ -5153,7 +5153,7 @@ HRESULT WINAPI D3DXCreateTeapot(struct IDirect3DDevice9 *device, - { - FIXME("(%p, %p, %p): stub\n", device, mesh, adjacency); - -- return E_NOTIMPL; -+ return D3DXCreateSphere(device, 1.0f, 4, 4, mesh, adjacency); - } - - HRESULT WINAPI D3DXCreateTextA(struct IDirect3DDevice9 *device, HDC hdc, const char *text, float deviation, --- -2.5.0 - diff --git a/patches/d3dx9_36-D3DXCreateTeapot/definition b/patches/d3dx9_36-D3DXCreateTeapot/definition deleted file mode 100644 index 36d71ea1..00000000 --- a/patches/d3dx9_36-D3DXCreateTeapot/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [36884] Return a valid mesh in D3DXCreateTeapot diff --git a/patches/ddraw-Device_Caps/0003-ddraw-Set-ddsOldCaps-correctly-in-ddraw7_GetCaps.patch b/patches/ddraw-Device_Caps/0003-ddraw-Set-ddsOldCaps-correctly-in-ddraw7_GetCaps.patch index 93d8ed1e..4afd3762 100644 --- a/patches/ddraw-Device_Caps/0003-ddraw-Set-ddsOldCaps-correctly-in-ddraw7_GetCaps.patch +++ b/patches/ddraw-Device_Caps/0003-ddraw-Set-ddsOldCaps-correctly-in-ddraw7_GetCaps.patch @@ -1,4 +1,4 @@ -From 07d42b7a75491947866e6edb9d7746ca35274238 Mon Sep 17 00:00:00 2001 +From 25c2a52b1109022a01b8f59a22b8a04566af0d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 4 Mar 2016 22:22:42 +0100 Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps. @@ -12,7 +12,7 @@ Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps. 5 files changed, 106 insertions(+) diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c -index ed90478..47f079f 100644 +index ed904785dd..47f079fb97 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -1542,6 +1542,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD @@ -25,10 +25,10 @@ index ed90478..47f079f 100644 if(DriverCaps) diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c -index c767d3a..70d4b8f 100644 +index d4fe1f294a..29d9d3afb7 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c -@@ -11411,6 +11411,31 @@ static void test_execute_data(void) +@@ -11538,6 +11538,31 @@ static void test_execute_data(void) DestroyWindow(window); } @@ -60,7 +60,7 @@ index c767d3a..70d4b8f 100644 static void test_viewport(void) { static struct -@@ -11686,6 +11711,7 @@ START_TEST(ddraw1) +@@ -11815,6 +11840,7 @@ START_TEST(ddraw1) test_depth_readback(); test_clear(); test_enum_surfaces(); @@ -69,10 +69,10 @@ index c767d3a..70d4b8f 100644 test_viewport(); } diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c -index 794f90b..9c6055e 100644 +index 941d46bf42..752b39568d 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c -@@ -12673,6 +12673,31 @@ static void test_enum_surfaces(void) +@@ -12800,6 +12800,31 @@ static void test_enum_surfaces(void) IDirectDraw2_Release(ddraw); } @@ -104,7 +104,7 @@ index 794f90b..9c6055e 100644 static void test_viewport(void) { static struct -@@ -12977,5 +13002,6 @@ START_TEST(ddraw2) +@@ -13106,5 +13131,6 @@ START_TEST(ddraw2) test_depth_readback(); test_clear(); test_enum_surfaces(); @@ -112,10 +112,10 @@ index 794f90b..9c6055e 100644 test_viewport(); } diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c -index 172d99d..c036a6d 100644 +index e81472d4f2..4e083ec503 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c -@@ -14953,6 +14953,31 @@ static void test_viewport(void) +@@ -15089,6 +15089,31 @@ static void test_viewport(void) DestroyWindow(window); } @@ -147,17 +147,17 @@ index 172d99d..c036a6d 100644 START_TEST(ddraw4) { DDDEVICEIDENTIFIER identifier; -@@ -15078,4 +15103,5 @@ START_TEST(ddraw4) +@@ -15215,4 +15240,5 @@ START_TEST(ddraw4) test_clear(); test_enum_surfaces(); test_viewport(); + test_caps(); } diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c -index 7cbf408..095212b 100644 +index 70318a8492..f3dde436d3 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c -@@ -14417,6 +14417,31 @@ static void test_color_vertex(void) +@@ -15035,6 +15035,31 @@ static void test_color_vertex(void) DestroyWindow(window); } @@ -189,13 +189,13 @@ index 7cbf408..095212b 100644 START_TEST(ddraw7) { DDDEVICEIDENTIFIER2 identifier; -@@ -14552,5 +14577,6 @@ START_TEST(ddraw7) - test_clear(); +@@ -15172,5 +15197,6 @@ START_TEST(ddraw7) test_enum_surfaces(); test_viewport(); + test_device_load(); + test_caps(); test_color_vertex(); } -- -1.9.1 +2.18.0 diff --git a/patches/dwrite-layout-check/0001-dwrite-Avoid-possible-out-of-bounds-cluster-metrics-.patch b/patches/dwrite-layout-check/0001-dwrite-Avoid-possible-out-of-bounds-cluster-metrics-.patch deleted file mode 100644 index 2f754889..00000000 --- a/patches/dwrite-layout-check/0001-dwrite-Avoid-possible-out-of-bounds-cluster-metrics-.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 1b821d7a8398741a164800039535aaad396c299e Mon Sep 17 00:00:00 2001 -From: Nikolay Sivov -Date: Tue, 31 Jul 2018 08:35:01 +0300 -Subject: [PATCH] dwrite: Avoid possible out-of-bounds cluster metrics access. - -Signed-off-by: Nikolay Sivov ---- - dlls/dwrite/layout.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c -index 306c1178d4..903e7e8978 100644 ---- a/dlls/dwrite/layout.c -+++ b/dlls/dwrite/layout.c -@@ -2089,7 +2089,7 @@ static HRESULT layout_compute_effective_runs(struct dwrite_textlayout *layout) - */ - if (layout->len == 0) - hr = layout_set_dummy_line_metrics(layout, 0); -- else if (layout->clustermetrics[layout->cluster_count - 1].isNewline) -+ else if (layout->cluster_count && layout->clustermetrics[layout->cluster_count - 1].isNewline) - hr = layout_set_dummy_line_metrics(layout, layout->len - 1); - if (FAILED(hr)) - return hr; --- -2.18.0 - diff --git a/patches/dwrite-layout-check/definition b/patches/dwrite-layout-check/definition deleted file mode 100644 index 6e5f96bb..00000000 --- a/patches/dwrite-layout-check/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: [45535] - dwrite Correct out of access - diff --git a/patches/kernel32-MoveFile/0004-kernel32-MoveFile-source-source-should-succeed.patch b/patches/kernel32-MoveFile/0004-kernel32-MoveFile-source-source-should-succeed.patch index c0838610..002027af 100644 --- a/patches/kernel32-MoveFile/0004-kernel32-MoveFile-source-source-should-succeed.patch +++ b/patches/kernel32-MoveFile/0004-kernel32-MoveFile-source-source-should-succeed.patch @@ -1,4 +1,4 @@ -From 6cd8711153dfad60cf2816d2f9f07189bd37719b Mon Sep 17 00:00:00 2001 +From de4b7a3055065faed4cdc9ca253248eed5a3a7bb Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 15 Nov 2016 13:02:13 +0800 Subject: [PATCH] kernel32: MoveFile(source, source) should succeed. @@ -11,7 +11,7 @@ Subject: [PATCH] kernel32: MoveFile(source, source) should succeed. 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c -index 232ea7e..ba75b7e 100644 +index bde58e9dc4..c7c5cbd3f7 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -1354,7 +1354,7 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, @@ -21,10 +21,10 @@ index 232ea7e..ba75b7e 100644 - HANDLE source_handle = 0, dest_handle; + HANDLE source_handle = 0, dest_handle = 0; ANSI_STRING source_unix, dest_unix; + DWORD options; - TRACE("(%s,%s,%p,%p,%04x)\n", -@@ -1413,18 +1413,22 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, - FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT ); +@@ -1414,18 +1414,22 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, + status = NtOpenFile( &dest_handle, GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE, &attr, &io, 0, options ); if (status == STATUS_SUCCESS) /* destination exists */ { - NtClose( dest_handle ); @@ -50,7 +50,7 @@ index 232ea7e..ba75b7e 100644 } else if (status != STATUS_OBJECT_NAME_NOT_FOUND) { -@@ -1484,6 +1488,7 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, +@@ -1485,6 +1489,7 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, error: if (source_handle) NtClose( source_handle ); @@ -59,7 +59,7 @@ index 232ea7e..ba75b7e 100644 RtlFreeAnsiString( &dest_unix ); return FALSE; diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c -index e201f62..e152cf1 100644 +index ef4eebc31c..07b3ffb77b 100644 --- a/dlls/kernel32/tests/file.c +++ b/dlls/kernel32/tests/file.c @@ -1886,7 +1886,7 @@ static void test_MoveFileA(void) @@ -72,10 +72,10 @@ index e201f62..e152cf1 100644 ret = MoveFileA(source, dest); ok(!ret && GetLastError() == ERROR_ALREADY_EXISTS, diff --git a/dlls/msvcp120/tests/msvcp120.c b/dlls/msvcp120/tests/msvcp120.c -index 969902d..d6051b0 100644 +index d7b82a3aae..5141622d6a 100644 --- a/dlls/msvcp120/tests/msvcp120.c +++ b/dlls/msvcp120/tests/msvcp120.c -@@ -1402,7 +1402,7 @@ static void test_tr2_sys__Rename(void) +@@ -1524,7 +1524,7 @@ static void test_tr2_sys__Rename(void) CloseHandle(file); ret = p_tr2_sys__Rename("tr2_test_dir\\f1", "tr2_test_dir\\f1"); @@ -85,10 +85,10 @@ index 969902d..d6051b0 100644 errno = 0xdeadbeef; if(tests[i].val == ERROR_SUCCESS) { diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp -index dcc9629..e16f9f3 100644 +index ea4157c09d..298c4e9a9e 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp -@@ -1261,8 +1261,8 @@ file move succeeded +@@ -1295,8 +1295,8 @@ file move succeeded @todo_wine@bar@or_broken@baz read-only files are moveable file moved in subdirectory @@ -100,5 +100,5 @@ index dcc9629..e16f9f3 100644 simple directory move succeeded moving a directory to itself gives error; errlevel 1 -- -1.9.1 +2.18.0 diff --git a/patches/kernel32-MoveFile/0005-kernel32-MoveFile-should-make-sure-that-it-has-the-d.patch b/patches/kernel32-MoveFile/0005-kernel32-MoveFile-should-make-sure-that-it-has-the-d.patch index 875ac530..654b9dc3 100644 --- a/patches/kernel32-MoveFile/0005-kernel32-MoveFile-should-make-sure-that-it-has-the-d.patch +++ b/patches/kernel32-MoveFile/0005-kernel32-MoveFile-should-make-sure-that-it-has-the-d.patch @@ -1,19 +1,19 @@ -From 96e7b57c5591087cfd07b0658ac33a1ec6bde3b5 Mon Sep 17 00:00:00 2001 +From 8031fda3ffc4d2469524f21198ef0aaf9725562e Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 15 Nov 2016 13:32:42 +0800 -Subject: kernel32: MoveFile should make sure that it has the delete access to - the source file. +Subject: [PATCH] kernel32: MoveFile should make sure that it has the delete + access to the source file. --- - dlls/kernel32/path.c | 6 ++++-- + dlls/kernel32/path.c | 4 ++-- dlls/kernel32/tests/file.c | 20 ++++++++------------ - 2 files changed, 12 insertions(+), 14 deletions(-) + 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c -index f554d14..d7fc20e 100644 +index c7c5cbd3f7..5388586094 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c -@@ -1338,7 +1338,8 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, +@@ -1383,7 +1383,8 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, attr.SecurityDescriptor = NULL; attr.SecurityQualityOfService = NULL; @@ -23,21 +23,19 @@ index f554d14..d7fc20e 100644 if (status == STATUS_SUCCESS) status = wine_nt_to_unix_file_name( &nt_name, &source_unix, FILE_OPEN, FALSE ); RtlFreeUnicodeString( &nt_name ); -@@ -1362,7 +1363,8 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, +@@ -1407,7 +1408,6 @@ BOOL WINAPI MoveFileWithProgressW( LPCWSTR source, LPCWSTR dest, SetLastError( ERROR_PATH_NOT_FOUND ); goto error; } -- status = NtOpenFile( &dest_handle, GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE, &attr, &io, 0, -+ status = NtOpenFile( &dest_handle, GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE, &attr, &io, -+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT ); - if (status == STATUS_SUCCESS) /* destination exists */ - { +- + options = FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT; + if (flag & MOVEFILE_WRITE_THROUGH) + options |= FILE_WRITE_THROUGH; diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c -index f0f9232..6fcf019 100644 +index 07b3ffb77b..4729e75728 100644 --- a/dlls/kernel32/tests/file.c +++ b/dlls/kernel32/tests/file.c -@@ -1905,12 +1905,10 @@ static void test_MoveFileA(void) +@@ -1906,12 +1906,10 @@ static void test_MoveFileA(void) ok(hmapfile != NULL, "CreateFileMapping: error %d\n", GetLastError()); ret = MoveFileA(source, dest); @@ -54,7 +52,7 @@ index f0f9232..6fcf019 100644 CloseHandle(hmapfile); CloseHandle(hfile); -@@ -1925,12 +1923,10 @@ static void test_MoveFileA(void) +@@ -1926,12 +1924,10 @@ static void test_MoveFileA(void) ok(hmapfile != NULL, "CreateFileMapping: error %d\n", GetLastError()); ret = MoveFileA(source, dest); @@ -72,5 +70,5 @@ index f0f9232..6fcf019 100644 CloseHandle(hmapfile); CloseHandle(hfile); -- -2.9.0 +2.18.0 diff --git a/patches/ml-array_size/0001-windowscodecs-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0001-windowscodecs-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index f84f8d9d..00000000 --- a/patches/ml-array_size/0001-windowscodecs-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 4944b0ed67011898a68fb244bdd947a15ef1c8ab Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 18 Jul 2018 18:37:52 +0200 -Subject: [PATCH] windowscodecs: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/windowscodecs/bitmap.c | 2 +- - dlls/windowscodecs/bmpencode.c | 2 +- - dlls/windowscodecs/jpegformat.c | 2 +- - dlls/windowscodecs/metadataquery.c | 10 +++++----- - dlls/windowscodecs/pngformat.c | 4 ++-- - dlls/windowscodecs/tiffformat.c | 2 +- - 6 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/dlls/windowscodecs/bitmap.c b/dlls/windowscodecs/bitmap.c -index f8414962f2..116fd3134a 100644 ---- a/dlls/windowscodecs/bitmap.c -+++ b/dlls/windowscodecs/bitmap.c -@@ -555,7 +555,7 @@ static HRESULT WINAPI IMILBitmapImpl_GetPixelFormat(IMILBitmapSource *iface, - - *format = 0; - -- for (i = 0; i < sizeof(pixel_fmt_map)/sizeof(pixel_fmt_map[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(pixel_fmt_map); i++) - { - if (IsEqualGUID(pixel_fmt_map[i].WIC_format, &This->pixelformat)) - { -diff --git a/dlls/windowscodecs/bmpencode.c b/dlls/windowscodecs/bmpencode.c -index 97f30d7197..aa65675a98 100644 ---- a/dlls/windowscodecs/bmpencode.c -+++ b/dlls/windowscodecs/bmpencode.c -@@ -529,7 +529,7 @@ static HRESULT WINAPI BmpEncoder_CreateNewFrame(IWICBitmapEncoder *iface, - - if (ppIEncoderOptions) - { -- hr = CreatePropertyBag2(opts, sizeof(opts)/sizeof(opts[0]), ppIEncoderOptions); -+ hr = CreatePropertyBag2(opts, ARRAY_SIZE(opts), ppIEncoderOptions); - if (FAILED(hr)) return hr; - } - -diff --git a/dlls/windowscodecs/jpegformat.c b/dlls/windowscodecs/jpegformat.c -index f05663f070..d24af6dc9e 100644 ---- a/dlls/windowscodecs/jpegformat.c -+++ b/dlls/windowscodecs/jpegformat.c -@@ -1463,7 +1463,7 @@ static HRESULT WINAPI JpegEncoder_CreateNewFrame(IWICBitmapEncoder *iface, - - if (ppIEncoderOptions) - { -- hr = CreatePropertyBag2(opts, sizeof(opts)/sizeof(opts[0]), ppIEncoderOptions); -+ hr = CreatePropertyBag2(opts, ARRAY_SIZE(opts), ppIEncoderOptions); - if (FAILED(hr)) - { - LeaveCriticalSection(&This->lock); -diff --git a/dlls/windowscodecs/metadataquery.c b/dlls/windowscodecs/metadataquery.c -index e33884881b..2d7c918921 100644 ---- a/dlls/windowscodecs/metadataquery.c -+++ b/dlls/windowscodecs/metadataquery.c -@@ -164,7 +164,7 @@ static VARTYPE map_type(struct string_t *str) - { - UINT i; - -- for (i = 0; i < sizeof(str2vt)/sizeof(str2vt[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(str2vt); i++) - { - if (str2vt[i].len == str->len) - { -@@ -743,7 +743,7 @@ HRESULT WINAPI WICMapGuidToShortName(REFGUID guid, UINT len, WCHAR *name, UINT * - - if (!guid) return E_INVALIDARG; - -- for (i = 0; i < sizeof(guid2name)/sizeof(guid2name[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(guid2name); i++) - { - if (IsEqualGUID(guid, guid2name[i].guid)) - { -@@ -774,7 +774,7 @@ HRESULT WINAPI WICMapShortNameToGuid(PCWSTR name, GUID *guid) - - if (!name || !guid) return E_INVALIDARG; - -- for (i = 0; i < sizeof(guid2name)/sizeof(guid2name[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(guid2name); i++) - { - if (!lstrcmpiW(name, guid2name[i].name)) - { -@@ -884,7 +884,7 @@ static const WCHAR *map_shortname_to_schema(const GUID *format, const WCHAR *nam - !IsEqualGUID(format, &GUID_MetadataFormatXMPStruct)) - return NULL; - -- for (i = 0; i < sizeof(name2schema)/sizeof(name2schema[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(name2schema); i++) - { - if (!lstrcmpW(name2schema[i].name, name)) - return name2schema[i].schema; -@@ -909,7 +909,7 @@ HRESULT WINAPI WICMapSchemaToName(REFGUID format, LPWSTR schema, UINT len, WCHAR - !IsEqualGUID(format, &GUID_MetadataFormatXMPStruct)) - return WINCODEC_ERR_PROPERTYNOTFOUND; - -- for (i = 0; i < sizeof(name2schema)/sizeof(name2schema[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(name2schema); i++) - { - if (!lstrcmpW(name2schema[i].schema, schema)) - { -diff --git a/dlls/windowscodecs/pngformat.c b/dlls/windowscodecs/pngformat.c -index fd0d197bb3..6b13112130 100644 ---- a/dlls/windowscodecs/pngformat.c -+++ b/dlls/windowscodecs/pngformat.c -@@ -1441,7 +1441,7 @@ static HRESULT WINAPI PngFrameEncode_Initialize(IWICBitmapFrameEncode *iface, - - if (pIEncoderOptions) - { -- hr = IPropertyBag2_Read(pIEncoderOptions, sizeof(opts)/sizeof(opts[0]), opts, NULL, opt_values, opt_hres); -+ hr = IPropertyBag2_Read(pIEncoderOptions, ARRAY_SIZE(opts), opts, NULL, opt_values, opt_hres); - - if (FAILED(hr)) - return hr; -@@ -2046,7 +2046,7 @@ static HRESULT WINAPI PngEncoder_CreateNewFrame(IWICBitmapEncoder *iface, - - if (ppIEncoderOptions) - { -- hr = CreatePropertyBag2(opts, sizeof(opts)/sizeof(opts[0]), ppIEncoderOptions); -+ hr = CreatePropertyBag2(opts, ARRAY_SIZE(opts), ppIEncoderOptions); - if (FAILED(hr)) - { - LeaveCriticalSection(&This->lock); -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index 2b2f84f859..966ab3eb4b 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -1956,7 +1956,7 @@ static HRESULT WINAPI TiffEncoder_CreateNewFrame(IWICBitmapEncoder *iface, - - if (ppIEncoderOptions && SUCCEEDED(hr)) - { -- hr = CreatePropertyBag2(opts, sizeof(opts)/sizeof(opts[0]), ppIEncoderOptions); -+ hr = CreatePropertyBag2(opts, ARRAY_SIZE(opts), ppIEncoderOptions); - if (SUCCEEDED(hr)) - { - VARIANT v; --- -2.14.4 - diff --git a/patches/ml-array_size/0003-localspl-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0003-localspl-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 56e58cef..00000000 --- a/patches/ml-array_size/0003-localspl-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,147 +0,0 @@ -From a786168729fc3af234574a6f2a9baa7ea562a9ee Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 14:20:24 +0200 -Subject: [PATCH] localspl: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/localspl/localmon.c | 10 +++++----- - dlls/localspl/provider.c | 20 ++++++++++---------- - 2 files changed, 15 insertions(+), 15 deletions(-) - -diff --git a/dlls/localspl/localmon.c b/dlls/localspl/localmon.c -index 4be1ad6101..8553aa2297 100644 ---- a/dlls/localspl/localmon.c -+++ b/dlls/localspl/localmon.c -@@ -279,10 +279,10 @@ static DWORD get_type_from_name(LPCWSTR name) - { - HANDLE hfile; - -- if (!strncmpW(name, portname_LPT, sizeof(portname_LPT) / sizeof(WCHAR) -1)) -+ if (!strncmpW(name, portname_LPT, ARRAY_SIZE(portname_LPT) -1)) - return PORT_IS_LPT; - -- if (!strncmpW(name, portname_COM, sizeof(portname_COM) / sizeof(WCHAR) -1)) -+ if (!strncmpW(name, portname_COM, ARRAY_SIZE(portname_COM) -1)) - return PORT_IS_COM; - - if (!strcmpW(name, portname_FILE)) -@@ -294,10 +294,10 @@ static DWORD get_type_from_name(LPCWSTR name) - if (name[0] == '|') - return PORT_IS_PIPE; - -- if (!strncmpW(name, portname_CUPS, sizeof(portname_CUPS) / sizeof(WCHAR) -1)) -+ if (!strncmpW(name, portname_CUPS, ARRAY_SIZE(portname_CUPS) -1)) - return PORT_IS_CUPS; - -- if (!strncmpW(name, portname_LPR, sizeof(portname_LPR) / sizeof(WCHAR) -1)) -+ if (!strncmpW(name, portname_LPR, ARRAY_SIZE(portname_LPR) -1)) - return PORT_IS_LPR; - - /* Must be a file or a directory. Does the file exist ? */ -@@ -704,7 +704,7 @@ static DWORD WINAPI localmon_XcvDataPort(HANDLE hXcv, LPCWSTR pszDataName, PBYTE - { - ptr = ((xcv_t *)hXcv)->nameW; - } -- lstrcpynW(buffer, ptr, sizeof(buffer)/sizeof(WCHAR)); -+ lstrcpynW(buffer, ptr, ARRAY_SIZE(buffer)); - if (buffer[0]) buffer[lstrlenW(buffer)-1] = '\0'; /* remove the ':' */ - res = SetDefaultCommConfigW(buffer, (LPCOMMCONFIG) pInputData, cbInputData); - TRACE("got %u with %u\n", res, GetLastError() ); -diff --git a/dlls/localspl/provider.c b/dlls/localspl/provider.c -index 3538947281..c17d982fa7 100644 ---- a/dlls/localspl/provider.c -+++ b/dlls/localspl/provider.c -@@ -275,7 +275,7 @@ static LONG copy_servername_from_name(LPCWSTR name, LPWSTR target) - target[serverlen] = '\0'; - } - -- len = sizeof(buffer) / sizeof(buffer[0]); -+ len = ARRAY_SIZE(buffer); - if (GetComputerNameW(buffer, &len)) { - if ((serverlen == len) && (strncmpiW(server, buffer, len) == 0)) { - /* The requested Servername is our computername */ -@@ -693,7 +693,7 @@ static const printenv_t * validate_envW(LPCWSTR env) - TRACE("(%s)\n", debugstr_w(env)); - if (env && env[0]) - { -- for (i = 0; i < sizeof(all_printenv)/sizeof(all_printenv[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(all_printenv); i++) - { - if (lstrcmpiW(env, all_printenv[i]->envname) == 0) - { -@@ -749,7 +749,7 @@ static DWORD get_local_monitors(DWORD level, LPBYTE pMonitors, DWORD cbBuf, LPDW - ptr = (LPWSTR) &pMonitors[len]; - - numentries = 0; -- len = sizeof(buffer)/sizeof(buffer[0]); -+ len = ARRAY_SIZE(buffer); - buffer[0] = '\0'; - - /* Windows creates the "Monitors"-Key on reboot / start "spooler" */ -@@ -802,7 +802,7 @@ static DWORD get_local_monitors(DWORD level, LPBYTE pMonitors, DWORD cbBuf, LPDW - } - } - index++; -- len = sizeof(buffer)/sizeof(buffer[0]); -+ len = ARRAY_SIZE(buffer); - buffer[0] = '\0'; - } - RegCloseKey(hroot); -@@ -838,7 +838,7 @@ static DWORD get_local_printprocessors(LPWSTR regpathW, LPBYTE pPPInfo, DWORD cb - ptr = (LPWSTR) &pPPInfo[len]; - - numentries = 0; -- len = sizeof(buffer)/sizeof(buffer[0]); -+ len = ARRAY_SIZE(buffer); - buffer[0] = '\0'; - - if (RegCreateKeyW(HKEY_LOCAL_MACHINE, regpathW, &hroot) == ERROR_SUCCESS) { -@@ -852,7 +852,7 @@ static DWORD get_local_printprocessors(LPWSTR regpathW, LPBYTE pPPInfo, DWORD cb - TRACE("%p: writing PRINTPROCESSOR_INFO_1W #%d\n", ppi, numentries); - ppi->pName = ptr; - lstrcpyW(ptr, winprintW); /* Name of the Print Processor */ -- ptr += sizeof(winprintW) / sizeof(WCHAR); -+ ptr += ARRAY_SIZE(winprintW); - } - - /* Scan all Printprocessor Keys */ -@@ -888,7 +888,7 @@ static DWORD get_local_printprocessors(LPWSTR regpathW, LPBYTE pPPInfo, DWORD cb - } - } - index++; -- len = sizeof(buffer)/sizeof(buffer[0]); -+ len = ARRAY_SIZE(buffer); - buffer[0] = '\0'; - } - RegCloseKey(hroot); -@@ -1196,7 +1196,7 @@ static HANDLE printer_alloc_handle(LPCWSTR name, LPPRINTER_DEFAULTSW pDefault) - printer = NULL; - } - if (printername) { -- len = sizeof(XcvMonitorW)/sizeof(WCHAR) - 1; -+ len = ARRAY_SIZE(XcvMonitorW) - 1; - if (strncmpW(printername, XcvMonitorW, len) == 0) { - /* OpenPrinter(",XcvMonitor ", ...) detected */ - TRACE(",XcvMonitor: %s\n", debugstr_w(&printername[len])); -@@ -1210,7 +1210,7 @@ static HANDLE printer_alloc_handle(LPCWSTR name, LPPRINTER_DEFAULTSW pDefault) - } - else - { -- len = sizeof(XcvPortW)/sizeof(WCHAR) - 1; -+ len = ARRAY_SIZE(XcvPortW) - 1; - if (strncmpW( printername, XcvPortW, len) == 0) { - /* OpenPrinter(",XcvPort ", ...) detected */ - TRACE(",XcvPort: %s\n", debugstr_w(&printername[len])); -@@ -1303,7 +1303,7 @@ static BOOL myAddPrinterDriverEx(DWORD level, LPBYTE pDriverInfo, DWORD dwFileCo - DRIVER_INFO, that the caller supplied */ - - ZeroMemory(&di, sizeof(di)); -- if (pDriverInfo && (level < (sizeof(di_sizeof) / sizeof(di_sizeof[0])))) { -+ if (pDriverInfo && (level < ARRAY_SIZE(di_sizeof))) { - memcpy(&di, pDriverInfo, di_sizeof[level]); - } - --- -2.14.4 - diff --git a/patches/ml-array_size/0004-mmdevapi-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0004-mmdevapi-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 6314980b..00000000 --- a/patches/ml-array_size/0004-mmdevapi-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,76 +0,0 @@ -From cc5f7e223678e31439d4194fd62d6448a06570f3 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 18:13:30 +0200 -Subject: [PATCH] mmdevapi: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/mmdevapi/devenum.c | 10 +++++----- - dlls/mmdevapi/main.c | 2 +- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/dlls/mmdevapi/devenum.c b/dlls/mmdevapi/devenum.c -index b189e8e060..685ec27de6 100644 ---- a/dlls/mmdevapi/devenum.c -+++ b/dlls/mmdevapi/devenum.c -@@ -338,7 +338,7 @@ static MMDevice *MMDevice_Create(WCHAR *name, GUID *id, EDataFlow flow, DWORD st - cur->state = state; - cur->devguid = *id; - -- StringFromGUID2(&cur->devguid, guidstr, sizeof(guidstr)/sizeof(*guidstr)); -+ StringFromGUID2(&cur->devguid, guidstr, ARRAY_SIZE(guidstr)); - - if (flow == eRender) - root = key_render; -@@ -429,7 +429,7 @@ static HRESULT load_devices_from_reg(void) - DWORD len; - PROPVARIANT pv = { VT_EMPTY }; - -- len = sizeof(guidvalue)/sizeof(guidvalue[0]); -+ len = ARRAY_SIZE(guidvalue); - ret = RegEnumKeyExW(cur, i++, guidvalue, &len, NULL, NULL, NULL, NULL); - if (ret == ERROR_NO_MORE_ITEMS) - { -@@ -1395,7 +1395,7 @@ static HRESULT WINAPI MMDevPropStore_GetCount(IPropertyStore *iface, DWORD *npro - return hr; - *nprops = 0; - do { -- DWORD len = sizeof(buffer)/sizeof(*buffer); -+ DWORD len = ARRAY_SIZE(buffer); - if (RegEnumValueW(propkey, i, buffer, &len, NULL, NULL, NULL, NULL) != ERROR_SUCCESS) - break; - i++; -@@ -1410,7 +1410,7 @@ static HRESULT WINAPI MMDevPropStore_GetAt(IPropertyStore *iface, DWORD prop, PR - { - MMDevPropStore *This = impl_from_IPropertyStore(iface); - WCHAR buffer[50]; -- DWORD len = sizeof(buffer)/sizeof(*buffer); -+ DWORD len = ARRAY_SIZE(buffer); - HRESULT hr; - HKEY propkey; - -@@ -1530,7 +1530,7 @@ static HRESULT WINAPI PB_Read(IPropertyBag *iface, LPCOLESTR name, VARIANT *var, - if (!lstrcmpW(name, dsguid)) - { - WCHAR guidstr[39]; -- StringFromGUID2(&This->devguid, guidstr,sizeof(guidstr)/sizeof(*guidstr)); -+ StringFromGUID2(&This->devguid, guidstr,ARRAY_SIZE(guidstr)); - var->n1.n2.vt = VT_BSTR; - var->n1.n2.n3.bstrVal = SysAllocString(guidstr); - return S_OK; -diff --git a/dlls/mmdevapi/main.c b/dlls/mmdevapi/main.c -index 2b0a6f946b..8886975c96 100644 ---- a/dlls/mmdevapi/main.c -+++ b/dlls/mmdevapi/main.c -@@ -295,7 +295,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) - return E_NOINTERFACE; - } - -- for (i = 0; i < sizeof(MMDEVAPI_CF)/sizeof(MMDEVAPI_CF[0]); ++i) -+ for (i = 0; i < ARRAY_SIZE(MMDEVAPI_CF); ++i) - { - if (IsEqualGUID(rclsid, MMDEVAPI_CF[i].rclsid)) { - IClassFactory_AddRef(&MMDEVAPI_CF[i].IClassFactory_iface); --- -2.14.4 - diff --git a/patches/ml-array_size/0005-mapi32-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0005-mapi32-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 7f8c75ad..00000000 --- a/patches/ml-array_size/0005-mapi32-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 5499bc6ae7bbc3b6924ec2a692ab0821d6c7113d Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 18:16:59 +0200 -Subject: [PATCH] mapi32: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/mapi32/sendmail.c | 8 ++++---- - dlls/mapi32/util.c | 2 +- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/dlls/mapi32/sendmail.c b/dlls/mapi32/sendmail.c -index 9ebb220c03..407dd13041 100644 ---- a/dlls/mapi32/sendmail.c -+++ b/dlls/mapi32/sendmail.c -@@ -542,8 +542,8 @@ ULONG WINAPI MAPISendMail( LHANDLE session, ULONG_PTR uiparam, - } - - /* Display an error message since we apparently have no mail clients */ -- LoadStringW(hInstMAPI32, IDS_NO_MAPI_CLIENT, error_msg, sizeof(error_msg) / sizeof(WCHAR)); -- LoadStringW(hInstMAPI32, IDS_SEND_MAIL, msg_title, sizeof(msg_title) / sizeof(WCHAR)); -+ LoadStringW(hInstMAPI32, IDS_NO_MAPI_CLIENT, error_msg, ARRAY_SIZE(error_msg)); -+ LoadStringW(hInstMAPI32, IDS_SEND_MAIL, msg_title, ARRAY_SIZE(msg_title)); - - MessageBoxW((HWND) uiparam, error_msg, msg_title, MB_ICONEXCLAMATION); - -@@ -701,8 +701,8 @@ ULONG WINAPI MAPISendMailW(LHANDLE session, ULONG_PTR uiparam, - } - - /* Display an error message since we apparently have no mail clients */ -- LoadStringW(hInstMAPI32, IDS_NO_MAPI_CLIENT, error_msg, sizeof(error_msg) / sizeof(WCHAR)); -- LoadStringW(hInstMAPI32, IDS_SEND_MAIL, msg_title, sizeof(msg_title) / sizeof(WCHAR)); -+ LoadStringW(hInstMAPI32, IDS_NO_MAPI_CLIENT, error_msg, ARRAY_SIZE(error_msg)); -+ LoadStringW(hInstMAPI32, IDS_SEND_MAIL, msg_title, ARRAY_SIZE(msg_title)); - - MessageBoxW((HWND) uiparam, error_msg, msg_title, MB_ICONEXCLAMATION); - -diff --git a/dlls/mapi32/util.c b/dlls/mapi32/util.c -index 13e4affc39..9c3b01944a 100644 ---- a/dlls/mapi32/util.c -+++ b/dlls/mapi32/util.c -@@ -903,7 +903,7 @@ BOOL WINAPI FGetComponentPath(LPCSTR component, LPCSTR qualifier, LPSTR dll_path - char lcid_ver[20]; - UINT i; - -- for (i = 0; i < sizeof(fmt)/sizeof(fmt[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(fmt); i++) - { - /* FIXME: what's the correct behaviour here? */ - if (!qualifier || qualifier == lcid_ver) --- -2.14.4 - diff --git a/patches/ml-array_size/0006-krnl386.exe16-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0006-krnl386.exe16-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 32ed4318..00000000 --- a/patches/ml-array_size/0006-krnl386.exe16-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,126 +0,0 @@ -From d66b0e6cc5066669c5e856d4627af51f7004fead Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 18:21:27 +0200 -Subject: [PATCH] krnl386.exe16: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/krnl386.exe16/int21.c | 6 +++--- - dlls/krnl386.exe16/interrupts.c | 4 ++-- - dlls/krnl386.exe16/relay.c | 4 ++-- - dlls/krnl386.exe16/snoop.c | 4 ++-- - dlls/krnl386.exe16/vxd.c | 6 +++--- - 5 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/dlls/krnl386.exe16/int21.c b/dlls/krnl386.exe16/int21.c -index f32b1a767c..f5b257b6d7 100644 ---- a/dlls/krnl386.exe16/int21.c -+++ b/dlls/krnl386.exe16/int21.c -@@ -814,8 +814,8 @@ static HANDLE INT21_CreateMagicDeviceHandle( LPCWSTR name ) - return 0; - } - memcpy( nameW.Buffer, prefixW, sizeof(prefixW) ); -- MultiByteToWideChar( CP_UNIXCP, 0, dir, -1, nameW.Buffer + sizeof(prefixW)/sizeof(WCHAR), len ); -- len += sizeof(prefixW) / sizeof(WCHAR); -+ MultiByteToWideChar( CP_UNIXCP, 0, dir, -1, nameW.Buffer + ARRAY_SIZE(prefixW), len ); -+ len += ARRAY_SIZE(prefixW); - nameW.Buffer[len-1] = '/'; - strcpyW( nameW.Buffer + len, name ); - -@@ -3264,7 +3264,7 @@ static BOOL INT21_NetworkFunc (CONTEXT *context) - case 0x00: /* Get machine name. */ - { - WCHAR dstW[MAX_COMPUTERNAME_LENGTH + 1]; -- DWORD s = sizeof(dstW) / sizeof(WCHAR); -+ DWORD s = ARRAY_SIZE(dstW); - int len; - - char *dst = CTX_SEG_OFF_TO_LIN (context,context->SegDs,context->Edx); -diff --git a/dlls/krnl386.exe16/interrupts.c b/dlls/krnl386.exe16/interrupts.c -index e1b01b7b3d..c4448c6d00 100644 ---- a/dlls/krnl386.exe16/interrupts.c -+++ b/dlls/krnl386.exe16/interrupts.c -@@ -103,7 +103,7 @@ static void WINAPI DOSVM_DefaultHandler( CONTEXT *context ) - */ - static INTPROC DOSVM_GetBuiltinHandler( BYTE intnum ) - { -- if (intnum < sizeof(DOSVM_VectorsBuiltin)/sizeof(INTPROC)) { -+ if (intnum < ARRAY_SIZE(DOSVM_VectorsBuiltin)) { - INTPROC proc = DOSVM_VectorsBuiltin[intnum]; - if (proc) - return proc; -@@ -274,7 +274,7 @@ BOOL DOSVM_EmulateInterruptPM( CONTEXT *context, BYTE intnum ) - else if (wine_ldt_is_system(context->SegCs)) - { - INTPROC proc; -- if (intnum >= sizeof(DOSVM_VectorsBuiltin)/sizeof(INTPROC)) return FALSE; -+ if (intnum >= ARRAY_SIZE(DOSVM_VectorsBuiltin)) return FALSE; - if (!(proc = DOSVM_VectorsBuiltin[intnum])) return FALSE; - proc( context ); - } -diff --git a/dlls/krnl386.exe16/relay.c b/dlls/krnl386.exe16/relay.c -index f1fbc57a0f..264ba2c589 100644 ---- a/dlls/krnl386.exe16/relay.c -+++ b/dlls/krnl386.exe16/relay.c -@@ -345,7 +345,7 @@ static int relay_call_from_16_no_debug( void *entry_point, unsigned char *args16 - int args32[20]; - - /* look for the ret instruction */ -- for (j = 0; j < sizeof(call->ret)/sizeof(call->ret[0]); j++) -+ for (j = 0; j < ARRAY_SIZE(call->ret); j++) - if (call->ret[j] == 0xca66 || call->ret[j] == 0xcb66) break; - - if (call->ret[j] == 0xcb66) /* cdecl */ -@@ -449,7 +449,7 @@ int relay_call_from_16( void *entry_point, unsigned char *args16, CONTEXT *conte - TRACE( "\1Call %s.%d: %s(", module, ordinal, func ); - - /* look for the ret instruction */ -- for (j = 0; j < sizeof(call->ret)/sizeof(call->ret[0]); j++) -+ for (j = 0; j < ARRAY_SIZE(call->ret); j++) - if (call->ret[j] == 0xca66 || call->ret[j] == 0xcb66) break; - - if (call->ret[j] == 0xcb66) /* cdecl */ -diff --git a/dlls/krnl386.exe16/snoop.c b/dlls/krnl386.exe16/snoop.c -index 95a5154a4b..4496080dad 100644 ---- a/dlls/krnl386.exe16/snoop.c -+++ b/dlls/krnl386.exe16/snoop.c -@@ -262,10 +262,10 @@ static void WINAPI SNOOP16_Entry(FARPROC proc, LPBYTE args, CONTEXT *context) { - return; /* oops */ - } - while (*rets) { -- for (i=0;ientry)/sizeof((*rets)->entry[0]);i++) -+ for (i=0;ientry);i++) - if (!(*rets)->entry[i].origreturn) - break; -- if (i!=sizeof((*rets)->entry)/sizeof((*rets)->entry[0])) -+ if (i!=ARRAY_SIZE((*rets)->entry)) - break; - rets = &((*rets)->next); - } -diff --git a/dlls/krnl386.exe16/vxd.c b/dlls/krnl386.exe16/vxd.c -index dc14600f5d..e103b96bb9 100644 ---- a/dlls/krnl386.exe16/vxd.c -+++ b/dlls/krnl386.exe16/vxd.c -@@ -129,8 +129,8 @@ static HANDLE open_vxd_handle( LPCWSTR name ) - return 0; - } - memcpy( nameW.Buffer, prefixW, sizeof(prefixW) ); -- MultiByteToWideChar( CP_UNIXCP, 0, dir, -1, nameW.Buffer + sizeof(prefixW)/sizeof(WCHAR), len ); -- len += sizeof(prefixW) / sizeof(WCHAR); -+ MultiByteToWideChar( CP_UNIXCP, 0, dir, -1, nameW.Buffer + ARRAY_SIZE(prefixW), len ); -+ len += ARRAY_SIZE(prefixW); - nameW.Buffer[len-1] = '/'; - strcpyW( nameW.Buffer + len, name ); - -@@ -201,7 +201,7 @@ HANDLE __wine_vxd_open( LPCWSTR filenameW, DWORD access, SECURITY_ATTRIBUTES *sa - - /* normalize the filename */ - -- if (strlenW( filenameW ) >= sizeof(name)/sizeof(WCHAR) - 4 || -+ if (strlenW( filenameW ) >= ARRAY_SIZE(name) - 4 || - strchrW( filenameW, '/' ) || strchrW( filenameW, '\\' )) - { - SetLastError( ERROR_FILE_NOT_FOUND ); --- -2.14.4 - diff --git a/patches/ml-array_size/0007-inetcpl.cpl-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0007-inetcpl.cpl-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index d4b4b28c..00000000 --- a/patches/ml-array_size/0007-inetcpl.cpl-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,101 +0,0 @@ -From a2c03d68887fc2bd2eb4cde9bb4ea7aa133af5ee Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 18:24:53 +0200 -Subject: [PATCH] inetcpl.cpl: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/inetcpl.cpl/connections.c | 9 ++++----- - dlls/inetcpl.cpl/general.c | 4 ++-- - dlls/inetcpl.cpl/security.c | 10 +++++----- - 3 files changed, 11 insertions(+), 12 deletions(-) - -diff --git a/dlls/inetcpl.cpl/connections.c b/dlls/inetcpl.cpl/connections.c -index 707fb3c4f7..648cd3d002 100644 ---- a/dlls/inetcpl.cpl/connections.c -+++ b/dlls/inetcpl.cpl/connections.c -@@ -273,13 +273,12 @@ static INT_PTR connections_on_notify(HWND hwnd, WPARAM wparam, LPARAM lparam) - } - TRACE("ProxyEnable set to %x\n", use_proxy); - -- proxy_len = GetDlgItemTextW(hwnd, IDC_EDIT_PROXY_SERVER, -- proxy, sizeof(proxy)/sizeof(proxy[0])); -+ proxy_len = GetDlgItemTextW(hwnd, IDC_EDIT_PROXY_SERVER, proxy, ARRAY_SIZE(proxy)); - if(proxy_len) - { - proxy[proxy_len++] = ':'; -- port_len = GetDlgItemTextW(hwnd, IDC_EDIT_PROXY_PORT, -- proxy+proxy_len, sizeof(proxy)/sizeof(proxy[0])-proxy_len); -+ port_len = GetDlgItemTextW(hwnd, IDC_EDIT_PROXY_PORT, proxy+proxy_len, -+ ARRAY_SIZE(proxy)-proxy_len); - if(!port_len) - { - proxy[proxy_len++] = '8'; -@@ -305,7 +304,7 @@ static INT_PTR connections_on_notify(HWND hwnd, WPARAM wparam, LPARAM lparam) - - use_pac_script = IsDlgButtonChecked(hwnd, IDC_USE_PAC_SCRIPT); - pac_script_len = GetDlgItemTextW(hwnd, IDC_EDIT_PAC_SCRIPT, -- pac_script, sizeof(pac_script)/sizeof(pac_script[0])); -+ pac_script, ARRAY_SIZE(pac_script)); - if(!pac_script_len) use_pac_script = FALSE; - if(use_pac_script) - { -diff --git a/dlls/inetcpl.cpl/general.c b/dlls/inetcpl.cpl/general.c -index e0f473caf7..b9fbf1eb0a 100644 ---- a/dlls/inetcpl.cpl/general.c -+++ b/dlls/inetcpl.cpl/general.c -@@ -263,10 +263,10 @@ static INT_PTR general_on_notify(HWND hwnd, WPARAM wparam, LPARAM lparam) - if (psn->hdr.code == PSN_APPLY) - { - *buffer = 0; -- GetDlgItemTextW(hwnd, IDC_HOME_EDIT, buffer, sizeof(buffer)/sizeof(WCHAR)); -+ GetDlgItemTextW(hwnd, IDC_HOME_EDIT, buffer, ARRAY_SIZE(buffer)); - TRACE("EDITTEXT has %s\n", debugstr_w(buffer)); - -- res = parse_url_from_outside(buffer, parsed, sizeof(parsed)/sizeof(WCHAR)); -+ res = parse_url_from_outside(buffer, parsed, ARRAY_SIZE(parsed)); - TRACE("got %d with %s\n", res, debugstr_w(parsed)); - - if (res) -diff --git a/dlls/inetcpl.cpl/security.c b/dlls/inetcpl.cpl/security.c -index 543ada433d..e11caf1fc3 100644 ---- a/dlls/inetcpl.cpl/security.c -+++ b/dlls/inetcpl.cpl/security.c -@@ -73,7 +73,7 @@ static DWORD url_templates[] = {URLTEMPLATE_CUSTOM, - static DWORD index_from_urltemplate(URLTEMPLATE value) - { - -- DWORD index = sizeof(url_templates) / sizeof(url_templates[0]); -+ DWORD index = ARRAY_SIZE(url_templates); - - while((index > 0) && (url_templates[index-1] != value)) - index--; -@@ -105,12 +105,12 @@ static void update_security_level(secdlg_data *sd, DWORD lv_index, DWORD tb_inde - current_index = (tb_index > 0) ? tb_index : index_from_urltemplate(sd->levels[lv_index]); - - name[0] = 0; -- LoadStringW(hcpl, IDS_SEC_LEVEL0 + current_index, name, sizeof(name)/sizeof(name[0])); -+ LoadStringW(hcpl, IDS_SEC_LEVEL0 + current_index, name, ARRAY_SIZE(name)); - TRACE("new level #%d: %s\n", current_index, debugstr_w(name)); - SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_LEVEL), name); - - name[0] = 0; -- LoadStringW(hcpl, IDS_SEC_LEVEL0_INFO + (current_index * 0x10), name, sizeof(name)/sizeof(name[0])); -+ LoadStringW(hcpl, IDS_SEC_LEVEL0_INFO + (current_index * 0x10), name, ARRAY_SIZE(name)); - TRACE("new level info: %s\n", debugstr_w(name)); - SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_LEVEL_INFO), name); - -@@ -134,8 +134,8 @@ static void update_zone_info(secdlg_data *sd, DWORD lv_index) - - SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_ZONE_INFO), za->szDescription); - -- len = LoadStringW(hcpl, IDS_SEC_SETTINGS, name, sizeof(name)/sizeof(*name)); -- lstrcpynW(&name[len], za->szDisplayName, sizeof(name)/sizeof(*name) - len - 1); -+ len = LoadStringW(hcpl, IDS_SEC_SETTINGS, name, ARRAY_SIZE(name)); -+ lstrcpynW(&name[len], za->szDisplayName, ARRAY_SIZE(name) - len - 1); - - TRACE("new title: %s\n", debugstr_w(name)); - SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_GROUP), name); --- -2.14.4 - diff --git a/patches/ml-array_size/0008-hhctrl.ocx-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0008-hhctrl.ocx-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 5a242424..00000000 --- a/patches/ml-array_size/0008-hhctrl.ocx-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 00e499b6eef608c2b3eceec3b51db412637cd803 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:15:42 +0200 -Subject: [PATCH] hhctrl.ocx: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/hhctrl.ocx/chm.c | 12 ++++++------ - dlls/hhctrl.ocx/help.c | 6 +++--- - 2 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/dlls/hhctrl.ocx/chm.c b/dlls/hhctrl.ocx/chm.c -index 8cf2539d71..01403368b0 100644 ---- a/dlls/hhctrl.ocx/chm.c -+++ b/dlls/hhctrl.ocx/chm.c -@@ -483,12 +483,12 @@ LPCWSTR skip_schema(LPCWSTR url) - static const WCHAR msits_schema[] = {'m','s','-','i','t','s',':'}; - static const WCHAR mk_schema[] = {'m','k',':','@','M','S','I','T','S','t','o','r','e',':'}; - -- if(!strncmpiW(its_schema, url, sizeof(its_schema)/sizeof(WCHAR))) -- return url+sizeof(its_schema)/sizeof(WCHAR); -- if(!strncmpiW(msits_schema, url, sizeof(msits_schema)/sizeof(WCHAR))) -- return url+sizeof(msits_schema)/sizeof(WCHAR); -- if(!strncmpiW(mk_schema, url, sizeof(mk_schema)/sizeof(WCHAR))) -- return url+sizeof(mk_schema)/sizeof(WCHAR); -+ if(!strncmpiW(its_schema, url, ARRAY_SIZE(its_schema))) -+ return url + ARRAY_SIZE(its_schema); -+ if(!strncmpiW(msits_schema, url, ARRAY_SIZE(msits_schema))) -+ return url + ARRAY_SIZE(msits_schema); -+ if(!strncmpiW(mk_schema, url, ARRAY_SIZE(mk_schema))) -+ return url + ARRAY_SIZE(mk_schema); - - return url; - } -diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c -index c7a2a7a9e2..75b28f2f57 100644 ---- a/dlls/hhctrl.ocx/help.c -+++ b/dlls/hhctrl.ocx/help.c -@@ -241,7 +241,7 @@ static BOOL AppendFullPathURL(LPCWSTR file, LPWSTR buf, LPCWSTR index) - - TRACE("%s %p %s\n", debugstr_w(file), buf, debugstr_w(index)); - -- if(!GetFullPathNameW(file, sizeof(full_path)/sizeof(full_path[0]), full_path, NULL)) { -+ if (!GetFullPathNameW(file, ARRAY_SIZE(full_path), full_path, NULL)) { - WARN("GetFullPathName failed: %u\n", GetLastError()); - return FALSE; - } -@@ -1830,7 +1830,7 @@ HHInfo *CreateHelpViewer(HHInfo *info, LPCWSTR filename, HWND caller) - /* Set the invalid tab ID (-1) as the default value for all - * of the tabs, this matches a failed TCM_INSERTITEM call. - */ -- for(i=0;itabs)/sizeof(HHTab);i++) -+ for (i = 0; i < ARRAY_SIZE(info->tabs); i++) - info->tabs[i].id = -1; - - OleInitialize(NULL); -@@ -1867,7 +1867,7 @@ HHInfo *CreateHelpViewer(HHInfo *info, LPCWSTR filename, HWND caller) - */ - static char find_html_symbol(const char *entity, int entity_len) - { -- int max = sizeof(html_encoded_symbols)/sizeof(html_encoded_symbols[0])-1; -+ int max = ARRAY_SIZE(html_encoded_symbols)-1; - int min = 0, dir; - - while(min <= max) --- -2.14.4 - diff --git a/patches/ml-array_size/0009-dpnet-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0009-dpnet-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index ea9217d3..00000000 --- a/patches/ml-array_size/0009-dpnet-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e8731fe8f894a10182df1f2f699a0f9f107062bb Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:18:06 +0200 -Subject: [PATCH] dpnet: Use the ARRAY_SIZE() macro - -Signed-off-by: Henri Verbeet -Signed-off-by: Michael Stefaniuc ---- - dlls/dpnet/address.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/dpnet/address.c b/dlls/dpnet/address.c -index 4d55caa47e..0bfa2bca03 100644 ---- a/dlls/dpnet/address.c -+++ b/dlls/dpnet/address.c -@@ -150,7 +150,7 @@ static const char *debugstr_SP(const GUID *id) { - - if (!id) return "(null)"; - -- for (i = 0; i < sizeof(guids)/sizeof(guids[0]); i++) { -+ for (i = 0; i < ARRAY_SIZE(guids); i++) { - if (IsEqualGUID(id, guids[i].guid)) - return guids[i].name; - } --- -2.14.4 - diff --git a/patches/ml-array_size/0010-dx8vb-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0010-dx8vb-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index c120f504..00000000 --- a/patches/ml-array_size/0010-dx8vb-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,34 +0,0 @@ -From d4c354720d4534593b3a49ece07b40ea4be4b92d Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:19:12 +0200 -Subject: [PATCH] dx8vb: Use the ARRAY_SIZE() macro - -Signed-off-by: Henri Verbeet -Signed-off-by: Michael Stefaniuc ---- - dlls/dx8vb/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/dx8vb/main.c b/dlls/dx8vb/main.c -index aa6b9436ce..a1ee7c918e 100644 ---- a/dlls/dx8vb/main.c -+++ b/dlls/dx8vb/main.c -@@ -157,13 +157,13 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv) - && !IsEqualGUID( &IID_IUnknown, riid)) - return E_NOINTERFACE; - -- for (i = 0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(object_creation); i++) - { - if (IsEqualGUID(object_creation[i].clsid, rclsid)) - break; - } - -- if (i == sizeof(object_creation)/sizeof(object_creation[0])) -+ if (i == ARRAY_SIZE(object_creation)) - { - FIXME("%s: no class found.\n", debugstr_guid(rclsid)); - return CLASS_E_CLASSNOTAVAILABLE; --- -2.14.4 - diff --git a/patches/ml-array_size/0011-fusion-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0011-fusion-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index cf2d9c92..00000000 --- a/patches/ml-array_size/0011-fusion-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 7e95288b2d586f41e746cf930a1a75979591399a Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:22:05 +0200 -Subject: [PATCH] fusion: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/fusion/asmcache.c | 8 ++++---- - dlls/fusion/fusion.c | 10 +++++----- - 2 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/dlls/fusion/asmcache.c b/dlls/fusion/asmcache.c -index 668aa8777e..deca5f4c37 100644 ---- a/dlls/fusion/asmcache.c -+++ b/dlls/fusion/asmcache.c -@@ -117,14 +117,14 @@ static BOOL get_assembly_directory(LPWSTR dir, DWORD size, const char *version, - if (!strcmp(version, "v4.0.30319")) - { - strcpyW(dir + len, dotnet); -- len += sizeof(dotnet)/sizeof(WCHAR) -1; -+ len += ARRAY_SIZE(dotnet) - 1; - strcpyW(dir + len, gac + 1); -- len += sizeof(gac)/sizeof(WCHAR) - 2; -+ len += ARRAY_SIZE(gac) - 2; - } - else - { - strcpyW(dir + len, gac); -- len += sizeof(gac)/sizeof(WCHAR) - 1; -+ len += ARRAY_SIZE(gac) - 1; - } - switch (architecture) - { -@@ -433,7 +433,7 @@ static HRESULT WINAPI IAssemblyCacheImpl_InstallAssembly(IAssemblyCache *iface, - WCHAR asmdir[MAX_PATH], *p, **external_files = NULL, *dst_dir = NULL; - PEKIND architecture; - char *clr_version; -- DWORD i, count = 0, src_len, dst_len = sizeof(format_v40)/sizeof(format_v40[0]); -+ DWORD i, count = 0, src_len, dst_len = ARRAY_SIZE(format_v40); - HRESULT hr; - - TRACE("(%p, %d, %s, %p)\n", iface, dwFlags, -diff --git a/dlls/fusion/fusion.c b/dlls/fusion/fusion.c -index b038b38092..a57d7e067c 100644 ---- a/dlls/fusion/fusion.c -+++ b/dlls/fusion/fusion.c -@@ -144,9 +144,9 @@ HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS dwCacheFlags, LPWSTR pwzCachePath, - case ASM_CACHE_GAC: - { - strcpyW(path + len, assembly); -- len += sizeof(assembly)/sizeof(WCHAR) - 1; -+ len += ARRAY_SIZE(assembly) - 1; - strcpyW(path + len, gac); -- len += sizeof(gac)/sizeof(WCHAR) - 1; -+ len += ARRAY_SIZE(gac) - 1; - break; - } - case ASM_CACHE_DOWNLOAD: -@@ -156,13 +156,13 @@ HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS dwCacheFlags, LPWSTR pwzCachePath, - } - case ASM_CACHE_ROOT: - strcpyW(path + len, assembly); -- len += sizeof(assembly)/sizeof(WCHAR) - 1; -+ len += ARRAY_SIZE(assembly) - 1; - break; - case ASM_CACHE_ROOT_EX: - strcpyW(path + len, dotnet); -- len += sizeof(dotnet)/sizeof(WCHAR) - 1; -+ len += ARRAY_SIZE(dotnet) - 1; - strcpyW(path + len, assembly); -- len += sizeof(assembly)/sizeof(WCHAR) - 1; -+ len += ARRAY_SIZE(assembly) - 1; - break; - default: - return E_INVALIDARG; --- -2.14.4 - diff --git a/patches/ml-array_size/0012-evr-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0012-evr-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 35eb80da..00000000 --- a/patches/ml-array_size/0012-evr-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,33 +0,0 @@ -From aca6266ebe1ead32e12dfb0c9aec035fec0c1363 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:28:08 +0200 -Subject: [PATCH] evr: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/evr/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/evr/main.c b/dlls/evr/main.c -index ed5c9f4c79..313d518b76 100644 ---- a/dlls/evr/main.c -+++ b/dlls/evr/main.c -@@ -154,13 +154,13 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv) - && !IsEqualGUID( &IID_IUnknown, riid)) - return E_NOINTERFACE; - -- for (i = 0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(object_creation); i++) - { - if (IsEqualGUID(object_creation[i].clsid, rclsid)) - break; - } - -- if (i == sizeof(object_creation)/sizeof(object_creation[0])) -+ if (i == ARRAY_SIZE(object_creation)) - { - FIXME("%s: no class found.\n", debugstr_guid(rclsid)); - return CLASS_E_CLASSNOTAVAILABLE; --- -2.14.4 - diff --git a/patches/ml-array_size/0013-d3d10-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0013-d3d10-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 38df0972..00000000 --- a/patches/ml-array_size/0013-d3d10-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,36 +0,0 @@ -From ab5ec464cf9178ec1466bf6af36ba6584ceda982 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:31:59 +0200 -Subject: [PATCH] d3d10: Use the ARRAY_SIZE() macro - -Signed-off-by: Henri Verbeet -Signed-off-by: Michael Stefaniuc ---- - dlls/d3d10/effect.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c -index 10d8404559..cd6f4a3e1d 100644 ---- a/dlls/d3d10/effect.c -+++ b/dlls/d3d10/effect.c -@@ -1139,7 +1139,7 @@ static const struct d3d10_effect_state_property_info *get_property_info(UINT id) - { - unsigned int i; - -- for (i = 0; i < sizeof(property_info) / sizeof(*property_info); ++i) -+ for (i = 0; i < ARRAY_SIZE(property_info); ++i) - { - if (property_info[i].id == id) - return &property_info[i]; -@@ -1152,7 +1152,7 @@ static const struct d3d10_effect_state_storage_info *get_storage_info(D3D_SHADER - { - unsigned int i; - -- for (i = 0; i < sizeof(d3d10_effect_state_storage_info) / sizeof(*d3d10_effect_state_storage_info); ++i) -+ for (i = 0; i < ARRAY_SIZE(d3d10_effect_state_storage_info); ++i) - { - if (d3d10_effect_state_storage_info[i].id == id) - return &d3d10_effect_state_storage_info[i]; --- -2.14.4 - diff --git a/patches/ml-array_size/0014-d3d8-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0014-d3d8-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 78598dd8..00000000 --- a/patches/ml-array_size/0014-d3d8-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 68a223a5b2faac1fae87a9e1125f923d62b06c80 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:33:14 +0200 -Subject: [PATCH] d3d8: Use the ARRAY_SIZE() macro - -Signed-off-by: Henri Verbeet -Signed-off-by: Michael Stefaniuc ---- - dlls/d3d8/device.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c -index c967a33d8c..364798f79b 100644 ---- a/dlls/d3d8/device.c -+++ b/dlls/d3d8/device.c -@@ -2126,7 +2126,7 @@ static HRESULT WINAPI d3d8_device_GetTextureStageState(IDirect3DDevice8 *iface, - - TRACE("iface %p, stage %u, state %#x, value %p.\n", iface, stage, Type, value); - -- if (Type >= sizeof(tss_lookup) / sizeof(*tss_lookup)) -+ if (Type >= ARRAY_SIZE(tss_lookup)) - { - WARN("Invalid Type %#x passed.\n", Type); - return D3D_OK; -@@ -2152,7 +2152,7 @@ static HRESULT WINAPI d3d8_device_SetTextureStageState(IDirect3DDevice8 *iface, - - TRACE("iface %p, stage %u, state %#x, value %#x.\n", iface, stage, type, value); - -- if (type >= sizeof(tss_lookup) / sizeof(*tss_lookup)) -+ if (type >= ARRAY_SIZE(tss_lookup)) - { - WARN("Invalid type %#x passed.\n", type); - return D3D_OK; --- -2.14.4 - diff --git a/patches/ml-array_size/0015-d3dcompiler-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0015-d3dcompiler-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 47b86127..00000000 --- a/patches/ml-array_size/0015-d3dcompiler-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 87f229b2bc6347493ea602ac51ff7b0271c9cbb6 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:34:30 +0200 -Subject: [PATCH] d3dcompiler: Use the ARRAY_SIZE() macro - -Signed-off-by: Henri Verbeet -Signed-off-by: Matteo Bruni -Signed-off-by: Michael Stefaniuc ---- - dlls/d3dcompiler_43/compiler.c | 2 +- - dlls/d3dcompiler_43/utils.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/dlls/d3dcompiler_43/compiler.c b/dlls/d3dcompiler_43/compiler.c -index 36e793ed01..10c6d01878 100644 ---- a/dlls/d3dcompiler_43/compiler.c -+++ b/dlls/d3dcompiler_43/compiler.c -@@ -570,7 +570,7 @@ static const struct target_info targets_info[] = { - static const struct target_info * get_target_info(const char *target) - { - LONG min = 0; -- LONG max = sizeof(targets_info) / sizeof(targets_info[0]) - 1; -+ LONG max = ARRAY_SIZE(targets_info) - 1; - LONG cur; - int res; - -diff --git a/dlls/d3dcompiler_43/utils.c b/dlls/d3dcompiler_43/utils.c -index 79f3be8840..b0232f375d 100644 ---- a/dlls/d3dcompiler_43/utils.c -+++ b/dlls/d3dcompiler_43/utils.c -@@ -1165,7 +1165,7 @@ static enum hlsl_base_type expr_common_base_type(enum hlsl_base_type t1, enum hl - }; - int t1_idx = -1, t2_idx = -1, i; - -- for (i = 0; i < sizeof(types) / sizeof(types[0]); ++i) -+ for (i = 0; i < ARRAY_SIZE(types); ++i) - { - /* Always convert away from HLSL_TYPE_HALF */ - if (t1 == types[i]) -@@ -1943,7 +1943,7 @@ static const char *debug_node_type(enum hlsl_ir_node_type type) - "HLSL_IR_SWIZZLE", - }; - -- if (type >= sizeof(names) / sizeof(names[0])) -+ if (type >= ARRAY_SIZE(names)) - return "Unexpected node type"; - return names[type]; - } --- -2.14.4 - diff --git a/patches/ml-array_size/0016-d3dxof-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0016-d3dxof-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 94218f64..00000000 --- a/patches/ml-array_size/0016-d3dxof-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 647edc04f021e10ccb1e6417056c32d251856abf Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:36:58 +0200 -Subject: [PATCH] d3dxof: Use the ARRAY_SIZE() macro - -Signed-off-by: Matteo Bruni -Signed-off-by: Michael Stefaniuc ---- - dlls/d3dxof/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/d3dxof/main.c b/dlls/d3dxof/main.c -index 572f38831f..385609ace0 100644 ---- a/dlls/d3dxof/main.c -+++ b/dlls/d3dxof/main.c -@@ -195,13 +195,13 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) - && ! IsEqualGUID( &IID_IUnknown, riid) ) - return E_NOINTERFACE; - -- for (i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(object_creation); i++) - { - if (IsEqualGUID(object_creation[i].clsid, rclsid)) - break; - } - -- if (i == sizeof(object_creation)/sizeof(object_creation[0])) -+ if (i == ARRAY_SIZE(object_creation)) - { - FIXME("%s: no class found.\n", debugstr_guid(rclsid)); - return CLASS_E_CLASSNOTAVAILABLE; --- -2.14.4 - diff --git a/patches/ml-array_size/0017-dnsapi-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0017-dnsapi-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index e67b369b..00000000 --- a/patches/ml-array_size/0017-dnsapi-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,44 +0,0 @@ -From febcd7051a70405d6a4a4882f9fc41314445ca0e Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Fri, 20 Jul 2018 20:39:05 +0200 -Subject: [PATCH] dnsapi: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/dnsapi/query.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/dlls/dnsapi/query.c b/dlls/dnsapi/query.c -index 74b70967ae..19eecfded1 100644 ---- a/dlls/dnsapi/query.c -+++ b/dlls/dnsapi/query.c -@@ -618,7 +618,7 @@ static DNS_STATUS dns_do_query( PCSTR name, WORD type, DWORD options, PDNS_RECOR - goto exit; - } - -- for (i = 0; i < sizeof(sections)/sizeof(sections[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(sections); i++) - { - for (num = 0; num < ns_msg_count( msg, sections[i] ); num++) - { -@@ -771,7 +771,7 @@ static DNS_STATUS dns_get_hostname_a( COMPUTER_NAME_FORMAT format, - PSTR buffer, PDWORD len ) - { - char name[256]; -- DWORD size = sizeof(name)/sizeof(name[0]); -+ DWORD size = ARRAY_SIZE(name); - - if (!GetComputerNameExA( format, name, &size )) - return DNS_ERROR_NAME_DOES_NOT_EXIST; -@@ -790,7 +790,7 @@ static DNS_STATUS dns_get_hostname_w( COMPUTER_NAME_FORMAT format, - PWSTR buffer, PDWORD len ) - { - WCHAR name[256]; -- DWORD size = sizeof(name)/sizeof(name[0]); -+ DWORD size = ARRAY_SIZE(name); - - if (!GetComputerNameExW( format, name, &size )) - return DNS_ERROR_NAME_DOES_NOT_EXIST; --- -2.14.4 - diff --git a/patches/ml-array_size/0019-amstream-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0019-amstream-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 5c57d82d..00000000 --- a/patches/ml-array_size/0019-amstream-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 86bb2d2b580b4f5c77fcdb75be9d68522bd9807d Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 08:57:48 +0200 -Subject: [PATCH] amstream: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/amstream/main.c | 4 ++-- - dlls/amstream/tests/amstream.c | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/dlls/amstream/main.c b/dlls/amstream/main.c -index 2cadf9c32f..65aafba3e6 100644 ---- a/dlls/amstream/main.c -+++ b/dlls/amstream/main.c -@@ -174,13 +174,13 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) - && ! IsEqualGUID( &IID_IUnknown, riid) ) - return E_NOINTERFACE; - -- for (i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(object_creation); i++) - { - if (IsEqualGUID(object_creation[i].clsid, rclsid)) - break; - } - -- if (i == sizeof(object_creation)/sizeof(object_creation[0])) -+ if (i == ARRAY_SIZE(object_creation)) - { - FIXME("%s: no class found.\n", debugstr_guid(rclsid)); - return CLASS_E_CLASSNOTAVAILABLE; -diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c -index 1a14572c8a..52e691fea4 100644 ---- a/dlls/amstream/tests/amstream.c -+++ b/dlls/amstream/tests/amstream.c -@@ -479,7 +479,7 @@ static void test_media_streams(void) - ok(!lstrcmpW(info.achName, id), "Pin name is %s instead of %s\n", wine_dbgstr_w(info.achName), wine_dbgstr_w(id)); - hr = IPin_EnumMediaTypes(pins[i], &enum_media_types); - ok(hr == S_OK, "IPin_EnumMediaTypes returned: %x\n", hr); -- hr = IEnumMediaTypes_Next(enum_media_types, sizeof(media_types) / sizeof(media_types[0]), media_types, &nb_media_types); -+ hr = IEnumMediaTypes_Next(enum_media_types, ARRAY_SIZE(media_types), media_types, &nb_media_types); - ok(SUCCEEDED(hr), "IEnumMediaTypes_Next returned: %x\n", hr); - ok(nb_media_types > 0, "nb_media_types should be >0\n"); - IEnumMediaTypes_Release(enum_media_types); --- -2.14.4 - diff --git a/patches/ml-array_size/0020-browseui-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0020-browseui-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index d8e6eae6..00000000 --- a/patches/ml-array_size/0020-browseui-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a12472814a32462fd5e1b23efe0bbae33b76ee1c Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 08:58:41 +0200 -Subject: [PATCH] browseui: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/browseui/progressdlg.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/browseui/progressdlg.c b/dlls/browseui/progressdlg.c -index 7cba7d6464..2355b0cfa0 100644 ---- a/dlls/browseui/progressdlg.c -+++ b/dlls/browseui/progressdlg.c -@@ -114,7 +114,7 @@ static LPWSTR load_string(HINSTANCE hInstance, UINT uiResourceId) - WCHAR string[256]; - LPWSTR ret; - -- LoadStringW(hInstance, uiResourceId, string, sizeof(string)/sizeof(string[0])); -+ LoadStringW(hInstance, uiResourceId, string, ARRAY_SIZE(string)); - ret = HeapAlloc(GetProcessHeap(), 0, (strlenW(string) + 1) * sizeof(WCHAR)); - strcpyW(ret, string); - return ret; --- -2.14.4 - diff --git a/patches/ml-array_size/0021-gameux-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0021-gameux-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 35a96e35..00000000 --- a/patches/ml-array_size/0021-gameux-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 908e14ff27dc82ade08cc05573b4963179d05791 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 09:01:38 +0200 -Subject: [PATCH] gameux: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/gameux/gameexplorer.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/gameux/gameexplorer.c b/dlls/gameux/gameexplorer.c -index 63bf69d736..6495c78b38 100644 ---- a/dlls/gameux/gameexplorer.c -+++ b/dlls/gameux/gameexplorer.c -@@ -150,7 +150,7 @@ HRESULT GAMEUX_buildGameRegistryPath(GAME_INSTALL_SCOPE installScope, - if(gameInstanceId) - { - if(SUCCEEDED(hr)) -- hr = (StringFromGUID2(gameInstanceId, sInstanceId, sizeof(sInstanceId)/sizeof(sInstanceId[0])) ? S_OK : E_FAIL); -+ hr = (StringFromGUID2(gameInstanceId, sInstanceId, ARRAY_SIZE(sInstanceId)) ? S_OK : E_FAIL); - - if(SUCCEEDED(hr)) - { -@@ -219,7 +219,7 @@ static HRESULT GAMEUX_WriteRegistryRecord(struct GAMEUX_GAME_DATA *GameData) - hr = GAMEUX_buildGameRegistryPath(GameData->installScope, &GameData->guidInstanceId, &lpRegistryKey); - - if(SUCCEEDED(hr)) -- hr = (StringFromGUID2(&GameData->guidApplicationId, sGameApplicationId, sizeof(sGameApplicationId)/sizeof(sGameApplicationId[0])) ? S_OK : E_FAIL); -+ hr = (StringFromGUID2(&GameData->guidApplicationId, sGameApplicationId, ARRAY_SIZE(sGameApplicationId)) ? S_OK : E_FAIL); - - if(SUCCEEDED(hr)) - hr = HRESULT_FROM_WIN32(RegCreateKeyExW(HKEY_LOCAL_MACHINE, lpRegistryKey, --- -2.14.4 - diff --git a/patches/ml-array_size/0022-inetcomm-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0022-inetcomm-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 7d72070d..00000000 --- a/patches/ml-array_size/0022-inetcomm-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 1e5920e18facb943edaf4bff76dd863550338cf1 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 09:10:49 +0200 -Subject: [PATCH] inetcomm: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/inetcomm/mimeole.c | 7 +++---- - dlls/inetcomm/protocol.c | 18 +++++++++--------- - 2 files changed, 12 insertions(+), 13 deletions(-) - -diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c -index 681ca820d4..cb9ebcc382 100644 ---- a/dlls/inetcomm/mimeole.c -+++ b/dlls/inetcomm/mimeole.c -@@ -1581,9 +1581,8 @@ static HRESULT decode_base64(IStream *input, IStream **ret_stream) - - while(1) { - /* skip invalid chars */ -- while(ptr < end && -- (*ptr >= sizeof(base64_decode_table)/sizeof(*base64_decode_table) -- || base64_decode_table[*ptr] == -1)) -+ while(ptr < end && (*ptr >= ARRAY_SIZE(base64_decode_table) -+ || base64_decode_table[*ptr] == -1)) - ptr++; - if(ptr == end) - break; -@@ -3715,7 +3714,7 @@ HRESULT WINAPI MimeOleObjectFromMoniker(BINDF bindf, IMoniker *moniker, IBindCtx - return E_OUTOFMEMORY; - - memcpy(mhtml_url, mhtml_prefixW, sizeof(mhtml_prefixW)); -- strcpyW(mhtml_url + sizeof(mhtml_prefixW)/sizeof(WCHAR), display_name); -+ strcpyW(mhtml_url + ARRAY_SIZE(mhtml_prefixW), display_name); - HeapFree(GetProcessHeap(), 0, display_name); - - hres = CreateURLMoniker(NULL, mhtml_url, moniker_new); -diff --git a/dlls/inetcomm/protocol.c b/dlls/inetcomm/protocol.c -index 028463a269..c6a59fee7c 100644 ---- a/dlls/inetcomm/protocol.c -+++ b/dlls/inetcomm/protocol.c -@@ -83,16 +83,16 @@ static HRESULT parse_mhtml_url(const WCHAR *url, mhtml_url_t *r) - { - const WCHAR *p; - -- if(strncmpiW(url, mhtml_prefixW, sizeof(mhtml_prefixW)/sizeof(WCHAR))) -+ if(strncmpiW(url, mhtml_prefixW, ARRAY_SIZE(mhtml_prefixW))) - return E_FAIL; - -- r->mhtml = url + sizeof(mhtml_prefixW)/sizeof(WCHAR); -+ r->mhtml = url + ARRAY_SIZE(mhtml_prefixW); - p = strchrW(r->mhtml, '!'); - if(p) { - r->mhtml_len = p - r->mhtml; - /* FIXME: We handle '!' and '!x-usc:' in URLs as the same thing. Those should not be the same. */ -- if(!strncmpW(p, mhtml_separatorW, sizeof(mhtml_separatorW)/sizeof(WCHAR))) -- p += sizeof(mhtml_separatorW)/sizeof(WCHAR); -+ if(!strncmpW(p, mhtml_separatorW, ARRAY_SIZE(mhtml_separatorW))) -+ p += ARRAY_SIZE(mhtml_separatorW); - else - p++; - }else { -@@ -657,7 +657,7 @@ static HRESULT WINAPI MimeHtmlProtocolInfo_CombineUrl(IInternetProtocolInfo *ifa - DWORD cchResult, DWORD* pcchResult, DWORD dwReserved) - { - MimeHtmlProtocol *This = impl_from_IInternetProtocolInfo(iface); -- size_t len = sizeof(mhtml_prefixW)/sizeof(WCHAR); -+ size_t len = ARRAY_SIZE(mhtml_prefixW); - mhtml_url_t url; - WCHAR *p; - HRESULT hres; -@@ -670,26 +670,26 @@ static HRESULT WINAPI MimeHtmlProtocolInfo_CombineUrl(IInternetProtocolInfo *ifa - if(FAILED(hres)) - return hres; - -- if(!strncmpiW(pwzRelativeUrl, mhtml_prefixW, sizeof(mhtml_prefixW)/sizeof(WCHAR))) { -+ if(!strncmpiW(pwzRelativeUrl, mhtml_prefixW, ARRAY_SIZE(mhtml_prefixW))) { - FIXME("Relative URL is mhtml protocol\n"); - return INET_E_USE_DEFAULT_PROTOCOLHANDLER; - } - - len += url.mhtml_len; - if(*pwzRelativeUrl) -- len += strlenW(pwzRelativeUrl) + sizeof(mhtml_separatorW)/sizeof(WCHAR); -+ len += strlenW(pwzRelativeUrl) + ARRAY_SIZE(mhtml_separatorW); - if(len >= cchResult) { - *pcchResult = 0; - return E_FAIL; - } - - memcpy(pwzResult, mhtml_prefixW, sizeof(mhtml_prefixW)); -- p = pwzResult + sizeof(mhtml_prefixW)/sizeof(WCHAR); -+ p = pwzResult + ARRAY_SIZE(mhtml_prefixW); - memcpy(p, url.mhtml, url.mhtml_len*sizeof(WCHAR)); - p += url.mhtml_len; - if(*pwzRelativeUrl) { - memcpy(p, mhtml_separatorW, sizeof(mhtml_separatorW)); -- p += sizeof(mhtml_separatorW)/sizeof(WCHAR); -+ p += ARRAY_SIZE(mhtml_separatorW); - strcpyW(p, pwzRelativeUrl); - }else { - *p = 0; --- -2.14.4 - diff --git a/patches/ml-array_size/0023-iphlpapi-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0023-iphlpapi-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 39468954..00000000 --- a/patches/ml-array_size/0023-iphlpapi-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 8b38172e836c44f5fd8ed98f7cb20702d0435d35 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 09:15:07 +0200 -Subject: [PATCH] iphlpapi: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/iphlpapi/iphlpapi_main.c | 2 +- - dlls/iphlpapi/ipstats.c | 8 ++++---- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c -index 7911e9d8cf..7de70c9ef4 100644 ---- a/dlls/iphlpapi/iphlpapi_main.c -+++ b/dlls/iphlpapi/iphlpapi_main.c -@@ -1717,7 +1717,7 @@ DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow) - */ - DWORD WINAPI GetIfEntry2( MIB_IF_ROW2 *row2 ) - { -- DWORD ret, len = sizeof(row2->Description)/sizeof(row2->Description[0]); -+ DWORD ret, len = ARRAY_SIZE(row2->Description); - char buf[MAX_ADAPTER_NAME], *name; - MIB_IFROW row; - -diff --git a/dlls/iphlpapi/ipstats.c b/dlls/iphlpapi/ipstats.c -index 8f6720ea52..799d03d574 100644 ---- a/dlls/iphlpapi/ipstats.c -+++ b/dlls/iphlpapi/ipstats.c -@@ -666,7 +666,7 @@ DWORD WINAPI GetIcmpStatisticsEx(PMIB_ICMP_EX stats, DWORD family) - continue; - } - -- for (i = 0; i < sizeof(icmpinstatlist)/sizeof(icmpinstatlist[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(icmpinstatlist); i++) - { - if (!strcasecmp(buf, icmpinstatlist[i].name)) - { -@@ -688,7 +688,7 @@ DWORD WINAPI GetIcmpStatisticsEx(PMIB_ICMP_EX stats, DWORD family) - continue; - } - -- for (i = 0; i < sizeof(icmpoutstatlist)/sizeof(icmpoutstatlist[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(icmpoutstatlist); i++) - { - if (!strcasecmp(buf, icmpoutstatlist[i].name)) - { -@@ -819,7 +819,7 @@ DWORD WINAPI GetIpStatisticsEx(PMIB_IPSTATS stats, DWORD family) - if ((ptr = strchr(value, '\n'))) - *ptr='\0'; - -- for (i = 0; i < sizeof(ipstatlist)/sizeof(ipstatlist[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(ipstatlist); i++) - if (!strcasecmp(buf, ipstatlist[i].name)) - { - if (sscanf(value, "%d", &res)) *ipstatlist[i].elem = res; -@@ -1209,7 +1209,7 @@ DWORD WINAPI GetUdpStatisticsEx(PMIB_UDPSTATS stats, DWORD family) - if ((ptr = strchr(value, '\n'))) - *ptr='\0'; - -- for (i = 0; i < sizeof(udpstatlist)/sizeof(udpstatlist[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(udpstatlist); i++) - if (!strcasecmp(buf, udpstatlist[i].name)) - { - if (sscanf(value, "%d", &res)) *udpstatlist[i].elem = res; --- -2.14.4 - diff --git a/patches/ml-array_size/0024-itss-Remove-a-superfluous-variable-initialization.patch b/patches/ml-array_size/0024-itss-Remove-a-superfluous-variable-initialization.patch deleted file mode 100644 index b92c5e0a..00000000 --- a/patches/ml-array_size/0024-itss-Remove-a-superfluous-variable-initialization.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 26098afa5665e6e3eb70d4560e2059ce97ae3a96 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 09:18:52 +0200 -Subject: [PATCH] itss: Remove a superfluous variable initialization - -Signed-off-by: Michael Stefaniuc ---- - dlls/itss/moniker.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/itss/moniker.c b/dlls/itss/moniker.c -index 0509c9e1a5..3315b914d3 100644 ---- a/dlls/itss/moniker.c -+++ b/dlls/itss/moniker.c -@@ -287,7 +287,7 @@ static HRESULT WINAPI ITS_IMonikerImpl_GetDisplayName( - ITS_IMonikerImpl *This = impl_from_IMoniker(iface); - static const WCHAR szFormat[] = { - 'm','s','-','i','t','s',':','%','s',':',':','%','s',0 }; -- DWORD len = sizeof szFormat / sizeof(WCHAR); -+ DWORD len; - LPWSTR str; - - TRACE("%p %p %p %p\n", iface, pbc, pmkToLeft, ppszDisplayName); --- -2.14.4 - diff --git a/patches/ml-array_size/0025-itss-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0025-itss-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 17f4d6e0..00000000 --- a/patches/ml-array_size/0025-itss-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 54586555e7ea3b721741b0937f6a909f9a58baf2 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 09:21:21 +0200 -Subject: [PATCH] itss: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/itss/moniker.c | 2 +- - dlls/itss/protocol.c | 12 ++++++------ - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/dlls/itss/moniker.c b/dlls/itss/moniker.c -index 3315b914d3..6c61f47482 100644 ---- a/dlls/itss/moniker.c -+++ b/dlls/itss/moniker.c -@@ -435,7 +435,7 @@ static HRESULT WINAPI ITS_IParseDisplayNameImpl_ParseDisplayName( - { - static const WCHAR szPrefix[] = { - '@','M','S','I','T','S','t','o','r','e',':',0 }; -- const DWORD prefix_len = (sizeof szPrefix/sizeof szPrefix[0])-1; -+ const DWORD prefix_len = ARRAY_SIZE(szPrefix)-1; - DWORD n; - - ITS_IParseDisplayNameImpl *This = impl_from_IParseDisplayName(iface); -diff --git a/dlls/itss/protocol.c b/dlls/itss/protocol.c -index 1cdb365002..a7c40077cc 100644 ---- a/dlls/itss/protocol.c -+++ b/dlls/itss/protocol.c -@@ -153,12 +153,12 @@ static LPCWSTR skip_schema(LPCWSTR url) - static const WCHAR msits_schema[] = {'m','s','-','i','t','s',':'}; - static const WCHAR mk_schema[] = {'m','k',':','@','M','S','I','T','S','t','o','r','e',':'}; - -- if(!strncmpiW(its_schema, url, sizeof(its_schema)/sizeof(WCHAR))) -- return url+sizeof(its_schema)/sizeof(WCHAR); -- if(!strncmpiW(msits_schema, url, sizeof(msits_schema)/sizeof(WCHAR))) -- return url+sizeof(msits_schema)/sizeof(WCHAR); -- if(!strncmpiW(mk_schema, url, sizeof(mk_schema)/sizeof(WCHAR))) -- return url+sizeof(mk_schema)/sizeof(WCHAR); -+ if(!strncmpiW(its_schema, url, ARRAY_SIZE(its_schema))) -+ return url + ARRAY_SIZE(its_schema); -+ if(!strncmpiW(msits_schema, url, ARRAY_SIZE(msits_schema))) -+ return url + ARRAY_SIZE(msits_schema); -+ if(!strncmpiW(mk_schema, url, ARRAY_SIZE(mk_schema))) -+ return url + ARRAY_SIZE(mk_schema); - - return NULL; - } --- -2.14.4 - diff --git a/patches/ml-array_size/0026-attrib-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0026-attrib-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index eec85b60..00000000 --- a/patches/ml-array_size/0026-attrib-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 8bf0cb26484dcfd57220fde43e6ff5d91aa86b26 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 11:27:34 +0200 -Subject: [PATCH] attrib: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/attrib/attrib.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/programs/attrib/attrib.c b/programs/attrib/attrib.c -index a5742048bc..79a599aafd 100644 ---- a/programs/attrib/attrib.c -+++ b/programs/attrib/attrib.c -@@ -36,7 +36,7 @@ static WCHAR *ATTRIB_LoadMessage(UINT id) - static WCHAR msg[MAXSTRING]; - const WCHAR failedMsg[] = {'F', 'a', 'i', 'l', 'e', 'd', '!', 0}; - -- if (!LoadStringW(GetModuleHandleW(NULL), id, msg, sizeof(msg)/sizeof(WCHAR))) { -+ if (!LoadStringW(GetModuleHandleW(NULL), id, msg, ARRAY_SIZE(msg))) { - WINE_FIXME("LoadString failed with %d\n", GetLastError()); - lstrcpyW(msg, failedMsg); - } -@@ -236,7 +236,7 @@ static BOOL ATTRIB_processdirectory(const WCHAR *rootdir, const WCHAR *filespec, - strcpyW(buffer, rootdir); - strcatW(buffer, fd.cFileName); - ATTRIB_wprintf(fmt, flags, buffer); -- for (count = 0; count < (sizeof(flags)/sizeof(WCHAR) - 1); count++) flags[count] = ' '; -+ for (count = 0; count < (ARRAY_SIZE(flags) - 1); count++) flags[count] = ' '; - found = TRUE; - } - } while (FindNextFileW(hff, &fd) != 0); -@@ -302,7 +302,7 @@ int wmain(int argc, WCHAR *argv[]) - /* Name may be a relative or explicit path, so calculate curdir based on - current locations, stripping off the filename */ - WINE_TRACE("Supplied name: '%s'\n", wine_dbgstr_w(originalname)); -- GetFullPathNameW(originalname, sizeof(curdir)/sizeof(WCHAR), curdir, &namepart); -+ GetFullPathNameW(originalname, ARRAY_SIZE(curdir), curdir, &namepart); - WINE_TRACE("Result: '%s'\n", wine_dbgstr_w(curdir)); - if (namepart) { - strcpyW(name, namepart); --- -2.14.4 - diff --git a/patches/ml-array_size/0027-clock-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0027-clock-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index b80989f0..00000000 --- a/patches/ml-array_size/0027-clock-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,58 +0,0 @@ -From be9c79bb13ad9d354c458b5af5c4ea83edb2e29a Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 11:53:50 +0200 -Subject: [PATCH] clock: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/clock/main.c | 4 ++-- - programs/clock/winclock.c | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/programs/clock/main.c b/programs/clock/main.c -index 04bfe64424..3ad636be43 100644 ---- a/programs/clock/main.c -+++ b/programs/clock/main.c -@@ -72,7 +72,7 @@ static VOID CLOCK_UpdateWindowCaption(VOID) - /* Set frame caption */ - if (Globals.bDate) { - chars = GetDateFormatW(LOCALE_USER_DEFAULT, DATE_LONGDATE, NULL, NULL, -- szCaption, sizeof(szCaption)/sizeof(WCHAR)); -+ szCaption, ARRAY_SIZE(szCaption)); - if (chars) { - --chars; - szCaption[chars++] = ' '; -@@ -255,7 +255,7 @@ static int CLOCK_MenuCommand (WPARAM wParam) - } - /* show "about" box */ - case IDM_ABOUT: { -- LoadStringW(Globals.hInstance, IDS_CLOCK, szApp, sizeof(szApp)/sizeof(WCHAR)); -+ LoadStringW(Globals.hInstance, IDS_CLOCK, szApp, ARRAY_SIZE(szApp)); - lstrcpyW(szAppRelease,szApp); - ShellAboutW(Globals.hMainWnd, szApp, szAppRelease, 0); - break; -diff --git a/programs/clock/winclock.c b/programs/clock/winclock.c -index 0b2def11ab..53c3821d95 100644 ---- a/programs/clock/winclock.c -+++ b/programs/clock/winclock.c -@@ -187,7 +187,7 @@ HFONT SizeFont(HDC dc, int x, int y, BOOL bSeconds, const LOGFONTW* font) - int chars; - - chars = GetTimeFormatW(LOCALE_USER_DEFAULT, bSeconds ? 0 : TIME_NOSECONDS, NULL, -- NULL, szTime, sizeof(szTime)/sizeof(WCHAR)); -+ NULL, szTime, ARRAY_SIZE(szTime)); - if (!chars) - return 0; - -@@ -219,7 +219,7 @@ void DigitalClock(HDC dc, int x, int y, BOOL bSeconds, HFONT font) - int chars; - - chars = GetTimeFormatW(LOCALE_USER_DEFAULT, bSeconds ? 0 : TIME_NOSECONDS, NULL, -- NULL, szTime, sizeof(szTime)/sizeof(WCHAR)); -+ NULL, szTime, ARRAY_SIZE(szTime)); - if (!chars) - return; - --chars; --- -2.14.4 - diff --git a/patches/ml-array_size/0028-hostname-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0028-hostname-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 9005944c..00000000 --- a/patches/ml-array_size/0028-hostname-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 6efa8387411c9db492b2f965e9daf976abe04d40 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 13:14:34 +0200 -Subject: [PATCH] hostname: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/hostname/hostname.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/programs/hostname/hostname.c b/programs/hostname/hostname.c -index 8bf8676a97..3e1f2bdda3 100644 ---- a/programs/hostname/hostname.c -+++ b/programs/hostname/hostname.c -@@ -90,8 +90,7 @@ static int hostname_message_printfW(int msg, ...) - WCHAR msg_buffer[8192]; - int len; - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - va_start(va_args, msg); - len = hostname_vprintfW(msg_buffer, va_args); -@@ -105,8 +104,7 @@ static int hostname_message(int msg) - static const WCHAR formatW[] = {'%','s',0}; - WCHAR msg_buffer[8192]; - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - return hostname_printfW(formatW, msg_buffer); - } -@@ -119,7 +117,7 @@ static void display_computer_name(void) - WCHAR nameW[256]; - - gethostname(nameA, sizeof(nameA)); -- MultiByteToWideChar(CP_UNIXCP, 0, nameA, sizeof(nameA), nameW, sizeof(nameW)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_UNIXCP, 0, nameA, sizeof(nameA), nameW, ARRAY_SIZE(nameW)); - - hostname_printfW(fmtW, nameW); - } -@@ -132,7 +130,7 @@ int wmain(int argc, WCHAR *argv[]) - - unsigned int i; - -- if (!strncmpW(argv[1], slashHelpW, sizeof(slashHelpW)/sizeof(WCHAR) - 1)) -+ if (!strncmpW(argv[1], slashHelpW, ARRAY_SIZE(slashHelpW) - 1)) - { - hostname_message(STRING_USAGE); - return 1; --- -2.14.4 - diff --git a/patches/ml-array_size/0029-icinfo-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0029-icinfo-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 56d7c921..00000000 --- a/patches/ml-array_size/0029-icinfo-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a11a1464b49a115d73c8b787ad2e55327f668c5e Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 16:40:31 +0200 -Subject: [PATCH] icinfo: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/icinfo/icinfo.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/programs/icinfo/icinfo.c b/programs/icinfo/icinfo.c -index 601ec8c8b3..1059183361 100644 ---- a/programs/icinfo/icinfo.c -+++ b/programs/icinfo/icinfo.c -@@ -33,7 +33,7 @@ static int mywprintf(const WCHAR *format, ...) - HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE); - - va_start(parms, format); -- vsnprintfW(output_bufW, sizeof(output_bufW)/sizeof(output_bufW[0]), format, parms); -+ vsnprintfW(output_bufW, ARRAY_SIZE(output_bufW), format, parms); - va_end(parms); - - /* Try to write as unicode whenever we think it's a console */ --- -2.14.4 - diff --git a/patches/ml-array_size/0030-net-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0030-net-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 3b4b3d63..00000000 --- a/patches/ml-array_size/0030-net-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,63 +0,0 @@ -From a2a7e76379da5eaf1d521e95f9337661bb49ed84 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 17:01:22 +0200 -Subject: [PATCH] net: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/net/net.c | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/programs/net/net.c b/programs/net/net.c -index d8123ebf97..8a4c3f1132 100644 ---- a/programs/net/net.c -+++ b/programs/net/net.c -@@ -61,8 +61,7 @@ static int output_vprintf(const WCHAR* fmt, __ms_va_list va_args) - int len; - - SetLastError(NO_ERROR); -- len = FormatMessageW(FORMAT_MESSAGE_FROM_STRING, fmt, 0, 0, str, -- sizeof(str)/sizeof(*str), &va_args); -+ len = FormatMessageW(FORMAT_MESSAGE_FROM_STRING, fmt, 0, 0, str, ARRAY_SIZE(str), &va_args); - if (len == 0 && GetLastError() != NO_ERROR) - WINE_FIXME("Could not format string: le=%u, fmt=%s\n", GetLastError(), wine_dbgstr_w(fmt)); - else -@@ -85,7 +84,7 @@ static int WINAPIV output_string(int msg, ...) - WCHAR fmt[8192]; - __ms_va_list arguments; - -- LoadStringW(GetModuleHandleW(NULL), msg, fmt, sizeof(fmt)/sizeof(fmt[0])); -+ LoadStringW(GetModuleHandleW(NULL), msg, fmt, ARRAY_SIZE(fmt)); - __ms_va_start(arguments, msg); - output_vprintf(fmt, arguments); - __ms_va_end(arguments); -@@ -119,7 +118,7 @@ static BOOL net_use(int argc, const WCHAR* argv[]) - HMODULE hmod = GetModuleHandleW(NULL); - - /* Load the status strings */ -- for (i = 0; i < sizeof(status)/sizeof(*status); i++) -+ for (i = 0; i < ARRAY_SIZE(status); i++) - { - status[i] = HeapAlloc(GetProcessHeap(), 0, 1024 * sizeof(**status)); - LoadStringW(hmod, STRING_OK+i, status[i], 1024); -@@ -147,7 +146,7 @@ static BOOL net_use(int argc, const WCHAR* argv[]) - } while (rc == ERROR_MORE_DATA); - - /* Release the status strings */ -- for (i = 0; i < sizeof(status)/sizeof(*status); i++) -+ for (i = 0; i < ARRAY_SIZE(status); i++) - HeapFree(GetProcessHeap(), 0, status[i]); - - return TRUE; -@@ -256,7 +255,7 @@ static BOOL net_service(int operation, const WCHAR* service_name) - return FALSE; - } - -- buffer_size = sizeof(service_display_name)/sizeof(*service_display_name); -+ buffer_size = ARRAY_SIZE(service_display_name); - GetServiceDisplayNameW(SCManager, service_name, service_display_name, &buffer_size); - if (!service_display_name[0]) lstrcpyW(service_display_name, service_name); - --- -2.14.4 - diff --git a/patches/ml-array_size/0031-taskkill-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0031-taskkill-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 2731cab1..00000000 --- a/patches/ml-array_size/0031-taskkill-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,46 +0,0 @@ -From b9918474575b009cc132f5df5a7b29e839772d88 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 19:13:54 +0200 -Subject: [PATCH] taskkill: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/taskkill/taskkill.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/programs/taskkill/taskkill.c b/programs/taskkill/taskkill.c -index 6e4e1eb55a..59ce98dc6d 100644 ---- a/programs/taskkill/taskkill.c -+++ b/programs/taskkill/taskkill.c -@@ -47,7 +47,7 @@ static int taskkill_vprintfW(const WCHAR *msg, __ms_va_list va_args) - WCHAR msg_buffer[8192]; - - wlen = FormatMessageW(FORMAT_MESSAGE_FROM_STRING, msg, 0, 0, msg_buffer, -- sizeof(msg_buffer)/sizeof(*msg_buffer), &va_args); -+ ARRAY_SIZE(msg_buffer), &va_args); - - ret = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), msg_buffer, wlen, &count, NULL); - if (!ret) -@@ -92,8 +92,7 @@ static int WINAPIV taskkill_message_printfW(int msg, ...) - WCHAR msg_buffer[8192]; - int len; - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - __ms_va_start(va_args, msg); - len = taskkill_vprintfW(msg_buffer, va_args); -@@ -107,8 +106,7 @@ static int taskkill_message(int msg) - static const WCHAR formatW[] = {'%','1',0}; - WCHAR msg_buffer[8192]; - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - return taskkill_printfW(formatW, msg_buffer); - } --- -2.14.4 - diff --git a/patches/ml-array_size/0032-ipconfig-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0032-ipconfig-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index c4a1c1b0..00000000 --- a/patches/ml-array_size/0032-ipconfig-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,152 +0,0 @@ -From 081705a865b159a13be0afe8235f8cc7b62a635f Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 19:18:13 +0200 -Subject: [PATCH] ipconfig: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/ipconfig/ipconfig.c | 40 ++++++++++++++++++---------------------- - 1 file changed, 18 insertions(+), 22 deletions(-) - -diff --git a/programs/ipconfig/ipconfig.c b/programs/ipconfig/ipconfig.c -index 936dfa2ea8..4370a28a44 100644 ---- a/programs/ipconfig/ipconfig.c -+++ b/programs/ipconfig/ipconfig.c -@@ -35,7 +35,7 @@ static int ipconfig_vprintfW(const WCHAR *msg, __ms_va_list va_args) - WCHAR msg_buffer[8192]; - - wlen = FormatMessageW(FORMAT_MESSAGE_FROM_STRING, msg, 0, 0, msg_buffer, -- sizeof(msg_buffer)/sizeof(*msg_buffer), &va_args); -+ ARRAY_SIZE(msg_buffer), &va_args); - - ret = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), msg_buffer, wlen, &count, NULL); - if (!ret) -@@ -80,8 +80,7 @@ static int WINAPIV ipconfig_message_printfW(int msg, ...) - WCHAR msg_buffer[8192]; - int len; - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - __ms_va_start(va_args, msg); - len = ipconfig_vprintfW(msg_buffer, va_args); -@@ -95,8 +94,7 @@ static int ipconfig_message(int msg) - static const WCHAR formatW[] = {'%','1',0}; - WCHAR msg_buffer[8192]; - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - return ipconfig_printfW(formatW, msg_buffer); - } -@@ -118,8 +116,7 @@ static const WCHAR *iftype_to_string(DWORD type) - msg = STRING_UNKNOWN; - } - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - return msg_buffer; - } -@@ -130,10 +127,10 @@ static void print_field(int msg, const WCHAR *value) - - WCHAR field[] = {'.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.', - ' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ','.',' ',0}; -- WCHAR name_buffer[sizeof(field)/sizeof(WCHAR)]; -+ WCHAR name_buffer[ARRAY_SIZE(field)]; - -- LoadStringW(GetModuleHandleW(NULL), msg, name_buffer, sizeof(name_buffer)/sizeof(WCHAR)); -- memcpy(field, name_buffer, sizeof(WCHAR) * min(strlenW(name_buffer), sizeof(field)/sizeof(WCHAR) - 1)); -+ LoadStringW(GetModuleHandleW(NULL), msg, name_buffer, ARRAY_SIZE(name_buffer)); -+ memcpy(field, name_buffer, sizeof(WCHAR) * min(strlenW(name_buffer), ARRAY_SIZE(field) - 1)); - - ipconfig_printfW(formatW, field, value); - } -@@ -189,22 +186,22 @@ static void print_basic_information(void) - for (addr = p->FirstUnicastAddress; addr; addr = addr->Next) - { - if (addr->Address.lpSockaddr->sa_family == AF_INET && -- socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &addr->Address)) -+ socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &addr->Address)) - print_field(STRING_IP_ADDRESS, addr_buf); - else if (addr->Address.lpSockaddr->sa_family == AF_INET6 && -- socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &addr->Address)) -+ socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &addr->Address)) - print_field(STRING_IP6_ADDRESS, addr_buf); - /* FIXME: Output corresponding subnet mask. */ - } - - if (p->FirstGatewayAddress) - { -- if (socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &p->FirstGatewayAddress->Address)) -+ if (socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &p->FirstGatewayAddress->Address)) - print_field(STRING_DEFAULT_GATEWAY, addr_buf); - - for (gateway = p->FirstGatewayAddress->Next; gateway; gateway = gateway->Next) - { -- if (socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &gateway->Address)) -+ if (socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &gateway->Address)) - print_value(addr_buf); - } - } -@@ -243,8 +240,7 @@ static const WCHAR *nodetype_to_string(DWORD type) - msg = STRING_UNKNOWN; - } - -- LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, -- sizeof(msg_buffer)/sizeof(WCHAR)); -+ LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer, ARRAY_SIZE(msg_buffer)); - - return msg_buffer; - } -@@ -277,7 +273,7 @@ static const WCHAR *boolean_to_string(int value) - static WCHAR msg_buffer[15]; - - LoadStringW(GetModuleHandleW(NULL), value ? STRING_YES : STRING_NO, -- msg_buffer, sizeof(msg_buffer)/sizeof(WCHAR)); -+ msg_buffer, ARRAY_SIZE(msg_buffer)); - - return msg_buffer; - } -@@ -301,7 +297,7 @@ static void print_full_information(void) - { - WCHAR hostnameW[MAX_HOSTNAME_LEN + 4]; - -- MultiByteToWideChar(CP_ACP, 0, info->HostName, -1, hostnameW, sizeof(hostnameW)/sizeof(hostnameW[0])); -+ MultiByteToWideChar(CP_ACP, 0, info->HostName, -1, hostnameW, ARRAY_SIZE(hostnameW)); - print_field(STRING_HOSTNAME, hostnameW); - - /* FIXME: Output primary DNS suffix. */ -@@ -348,22 +344,22 @@ static void print_full_information(void) - for (addr = p->FirstUnicastAddress; addr; addr = addr->Next) - { - if (addr->Address.lpSockaddr->sa_family == AF_INET && -- socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &addr->Address)) -+ socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &addr->Address)) - print_field(STRING_IP_ADDRESS, addr_buf); - else if (addr->Address.lpSockaddr->sa_family == AF_INET6 && -- socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &addr->Address)) -+ socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &addr->Address)) - print_field(STRING_IP6_ADDRESS, addr_buf); - /* FIXME: Output corresponding subnet mask. */ - } - - if (p->FirstGatewayAddress) - { -- if (socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &p->FirstGatewayAddress->Address)) -+ if (socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &p->FirstGatewayAddress->Address)) - print_field(STRING_DEFAULT_GATEWAY, addr_buf); - - for (gateway = p->FirstGatewayAddress->Next; gateway; gateway = gateway->Next) - { -- if (socket_address_to_string(addr_buf, sizeof(addr_buf)/sizeof(WCHAR), &gateway->Address)) -+ if (socket_address_to_string(addr_buf, ARRAY_SIZE(addr_buf), &gateway->Address)) - print_value(addr_buf); - } - } --- -2.14.4 - diff --git a/patches/ml-array_size/0033-msiexec-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0033-msiexec-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 144d6ad9..00000000 --- a/patches/ml-array_size/0033-msiexec-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 3c68cac0e75c47c9bc0c3e0265d37d42668af0c7 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 19:19:29 +0200 -Subject: [PATCH] msiexec: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/msiexec/msiexec.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/programs/msiexec/msiexec.c b/programs/msiexec/msiexec.c -index 5a471a2184..47cef7e0fa 100644 ---- a/programs/msiexec/msiexec.c -+++ b/programs/msiexec/msiexec.c -@@ -71,11 +71,11 @@ static void ShowUsage(int ExitCode) - - /* MsiGetFileVersion need the full path */ - *filename = 0; -- res = GetModuleFileNameW(hmsi, filename, sizeof(filename) / sizeof(filename[0])); -+ res = GetModuleFileNameW(hmsi, filename, ARRAY_SIZE(filename)); - if (!res) - WINE_ERR("GetModuleFileName failed: %d\n", GetLastError()); - -- len = sizeof(msiexec_version) / sizeof(msiexec_version[0]); -+ len = ARRAY_SIZE(msiexec_version); - *msiexec_version = 0; - res = MsiGetFileVersionW(filename, msiexec_version, &len, NULL, NULL); - if (res) --- -2.14.4 - diff --git a/patches/ml-array_size/0034-taskmgr-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0034-taskmgr-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 4eac1b88..00000000 --- a/patches/ml-array_size/0034-taskmgr-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,505 +0,0 @@ -From 18a03a7294b0cfb4155cd128eb0c45fb07352b1b Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 23 Jul 2018 19:38:53 +0200 -Subject: [PATCH] taskmgr: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/taskmgr/about.c | 2 +- - programs/taskmgr/affinity.c | 16 +++++++-------- - programs/taskmgr/applpage.c | 14 ++++++------- - programs/taskmgr/column.c | 50 ++++++++++++++++++++++----------------------- - programs/taskmgr/dbgchnl.c | 8 ++++---- - programs/taskmgr/debug.c | 16 +++++++-------- - programs/taskmgr/endproc.c | 14 ++++++------- - programs/taskmgr/perfdata.c | 2 +- - programs/taskmgr/perfpage.c | 4 ++-- - programs/taskmgr/priority.c | 10 ++++----- - programs/taskmgr/procpage.c | 4 ++-- - programs/taskmgr/taskmgr.c | 32 ++++++++++++++--------------- - programs/taskmgr/trayicon.c | 6 +++--- - 13 files changed, 88 insertions(+), 90 deletions(-) - -diff --git a/programs/taskmgr/about.c b/programs/taskmgr/about.c -index c625139645..1eff50f003 100644 ---- a/programs/taskmgr/about.c -+++ b/programs/taskmgr/about.c -@@ -36,7 +36,7 @@ void OnAbout(void) - WCHAR copy[] = {'B','r','i','a','n',' ', - 'P','a','l','m','e','r',' ', - '<','b','r','i','a','n','p','@','r','e','a','c','t','o','s','.','o','r','g','>',0}; -- LoadStringW( hInst, IDC_TASKMGR, appname, sizeof(appname)/sizeof(WCHAR) ); -+ LoadStringW( hInst, IDC_TASKMGR, appname, ARRAY_SIZE( appname )); - ShellAboutW( hMainWnd, appname, copy, - LoadImageA( hInst, (LPSTR)IDI_TASKMANAGER, IMAGE_ICON, 48, 48, LR_SHARED )); - } -diff --git a/programs/taskmgr/affinity.c b/programs/taskmgr/affinity.c -index c195a2d7ce..4e33f50d4f 100644 ---- a/programs/taskmgr/affinity.c -+++ b/programs/taskmgr/affinity.c -@@ -51,9 +51,9 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) - * the number of CPUs present in the system - */ - if (!GetProcessAffinityMask(hProcessAffinityHandle, &dwProcessAffinityMask, &dwSystemAffinityMask)) { -- GetLastErrorText(wstrErrorText, sizeof(wstrErrorText)/sizeof(WCHAR)); -+ GetLastErrorText(wstrErrorText, ARRAY_SIZE(wstrErrorText)); - EndDialog(hDlg, 0); -- LoadStringW(hInst, IDS_AFFINITY_UNABLE2ACCESS, wszUnable2Access, sizeof(wszUnable2Access)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_AFFINITY_UNABLE2ACCESS, wszUnable2Access, ARRAY_SIZE(wszUnable2Access)); - MessageBoxW(hMainWnd, wstrErrorText, wszUnable2Access, MB_OK|MB_ICONSTOP); - } - -@@ -291,8 +291,8 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) - if (!dwProcessAffinityMask) { - WCHAR wszErrorMsg[255]; - WCHAR wszErrorTitle[255]; -- LoadStringW(hInst, IDS_AFFINITY_ERROR_MESSAGE, wszErrorMsg, sizeof(wszErrorMsg)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_AFFINITY_ERROR_TITLE, wszErrorTitle, sizeof(wszErrorTitle)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_AFFINITY_ERROR_MESSAGE, wszErrorMsg, ARRAY_SIZE(wszErrorMsg)); -+ LoadStringW(hInst, IDS_AFFINITY_ERROR_TITLE, wszErrorTitle, ARRAY_SIZE(wszErrorTitle)); - MessageBoxW(hDlg, wszErrorMsg, wszErrorTitle, MB_OK|MB_ICONSTOP); - return TRUE; - } -@@ -301,9 +301,9 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) - * Try to set the process affinity - */ - if (!SetProcessAffinityMask(hProcessAffinityHandle, dwProcessAffinityMask)) { -- GetLastErrorText(wstrErrorText, sizeof(wstrErrorText)/sizeof(WCHAR)); -+ GetLastErrorText(wstrErrorText, ARRAY_SIZE(wstrErrorText)); - EndDialog(hDlg, LOWORD(wParam)); -- LoadStringW(hInst, IDS_AFFINITY_UNABLE2ACCESS, wszUnable2Access, sizeof(wszUnable2Access)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_AFFINITY_UNABLE2ACCESS, wszUnable2Access, ARRAY_SIZE(wszUnable2Access)); - MessageBoxW(hMainWnd, wstrErrorText, wszUnable2Access, MB_OK|MB_ICONSTOP); - } - -@@ -341,8 +341,8 @@ void ProcessPage_OnSetAffinity(void) - return; - hProcessAffinityHandle = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_SET_INFORMATION, FALSE, dwProcessId); - if (!hProcessAffinityHandle) { -- GetLastErrorText(wstrErrorText, sizeof(wstrErrorText)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_AFFINITY_UNABLE2ACCESS, wszUnable2Access, sizeof(wszUnable2Access)/sizeof(WCHAR)); -+ GetLastErrorText(wstrErrorText, ARRAY_SIZE(wstrErrorText)); -+ LoadStringW(hInst, IDS_AFFINITY_UNABLE2ACCESS, wszUnable2Access, ARRAY_SIZE(wszUnable2Access)); - MessageBoxW(hMainWnd, wstrErrorText, wszUnable2Access, MB_OK|MB_ICONSTOP); - return; - } -diff --git a/programs/taskmgr/applpage.c b/programs/taskmgr/applpage.c -index e2874b5943..ae881b530c 100644 ---- a/programs/taskmgr/applpage.c -+++ b/programs/taskmgr/applpage.c -@@ -249,10 +249,8 @@ static BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) - return TRUE; - - /* Check and see if this is a top-level app window */ -- if (!GetWindowTextW(hWnd, wszText, sizeof(wszText)/sizeof(WCHAR)) || -- !IsWindowVisible(hWnd) || -- (GetParent(hWnd) != NULL) || -- (GetWindow(hWnd, GW_OWNER) != NULL) || -+ if (!GetWindowTextW(hWnd, wszText, ARRAY_SIZE(wszText)) || !IsWindowVisible(hWnd) || -+ (GetParent(hWnd) != NULL) || (GetWindow(hWnd, GW_OWNER) != NULL) || - (GetWindowLongW(hWnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW)) - { - return TRUE; /* Skip this window */ -@@ -415,8 +413,8 @@ static void ApplicationPageOnNotify(WPARAM wParam, LPARAM lParam) - WCHAR wszNotResponding[255]; - WCHAR wszRunning[255]; - -- LoadStringW(hInst, IDS_APPLICATION_NOT_RESPONDING, wszNotResponding, sizeof(wszNotResponding)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_APPLICATION_RUNNING, wszRunning, sizeof(wszRunning)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_APPLICATION_NOT_RESPONDING, wszNotResponding, ARRAY_SIZE(wszNotResponding)); -+ LoadStringW(hInst, IDS_APPLICATION_RUNNING, wszRunning, ARRAY_SIZE(wszRunning)); - - pnmh = (LPNMHDR) lParam; - pnmdi = (LV_DISPINFOW*) lParam; -@@ -842,8 +840,8 @@ ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) - WCHAR wszTask[255]; - WCHAR wszStatus[255]; - -- LoadStringW(hInst, IDS_APPLICATION_TASK, wszTask, sizeof(wszTask)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_APPLICATION_STATUS, wszStatus, sizeof(wszStatus)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_APPLICATION_TASK, wszTask, ARRAY_SIZE(wszTask)); -+ LoadStringW(hInst, IDS_APPLICATION_STATUS, wszStatus, ARRAY_SIZE(wszStatus)); - - switch (message) { - case WM_INITDIALOG: -diff --git a/programs/taskmgr/column.c b/programs/taskmgr/column.c -index 35ba2a0b94..27c5926b5b 100644 ---- a/programs/taskmgr/column.c -+++ b/programs/taskmgr/column.c -@@ -63,31 +63,31 @@ static WCHAR wszIOOtherBytes[255]; - - static void load_column_headers(void) - { -- LoadStringW(hInst, IDS_IMAGENAME, wszImageName, sizeof(wszImageName)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_PID, wszPID, sizeof(wszPID)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_USERNAME, wszUserName, sizeof(wszUserName)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_SESSIONID, wszSessionID, sizeof(wszSessionID)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_CPUUSAGE, wszCPU, sizeof(wszCPU)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_CPUTIME, wszCPUTime, sizeof(wszCPUTime)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_MEMORYUSAGE, wszMemUsage, sizeof(wszMemUsage)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_PEAKMEMORYUSAGE, wszPeakMemUsage, sizeof(wszPeakMemUsage)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_MEMORYUSAGEDELTA, wszMemDelta, sizeof(wszMemDelta)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_PAGEFAULTS, wszPageFaults, sizeof(wszPageFaults)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_PAGEFAULTSDELTA, wszPFDelta, sizeof(wszPFDelta)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_VIRTUALMEMORYSIZE, wszVMSize, sizeof(wszVMSize)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_PAGEDPOOL, wszPagedPool, sizeof(wszPagedPool)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_NONPAGEDPOOL, wszNPPool, sizeof(wszNPPool)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_BASEPRIORITY, wszBasePri, sizeof(wszBasePri)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_HANDLECOUNT, wszHandles, sizeof(wszHandles)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_THREADCOUNT, wszThreads, sizeof(wszThreads)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_USEROBJECTS, wszUSERObjects, sizeof(wszUSERObjects)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_GDIOBJECTS, wszGDIObjects, sizeof(wszGDIObjects)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_IOREADS, wszIOReads, sizeof(wszIOReads)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_IOWRITES, wszIOWrites, sizeof(wszIOWrites)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_IOOTHER, wszIOOther, sizeof(wszIOOther)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_IOREADBYTES, wszIOReadBytes, sizeof(wszIOReadBytes)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_IOWRITEBYTES, wszIOWriteBytes, sizeof(wszIOWriteBytes)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_IOOTHERBYTES, wszIOOtherBytes, sizeof(wszIOOtherBytes)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_IMAGENAME, wszImageName, ARRAY_SIZE(wszImageName)); -+ LoadStringW(hInst, IDS_PID, wszPID, ARRAY_SIZE(wszPID)); -+ LoadStringW(hInst, IDS_USERNAME, wszUserName, ARRAY_SIZE(wszUserName)); -+ LoadStringW(hInst, IDS_SESSIONID, wszSessionID, ARRAY_SIZE(wszSessionID)); -+ LoadStringW(hInst, IDS_CPUUSAGE, wszCPU, ARRAY_SIZE(wszCPU)); -+ LoadStringW(hInst, IDS_CPUTIME, wszCPUTime, ARRAY_SIZE(wszCPUTime)); -+ LoadStringW(hInst, IDS_MEMORYUSAGE, wszMemUsage, ARRAY_SIZE(wszMemUsage)); -+ LoadStringW(hInst, IDS_PEAKMEMORYUSAGE, wszPeakMemUsage, ARRAY_SIZE(wszPeakMemUsage)); -+ LoadStringW(hInst, IDS_MEMORYUSAGEDELTA, wszMemDelta, ARRAY_SIZE(wszMemDelta)); -+ LoadStringW(hInst, IDS_PAGEFAULTS, wszPageFaults, ARRAY_SIZE(wszPageFaults)); -+ LoadStringW(hInst, IDS_PAGEFAULTSDELTA, wszPFDelta, ARRAY_SIZE(wszPFDelta)); -+ LoadStringW(hInst, IDS_VIRTUALMEMORYSIZE, wszVMSize, ARRAY_SIZE(wszVMSize)); -+ LoadStringW(hInst, IDS_PAGEDPOOL, wszPagedPool, ARRAY_SIZE(wszPagedPool)); -+ LoadStringW(hInst, IDS_NONPAGEDPOOL, wszNPPool, ARRAY_SIZE(wszNPPool)); -+ LoadStringW(hInst, IDS_BASEPRIORITY, wszBasePri, ARRAY_SIZE(wszBasePri)); -+ LoadStringW(hInst, IDS_HANDLECOUNT, wszHandles, ARRAY_SIZE(wszHandles)); -+ LoadStringW(hInst, IDS_THREADCOUNT, wszThreads, ARRAY_SIZE(wszThreads)); -+ LoadStringW(hInst, IDS_USEROBJECTS, wszUSERObjects, ARRAY_SIZE(wszUSERObjects)); -+ LoadStringW(hInst, IDS_GDIOBJECTS, wszGDIObjects, ARRAY_SIZE(wszGDIObjects)); -+ LoadStringW(hInst, IDS_IOREADS, wszIOReads, ARRAY_SIZE(wszIOReads)); -+ LoadStringW(hInst, IDS_IOWRITES, wszIOWrites, ARRAY_SIZE(wszIOWrites)); -+ LoadStringW(hInst, IDS_IOOTHER, wszIOOther, ARRAY_SIZE(wszIOOther)); -+ LoadStringW(hInst, IDS_IOREADBYTES, wszIOReadBytes, ARRAY_SIZE(wszIOReadBytes)); -+ LoadStringW(hInst, IDS_IOWRITEBYTES, wszIOWriteBytes, ARRAY_SIZE(wszIOWriteBytes)); -+ LoadStringW(hInst, IDS_IOOTHERBYTES, wszIOOtherBytes, ARRAY_SIZE(wszIOOtherBytes)); - } - - static int InsertColumn(int nCol, LPCWSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem) -diff --git a/programs/taskmgr/dbgchnl.c b/programs/taskmgr/dbgchnl.c -index 6e2dea0e14..7200eb476c 100644 ---- a/programs/taskmgr/dbgchnl.c -+++ b/programs/taskmgr/dbgchnl.c -@@ -113,7 +113,7 @@ static int list_channel_CB(HANDLE hProcess, void* addr, struct __wine_debug_ - int index; - HWND hChannelLV = user; - -- MultiByteToWideChar(CP_ACP, 0, channel->name, sizeof(channel->name), nameW, sizeof(nameW)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_ACP, 0, channel->name, sizeof(channel->name), nameW, ARRAY_SIZE(nameW)); - - lvitem.mask = LVIF_TEXT; - lvitem.pszText = nameW; -@@ -231,7 +231,7 @@ static void DebugChannels_OnCreate(HWND hwndDlg) - LVCOLUMNW lvc; - WCHAR debug_channelW[255]; - -- LoadStringW(hInst, IDS_DEBUG_CHANNEL, debug_channelW, sizeof(debug_channelW)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_DEBUG_CHANNEL, debug_channelW, ARRAY_SIZE(debug_channelW)); - - lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH; - lvc.fmt = LVCFMT_LEFT; -@@ -293,8 +293,8 @@ static void DebugChannels_OnNotify(HWND hDlg, LPARAM lParam) - unsigned bitmask = 1 << (lhti.iSubItem - 1); - struct cce_user user; - -- ListView_GetItemTextA(hChannelLV, lhti.iItem, 0, name, sizeof(name) / sizeof(name[0])); -- ListView_GetItemTextW(hChannelLV, lhti.iItem, lhti.iSubItem, val, sizeof(val) / sizeof(val[0])); -+ ListView_GetItemTextA(hChannelLV, lhti.iItem, 0, name, ARRAY_SIZE(name)); -+ ListView_GetItemTextW(hChannelLV, lhti.iItem, lhti.iSubItem, val, ARRAY_SIZE(val)); - user.name = name; - user.value = (val[0] == 'x') ? 0 : bitmask; - user.mask = bitmask; -diff --git a/programs/taskmgr/debug.c b/programs/taskmgr/debug.c -index 10fa912feb..ceb27d11f9 100644 ---- a/programs/taskmgr/debug.c -+++ b/programs/taskmgr/debug.c -@@ -57,9 +57,9 @@ void ProcessPage_OnDebug(void) - 'A','e','D','e','b','u','g',0}; - static const WCHAR wszDebugger[] = {'D','e','b','u','g','g','e','r',0}; - -- LoadStringW(hInst, IDS_WARNING_TITLE, wszWarnTitle, sizeof(wszWarnTitle)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_DEBUG_UNABLE2DEBUG, wszUnable2Debug, sizeof(wszUnable2Debug)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_DEBUG_MESSAGE, wszWarnMsg, sizeof(wszWarnMsg)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_WARNING_TITLE, wszWarnTitle, ARRAY_SIZE(wszWarnTitle)); -+ LoadStringW(hInst, IDS_DEBUG_UNABLE2DEBUG, wszUnable2Debug, ARRAY_SIZE(wszUnable2Debug)); -+ LoadStringW(hInst, IDS_DEBUG_MESSAGE, wszWarnMsg, ARRAY_SIZE(wszWarnMsg)); - - Count = SendMessageW(hProcessPageListCtrl, LVM_GETITEMCOUNT, 0, 0); - for (Index=0; Index -Date: Tue, 24 Jul 2018 15:35:50 +0200 -Subject: [PATCH] uninstaller: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/uninstaller/main.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/programs/uninstaller/main.c b/programs/uninstaller/main.c -index 736593e27d..142d3d16f7 100644 ---- a/programs/uninstaller/main.c -+++ b/programs/uninstaller/main.c -@@ -102,7 +102,7 @@ static void WINAPIV output_message(unsigned int id, ...) - WCHAR fmt[1024]; - __ms_va_list va_args; - -- if (!LoadStringW(GetModuleHandleW(NULL), id, fmt, sizeof(fmt)/sizeof(fmt[0]))) -+ if (!LoadStringW(GetModuleHandleW(NULL), id, fmt, ARRAY_SIZE(fmt))) - { - WINE_FIXME("LoadString failed with %d\n", GetLastError()); - return; -@@ -342,8 +342,8 @@ static void UninstallProgram(void) - WCHAR sUninstallFailed[MAX_STRING_LEN]; - HINSTANCE hInst = GetModuleHandleW(0); - -- LoadStringW(hInst, IDS_APPNAME, sAppName, sizeof(sAppName)/sizeof(WCHAR)); -- LoadStringW(hInst, IDS_UNINSTALLFAILED, sUninstallFailed, sizeof(sUninstallFailed)/sizeof(WCHAR)); -+ LoadStringW(hInst, IDS_APPNAME, sAppName, ARRAY_SIZE(sAppName)); -+ LoadStringW(hInst, IDS_UNINSTALLFAILED, sUninstallFailed, ARRAY_SIZE(sUninstallFailed)); - wsprintfW(errormsg, sUninstallFailed, entries[i].command); - if(MessageBoxW(0, errormsg, sAppName, MB_YESNO | MB_ICONQUESTION)==IDYES) - { --- -2.14.4 - diff --git a/patches/ml-array_size/0036-wineboot-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0036-wineboot-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 92eddc89..00000000 --- a/patches/ml-array_size/0036-wineboot-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,53 +0,0 @@ -From efcc9e39250c4a511faf265b81da85e41a466b1d Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Tue, 24 Jul 2018 16:51:27 +0200 -Subject: [PATCH] wineboot: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/wineboot/wineboot.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c -index 2a65b9e8b3..17ef9cbcca 100644 ---- a/programs/wineboot/wineboot.c -+++ b/programs/wineboot/wineboot.c -@@ -401,7 +401,7 @@ static void create_volatile_environment_registry_key(void) - set_reg_value( hkey, HomeDriveW, path ); - } - -- size = sizeof(path)/sizeof(path[0]); -+ size = ARRAY_SIZE(path); - if (GetUserNameW( path, &size )) set_reg_value( hkey, UserNameW, path ); - - set_reg_value( hkey, HomeShareW, EmptyW ); -@@ -410,7 +410,7 @@ static void create_volatile_environment_registry_key(void) - if (SUCCEEDED(hr)) - set_reg_value( hkey, LocalAppDataW, path ); - -- size = (sizeof(computername)/sizeof(WCHAR)) - 2; -+ size = ARRAY_SIZE(computername) - 2; - if (GetComputerNameW(&computername[2], &size)) - { - set_reg_value( hkey, UserDomainW, &computername[2] ); -@@ -433,7 +433,7 @@ static BOOL wininit(void) - static const WCHAR wininitbakW[] = {'w','i','n','i','n','i','t','.','b','a','k',0}; - WCHAR initial_buffer[1024]; - WCHAR *str, *buffer = initial_buffer; -- DWORD size = sizeof(initial_buffer)/sizeof(WCHAR); -+ DWORD size = ARRAY_SIZE(initial_buffer); - DWORD res; - - for (;;) -@@ -948,7 +948,7 @@ static HANDLE start_rundll32( const char *inf_path, BOOL wow64 ) - static const WCHAR wowinstall[] = {' ','W','o','w','6','4','I','n','s','t','a','l','l',0}; - static const WCHAR inf[] = {' ','1','2','8',' ','\\','\\','?','\\','u','n','i','x',0 }; - -- WCHAR app[MAX_PATH + sizeof(rundll)/sizeof(WCHAR)]; -+ WCHAR app[MAX_PATH + ARRAY_SIZE(rundll)]; - STARTUPINFOW si; - PROCESS_INFORMATION pi; - WCHAR *buffer; --- -2.14.4 - diff --git a/patches/ml-array_size/0037-wordpad-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0037-wordpad-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 812cd0a6..00000000 --- a/patches/ml-array_size/0037-wordpad-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 3574168c07cb94f4bb391cac1bda6b3ea63afc4a Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Tue, 24 Jul 2018 17:28:23 +0200 -Subject: [PATCH] wordpad: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/wordpad/wordpad.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c -index 904867f617..1ced34c7ff 100644 ---- a/programs/wordpad/wordpad.c -+++ b/programs/wordpad/wordpad.c -@@ -250,7 +250,7 @@ static void set_caption(LPCWSTR wszNewFileName) - memcpy(wszCaption, wszNewFileName, lstrlenW(wszNewFileName)*sizeof(WCHAR)); - length += lstrlenW(wszNewFileName); - memcpy(wszCaption + length, wszSeparator, sizeof(wszSeparator)); -- length += sizeof(wszSeparator) / sizeof(WCHAR); -+ length += ARRAY_SIZE(wszSeparator); - memcpy(wszCaption + length, wszAppTitle, sizeof(wszAppTitle)); - - SetWindowTextW(hMainWnd, wszCaption); -@@ -398,7 +398,7 @@ static void populate_size_list(HWND hSizeListWnd) - GetDeviceCaps(hdc, LOGPIXELSY))); - } else - { -- for(i = 0; i < sizeof(choices)/sizeof(choices[0]); i++) -+ for(i = 0; i < ARRAY_SIZE(choices); i++) - add_size(hSizeListWnd, choices[i]); - } - -@@ -1124,7 +1124,7 @@ static void dialog_viewproperties(void) - psp[0].lParam = reg_formatindex(SF_TEXT); - psp[0].pfnCallback = NULL; - psp[0].pszTitle = MAKEINTRESOURCEW(STRING_VIEWPROPS_TEXT); -- for(i = 1; i < sizeof(psp)/sizeof(psp[0]); i++) -+ for(i = 1; i < ARRAY_SIZE(psp); i++) - { - psp[i].dwSize = psp[0].dwSize; - psp[i].dwFlags = psp[0].dwFlags; -@@ -1141,7 +1141,7 @@ static void dialog_viewproperties(void) - psh.hwndParent = hMainWnd; - psh.hInstance = hInstance; - psh.pszCaption = MAKEINTRESOURCEW(STRING_VIEWPROPS_TITLE); -- psh.nPages = sizeof(psp)/sizeof(psp[0]); -+ psh.nPages = ARRAY_SIZE(psp); - U3(psh).ppsp = ppsp; - U(psh).pszIcon = MAKEINTRESOURCEW(IDI_WORDPAD); - -@@ -1235,7 +1235,7 @@ static LRESULT handle_findmsg(LPFINDREPLACEW pFr) - if (pFr->lpstrFindWhat != custom_data->findBuffer) - { - lstrcpynW(custom_data->findBuffer, pFr->lpstrFindWhat, -- sizeof(custom_data->findBuffer) / sizeof(WCHAR)); -+ ARRAY_SIZE(custom_data->findBuffer)); - pFr->lpstrFindWhat = custom_data->findBuffer; - } - -@@ -1885,8 +1885,8 @@ static LRESULT OnCreate( HWND hWnd ) - font = (HFONT)SendMessageW(hFontListWnd, WM_GETFONT, 0, 0); - hdc = GetDC(hFontListWnd); - font = SelectObject(hdc, font); -- GetTextExtentPointW(hdc, font_text, sizeof(font_text) / sizeof(font_text[0]) - 1, &name_sz); -- GetTextExtentPointW(hdc, size_text, sizeof(size_text) / sizeof(size_text[0]) - 1, &size_sz); -+ GetTextExtentPointW(hdc, font_text, ARRAY_SIZE(font_text) - 1, &name_sz); -+ GetTextExtentPointW(hdc, size_text, ARRAY_SIZE(size_text) - 1, &size_sz); - font = SelectObject(hdc, font); - ReleaseDC(hFontListWnd, hdc); - rbb.hwndChild = hFontListWnd; --- -2.14.4 - diff --git a/patches/ml-array_size/0038-winetest-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0038-winetest-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 28b3c58c..00000000 --- a/patches/ml-array_size/0038-winetest-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,49 +0,0 @@ -From d3b1d2f5c710ffbb778ae739b3068eb982d0b901 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Tue, 24 Jul 2018 18:43:24 +0200 -Subject: [PATCH] winetest: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - programs/winetest/gui.c | 2 +- - programs/winetest/main.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/programs/winetest/gui.c b/programs/winetest/gui.c -index 2948d7e1ad..bda00f3707 100644 ---- a/programs/winetest/gui.c -+++ b/programs/winetest/gui.c -@@ -547,7 +547,7 @@ report (enum report_type t, ...) - } - - va_start (ap, t); -- if (t < sizeof text_funcs / sizeof text_funcs[0]) ret = funcs[t](ap); -+ if (t < ARRAY_SIZE(text_funcs)) ret = funcs[t](ap); - else report (R_WARNING, "unimplemented report type: %d", t); - va_end (ap); - return ret; -diff --git a/programs/winetest/main.c b/programs/winetest/main.c -index b3c3c1c850..56044095f3 100644 ---- a/programs/winetest/main.c -+++ b/programs/winetest/main.c -@@ -461,7 +461,7 @@ static void print_language(void) - if (pGetSystemPreferredUILanguages && !running_under_wine()) - { - WCHAR langW[32]; -- ULONG num, size = sizeof(langW)/sizeof(langW[0]); -+ ULONG num, size = ARRAY_SIZE(langW); - if (pGetSystemPreferredUILanguages(MUI_LANGUAGE_ID, &num, langW, &size)) - { - char lang[32], *p = lang; -@@ -1263,7 +1263,7 @@ int main( int argc, char *argv[] ) - exit (0); - } - else if ((argv[i][0] != '-' && argv[i][0] != '/') || argv[i][2]) { -- if (nb_filters == sizeof(filters)/sizeof(filters[0])) -+ if (nb_filters == ARRAY_SIZE(filters)) - { - report (R_ERROR, "Too many test filters specified"); - exit (2); --- -2.14.4 - diff --git a/patches/ml-array_size/0039-mountmgr.sys-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0039-mountmgr.sys-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index bdd415de..00000000 --- a/patches/ml-array_size/0039-mountmgr.sys-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 34a20bf87deab524a00c1be9d60a6f78306359b4 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Tue, 24 Jul 2018 18:56:16 +0200 -Subject: [PATCH] mountmgr.sys: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/mountmgr.sys/device.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index 1437bfc853..f96b05e4da 100644 ---- a/dlls/mountmgr.sys/device.c -+++ b/dlls/mountmgr.sys/device.c -@@ -658,7 +658,7 @@ static void create_drive_devices(void) - if (!RegQueryValueExW( drives_key, driveW, NULL, &type, (BYTE *)buffer, &size ) && - type == REG_SZ) - { -- for (j = 0; j < sizeof(drive_types)/sizeof(drive_types[0]); j++) -+ for (j = 0; j < ARRAY_SIZE(drive_types); j++) - if (drive_types[j][0] && !strcmpiW( buffer, drive_types[j] )) - { - drive_type = j; -@@ -1123,7 +1123,7 @@ static void create_port_devices( DRIVER_OBJECT *driver ) - p[1] = 'o'; - p[2] = 'm'; - search_paths = serial_search_paths; -- num_search_paths = sizeof(serial_search_paths)/sizeof(serial_search_paths[0]); -+ num_search_paths = ARRAY_SIZE(serial_search_paths); - windows_ports_key_name = serialcomm_keyW; - } - else -@@ -1132,7 +1132,7 @@ static void create_port_devices( DRIVER_OBJECT *driver ) - p[1] = 'p'; - p[2] = 't'; - search_paths = parallel_search_paths; -- num_search_paths = sizeof(parallel_search_paths)/sizeof(parallel_search_paths[0]); -+ num_search_paths = ARRAY_SIZE(parallel_search_paths); - windows_ports_key_name = parallel_ports_keyW; - } - p += 3; --- -2.14.4 - diff --git a/patches/ml-array_size/0040-mpr-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0040-mpr-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 23c96c2f..00000000 --- a/patches/ml-array_size/0040-mpr-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,38 +0,0 @@ -From b8b021f3724c4a5705cde344a806ab30218670f7 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 09:06:44 +0200 -Subject: [PATCH] mpr: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/mpr/wnet.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/dlls/mpr/wnet.c b/dlls/mpr/wnet.c -index 78759ecb15..ad4f1ddb65 100644 ---- a/dlls/mpr/wnet.c -+++ b/dlls/mpr/wnet.c -@@ -130,9 +130,8 @@ static void _tryLoadProvider(PCWSTR provider) - HKEY hKey; - - TRACE("%s\n", debugstr_w(provider)); -- snprintfW(serviceName, sizeof(serviceName) / sizeof(WCHAR), serviceFmt, -- servicePrefix, provider); -- serviceName[sizeof(serviceName) / sizeof(WCHAR) - 1] = '\0'; -+ snprintfW(serviceName, ARRAY_SIZE(serviceName), serviceFmt, servicePrefix, provider); -+ serviceName[ARRAY_SIZE(serviceName) - 1] = '\0'; - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, serviceName, 0, KEY_READ, &hKey) == - ERROR_SUCCESS) - { -@@ -2127,7 +2126,7 @@ DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName, - if (wideLocalName) - { - WCHAR wideRemoteStatic[MAX_PATH]; -- DWORD wideRemoteSize = sizeof(wideRemoteStatic) / sizeof(WCHAR); -+ DWORD wideRemoteSize = ARRAY_SIZE(wideRemoteStatic); - - MultiByteToWideChar(CP_ACP, 0, lpLocalName, -1, wideLocalName, len); - --- -2.14.4 - diff --git a/patches/ml-array_size/0041-msacm32-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0041-msacm32-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 3ff286db..00000000 --- a/patches/ml-array_size/0041-msacm32-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,172 +0,0 @@ -From 23b2b3e7e76161f3780551a9de77f8ccc5815e33 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 09:21:17 +0200 -Subject: [PATCH] msacm32: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/msacm32/filter.c | 4 ++-- - dlls/msacm32/format.c | 18 +++++++++--------- - dlls/msacm32/internal.c | 14 +++++++------- - dlls/msacm32/pcmconverter.c | 15 +++++++-------- - dlls/msacm32/tests/msacm.c | 2 +- - 5 files changed, 26 insertions(+), 27 deletions(-) - -diff --git a/dlls/msacm32/filter.c b/dlls/msacm32/filter.c -index 53db82777d..8d5abced9d 100644 ---- a/dlls/msacm32/filter.c -+++ b/dlls/msacm32/filter.c -@@ -361,8 +361,8 @@ MMRESULT WINAPI acmFilterTagDetailsW(HACMDRIVER had, PACMFILTERTAGDETAILSW paftd - - if (mmr == MMSYSERR_NOERROR && - paftd->dwFilterTag == WAVE_FORMAT_PCM && paftd->szFilterTag[0] == 0) -- MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFilterTag, -- sizeof(paftd->szFilterTag)/sizeof(WCHAR) ); -+ MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFilterTag, -+ ARRAY_SIZE(paftd->szFilterTag)); - - return mmr; - } -diff --git a/dlls/msacm32/format.c b/dlls/msacm32/format.c -index b3d2900393..fcc0d9b1c6 100644 ---- a/dlls/msacm32/format.c -+++ b/dlls/msacm32/format.c -@@ -503,9 +503,9 @@ MMRESULT WINAPI acmFormatDetailsW(HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD - wsprintfW(pafd->szFormat + lstrlenW(pafd->szFormat), fmt2, - pafd->pwfx->wBitsPerSample); - } -- MultiByteToWideChar( CP_ACP, 0, (pafd->pwfx->nChannels == 1) ? "; Mono" : "; Stereo", -1, -- pafd->szFormat + strlenW(pafd->szFormat), -- sizeof(pafd->szFormat)/sizeof(WCHAR) - strlenW(pafd->szFormat) ); -+ MultiByteToWideChar(CP_ACP, 0, (pafd->pwfx->nChannels == 1) ? "; Mono" : "; Stereo", -1, -+ pafd->szFormat + strlenW(pafd->szFormat), -+ ARRAY_SIZE(pafd->szFormat) - strlenW(pafd->szFormat)); - } - - TRACE("=> %d\n", mmr); -@@ -929,8 +929,8 @@ MMRESULT WINAPI acmFormatTagDetailsW(HACMDRIVER had, PACMFORMATTAGDETAILSW paftd - - if (mmr == MMSYSERR_NOERROR && - paftd->dwFormatTag == WAVE_FORMAT_PCM && paftd->szFormatTag[0] == 0) -- MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFormatTag, -- sizeof(paftd->szFormatTag)/sizeof(WCHAR) ); -+ MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFormatTag, -+ ARRAY_SIZE(paftd->szFormatTag)); - - return mmr; - } -@@ -1036,8 +1036,8 @@ MMRESULT WINAPI acmFormatTagEnumW(HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, - (LPARAM)paftd, ACM_FORMATTAGDETAILSF_INDEX) == MMSYSERR_NOERROR) { - if (paftd->dwFormatTag == WAVE_FORMAT_PCM) { - if (paftd->szFormatTag[0] == 0) -- MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFormatTag, -- sizeof(paftd->szFormatTag)/sizeof(WCHAR) ); -+ MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFormatTag, -+ ARRAY_SIZE(paftd->szFormatTag)); - /* (WS) I'm preserving this PCM hack since it seems to be - * correct. Please notice this block was borrowed from - * below. -@@ -1062,8 +1062,8 @@ MMRESULT WINAPI acmFormatTagEnumW(HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, - (LPARAM)paftd, ACM_FORMATTAGDETAILSF_INDEX) == MMSYSERR_NOERROR) { - if (paftd->dwFormatTag == WAVE_FORMAT_PCM) { - if (paftd->szFormatTag[0] == 0) -- MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFormatTag, -- sizeof(paftd->szFormatTag)/sizeof(WCHAR) ); -+ MultiByteToWideChar(CP_ACP, 0, "PCM", -1, paftd->szFormatTag, -+ ARRAY_SIZE(paftd->szFormatTag)); - /* FIXME (EPP): I'm not sure this is the correct - * algorithm (should make more sense to apply the same - * for all already loaded formats, but this will do -diff --git a/dlls/msacm32/internal.c b/dlls/msacm32/internal.c -index 7bafcaad5e..aad071e8ad 100644 ---- a/dlls/msacm32/internal.c -+++ b/dlls/msacm32/internal.c -@@ -72,7 +72,7 @@ PWINE_ACMDRIVERID MSACM_RegisterDriverFromRegistry(LPCWSTR pszRegEntry) - /* The requested registry entry must have the format msacm.XXXXX in order to - be recognized in any future sessions of msacm - */ -- if (0 == strncmpiW(pszRegEntry, msacmW, sizeof(msacmW)/sizeof(WCHAR))) { -+ if (0 == strncmpiW(pszRegEntry, msacmW, ARRAY_SIZE(msacmW))) { - lRet = RegOpenKeyExW(HKEY_LOCAL_MACHINE, drvkey, 0, KEY_QUERY_VALUE, &hKey); - if (lRet != ERROR_SUCCESS) { - WARN("unable to open registry key - 0x%08x\n", lRet); -@@ -373,31 +373,31 @@ void MSACM_RegisterAllDrivers(void) - if (lRet == ERROR_SUCCESS) { - RegQueryInfoKeyW( hKey, 0, 0, 0, &cnt, 0, 0, 0, 0, 0, 0, 0); - for (i = 0; i < cnt; i++) { -- bufLen = sizeof(buf) / sizeof(buf[0]); -+ bufLen = ARRAY_SIZE(buf); - lRet = RegEnumKeyExW(hKey, i, buf, &bufLen, 0, 0, 0, &lastWrite); - if (lRet != ERROR_SUCCESS) continue; -- if (strncmpiW(buf, msacmW, sizeof(msacmW)/sizeof(msacmW[0]))) continue; -+ if (strncmpiW(buf, msacmW, ARRAY_SIZE(msacmW))) continue; - if (!(name = strchrW(buf, '='))) continue; - *name = 0; - MSACM_RegisterDriver(buf, name + 1, 0); - } - i = 0; -- cnt = sizeof(valname) / sizeof(*valname); -+ cnt = ARRAY_SIZE(valname); - bufLen = sizeof(buf); - while(RegEnumValueW(hKey, i, valname, &cnt, 0, - &type, (BYTE*)buf, &bufLen) == ERROR_SUCCESS){ -- if(!strncmpiW(valname, msacmW, sizeof(msacmW) / sizeof(*msacmW))) -+ if (!strncmpiW(valname, msacmW, ARRAY_SIZE(msacmW))) - MSACM_RegisterDriver(valname, buf, 0); - ++i; - } - RegCloseKey( hKey ); - } - -- if (GetPrivateProfileSectionW(drv32, buf, sizeof(buf)/sizeof(buf[0]), sys)) -+ if (GetPrivateProfileSectionW(drv32, buf, ARRAY_SIZE(buf), sys)) - { - for(s = buf; *s; s += strlenW(s) + 1) - { -- if (strncmpiW(s, msacmW, sizeof(msacmW)/sizeof(msacmW[0]))) continue; -+ if (strncmpiW(s, msacmW, ARRAY_SIZE(msacmW))) continue; - if (!(name = strchrW(s, '='))) continue; - *name = 0; - MSACM_RegisterDriver(s, name + 1, 0); -diff --git a/dlls/msacm32/pcmconverter.c b/dlls/msacm32/pcmconverter.c -index f26f125fcd..dc10f11e7a 100644 ---- a/dlls/msacm32/pcmconverter.c -+++ b/dlls/msacm32/pcmconverter.c -@@ -984,14 +984,13 @@ static LRESULT PCM_DriverDetails(PACMDRIVERDETAILSW add) - add->cFormatTags = 1; - add->cFilterTags = 0; - add->hicon = NULL; -- MultiByteToWideChar( CP_ACP, 0, "MS-PCM", -1, -- add->szShortName, sizeof(add->szShortName)/sizeof(WCHAR) ); -- MultiByteToWideChar( CP_ACP, 0, "Wine PCM converter", -1, -- add->szLongName, sizeof(add->szLongName)/sizeof(WCHAR) ); -- MultiByteToWideChar( CP_ACP, 0, "Brought to you by the Wine team...", -1, -- add->szCopyright, sizeof(add->szCopyright)/sizeof(WCHAR) ); -- MultiByteToWideChar( CP_ACP, 0, "Refer to LICENSE file", -1, -- add->szLicensing, sizeof(add->szLicensing)/sizeof(WCHAR) ); -+ MultiByteToWideChar(CP_ACP, 0, "MS-PCM", -1, add->szShortName, ARRAY_SIZE(add->szShortName)); -+ MultiByteToWideChar(CP_ACP, 0, "Wine PCM converter", -1, -+ add->szLongName, ARRAY_SIZE(add->szLongName)); -+ MultiByteToWideChar(CP_ACP, 0, "Brought to you by the Wine team...", -1, -+ add->szCopyright, ARRAY_SIZE(add->szCopyright)); -+ MultiByteToWideChar(CP_ACP, 0, "Refer to LICENSE file", -1, -+ add->szLicensing, ARRAY_SIZE(add->szLicensing) ); - add->szFeatures[0] = 0; - - return MMSYSERR_NOERROR; -diff --git a/dlls/msacm32/tests/msacm.c b/dlls/msacm32/tests/msacm.c -index 959ec7f0c0..180639fa54 100644 ---- a/dlls/msacm32/tests/msacm.c -+++ b/dlls/msacm32/tests/msacm.c -@@ -1106,7 +1106,7 @@ static void test_convert(void) - MMRESULT mmr; - unsigned i; - -- for (i = 0; i < sizeof(expected_output)/sizeof(struct stream_output); i++) -+ for (i = 0; i < ARRAY_SIZE(expected_output); i++) - { - mmr = acmStreamOpen(&has, NULL, (WAVEFORMATEX *)&expected_output[i].src, (WAVEFORMATEX *)&expected_output[i].dst, NULL, 0, 0, 0); - ok(mmr == MMSYSERR_NOERROR, "#%d: open failed: 0x%x\n", i, mmr); --- -2.14.4 - diff --git a/patches/ml-array_size/0042-msrle32-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0042-msrle32-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 0b08159c..00000000 --- a/patches/ml-array_size/0042-msrle32-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,39 +0,0 @@ -From a14a92dc9859ab9ae40b81a103f5efa528c4efc6 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 18:37:36 +0200 -Subject: [PATCH] msrle32: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/msrle32/msrle32.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/dlls/msrle32/msrle32.c b/dlls/msrle32/msrle32.c -index 66880408d4..5bcfa86f97 100644 ---- a/dlls/msrle32/msrle32.c -+++ b/dlls/msrle32/msrle32.c -@@ -1183,8 +1183,8 @@ static LRESULT GetInfo(const CodecInfo *pi, ICINFO *icinfo, DWORD dwSize) - icinfo->dwVersion = ICVERSION; - icinfo->dwVersionICM = ICVERSION; - -- LoadStringW(MSRLE32_hModule, IDS_NAME, icinfo->szName, sizeof(icinfo->szName)/sizeof(WCHAR)); -- LoadStringW(MSRLE32_hModule, IDS_DESCRIPTION, icinfo->szDescription, sizeof(icinfo->szDescription)/sizeof(WCHAR)); -+ LoadStringW(MSRLE32_hModule, IDS_NAME, icinfo->szName, ARRAY_SIZE(icinfo->szName)); -+ LoadStringW(MSRLE32_hModule, IDS_DESCRIPTION, icinfo->szDescription, ARRAY_SIZE(icinfo->szDescription)); - - return sizeof(ICINFO); - } -@@ -1206,8 +1206,8 @@ static LRESULT About(CodecInfo *pi, HWND hWnd) - /* pre-condition */ - assert(MSRLE32_hModule != 0); - -- LoadStringW(MSRLE32_hModule, IDS_NAME, szTitle, sizeof(szTitle)/sizeof(szTitle[0])); -- LoadStringW(MSRLE32_hModule, IDS_ABOUT, szAbout, sizeof(szAbout)/sizeof(szAbout[0])); -+ LoadStringW(MSRLE32_hModule, IDS_NAME, szTitle, ARRAY_SIZE(szTitle)); -+ LoadStringW(MSRLE32_hModule, IDS_ABOUT, szAbout, ARRAY_SIZE(szAbout)); - - MessageBoxW(hWnd, szAbout, szTitle, MB_OK|MB_ICONINFORMATION); - --- -2.14.4 - diff --git a/patches/ml-array_size/0043-msvcrt-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0043-msvcrt-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 0a66b6c1..00000000 --- a/patches/ml-array_size/0043-msvcrt-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,291 +0,0 @@ -From eb0325daf599408d5d606bade6fd47ac7c78d3cb Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 18:44:28 +0200 -Subject: [PATCH] msvcrt: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/msvcrt/console.c | 2 +- - dlls/msvcrt/ctype.c | 2 +- - dlls/msvcrt/errno.c | 2 +- - dlls/msvcrt/except.c | 3 +-- - dlls/msvcrt/exit.c | 3 +-- - dlls/msvcrt/file.c | 20 ++++++++++---------- - dlls/msvcrt/locale.c | 12 ++++++------ - dlls/msvcrt/printf.h | 4 ++-- - dlls/msvcrt/process.c | 2 +- - dlls/msvcrt/scheduler.c | 8 ++++---- - dlls/msvcrt/wcs.c | 2 +- - 11 files changed, 29 insertions(+), 31 deletions(-) - -diff --git a/dlls/msvcrt/console.c b/dlls/msvcrt/console.c -index 75e95ebcfc..3a2301ef18 100644 ---- a/dlls/msvcrt/console.c -+++ b/dlls/msvcrt/console.c -@@ -124,7 +124,7 @@ static BOOL handle_enhanced_keys(INPUT_RECORD *ir, unsigned char *ch1, unsigned - { - int i; - -- for (i = 0; i < sizeof(enh_map) / sizeof(enh_map[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(enh_map); i++) - { - if (ir->Event.KeyEvent.wVirtualScanCode == enh_map[i].vk) - { -diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c -index 2c39a56686..758411a7a4 100644 ---- a/dlls/msvcrt/ctype.c -+++ b/dlls/msvcrt/ctype.c -@@ -493,7 +493,7 @@ unsigned short __cdecl wctype(const char *property) - }; - unsigned int i; - -- for(i=0; iExceptionRecord->ExceptionCode) -diff --git a/dlls/msvcrt/exit.c b/dlls/msvcrt/exit.c -index b84c50adbc..51bc6f07e1 100644 ---- a/dlls/msvcrt/exit.c -+++ b/dlls/msvcrt/exit.c -@@ -209,8 +209,7 @@ static void DoMessageBoxW(const MSVCRT_wchar_t *lead, const MSVCRT_wchar_t *mess - MSVCRT_wchar_t text[2048]; - INT ret; - -- MSVCRT__snwprintf(text, sizeof(text)/sizeof(text[0]), message_format, -- lead, MSVCRT__wpgmptr, message); -+ MSVCRT__snwprintf(text, ARRAY_SIZE(text), message_format, lead, MSVCRT__wpgmptr, message); - - msgbox.cbSize = sizeof(msgbox); - msgbox.hwndOwner = GetActiveWindow(); -diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c -index 2c05f25c6a..224e6eae0c 100644 ---- a/dlls/msvcrt/file.c -+++ b/dlls/msvcrt/file.c -@@ -1223,7 +1223,7 @@ void msvcrt_free_io(void) - MSVCRT__flushall(); - MSVCRT__fcloseall(); - -- for(i=0; istr.str)/sizeof(cur->str.str[0]); i++) -+ for(i=0; istr.str); i++) - size += strlen(cur->str.str[i])+1; - - ret = MSVCRT_malloc(size); -@@ -604,7 +604,7 @@ void* CDECL _Gettnames(void) - memcpy(ret, cur, size); - - size = 0; -- for(i=0; istr.str)/sizeof(cur->str.str[0]); i++) { -+ for(i=0; istr.str); i++) { - ret->str.str[i] = &ret->data[size]; - size += strlen(&ret->data[size])+1; - } -@@ -1605,7 +1605,7 @@ static MSVCRT_pthreadlocinfo create_locinfo(int category, - - size = sizeof(MSVCRT___lc_time_data); - lcid_tmp = lcid[MSVCRT_LC_TIME] ? lcid[MSVCRT_LC_TIME] : MAKELCID(LANG_ENGLISH, SORT_DEFAULT); -- for(i=0; ilc_time_curr->str.str[i] = &locinfo->lc_time_curr->data[ret]; - if(time_data[i]==LOCALE_SSHORTDATE && !lcid[MSVCRT_LC_TIME]) { - memcpy(&locinfo->lc_time_curr->data[ret], cloc_short_date, sizeof(cloc_short_date)); -@@ -1653,7 +1653,7 @@ static MSVCRT_pthreadlocinfo create_locinfo(int category, - &locinfo->lc_time_curr->data[ret], size-ret); - } - } -- for(i=0; ilc_time_curr->wstr.wstr[i] = (MSVCRT_wchar_t*)&locinfo->lc_time_curr->data[ret]; - if(time_data[i]==LOCALE_SSHORTDATE && !lcid[MSVCRT_LC_TIME]) { - memcpy(&locinfo->lc_time_curr->data[ret], cloc_short_dateW, sizeof(cloc_short_dateW)); -diff --git a/dlls/msvcrt/printf.h b/dlls/msvcrt/printf.h -index ee8120e149..077dafa550 100644 ---- a/dlls/msvcrt/printf.h -+++ b/dlls/msvcrt/printf.h -@@ -518,7 +518,7 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API - flags.PadZero = '0'; - i = flags.Precision; - flags.Precision = 2*sizeof(void*); -- FUNC_NAME(pf_integer_conv)(buf, sizeof(buf)/sizeof(APICHAR), &flags, -+ FUNC_NAME(pf_integer_conv)(buf, ARRAY_SIZE(buf), &flags, - (ULONG_PTR)pf_args(args_ctx, pos, VT_PTR, valist).get_ptr); - flags.PadZero = 0; - flags.Precision = i; -@@ -549,7 +549,7 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API - flags.Precision = flags.FieldLength - 2; - - max_len = (flags.FieldLength>flags.Precision ? flags.FieldLength : flags.Precision) + 10; -- if(max_len > sizeof(buf)/sizeof(APICHAR)) -+ if(max_len > ARRAY_SIZE(buf)) - tmp = HeapAlloc(GetProcessHeap(), 0, max_len); - if(!tmp) - return -1; -diff --git a/dlls/msvcrt/process.c b/dlls/msvcrt/process.c -index fac3bd4d20..9a192e7e9b 100644 ---- a/dlls/msvcrt/process.c -+++ b/dlls/msvcrt/process.c -@@ -345,7 +345,7 @@ static MSVCRT_wchar_t *msvcrt_get_comspec(void) - MSVCRT_wchar_t *ret; - unsigned int len; - -- if (!(len = GetEnvironmentVariableW(comspec, NULL, 0))) len = sizeof(cmd)/sizeof(MSVCRT_wchar_t); -+ if (!(len = GetEnvironmentVariableW(comspec, NULL, 0))) len = ARRAY_SIZE(cmd); - if ((ret = HeapAlloc(GetProcessHeap(), 0, len * sizeof(MSVCRT_wchar_t)))) - { - if (!GetEnvironmentVariableW(comspec, ret, len)) strcpyW(ret, cmd); -diff --git a/dlls/msvcrt/scheduler.c b/dlls/msvcrt/scheduler.c -index c6c0fa7e38..55ab1c549e 100644 ---- a/dlls/msvcrt/scheduler.c -+++ b/dlls/msvcrt/scheduler.c -@@ -344,7 +344,7 @@ static void ExternalContextBase_dtor(ExternalContextBase *this) - int i; - - /* TODO: move the allocator cache to scheduler so it can be reused */ -- for(i=0; iallocator_cache)/sizeof(this->allocator_cache[0]); i++) { -+ for(i=0; iallocator_cache); i++) { - for(cur = this->allocator_cache[i]; cur; cur=next) { - next = cur->free.next; - MSVCRT_operator_delete(cur); -@@ -413,10 +413,10 @@ void * CDECL Concurrency_Alloc(MSVCRT_size_t size) - int i; - - C_ASSERT(sizeof(union allocator_cache_entry) <= 1 << 4); -- for(i=0; iallocator_cache)/sizeof(context->allocator_cache[0]); i++) -+ for(i=0; iallocator_cache); i++) - if (1 << (i+4) >= size) break; - -- if(i==sizeof(context->allocator_cache)/sizeof(context->allocator_cache[0])) { -+ if(i==ARRAY_SIZE(context->allocator_cache)) { - p = MSVCRT_operator_new(size); - p->alloc.bucket = -1; - }else if (context->allocator_cache[i]) { -@@ -446,7 +446,7 @@ void CDECL Concurrency_Free(void* mem) - if (context->context.vtable != &MSVCRT_ExternalContextBase_vtable) { - MSVCRT_operator_delete(p); - }else { -- if(bucket >= 0 && bucket < sizeof(context->allocator_cache)/sizeof(context->allocator_cache[0]) && -+ if(bucket >= 0 && bucket < ARRAY_SIZE(context->allocator_cache) && - (!context->allocator_cache[bucket] || context->allocator_cache[bucket]->free.depth < 20)) { - p->free.next = context->allocator_cache[bucket]; - p->free.depth = p->free.next ? p->free.next->free.depth+1 : 0; -diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c -index 098e0d5ba8..ed73fc6163 100644 ---- a/dlls/msvcrt/wcs.c -+++ b/dlls/msvcrt/wcs.c -@@ -2109,7 +2109,7 @@ static int wctoint(WCHAR c, int base) - 0xd66, 0xe50, 0xed0, 0xf20, 0x1040, 0x17e0, 0x1810, 0xff10 - }; - int i; -- for (i = 0; i < sizeof(zeros)/sizeof(zeros[0]) && c >= zeros[i]; ++i) { -+ for (i = 0; i < ARRAY_SIZE(zeros) && c >= zeros[i]; ++i) { - if (zeros[i] <= c && c <= zeros[i] + 9) { - v = c - zeros[i]; - break; --- -2.14.4 - diff --git a/patches/ml-array_size/0044-scrobj-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0044-scrobj-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 3a78b034..00000000 --- a/patches/ml-array_size/0044-scrobj-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5675688cff4eb773a4b531423f72267823caec3b Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 19:17:44 +0200 -Subject: [PATCH] scrobj: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/scrobj/scrobj.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/scrobj/scrobj.c b/dlls/scrobj/scrobj.c -index 3e6535a607..989a648370 100644 ---- a/dlls/scrobj/scrobj.c -+++ b/dlls/scrobj/scrobj.c -@@ -102,7 +102,7 @@ static void release_typelib(void) - if (!typelib) - return; - -- for (i = 0; i < sizeof(typeinfos)/sizeof(*typeinfos); i++) -+ for (i = 0; i < ARRAY_SIZE(typeinfos); i++) - if (typeinfos[i]) - ITypeInfo_Release(typeinfos[i]); - -@@ -369,7 +369,7 @@ static HRESULT WINAPI scriptlet_typelib_get_GUID(IGenScriptletTLib *iface, BSTR - if (FAILED(hr)) - return hr; - -- hr = StringFromGUID2(&guid, guidW, sizeof(guidW)/sizeof(guidW[0])); -+ hr = StringFromGUID2(&guid, guidW, ARRAY_SIZE(guidW)); - if (FAILED(hr)) - return hr; - --- -2.14.4 - diff --git a/patches/ml-array_size/0045-storage.dll16-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0045-storage.dll16-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 5e4c7c75..00000000 --- a/patches/ml-array_size/0045-storage.dll16-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c4428ddee47ee8f189552442261adf72fbe9c1c8 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 19:23:08 +0200 -Subject: [PATCH] storage.dll16: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/storage.dll16/storage.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/dlls/storage.dll16/storage.c b/dlls/storage.dll16/storage.c -index 865411f9cb..23e88b42d1 100644 ---- a/dlls/storage.dll16/storage.c -+++ b/dlls/storage.dll16/storage.c -@@ -776,8 +776,8 @@ STORAGE_init_storage(stream_access16 *str) { - /* block 1 is the root directory entry */ - memset(block,0x00,sizeof(block)); - stde = (struct storage_pps_entry*)block; -- MultiByteToWideChar( CP_ACP, 0, "RootEntry", -1, stde->pps_rawname, -- sizeof(stde->pps_rawname)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_ACP, 0, "RootEntry", -1, stde->pps_rawname, -+ ARRAY_SIZE(stde->pps_rawname)); - stde->pps_sizeofname = (strlenW(stde->pps_rawname)+1) * sizeof(WCHAR); - stde->pps_type = 5; - stde->pps_dir = -1; -@@ -1750,8 +1750,8 @@ HRESULT CDECL IStorage16_fnCreateStorage(IStorage16 *iface, LPCOLESTR16 pwcsName - assert(ret); - nPPSEntries = STORAGE_get_pps_entry(&lpstg->str,ppsent,&(lpstg->stde)); - assert(nPPSEntries == 1); -- MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, lpstg->stde.pps_rawname, -- sizeof(lpstg->stde.pps_rawname)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_ACP, 0, pwcsName, -1, lpstg->stde.pps_rawname, -+ ARRAY_SIZE(lpstg->stde.pps_rawname)); - lpstg->stde.pps_sizeofname = (strlenW(lpstg->stde.pps_rawname)+1)*sizeof(WCHAR); - lpstg->stde.pps_next = -1; - lpstg->stde.pps_prev = -1; -@@ -1813,8 +1813,8 @@ HRESULT CDECL IStorage16_fnCreateStream(IStorage16 *iface, LPCOLESTR16 pwcsName, - assert(ret); - nPPSEntries = STORAGE_get_pps_entry(&lpstr->str,ppsent,&(lpstr->stde)); - assert(nPPSEntries == 1); -- MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, lpstr->stde.pps_rawname, -- sizeof(lpstr->stde.pps_rawname)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_ACP, 0, pwcsName, -1, lpstr->stde.pps_rawname, -+ ARRAY_SIZE(lpstr->stde.pps_rawname)); - lpstr->stde.pps_sizeofname = (strlenW(lpstr->stde.pps_rawname)+1) * sizeof(WCHAR); - lpstr->stde.pps_next = -1; - lpstr->stde.pps_prev = -1; -@@ -1855,7 +1855,7 @@ HRESULT CDECL IStorage16_fnOpenStorage(IStorage16 *iface, LPCOLESTR16 pwcsName, - lpstg->str.lockbytes = This->str.lockbytes; - _ilockbytes16_addref(This->str.lockbytes); - } -- MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, name, sizeof(name)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_ACP, 0, pwcsName, -1, name, ARRAY_SIZE(name)); - newpps = STORAGE_look_for_named_pps(&lpstg->str,This->stde.pps_dir,name); - if (newpps==-1) { - IStorage16_fnRelease(&lpstg->IStorage16_iface); -@@ -1897,7 +1897,7 @@ HRESULT CDECL IStorage16_fnOpenStream(IStorage16 *iface, LPCOLESTR16 pwcsName, v - lpstr->str.lockbytes = This->str.lockbytes; - _ilockbytes16_addref(This->str.lockbytes); - } -- MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, name, sizeof(name)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_ACP, 0, pwcsName, -1, name, ARRAY_SIZE(name)); - newpps = STORAGE_look_for_named_pps(&lpstr->str,This->stde.pps_dir,name); - if (newpps==-1) { - IStream16_fnRelease(&lpstr->IStream16_iface); --- -2.14.4 - diff --git a/patches/ml-array_size/0046-urlmon-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0046-urlmon-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index ab910eda..00000000 --- a/patches/ml-array_size/0046-urlmon-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 897ed8f10acb62fca27c4ecb04b06bb9e29449e9 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 19:35:09 +0200 -Subject: [PATCH] urlmon: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/urlmon/urlmon_main.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c -index 5968a6ce55..06f0698efa 100644 ---- a/dlls/urlmon/urlmon_main.c -+++ b/dlls/urlmon/urlmon_main.c -@@ -409,7 +409,7 @@ static void init_session(void) - { - unsigned int i; - -- for(i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++) { -+ for(i = 0; i < ARRAY_SIZE(object_creation); i++) { - if(object_creation[i].protocol) - register_namespace(object_creation[i].cf, object_creation[i].clsid, - object_creation[i].protocol, TRUE); -@@ -438,10 +438,10 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) - { - unsigned int i; - HRESULT hr; -- -+ - TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv); -- -- for (i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++) -+ -+ for (i = 0; i < ARRAY_SIZE(object_creation); i++) - { - if (IsEqualGUID(object_creation[i].clsid, rclsid)) - return IClassFactory_QueryInterface(object_creation[i].cf, riid, ppv); --- -2.14.4 - diff --git a/patches/ml-array_size/0047-msvideo.dll16-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0047-msvideo.dll16-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index c4a58c9d..00000000 --- a/patches/ml-array_size/0047-msvideo.dll16-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From dbdf14d77be88f1e380b9e5d0638d5f55137e8ca Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 19:13:30 +0200 -Subject: [PATCH] msvideo.dll16: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/msvideo.dll16/msvideo16.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/msvideo.dll16/msvideo16.c b/dlls/msvideo.dll16/msvideo16.c -index d390020ecc..bc239a8ab3 100644 ---- a/dlls/msvideo.dll16/msvideo16.c -+++ b/dlls/msvideo.dll16/msvideo16.c -@@ -889,7 +889,7 @@ DWORD WINAPI VideoCapDriverDescAndVer16(WORD nr, LPSTR buf1, WORD buf1len, - RegQueryInfoKeyA( hKey, 0, 0, 0, &cnt, 0, 0, 0, 0, 0, 0, 0); - for (i = 0; i < cnt; i++) - { -- bufLen = sizeof(buf) / sizeof(buf[0]); -+ bufLen = ARRAY_SIZE(buf); - lRet = RegEnumKeyExA(hKey, i, buf, &bufLen, 0, 0, 0, &lastWrite); - if (lRet != ERROR_SUCCESS) continue; - if (strncasecmp(buf, "vid", 3)) continue; --- -2.14.4 - diff --git a/patches/ml-array_size/0048-mscoree-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0048-mscoree-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index d90a0891..00000000 --- a/patches/ml-array_size/0048-mscoree-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,138 +0,0 @@ -From bb748f41222a923e002ebbf2ffc0c904ba139db2 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Wed, 25 Jul 2018 18:35:21 +0200 -Subject: [PATCH] mscoree: Use the ARRAY_SIZE() macro - -Signed-off-by: Vincent Povirk -Signed-off-by: Michael Stefaniuc ---- - dlls/mscoree/config.c | 18 +++++++----------- - dlls/mscoree/corruntimehost.c | 6 +++--- - dlls/mscoree/mscoree_main.c | 4 ++-- - 3 files changed, 12 insertions(+), 16 deletions(-) - -diff --git a/dlls/mscoree/config.c b/dlls/mscoree/config.c -index 48f12f4d53..a5c0666904 100644 ---- a/dlls/mscoree/config.c -+++ b/dlls/mscoree/config.c -@@ -417,7 +417,7 @@ static HRESULT WINAPI ConfigFileHandler_startElement(ISAXContentHandler *iface, - TRACE("%s %s %s\n", debugstr_wn(pNamespaceUri,nNamespaceUri), - debugstr_wn(pLocalName,nLocalName), debugstr_wn(pQName,nQName)); - -- if (This->statenum == sizeof(This->states) / sizeof(This->states[0]) - 1) -+ if (This->statenum == ARRAY_SIZE(This->states) - 1) - { - ERR("file has too much nesting\n"); - return E_FAIL; -@@ -426,8 +426,7 @@ static HRESULT WINAPI ConfigFileHandler_startElement(ISAXContentHandler *iface, - switch (This->states[This->statenum]) - { - case STATE_ROOT: -- if (nLocalName == sizeof(configuration)/sizeof(WCHAR)-1 && -- lstrcmpW(pLocalName, configuration) == 0) -+ if (nLocalName == ARRAY_SIZE(configuration) - 1 && lstrcmpW(pLocalName, configuration) == 0) - { - This->states[++This->statenum] = STATE_CONFIGURATION; - break; -@@ -435,15 +434,13 @@ static HRESULT WINAPI ConfigFileHandler_startElement(ISAXContentHandler *iface, - else - goto unknown; - case STATE_CONFIGURATION: -- if (nLocalName == sizeof(startup)/sizeof(WCHAR)-1 && -- lstrcmpW(pLocalName, startup) == 0) -+ if (nLocalName == ARRAY_SIZE(startup) - 1 && lstrcmpW(pLocalName, startup) == 0) - { - hr = parse_startup(This, pAttr); - This->states[++This->statenum] = STATE_STARTUP; - break; - } -- else if (nLocalName == sizeof(runtime)/sizeof(WCHAR)-1 && -- lstrcmpW(pLocalName, runtime) == 0) -+ else if (nLocalName == ARRAY_SIZE(runtime) - 1 && lstrcmpW(pLocalName, runtime) == 0) - { - This->states[++This->statenum] = STATE_RUNTIME; - break; -@@ -451,7 +448,7 @@ static HRESULT WINAPI ConfigFileHandler_startElement(ISAXContentHandler *iface, - else - goto unknown; - case STATE_RUNTIME: -- if (nLocalName == sizeof(assemblyBinding)/sizeof(WCHAR)-1 && -+ if (nLocalName == ARRAY_SIZE(assemblyBinding) - 1 && - lstrcmpW(pLocalName, assemblyBinding) == 0) - { - This->states[++This->statenum] = STATE_ASSEMBLY_BINDING; -@@ -460,8 +457,7 @@ static HRESULT WINAPI ConfigFileHandler_startElement(ISAXContentHandler *iface, - else - goto unknown; - case STATE_ASSEMBLY_BINDING: -- if (nLocalName == sizeof(probing)/sizeof(WCHAR)-1 && -- lstrcmpW(pLocalName, probing) == 0) -+ if (nLocalName == ARRAY_SIZE(probing) - 1 && lstrcmpW(pLocalName, probing) == 0) - { - hr = parse_probing(This, pAttr); - This->states[++This->statenum] = STATE_PROBING; -@@ -470,7 +466,7 @@ static HRESULT WINAPI ConfigFileHandler_startElement(ISAXContentHandler *iface, - else - goto unknown; - case STATE_STARTUP: -- if (nLocalName == sizeof(supportedRuntime)/sizeof(WCHAR)-1 && -+ if (nLocalName == ARRAY_SIZE(supportedRuntime) - 1 && - lstrcmpW(pLocalName, supportedRuntime) == 0) - { - hr = parse_supported_runtime(This, pAttr); -diff --git a/dlls/mscoree/corruntimehost.c b/dlls/mscoree/corruntimehost.c -index 0c933cac29..5c4e7f1d6e 100644 ---- a/dlls/mscoree/corruntimehost.c -+++ b/dlls/mscoree/corruntimehost.c -@@ -138,7 +138,7 @@ static HRESULT RuntimeHost_GetDefaultDomain(RuntimeHost *This, const WCHAR *conf - - if (!config_path) - { -- DWORD len = sizeof(config_dir)/sizeof(*config_dir); -+ DWORD len = ARRAY_SIZE(config_dir); - - static const WCHAR machine_configW[] = {'\\','C','O','N','F','I','G','\\','m','a','c','h','i','n','e','.','c','o','n','f','i','g',0}; - -@@ -159,7 +159,7 @@ static HRESULT RuntimeHost_GetDefaultDomain(RuntimeHost *This, const WCHAR *conf - goto end; - } - -- GetModuleFileNameW(NULL, base_dir, sizeof(base_dir) / sizeof(*base_dir)); -+ GetModuleFileNameW(NULL, base_dir, ARRAY_SIZE(base_dir)); - base_dirA = WtoA(base_dir); - if (!base_dirA) - { -@@ -1674,7 +1674,7 @@ HRESULT create_monodata(REFIID riid, LPVOID *ppObj ) - if (res != ERROR_SUCCESS || numKeys == 0) - goto cleanup; - numKeys--; -- keyLength = sizeof(subkeyName) / sizeof(WCHAR); -+ keyLength = ARRAY_SIZE(subkeyName); - res = RegEnumKeyExW(key, numKeys, subkeyName, &keyLength, 0, 0, 0, 0); - if (res != ERROR_SUCCESS) - goto cleanup; -diff --git a/dlls/mscoree/mscoree_main.c b/dlls/mscoree/mscoree_main.c -index eda380a1ca..5612ff6b89 100644 ---- a/dlls/mscoree/mscoree_main.c -+++ b/dlls/mscoree/mscoree_main.c -@@ -751,7 +751,7 @@ static BOOL install_wine_mono(void) - } - } - -- len = GetSystemDirectoryW(app, MAX_PATH-sizeof(controlW)/sizeof(WCHAR)); -+ len = GetSystemDirectoryW(app, MAX_PATH - ARRAY_SIZE(controlW)); - memcpy(app+len, controlW, sizeof(controlW)); - - args = HeapAlloc(GetProcessHeap(), 0, (len*sizeof(WCHAR) + sizeof(controlW) + sizeof(argsW))); -@@ -759,7 +759,7 @@ static BOOL install_wine_mono(void) - return FALSE; - - memcpy(args, app, len*sizeof(WCHAR) + sizeof(controlW)); -- memcpy(args + len + sizeof(controlW)/sizeof(WCHAR)-1, argsW, sizeof(argsW)); -+ memcpy(args + len + ARRAY_SIZE(controlW) - 1, argsW, sizeof(argsW)); - - TRACE("starting %s\n", debugstr_w(args)); - --- -2.14.4 - diff --git a/patches/ml-array_size/0049-dxdiagn-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0049-dxdiagn-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 2e480c8e..00000000 --- a/patches/ml-array_size/0049-dxdiagn-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,433 +0,0 @@ -From dc0c77b7ac781b47159fba8c2e043bcfb226912b Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Sat, 28 Jul 2018 00:04:52 +0200 -Subject: [PATCH] dxdiagn: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/dxdiagn/provider.c | 92 +++++++++++++++++----------------- - include/wine/server_protocol.h | 21 +++++++- - server/request.h | 8 +++ - server/trace.c | 15 ++++++ - 4 files changed, 90 insertions(+), 46 deletions(-) - -diff --git a/dlls/dxdiagn/provider.c b/dlls/dxdiagn/provider.c -index 1fdab5e2db..ec30574b84 100644 ---- a/dlls/dxdiagn/provider.c -+++ b/dlls/dxdiagn/provider.c -@@ -494,7 +494,7 @@ static BOOL is_netmeeting_running(void) - - for (i = 0; i < list_count; i++) - { -- if (get_process_name_from_pid(pid_list[i], process_name, sizeof(process_name)/sizeof(WCHAR)) && -+ if (get_process_name_from_pid(pid_list[i], process_name, ARRAY_SIZE(process_name)) && - !lstrcmpW(conf_exe, process_name)) - { - HeapFree(GetProcessHeap(), 0, pid_list); -@@ -518,21 +518,23 @@ static HRESULT fill_language_information(IDxDiagContainerImpl_Container *node) - HRESULT hr; - - /* szLanguagesLocalized */ -- GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SNATIVELANGNAME, system_lang, sizeof(system_lang)/sizeof(WCHAR)); -- LoadStringW(dxdiagn_instance, IDS_REGIONAL_SETTING, regional_setting, sizeof(regional_setting)/sizeof(WCHAR)); -- GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SNATIVELANGNAME, user_lang, sizeof(user_lang)/sizeof(WCHAR)); -+ GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SNATIVELANGNAME, system_lang, ARRAY_SIZE(system_lang)); -+ LoadStringW(dxdiagn_instance, IDS_REGIONAL_SETTING, regional_setting, ARRAY_SIZE(regional_setting)); -+ GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SNATIVELANGNAME, user_lang, ARRAY_SIZE(user_lang)); - -- snprintfW(language_str, sizeof(language_str)/sizeof(WCHAR), languages_fmtW, system_lang, regional_setting, user_lang); -+ snprintfW(language_str, ARRAY_SIZE(language_str), languages_fmtW, system_lang, regional_setting, -+ user_lang); - - hr = add_bstr_property(node, szLanguagesLocalized, language_str); - if (FAILED(hr)) - return hr; - - /* szLanguagesEnglish */ -- GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, system_lang, sizeof(system_lang)/sizeof(WCHAR)); -- GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SENGLANGUAGE, user_lang, sizeof(user_lang)/sizeof(WCHAR)); -+ GetLocaleInfoW(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, system_lang, ARRAY_SIZE(system_lang)); -+ GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SENGLANGUAGE, user_lang, ARRAY_SIZE(user_lang)); - -- snprintfW(language_str, sizeof(language_str)/sizeof(WCHAR), languages_fmtW, system_lang, regional_setting_engW, user_lang); -+ snprintfW(language_str, ARRAY_SIZE(language_str), languages_fmtW, system_lang, -+ regional_setting_engW, user_lang); - - hr = add_bstr_property(node, szLanguagesEnglish, language_str); - if (FAILED(hr)) -@@ -555,21 +557,21 @@ static HRESULT fill_datetime_information(IDxDiagContainerImpl_Container *node) - - GetLocalTime(&curtime); - -- GetTimeFormatW(LOCALE_NEUTRAL, 0, &curtime, time_fmtW, time_str, sizeof(time_str)/sizeof(WCHAR)); -+ GetTimeFormatW(LOCALE_NEUTRAL, 0, &curtime, time_fmtW, time_str, ARRAY_SIZE(time_str)); - - /* szTimeLocalized */ -- GetDateFormatW(LOCALE_USER_DEFAULT, DATE_LONGDATE, &curtime, NULL, date_str, sizeof(date_str)/sizeof(WCHAR)); -+ GetDateFormatW(LOCALE_USER_DEFAULT, DATE_LONGDATE, &curtime, NULL, date_str, ARRAY_SIZE(date_str)); - -- snprintfW(datetime_str, sizeof(datetime_str)/sizeof(WCHAR), datetime_fmtW, date_str, time_str); -+ snprintfW(datetime_str, ARRAY_SIZE(datetime_str), datetime_fmtW, date_str, time_str); - - hr = add_bstr_property(node, szTimeLocalized, datetime_str); - if (FAILED(hr)) - return hr; - - /* szTimeEnglish */ -- GetDateFormatW(LOCALE_NEUTRAL, 0, &curtime, date_fmtW, date_str, sizeof(date_str)/sizeof(WCHAR)); -+ GetDateFormatW(LOCALE_NEUTRAL, 0, &curtime, date_fmtW, date_str, ARRAY_SIZE(date_str)); - -- snprintfW(datetime_str, sizeof(datetime_str)/sizeof(WCHAR), datetime_fmtW, date_str, time_str); -+ snprintfW(datetime_str, ARRAY_SIZE(datetime_str), datetime_fmtW, date_str, time_str); - - hr = add_bstr_property(node, szTimeEnglish, datetime_str); - if (FAILED(hr)) -@@ -596,7 +598,7 @@ static HRESULT fill_os_string_information(IDxDiagContainerImpl_Container *node, - - /* FIXME: OS detection should be performed, and localized OS strings - * should contain translated versions of the "build" phrase. */ -- for (i = 0; i < sizeof(prop_list)/sizeof(prop_list[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(prop_list); i++) - { - hr = add_bstr_property(node, prop_list[i], winxpW); - if (FAILED(hr)) -@@ -798,25 +800,26 @@ static HRESULT build_systeminfo_tree(IDxDiagContainerImpl_Container *node) - return hr; - - /* FIXME: Roundoff should not be done with truncated division. */ -- snprintfW(print_buf, sizeof(print_buf)/sizeof(WCHAR), physmem_fmtW, (DWORD)(msex.ullTotalPhys / (1024 * 1024))); -+ snprintfW(print_buf, ARRAY_SIZE(print_buf), physmem_fmtW, -+ (DWORD)(msex.ullTotalPhys / (1024 * 1024))); - hr = add_bstr_property(node, szPhysicalMemoryEnglish, print_buf); - if (FAILED(hr)) - return hr; - - usedpage_mb = (DWORD)((msex.ullTotalPageFile - msex.ullAvailPageFile) / (1024 * 1024)); - availpage_mb = (DWORD)(msex.ullAvailPageFile / (1024 * 1024)); -- LoadStringW(dxdiagn_instance, IDS_PAGE_FILE_FORMAT, localized_pagefile_fmt, sizeof(localized_pagefile_fmt)/sizeof(WCHAR)); -+ LoadStringW(dxdiagn_instance, IDS_PAGE_FILE_FORMAT, localized_pagefile_fmt, -+ ARRAY_SIZE(localized_pagefile_fmt)); - args[0] = usedpage_mb; - args[1] = availpage_mb; -- FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY, -- localized_pagefile_fmt, 0, 0, print_buf, -- sizeof(print_buf)/sizeof(*print_buf), (__ms_va_list*)args); -+ FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY, localized_pagefile_fmt, -+ 0, 0, print_buf, ARRAY_SIZE(print_buf), (__ms_va_list*)args); - - hr = add_bstr_property(node, szPageFileLocalized, print_buf); - if (FAILED(hr)) - return hr; - -- snprintfW(print_buf, sizeof(print_buf)/sizeof(WCHAR), pagefile_fmtW, usedpage_mb, availpage_mb); -+ snprintfW(print_buf, ARRAY_SIZE(print_buf), pagefile_fmtW, usedpage_mb, availpage_mb); - - hr = add_bstr_property(node, szPageFileEnglish, print_buf); - if (FAILED(hr)) -@@ -828,7 +831,7 @@ static HRESULT build_systeminfo_tree(IDxDiagContainerImpl_Container *node) - if (FAILED(hr)) - return hr; - -- count = sizeof(computer_name)/sizeof(WCHAR); -+ count = ARRAY_SIZE(computer_name); - if (!GetComputerNameW(computer_name, &count)) - return E_FAIL; - -@@ -984,7 +987,7 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node - DWORD available_mem = 0; - BOOL hardware_accel; - -- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), adapterid_fmtW, index); -+ snprintfW(buffer, ARRAY_SIZE(buffer), adapterid_fmtW, index); - display_adapter = allocate_information_node(buffer); - if (!display_adapter) - { -@@ -1001,9 +1004,11 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node - WCHAR descriptionW[sizeof(adapter_info.Description)]; - WCHAR devicenameW[sizeof(adapter_info.DeviceName)]; - -- MultiByteToWideChar(CP_ACP, 0, adapter_info.Driver, -1, driverW, sizeof(driverW)/sizeof(WCHAR)); -- MultiByteToWideChar(CP_ACP, 0, adapter_info.Description, -1, descriptionW, sizeof(descriptionW)/sizeof(WCHAR)); -- MultiByteToWideChar(CP_ACP, 0, adapter_info.DeviceName, -1, devicenameW, sizeof(devicenameW)/sizeof(WCHAR)); -+ MultiByteToWideChar(CP_ACP, 0, adapter_info.Driver, -1, driverW, ARRAY_SIZE(driverW)); -+ MultiByteToWideChar(CP_ACP, 0, adapter_info.Description, -1, descriptionW, -+ ARRAY_SIZE(descriptionW)); -+ MultiByteToWideChar(CP_ACP, 0, adapter_info.DeviceName, -1, devicenameW, -+ ARRAY_SIZE(devicenameW)); - - hr = add_bstr_property(display_adapter, szDriverName, driverW); - if (FAILED(hr)) -@@ -1017,7 +1022,7 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node - if (FAILED(hr)) - goto cleanup; - -- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), driverversion_fmtW, -+ snprintfW(buffer, ARRAY_SIZE(buffer), driverversion_fmtW, - HIWORD(adapter_info.DriverVersion.u.HighPart), LOWORD(adapter_info.DriverVersion.u.HighPart), - HIWORD(adapter_info.DriverVersion.u.LowPart), LOWORD(adapter_info.DriverVersion.u.LowPart)); - -@@ -1025,22 +1030,22 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node - if (FAILED(hr)) - goto cleanup; - -- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), id_fmtW, adapter_info.VendorId); -+ snprintfW(buffer, ARRAY_SIZE(buffer), id_fmtW, adapter_info.VendorId); - hr = add_bstr_property(display_adapter, szVendorId, buffer); - if (FAILED(hr)) - goto cleanup; - -- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), id_fmtW, adapter_info.DeviceId); -+ snprintfW(buffer, ARRAY_SIZE(buffer), id_fmtW, adapter_info.DeviceId); - hr = add_bstr_property(display_adapter, szDeviceId, buffer); - if (FAILED(hr)) - goto cleanup; - -- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), subsysid_fmtW, adapter_info.SubSysId); -+ snprintfW(buffer, ARRAY_SIZE(buffer), subsysid_fmtW, adapter_info.SubSysId); - hr = add_bstr_property(display_adapter, szSubSysId, buffer); - if (FAILED(hr)) - goto cleanup; - -- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), id_fmtW, adapter_info.Revision); -+ snprintfW(buffer, ARRAY_SIZE(buffer), id_fmtW, adapter_info.Revision); - hr = add_bstr_property(display_adapter, szRevisionId, buffer); - if (FAILED(hr)) - goto cleanup; -@@ -1074,7 +1079,7 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node - if (FAILED(hr)) - goto cleanup; - -- snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), mode_fmtW, adapter_mode.Width, adapter_mode.Height, -+ snprintfW(buffer, ARRAY_SIZE(buffer), mode_fmtW, adapter_mode.Width, adapter_mode.Height, - depth_for_pixelformat(adapter_mode.Format), adapter_mode.RefreshRate); - - hr = add_bstr_property(display_adapter, szDisplayModeLocalized, buffer); -@@ -1109,7 +1114,7 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node - if (!get_texture_memory(&adapter_info.DeviceIdentifier, &available_mem)) - WARN("get_texture_memory helper failed\n"); - -- snprintfW(buffer, sizeof(buffer)/sizeof(buffer[0]), mem_fmt, available_mem / 1000000.0f); -+ snprintfW(buffer, ARRAY_SIZE(buffer), mem_fmt, available_mem / 1000000.0f); - - hr = add_bstr_property(display_adapter, szDisplayMemoryLocalized, buffer); - if (FAILED(hr)) -@@ -1288,7 +1293,7 @@ static HRESULT fill_display_information_fallback(IDxDiagContainerImpl_Container - { - static const WCHAR mem_fmt[] = {'%','.','1','f',' ','M','B',0}; - -- snprintfW(buffer, sizeof(buffer)/sizeof(buffer[0]), mem_fmt, tmp / 1000000.0f); -+ snprintfW(buffer, ARRAY_SIZE(buffer), mem_fmt, tmp / 1000000.0f); - - hr = add_bstr_property(display_adapter, szDisplayMemoryLocalized, buffer); - if (FAILED(hr)) -@@ -1329,7 +1334,7 @@ static HRESULT fill_display_information_fallback(IDxDiagContainerImpl_Container - if (FAILED(hr)) - goto cleanup; - -- for (tmp = 0; tmp < sizeof(empty_properties)/sizeof(empty_properties[0]); tmp++) -+ for (tmp = 0; tmp < ARRAY_SIZE(empty_properties); tmp++) - { - hr = add_bstr_property(display_adapter, empty_properties[tmp], szEmpty); - if (FAILED(hr)) -@@ -1465,12 +1470,9 @@ static HRESULT fill_file_description(IDxDiagContainerImpl_Container *node, const - - if (boolret) - { -- snprintfW(szVersion_v, sizeof(szVersion_v)/sizeof(szVersion_v[0]), -- szVersionFormat, -- HIWORD(pFileInfo->dwFileVersionMS), -- LOWORD(pFileInfo->dwFileVersionMS), -- HIWORD(pFileInfo->dwFileVersionLS), -- LOWORD(pFileInfo->dwFileVersionLS)); -+ snprintfW(szVersion_v, ARRAY_SIZE(szVersion_v), szVersionFormat, -+ HIWORD(pFileInfo->dwFileVersionMS), LOWORD(pFileInfo->dwFileVersionMS), -+ HIWORD(pFileInfo->dwFileVersionLS), LOWORD(pFileInfo->dwFileVersionLS)); - - TRACE("Found version as (%s)\n", debugstr_w(szVersion_v)); - -@@ -1542,14 +1544,14 @@ static HRESULT build_directxfiles_tree(IDxDiagContainerImpl_Container *node) - - GetSystemDirectoryW(szFilePath, MAX_PATH); - -- for (i = 0; i < sizeof(dlls) / sizeof(dlls[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(dlls); i++) - { - static const WCHAR szFormat[] = {'%','d',0}; - - WCHAR szFileID[5]; - IDxDiagContainerImpl_Container *file_container; - -- snprintfW(szFileID, sizeof(szFileID)/sizeof(szFileID[0]), szFormat, i); -+ snprintfW(szFileID, ARRAY_SIZE(szFileID), szFormat, i); - - file_container = allocate_information_node(szFileID); - if (!file_container) -@@ -1624,7 +1626,7 @@ static HRESULT fill_filter_data_information(IDxDiagContainerImpl_Container *subc - goto cleanup; - pRF = ((REGFILTER2**)ppRF)[0]; - -- snprintfW(bufferW, sizeof(bufferW)/sizeof(bufferW[0]), szVersionFormat, pRF->dwVersion); -+ snprintfW(bufferW, ARRAY_SIZE(bufferW), szVersionFormat, pRF->dwVersion); - hr = add_bstr_property(subcont, szVersionW, bufferW); - if (FAILED(hr)) - goto cleanup; -@@ -1796,7 +1798,7 @@ static HRESULT build_directshowfilters_tree(IDxDiagContainerImpl_Container *node - WCHAR bufferW[10]; - IDxDiagContainerImpl_Container *subcont; - -- snprintfW(bufferW, sizeof(bufferW)/sizeof(bufferW[0]), szIdFormat, i); -+ snprintfW(bufferW, ARRAY_SIZE(bufferW), szIdFormat, i); - subcont = allocate_information_node(bufferW); - if (!subcont) - { -@@ -1893,7 +1895,7 @@ static HRESULT build_information_tree(IDxDiagContainerImpl_Container **pinfo_roo - if (!info_root) - return E_OUTOFMEMORY; - -- for (index = 0; index < sizeof(root_children)/sizeof(root_children[0]); index++) -+ for (index = 0; index < ARRAY_SIZE(root_children); index++) - { - IDxDiagContainerImpl_Container *node; - HRESULT hr; -diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h -index 511ad5c628..b776d8dc6d 100644 ---- a/include/wine/server_protocol.h -+++ b/include/wine/server_protocol.h -@@ -1839,6 +1839,22 @@ struct open_console_reply - - - -+struct attach_console_request -+{ -+ struct request_header __header; -+ process_id_t pid; -+}; -+struct attach_console_reply -+{ -+ struct reply_header __header; -+ obj_handle_t std_in; -+ obj_handle_t std_out; -+ obj_handle_t std_err; -+ char __pad_20[4]; -+}; -+ -+ -+ - struct get_console_wait_event_request - { - struct request_header __header; -@@ -5697,6 +5713,7 @@ enum request - REQ_free_console, - REQ_get_console_renderer_events, - REQ_open_console, -+ REQ_attach_console, - REQ_get_console_wait_event, - REQ_get_console_mode, - REQ_set_console_mode, -@@ -5993,6 +6010,7 @@ union generic_request - struct free_console_request free_console_request; - struct get_console_renderer_events_request get_console_renderer_events_request; - struct open_console_request open_console_request; -+ struct attach_console_request attach_console_request; - struct get_console_wait_event_request get_console_wait_event_request; - struct get_console_mode_request get_console_mode_request; - struct set_console_mode_request set_console_mode_request; -@@ -6287,6 +6305,7 @@ union generic_reply - struct free_console_reply free_console_reply; - struct get_console_renderer_events_reply get_console_renderer_events_reply; - struct open_console_reply open_console_reply; -+ struct attach_console_reply attach_console_reply; - struct get_console_wait_event_reply get_console_wait_event_reply; - struct get_console_mode_reply get_console_mode_reply; - struct set_console_mode_reply set_console_mode_reply; -@@ -6514,6 +6533,6 @@ union generic_reply - struct terminate_job_reply terminate_job_reply; - }; - --#define SERVER_PROTOCOL_VERSION 555 -+#define SERVER_PROTOCOL_VERSION 560 - - #endif /* __WINE_WINE_SERVER_PROTOCOL_H */ -diff --git a/server/request.h b/server/request.h -index 10fd850ec1..d3028f0b1d 100644 ---- a/server/request.h -+++ b/server/request.h -@@ -176,6 +176,7 @@ DECL_HANDLER(alloc_console); - DECL_HANDLER(free_console); - DECL_HANDLER(get_console_renderer_events); - DECL_HANDLER(open_console); -+DECL_HANDLER(attach_console); - DECL_HANDLER(get_console_wait_event); - DECL_HANDLER(get_console_mode); - DECL_HANDLER(set_console_mode); -@@ -471,6 +472,7 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] = - (req_handler)req_free_console, - (req_handler)req_get_console_renderer_events, - (req_handler)req_open_console, -+ (req_handler)req_attach_console, - (req_handler)req_get_console_wait_event, - (req_handler)req_get_console_mode, - (req_handler)req_set_console_mode, -@@ -1120,6 +1122,12 @@ C_ASSERT( FIELD_OFFSET(struct open_console_request, share) == 24 ); - C_ASSERT( sizeof(struct open_console_request) == 32 ); - C_ASSERT( FIELD_OFFSET(struct open_console_reply, handle) == 8 ); - C_ASSERT( sizeof(struct open_console_reply) == 16 ); -+C_ASSERT( FIELD_OFFSET(struct attach_console_request, pid) == 12 ); -+C_ASSERT( sizeof(struct attach_console_request) == 16 ); -+C_ASSERT( FIELD_OFFSET(struct attach_console_reply, std_in) == 8 ); -+C_ASSERT( FIELD_OFFSET(struct attach_console_reply, std_out) == 12 ); -+C_ASSERT( FIELD_OFFSET(struct attach_console_reply, std_err) == 16 ); -+C_ASSERT( sizeof(struct attach_console_reply) == 24 ); - C_ASSERT( sizeof(struct get_console_wait_event_request) == 16 ); - C_ASSERT( FIELD_OFFSET(struct get_console_wait_event_reply, handle) == 8 ); - C_ASSERT( sizeof(struct get_console_wait_event_reply) == 16 ); -diff --git a/server/trace.c b/server/trace.c -index e6ed964e16..17d25bbf79 100644 ---- a/server/trace.c -+++ b/server/trace.c -@@ -1989,6 +1989,18 @@ static void dump_open_console_reply( const struct open_console_reply *req ) - fprintf( stderr, " handle=%04x", req->handle ); - } - -+static void dump_attach_console_request( const struct attach_console_request *req ) -+{ -+ fprintf( stderr, " pid=%04x", req->pid ); -+} -+ -+static void dump_attach_console_reply( const struct attach_console_reply *req ) -+{ -+ fprintf( stderr, " std_in=%04x", req->std_in ); -+ fprintf( stderr, ", std_out=%04x", req->std_out ); -+ fprintf( stderr, ", std_err=%04x", req->std_err ); -+} -+ - static void dump_get_console_wait_event_request( const struct get_console_wait_event_request *req ) - { - } -@@ -4595,6 +4607,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = { - (dump_func)dump_free_console_request, - (dump_func)dump_get_console_renderer_events_request, - (dump_func)dump_open_console_request, -+ (dump_func)dump_attach_console_request, - (dump_func)dump_get_console_wait_event_request, - (dump_func)dump_get_console_mode_request, - (dump_func)dump_set_console_mode_request, -@@ -4887,6 +4900,7 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = { - NULL, - (dump_func)dump_get_console_renderer_events_reply, - (dump_func)dump_open_console_reply, -+ (dump_func)dump_attach_console_reply, - (dump_func)dump_get_console_wait_event_reply, - (dump_func)dump_get_console_mode_reply, - NULL, -@@ -5179,6 +5193,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = { - "free_console", - "get_console_renderer_events", - "open_console", -+ "attach_console", - "get_console_wait_event", - "get_console_mode", - "set_console_mode", --- -2.18.0 - diff --git a/patches/ml-array_size/0050-localui-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0050-localui-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index f4b273af..00000000 --- a/patches/ml-array_size/0050-localui-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 100f6ad44eacdb2265652b56c048a68efbbff7c0 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:07 +0200 -Subject: [PATCH] localui: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/localui/localui.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/dlls/localui/localui.c b/dlls/localui/localui.c -index 9fb975c..77c8bf0 100644 ---- a/dlls/localui/localui.c -+++ b/dlls/localui/localui.c -@@ -375,7 +375,7 @@ static INT_PTR CALLBACK dlgproc_lptconfig(HWND hwnd, UINT msg, WPARAM wparam, LP - status = FALSE; - res = GetDlgItemInt(hwnd, LPTCONFIG_EDIT, (BOOL *) &status, FALSE); - /* length is in WCHAR, including the '\0' */ -- GetDlgItemTextW(hwnd, LPTCONFIG_EDIT, bufferW, sizeof(bufferW) / sizeof(bufferW[0])); -+ GetDlgItemTextW(hwnd, LPTCONFIG_EDIT, bufferW, ARRAY_SIZE(bufferW)); - TRACE("got %s and %u (translated: %u)\n", debugstr_w(bufferW), res, status); - - /* native localui.dll use the same limits */ -@@ -416,10 +416,10 @@ static DWORD get_type_from_name(LPCWSTR name) - { - HANDLE hfile; - -- if (!strncmpiW(name, portname_LPT, sizeof(portname_LPT) / sizeof(WCHAR) -1)) -+ if (!strncmpiW(name, portname_LPT, ARRAY_SIZE(portname_LPT) -1)) - return PORT_IS_LPT; - -- if (!strncmpiW(name, portname_COM, sizeof(portname_COM) / sizeof(WCHAR) -1)) -+ if (!strncmpiW(name, portname_COM, ARRAY_SIZE(portname_COM) -1)) - return PORT_IS_COM; - - if (!strcmpiW(name, portname_FILE)) -@@ -431,10 +431,10 @@ static DWORD get_type_from_name(LPCWSTR name) - if (name[0] == '|') - return PORT_IS_PIPE; - -- if (!strncmpW(name, portname_CUPS, sizeof(portname_CUPS) / sizeof(WCHAR) -1)) -+ if (!strncmpW(name, portname_CUPS, ARRAY_SIZE(portname_CUPS) -1)) - return PORT_IS_CUPS; - -- if (!strncmpW(name, portname_LPR, sizeof(portname_LPR) / sizeof(WCHAR) -1)) -+ if (!strncmpW(name, portname_LPR, ARRAY_SIZE(portname_LPR) -1)) - return PORT_IS_LPR; - - /* Must be a file or a directory. Does the file exist ? */ --- -1.9.1 - diff --git a/patches/ml-array_size/0051-inetmib1-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0051-inetmib1-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 1f234af5..00000000 --- a/patches/ml-array_size/0051-inetmib1-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ed22fdf12f19983647bfd60230dc1325998f95fd Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:08 +0200 -Subject: [PATCH] inetmib1: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/inetmib1/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/inetmib1/main.c b/dlls/inetmib1/main.c -index c0719c1..2f7b9ca 100644 ---- a/dlls/inetmib1/main.c -+++ b/dlls/inetmib1/main.c -@@ -1321,7 +1321,7 @@ BOOL WINAPI SnmpExtensionInit(DWORD dwUptimeReference, - pFirstSupportedRegion); - - minSupportedIDLength = UINT_MAX; -- for (i = 0; i < sizeof(supportedIDs) / sizeof(supportedIDs[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(supportedIDs); i++) - { - if (supportedIDs[i].init) - supportedIDs[i].init(); -@@ -1337,7 +1337,7 @@ static void cleanup(void) - { - UINT i; - -- for (i = 0; i < sizeof(supportedIDs) / sizeof(supportedIDs[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(supportedIDs); i++) - if (supportedIDs[i].cleanup) - supportedIDs[i].cleanup(); - } --- -1.9.1 - diff --git a/patches/ml-array_size/0052-kernel32-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0052-kernel32-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 1cdd7c5c..00000000 --- a/patches/ml-array_size/0052-kernel32-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,778 +0,0 @@ -From 92a6c434182962704a0cc20bb675655063d2d894 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:09 +0200 -Subject: [PATCH] kernel32: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/kernel32/computername.c | 4 +-- - dlls/kernel32/console.c | 4 +-- - dlls/kernel32/file.c | 2 +- - dlls/kernel32/lcformat.c | 54 ++++++++++++++++++------------------ - dlls/kernel32/locale.c | 66 +++++++++++++++++++++----------------------- - dlls/kernel32/module.c | 3 +- - dlls/kernel32/path.c | 2 +- - dlls/kernel32/process.c | 26 ++++++++--------- - dlls/kernel32/profile.c | 7 ++--- - dlls/kernel32/sync.c | 8 ++---- - dlls/kernel32/term.c | 2 +- - dlls/kernel32/volume.c | 12 ++++---- - 12 files changed, 91 insertions(+), 99 deletions(-) - -diff --git a/dlls/kernel32/computername.c b/dlls/kernel32/computername.c -index 1b5f4aa..720d4ba 100644 ---- a/dlls/kernel32/computername.c -+++ b/dlls/kernel32/computername.c -@@ -538,9 +538,9 @@ static WCHAR netbios_char ( WCHAR wc ) - static const WCHAR special[] = {'!','@','#','$','%','^','&','\'',')','(','-','_','{','}','~'}; - static const WCHAR deflt = '_'; - unsigned int i; -- -+ - if ( isalnumW ( wc ) ) return wc; -- for ( i = 0; i < sizeof (special) / sizeof (WCHAR); i++ ) -+ for ( i = 0; i < ARRAY_SIZE( special ); i++ ) - if ( wc == special[i] ) return wc; - return deflt; - } -diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c -index 51061de..8b98a50 100644 ---- a/dlls/kernel32/console.c -+++ b/dlls/kernel32/console.c -@@ -1156,7 +1156,7 @@ static enum read_console_input_return bare_console_fetch_input(HANDLE handle, in - break; - case -1: - /* we haven't found the string into key-db, push full input string into server */ -- idxw = MultiByteToWideChar(CP_UNIXCP, 0, input, idx, inputw, sizeof(inputw) / sizeof(inputw[0])); -+ idxw = MultiByteToWideChar(CP_UNIXCP, 0, input, idx, inputw, ARRAY_SIZE(inputw)); - - /* we cannot translate yet... likely we need more chars (wait max 1/2s for next char) */ - if (idxw == 0) -@@ -1831,7 +1831,7 @@ BOOL WINAPI SetConsoleInputExeNameW(LPCWSTR name) - } - - RtlEnterCriticalSection(&CONSOLE_CritSect); -- if (strlenW(name) < sizeof(input_exe)/sizeof(WCHAR)) strcpyW(input_exe, name); -+ if (strlenW(name) < ARRAY_SIZE(input_exe)) strcpyW(input_exe, name); - RtlLeaveCriticalSection(&CONSOLE_CritSect); - - return TRUE; -diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c -index 1e5b9fe..0c30fb7 100644 ---- a/dlls/kernel32/file.c -+++ b/dlls/kernel32/file.c -@@ -1513,7 +1513,7 @@ HANDLE WINAPI CreateFileW( LPCWSTR filename, DWORD access, DWORD sharing, - static const WCHAR conW[] = {'C','O','N'}; - - if (LOWORD(dosdev) == sizeof(conW) && -- !memicmpW( filename + HIWORD(dosdev)/sizeof(WCHAR), conW, sizeof(conW)/sizeof(WCHAR))) -+ !memicmpW( filename + HIWORD(dosdev)/sizeof(WCHAR), conW, ARRAY_SIZE( conW ))) - { - switch (access & (GENERIC_READ|GENERIC_WRITE)) - { -diff --git a/dlls/kernel32/lcformat.c b/dlls/kernel32/lcformat.c -index aeb48c6..b1dd32d 100644 ---- a/dlls/kernel32/lcformat.c -+++ b/dlls/kernel32/lcformat.c -@@ -104,7 +104,7 @@ static DWORD NLS_GetLocaleNumber(LCID lcid, DWORD dwFlags) - DWORD dwVal = 0; - - szBuff[0] = '\0'; -- GetLocaleInfoW(lcid, dwFlags, szBuff, sizeof(szBuff) / sizeof(WCHAR)); -+ GetLocaleInfoW(lcid, dwFlags, szBuff, ARRAY_SIZE(szBuff)); - - if (szBuff[0] && szBuff[1] == ';' && szBuff[2] != '0') - dwVal = (szBuff[0] - '0') * 10 + (szBuff[2] - '0'); -@@ -129,7 +129,7 @@ static WCHAR* NLS_GetLocaleString(LCID lcid, DWORD dwFlags) - DWORD dwLen; - - szBuff[0] = '\0'; -- GetLocaleInfoW(lcid, dwFlags, szBuff, sizeof(szBuff) / sizeof(WCHAR)); -+ GetLocaleInfoW(lcid, dwFlags, szBuff, ARRAY_SIZE(szBuff)); - dwLen = strlenW(szBuff) + 1; - str = HeapAlloc(GetProcessHeap(), 0, dwLen * sizeof(WCHAR)); - if (str) -@@ -258,7 +258,7 @@ static const NLS_FORMAT_NODE *NLS_GetFormats(LCID lcid, DWORD dwFlags) - GET_LOCALE_STRING(new_node->cyfmt.lpCurrencySymbol, LOCALE_SCURRENCY); - - /* Date/Time Format info, negative character, etc */ -- for (i = 0; i < sizeof(NLS_LocaleIndices)/sizeof(NLS_LocaleIndices[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(NLS_LocaleIndices); i++) - { - GET_LOCALE_STRING(new_node->lppszStrings[i], NLS_LocaleIndices[i]); - } -@@ -302,7 +302,7 @@ static const NLS_FORMAT_NODE *NLS_GetFormats(LCID lcid, DWORD dwFlags) - /* We raced and lost: The node was already added by another thread. - * node points to the currently cached node, so free new_node. - */ -- for (i = 0; i < sizeof(NLS_LocaleIndices)/sizeof(NLS_LocaleIndices[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(NLS_LocaleIndices); i++) - HeapFree(GetProcessHeap(), 0, new_node->lppszStrings[i]); - HeapFree(GetProcessHeap(), 0, new_node->fmt.lpDecimalSep); - HeapFree(GetProcessHeap(), 0, new_node->fmt.lpThousandSep); -@@ -677,7 +677,7 @@ static INT NLS_GetDateTimeFormatW(LCID lcid, DWORD dwFlags, - { - static const WCHAR fmtW[] = {'%','.','*','d',0}; - /* We have a numeric value to add */ -- snprintfW(buff, sizeof(buff)/sizeof(WCHAR), fmtW, count, dwVal); -+ snprintfW(buff, ARRAY_SIZE(buff), fmtW, count, dwVal); - } - - dwLen = szAdd ? strlenW(szAdd) : 0; -@@ -773,10 +773,10 @@ static INT NLS_GetDateTimeFormatA(LCID lcid, DWORD dwFlags, - } - - if (lpFormat) -- MultiByteToWideChar(cp, 0, lpFormat, -1, szFormat, sizeof(szFormat)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpFormat, -1, szFormat, ARRAY_SIZE(szFormat)); - -- if (cchOut > (int)(sizeof(szOut)/sizeof(WCHAR))) -- cchOut = sizeof(szOut)/sizeof(WCHAR); -+ if (cchOut > (int) ARRAY_SIZE(szOut)) -+ cchOut = ARRAY_SIZE(szOut); - - szOut[0] = '\0'; - -@@ -1063,21 +1063,21 @@ INT WINAPI GetNumberFormatA(LCID lcid, DWORD dwFlags, - pfmt = &fmt; - if (lpFormat->lpDecimalSep) - { -- MultiByteToWideChar(cp, 0, lpFormat->lpDecimalSep, -1, szDec, sizeof(szDec)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpFormat->lpDecimalSep, -1, szDec, ARRAY_SIZE(szDec)); - fmt.lpDecimalSep = szDec; - } - if (lpFormat->lpThousandSep) - { -- MultiByteToWideChar(cp, 0, lpFormat->lpThousandSep, -1, szGrp, sizeof(szGrp)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpFormat->lpThousandSep, -1, szGrp, ARRAY_SIZE(szGrp)); - fmt.lpThousandSep = szGrp; - } - } - - if (lpszValue) -- MultiByteToWideChar(cp, 0, lpszValue, -1, szIn, sizeof(szIn)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpszValue, -1, szIn, ARRAY_SIZE(szIn)); - -- if (cchOut > (int)(sizeof(szOut)/sizeof(WCHAR))) -- cchOut = sizeof(szOut)/sizeof(WCHAR); -+ if (cchOut > (int) ARRAY_SIZE(szOut)) -+ cchOut = ARRAY_SIZE(szOut); - - szOut[0] = '\0'; - -@@ -1112,7 +1112,7 @@ INT WINAPI GetNumberFormatW(LCID lcid, DWORD dwFlags, - LPCWSTR lpszValue, const NUMBERFMTW *lpFormat, - LPWSTR lpNumberStr, int cchOut) - { -- WCHAR szBuff[128], *szOut = szBuff + sizeof(szBuff) / sizeof(WCHAR) - 1; -+ WCHAR szBuff[128], *szOut = szBuff + ARRAY_SIZE(szBuff) - 1; - WCHAR szNegBuff[8]; - const WCHAR *lpszNeg = NULL, *lpszNegStart, *szSrc; - DWORD dwState = 0, dwDecimals = 0, dwGroupCount = 0, dwCurrentGroupCount = 0; -@@ -1140,7 +1140,7 @@ INT WINAPI GetNumberFormatW(LCID lcid, DWORD dwFlags, - else - { - GetLocaleInfoW(lcid, LOCALE_SNEGATIVESIGN|(dwFlags & LOCALE_NOUSEROVERRIDE), -- szNegBuff, sizeof(szNegBuff)/sizeof(WCHAR)); -+ szNegBuff, ARRAY_SIZE(szNegBuff)); - lpszNegStart = lpszNeg = szNegBuff; - } - lpszNeg = lpszNeg + strlenW(lpszNeg) - 1; -@@ -1427,26 +1427,26 @@ INT WINAPI GetCurrencyFormatA(LCID lcid, DWORD dwFlags, - pfmt = &fmt; - if (lpFormat->lpDecimalSep) - { -- MultiByteToWideChar(cp, 0, lpFormat->lpDecimalSep, -1, szDec, sizeof(szDec)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpFormat->lpDecimalSep, -1, szDec, ARRAY_SIZE(szDec)); - fmt.lpDecimalSep = szDec; - } - if (lpFormat->lpThousandSep) - { -- MultiByteToWideChar(cp, 0, lpFormat->lpThousandSep, -1, szGrp, sizeof(szGrp)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpFormat->lpThousandSep, -1, szGrp, ARRAY_SIZE(szGrp)); - fmt.lpThousandSep = szGrp; - } - if (lpFormat->lpCurrencySymbol) - { -- MultiByteToWideChar(cp, 0, lpFormat->lpCurrencySymbol, -1, szCy, sizeof(szCy)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpFormat->lpCurrencySymbol, -1, szCy, ARRAY_SIZE(szCy)); - fmt.lpCurrencySymbol = szCy; - } - } - - if (lpszValue) -- MultiByteToWideChar(cp, 0, lpszValue, -1, szIn, sizeof(szIn)/sizeof(WCHAR)); -+ MultiByteToWideChar(cp, 0, lpszValue, -1, szIn, ARRAY_SIZE(szIn)); - -- if (cchOut > (int)(sizeof(szOut)/sizeof(WCHAR))) -- cchOut = sizeof(szOut)/sizeof(WCHAR); -+ if (cchOut > (int) ARRAY_SIZE(szOut)) -+ cchOut = ARRAY_SIZE(szOut); - - szOut[0] = '\0'; - -@@ -1502,7 +1502,7 @@ INT WINAPI GetCurrencyFormatW(LCID lcid, DWORD dwFlags, - CF_CY_LEFT|CF_CY_SPACE, /* $ 1.1 */ - CF_CY_RIGHT|CF_CY_SPACE, /* 1.1 $ */ - }; -- WCHAR szBuff[128], *szOut = szBuff + sizeof(szBuff) / sizeof(WCHAR) - 1; -+ WCHAR szBuff[128], *szOut = szBuff + ARRAY_SIZE(szBuff) - 1; - WCHAR szNegBuff[8]; - const WCHAR *lpszNeg = NULL, *lpszNegStart, *szSrc, *lpszCy, *lpszCyStart; - DWORD dwState = 0, dwDecimals = 0, dwGroupCount = 0, dwCurrentGroupCount = 0, dwFmt; -@@ -1533,7 +1533,7 @@ INT WINAPI GetCurrencyFormatW(LCID lcid, DWORD dwFlags, - else - { - GetLocaleInfoW(lcid, LOCALE_SNEGATIVESIGN|(dwFlags & LOCALE_NOUSEROVERRIDE), -- szNegBuff, sizeof(szNegBuff)/sizeof(WCHAR)); -+ szNegBuff, ARRAY_SIZE(szNegBuff)); - lpszNegStart = lpszNeg = szNegBuff; - } - dwFlags &= (LOCALE_NOUSEROVERRIDE|LOCALE_USE_CP_ACP); -@@ -1841,9 +1841,9 @@ static BOOL NLS_EnumDateFormats(const struct enumdateformats_context *ctxt) - - lctype |= ctxt->flags & LOCALE_USE_CP_ACP; - if (ctxt->unicode) -- ret = GetLocaleInfoW(ctxt->lcid, lctype, bufW, sizeof(bufW)/sizeof(bufW[0])); -+ ret = GetLocaleInfoW(ctxt->lcid, lctype, bufW, ARRAY_SIZE(bufW)); - else -- ret = GetLocaleInfoA(ctxt->lcid, lctype, bufA, sizeof(bufA)/sizeof(bufA[0])); -+ ret = GetLocaleInfoA(ctxt->lcid, lctype, bufA, ARRAY_SIZE(bufA)); - - if (ret) - { -@@ -1994,9 +1994,9 @@ static BOOL NLS_EnumTimeFormats(struct enumtimeformats_context *ctxt) - - lctype |= ctxt->flags & LOCALE_USE_CP_ACP; - if (ctxt->unicode) -- ret = GetLocaleInfoW(ctxt->lcid, lctype, bufW, sizeof(bufW)/sizeof(bufW[0])); -+ ret = GetLocaleInfoW(ctxt->lcid, lctype, bufW, ARRAY_SIZE(bufW)); - else -- ret = GetLocaleInfoA(ctxt->lcid, lctype, bufA, sizeof(bufA)/sizeof(bufA[0])); -+ ret = GetLocaleInfoA(ctxt->lcid, lctype, bufA, ARRAY_SIZE(bufA)); - - if (ret) - { -diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c -index 2e0cf83..0f37027 100644 ---- a/dlls/kernel32/locale.c -+++ b/dlls/kernel32/locale.c -@@ -355,8 +355,7 @@ static UINT find_charset( const WCHAR *name ) - if (isalnum((unsigned char)name[i])) charset_name[j++] = name[i]; - charset_name[j] = 0; - -- entry = bsearch( charset_name, charset_names, -- sizeof(charset_names)/sizeof(charset_names[0]), -+ entry = bsearch( charset_name, charset_names, ARRAY_SIZE( charset_names ), - sizeof(charset_names[0]), charset_cmp ); - if (entry) return entry->codepage; - return 0; -@@ -395,8 +394,7 @@ static BOOL CALLBACK find_locale_id_callback( HMODULE hModule, LPCWSTR type, - - /* first check exact name */ - if (data->win_name[0] && -- GetLocaleInfoW( lcid, LOCALE_SNAME | LOCALE_NOUSEROVERRIDE, -- buffer, sizeof(buffer)/sizeof(WCHAR) )) -+ GetLocaleInfoW( lcid, LOCALE_SNAME | LOCALE_NOUSEROVERRIDE, buffer, ARRAY_SIZE( buffer ))) - { - if (!strcmpiW( data->win_name, buffer )) - { -@@ -406,7 +404,7 @@ static BOOL CALLBACK find_locale_id_callback( HMODULE hModule, LPCWSTR type, - } - - if (!GetLocaleInfoW( lcid, LOCALE_SISO639LANGNAME | LOCALE_NOUSEROVERRIDE, -- buffer, sizeof(buffer)/sizeof(WCHAR) )) -+ buffer, ARRAY_SIZE( buffer ))) - return TRUE; - if (strcmpiW( buffer, data->lang )) return TRUE; - matches++; /* language name matched */ -@@ -414,7 +412,7 @@ static BOOL CALLBACK find_locale_id_callback( HMODULE hModule, LPCWSTR type, - if (data->script) - { - if (GetLocaleInfoW( lcid, LOCALE_SSCRIPTS | LOCALE_NOUSEROVERRIDE, -- buffer, sizeof(buffer)/sizeof(WCHAR) )) -+ buffer, ARRAY_SIZE( buffer ))) - { - const WCHAR *p = buffer; - unsigned int len = strlenW( data->script ); -@@ -432,7 +430,7 @@ static BOOL CALLBACK find_locale_id_callback( HMODULE hModule, LPCWSTR type, - if (data->country) - { - if (GetLocaleInfoW( lcid, LOCALE_SISO3166CTRYNAME|LOCALE_NOUSEROVERRIDE, -- buffer, sizeof(buffer)/sizeof(WCHAR) )) -+ buffer, ARRAY_SIZE( buffer ))) - { - if (strcmpiW( buffer, data->country )) goto done; - matches++; /* country name matched */ -@@ -490,7 +488,7 @@ static void parse_locale_name( const WCHAR *str, struct locale_name *name ) - name->matches = 0; - name->codepage = 0; - name->win_name[0] = 0; -- lstrcpynW( name->lang, str, sizeof(name->lang)/sizeof(WCHAR) ); -+ lstrcpynW( name->lang, str, ARRAY_SIZE( name->lang )); - - if (!*name->lang) - { -@@ -816,8 +814,7 @@ static BOOL locale_update_registry( HKEY hkey, const WCHAR *name, LCID lcid, - - for (i = 0; i < nb_values; i++) - { -- GetLocaleInfoW( lcid, values[i] | LOCALE_NOUSEROVERRIDE, bufferW, -- sizeof(bufferW)/sizeof(WCHAR) ); -+ GetLocaleInfoW( lcid, values[i] | LOCALE_NOUSEROVERRIDE, bufferW, ARRAY_SIZE( bufferW )); - SetLocaleInfoW( lcid, values[i], bufferW ); - } - return TRUE; -@@ -905,19 +902,19 @@ void LOCALE_InitRegistry(void) - return; /* don't do anything if we can't create the registry key */ - - locale_update_registry( hkey, localeW, lcid_LC_MESSAGES, lc_messages_values, -- sizeof(lc_messages_values)/sizeof(lc_messages_values[0]) ); -+ ARRAY_SIZE( lc_messages_values )); - locale_update_registry( hkey, lc_monetaryW, lcid_LC_MONETARY, lc_monetary_values, -- sizeof(lc_monetary_values)/sizeof(lc_monetary_values[0]) ); -+ ARRAY_SIZE( lc_monetary_values )); - locale_update_registry( hkey, lc_numericW, lcid_LC_NUMERIC, lc_numeric_values, -- sizeof(lc_numeric_values)/sizeof(lc_numeric_values[0]) ); -+ ARRAY_SIZE( lc_numeric_values )); - locale_update_registry( hkey, lc_timeW, lcid_LC_TIME, lc_time_values, -- sizeof(lc_time_values)/sizeof(lc_time_values[0]) ); -+ ARRAY_SIZE( lc_time_values )); - locale_update_registry( hkey, lc_measurementW, lcid_LC_MEASUREMENT, lc_measurement_values, -- sizeof(lc_measurement_values)/sizeof(lc_measurement_values[0]) ); -+ ARRAY_SIZE( lc_measurement_values )); - locale_update_registry( hkey, lc_telephoneW, lcid_LC_TELEPHONE, lc_telephone_values, -- sizeof(lc_telephone_values)/sizeof(lc_telephone_values[0]) ); -+ ARRAY_SIZE( lc_telephone_values )); - locale_update_registry( hkey, lc_paperW, lcid_LC_PAPER, lc_paper_values, -- sizeof(lc_paper_values)/sizeof(lc_paper_values[0]) ); -+ ARRAY_SIZE( lc_paper_values )); - - if (locale_update_registry( hkey, lc_ctypeW, lcid_LC_CTYPE, NULL, 0 )) - { -@@ -943,10 +940,10 @@ void LOCALE_InitRegistry(void) - nameW.Length = len * sizeof(WCHAR); - if (!NtCreateKey( &nls_key, KEY_ALL_ACCESS, &attr, 0, NULL, 0, NULL )) - { -- for (i = 0; i < sizeof(update_cp_values)/sizeof(update_cp_values[0]); i++) -+ for (i = 0; i < ARRAY_SIZE( update_cp_values ); i++) - { - count = GetLocaleInfoW( lcid, update_cp_values[i].value | LOCALE_NOUSEROVERRIDE, -- bufferW, sizeof(bufferW)/sizeof(WCHAR) ); -+ bufferW, ARRAY_SIZE( bufferW )); - RtlInitUnicodeString( &nameW, update_cp_values[i].name ); - NtSetValueKey( nls_key, &nameW, 0, REG_SZ, bufferW, count * sizeof(WCHAR) ); - } -@@ -1112,7 +1109,7 @@ static UINT setup_unix_locales(void) - - if ((locale = get_locale( LC_CTYPE, "LC_CTYPE" ))) - { -- strcpynAtoW( ctype_buff, locale, sizeof(ctype_buff)/sizeof(WCHAR) ); -+ strcpynAtoW( ctype_buff, locale, ARRAY_SIZE( ctype_buff )); - parse_locale_name( ctype_buff, &locale_name ); - lcid_LC_CTYPE = locale_name.lcid; - unix_cp = locale_name.codepage; -@@ -1126,7 +1123,7 @@ static UINT setup_unix_locales(void) - #define GET_UNIX_LOCALE(cat) do \ - if ((locale = get_locale( cat, #cat ))) \ - { \ -- strcpynAtoW( buffer, locale, sizeof(buffer)/sizeof(WCHAR) ); \ -+ strcpynAtoW( buffer, locale, ARRAY_SIZE(buffer) ); \ - if (!strcmpW( buffer, ctype_buff )) lcid_##cat = lcid_LC_CTYPE; \ - else { \ - parse_locale_name( buffer, &locale_name ); \ -@@ -1444,7 +1441,7 @@ INT WINAPI LCIDToLocaleName( LCID lcid, LPWSTR name, INT count, DWORD flags ) - static struct registry_value *get_locale_registry_value( DWORD lctype ) - { - int i; -- for (i=0; i < sizeof(registry_values)/sizeof(registry_values[0]); i++) -+ for (i = 0; i < ARRAY_SIZE( registry_values ); i++) - if (registry_values[i].lctype == lctype) - return ®istry_values[i]; - return NULL; -@@ -1698,7 +1695,7 @@ INT WINAPI GetLocaleInfoW( LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len ) - if (lcflags & LOCALE_RETURN_NUMBER) - { - WCHAR tmp[16]; -- ret = get_registry_locale_info( value, tmp, sizeof(tmp)/sizeof(WCHAR) ); -+ ret = get_registry_locale_info( value, tmp, ARRAY_SIZE( tmp )); - if (ret > 0) - { - WCHAR *end; -@@ -2219,7 +2216,7 @@ BOOL WINAPI GetCPInfoExW( UINT codepage, DWORD dwFlags, LPCPINFOEXW cpinfo ) - cpinfo->CodePage = table->info.codepage; - cpinfo->UnicodeDefaultChar = table->info.def_unicode_char; - MultiByteToWideChar( CP_ACP, 0, table->info.name, -1, cpinfo->CodePageName, -- sizeof(cpinfo->CodePageName)/sizeof(WCHAR)); -+ ARRAY_SIZE( cpinfo->CodePageName )); - break; - } - } -@@ -2269,7 +2266,7 @@ BOOL WINAPI EnumSystemCodePagesW( CODEPAGE_ENUMPROCW lpfnCodePageEnum, DWORD fla - for (;;) - { - if (!(table = wine_cp_enum_table( index++ ))) break; -- p = buffer + sizeof(buffer)/sizeof(WCHAR); -+ p = buffer + ARRAY_SIZE( buffer ); - *--p = 0; - page = table->info.codepage; - do -@@ -2989,7 +2986,7 @@ static BOOL CALLBACK enum_locale_ex_proc( HMODULE module, LPCWSTR type, - unsigned int flags; - - GetLocaleInfoW( MAKELCID( lang, SORT_DEFAULT ), LOCALE_SNAME | LOCALE_NOUSEROVERRIDE, -- buffer, sizeof(buffer) / sizeof(WCHAR) ); -+ buffer, ARRAY_SIZE( buffer )); - if (!GetLocaleInfoW( MAKELCID( lang, SORT_DEFAULT ), - LOCALE_INEUTRAL | LOCALE_NOUSEROVERRIDE | LOCALE_RETURN_NUMBER, - (LPWSTR)&neutral, sizeof(neutral) / sizeof(WCHAR) )) -@@ -3254,7 +3251,7 @@ static INT compose_katakana( LPCWSTR src, INT srclen, LPWSTR dst ) - default: - { - int shift = *src - 0xff61; -- if (shift < 0 || shift >= sizeof(katakana_map)/sizeof(katakana_map[0]) ) -+ if (shift < 0 || shift >= ARRAY_SIZE( katakana_map )) - return 0; - else - *dst = katakana_map[shift] | 0x3000; -@@ -3362,7 +3359,7 @@ static INT decompose_katakana( WCHAR c, LPWSTR dst, INT dstlen ) - INT len = 0, shift = c - 0x3099; - BYTE k; - -- if (shift < 0 || shift >= sizeof(katakana_map)/sizeof(katakana_map[0])) -+ if (shift < 0 || shift >= ARRAY_SIZE( katakana_map )) - return 0; - - k = katakana_map[shift]; -@@ -4382,7 +4379,7 @@ static BOOL NLS_EnumSystemLanguageGroups(ENUMLANGUAGEGROUP_CALLBACKS *lpProcs) - { - WCHAR szGrpName[48]; - -- if (!NLS_GetLanguageGroupName( lgrpid, szGrpName, sizeof(szGrpName) / sizeof(WCHAR) )) -+ if (!NLS_GetLanguageGroupName( lgrpid, szGrpName, ARRAY_SIZE( szGrpName ))) - szGrpName[0] = '\0'; - - if (lpProcs->procW) -@@ -4390,7 +4387,7 @@ static BOOL NLS_EnumSystemLanguageGroups(ENUMLANGUAGEGROUP_CALLBACKS *lpProcs) - lpProcs->lParam ); - else - { -- char szNumberA[sizeof(szNumber)/sizeof(WCHAR)]; -+ char szNumberA[ARRAY_SIZE( szNumber )]; - char szGrpNameA[48]; - - /* FIXME: MSDN doesn't say which code page the W->A translation uses, -@@ -4584,7 +4581,7 @@ static BOOL NLS_EnumLanguageGroupLocales(ENUMLANGUAGEGROUPLOCALE_CALLBACKS *lpPr - bContinue = lpProcs->procW( lgrpid, lcid, szNumber, lpProcs->lParam ); - else - { -- char szNumberA[sizeof(szNumber)/sizeof(WCHAR)]; -+ char szNumberA[ARRAY_SIZE( szNumber )]; - - WideCharToMultiByte(CP_ACP, 0, szNumber, -1, szNumberA, sizeof(szNumberA), 0, 0); - -@@ -5174,7 +5171,7 @@ static const struct geoinfo_t *get_geoinfo_dataptr(GEOID geoid) - int min, max; - - min = 0; -- max = sizeof(geoinfodata)/sizeof(struct geoinfo_t)-1; -+ max = ARRAY_SIZE(geoinfodata)-1; - - while (min <= max) { - const struct geoinfo_t *ptr; -@@ -5324,7 +5321,7 @@ BOOL WINAPI EnumSystemGeoID(GEOCLASS geoclass, GEOID parent, GEO_ENUMPROC enumpr - return FALSE; - } - -- for (i = 0; i < sizeof(geoinfodata)/sizeof(struct geoinfo_t); i++) { -+ for (i = 0; i < ARRAY_SIZE(geoinfodata); i++) { - const struct geoinfo_t *ptr = &geoinfodata[i]; - - if (geoclass == GEOCLASS_NATION && (ptr->kind == LOCATION_REGION)) -@@ -5682,8 +5679,7 @@ INT WINAPI IdnToNameprepUnicode(DWORD dwFlags, LPCWSTR lpUnicodeCharStr, INT cch - } - } - -- norm_len = FoldStringW(MAP_FOLDCZONE, map_str, map_len, -- norm_str, sizeof(norm_str)/sizeof(WCHAR)-1); -+ norm_len = FoldStringW(MAP_FOLDCZONE, map_str, map_len, norm_str, ARRAY_SIZE(norm_str)-1); - if(map_str != buf) - HeapFree(GetProcessHeap(), 0, map_str); - if(!norm_len) { -diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c -index 3ab70e8..1188298 100644 ---- a/dlls/kernel32/module.c -+++ b/dlls/kernel32/module.c -@@ -1142,8 +1142,7 @@ static BOOL load_library_as_datafile( LPCWSTR name, HMODULE *hmod, DWORD flags ) - - if (flags & LOAD_LIBRARY_AS_IMAGE_RESOURCE) protect |= SEC_IMAGE; - -- if (SearchPathW( NULL, name, dotDLL, sizeof(filenameW) / sizeof(filenameW[0]), -- filenameW, NULL )) -+ if (SearchPathW( NULL, name, dotDLL, ARRAY_SIZE( filenameW ), filenameW, NULL )) - { - hFile = CreateFileW( filenameW, GENERIC_READ, sharing, NULL, OPEN_EXISTING, 0, 0 ); - } -diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c -index a389743..489f59e 100644 ---- a/dlls/kernel32/path.c -+++ b/dlls/kernel32/path.c -@@ -893,7 +893,7 @@ static NTSTATUS find_actctx_dllpath(const WCHAR *libname, WCHAR **path) - strcpyW( p, DIR_Windows ); - p += strlenW(p); - memcpy( p, winsxsW, sizeof(winsxsW) ); -- p += sizeof(winsxsW) / sizeof(WCHAR); -+ p += ARRAY_SIZE( winsxsW ); - memcpy( p, info->lpAssemblyDirectoryName, info->ulAssemblyDirectoryNameLength ); - p += info->ulAssemblyDirectoryNameLength / sizeof(WCHAR); - *p++ = '\\'; -diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c -index 4e6ba11..5aa245c 100644 ---- a/dlls/kernel32/process.c -+++ b/dlls/kernel32/process.c -@@ -377,7 +377,7 @@ static void set_registry_variables( HANDLE hkey, ULONG type ) - } - /* PATH is magic */ - if (env_name.Length == sizeof(pathW) && -- !memicmpW( env_name.Buffer, pathW, sizeof(pathW)/sizeof(WCHAR) ) && -+ !memicmpW( env_name.Buffer, pathW, ARRAY_SIZE( pathW )) && - !RtlQueryEnvironmentVariable_U( NULL, &env_name, &tmp )) - { - RtlAppendUnicodeToString( &tmp, sep ); -@@ -528,7 +528,7 @@ static void set_additional_environment(void) - DWORD len; - - /* ComputerName */ -- len = sizeof(buf) / sizeof(WCHAR); -+ len = ARRAY_SIZE( buf ); - if (GetComputerNameW( buf, &len )) - SetEnvironmentVariableW( computernameW, buf ); - -@@ -606,7 +606,7 @@ static void set_wow64_environment(void) - - /* set the PROCESSOR_ARCHITECTURE variable */ - -- if (GetEnvironmentVariableW( arch6432W, arch, sizeof(arch)/sizeof(WCHAR) )) -+ if (GetEnvironmentVariableW( arch6432W, arch, ARRAY_SIZE( arch ))) - { - if (is_win64) - { -@@ -614,7 +614,7 @@ static void set_wow64_environment(void) - SetEnvironmentVariableW( arch6432W, NULL ); - } - } -- else if (GetEnvironmentVariableW( archW, arch, sizeof(arch)/sizeof(WCHAR) )) -+ else if (GetEnvironmentVariableW( archW, arch, ARRAY_SIZE( arch ))) - { - if (is_wow64) - { -@@ -1002,7 +1002,7 @@ static void start_wineboot( HANDLE handles[2] ) - PROCESS_INFORMATION pi; - void *redir; - WCHAR app[MAX_PATH]; -- WCHAR cmdline[MAX_PATH + (sizeof(wineboot) + sizeof(args)) / sizeof(WCHAR)]; -+ WCHAR cmdline[MAX_PATH + ARRAY_SIZE( wineboot ) + ARRAY_SIZE( args )]; - - memset( &si, 0, sizeof(si) ); - si.cb = sizeof(si); -@@ -1011,7 +1011,7 @@ static void start_wineboot( HANDLE handles[2] ) - si.hStdOutput = 0; - si.hStdError = GetStdHandle( STD_ERROR_HANDLE ); - -- GetSystemDirectoryW( app, MAX_PATH - sizeof(wineboot)/sizeof(WCHAR) ); -+ GetSystemDirectoryW( app, MAX_PATH - ARRAY_SIZE( wineboot )); - lstrcatW( app, wineboot ); - - Wow64DisableWow64FsRedirection( &redir ); -@@ -1291,7 +1291,7 @@ void CDECL __wine_kernel_init(void) - } - args[0] = (DWORD_PTR)main_exe_name; - FormatMessageW( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY, -- NULL, error, 0, msgW, sizeof(msgW)/sizeof(WCHAR), (__ms_va_list *)args ); -+ NULL, error, 0, msgW, ARRAY_SIZE( msgW ), (__ms_va_list *)args ); - WideCharToMultiByte( CP_UNIXCP, 0, msgW, -1, msg, sizeof(msg), NULL, NULL ); - MESSAGE( "wine: %s", msg ); - ExitProcess( error ); -@@ -1440,7 +1440,7 @@ static char **build_envp( const WCHAR *envW ) - for (p = env; *p; p += strlen(p) + 1) - if (is_special_env_var( p )) length += 4; /* prefix it with "WINE" */ - -- for (i = 0; i < sizeof(unix_vars)/sizeof(unix_vars[0]); i++) -+ for (i = 0; i < ARRAY_SIZE( unix_vars ); i++) - { - if (!(p = getenv(unix_vars[i]))) continue; - length += strlen(unix_vars[i]) + strlen(p) + 2; -@@ -1453,7 +1453,7 @@ static char **build_envp( const WCHAR *envW ) - char *dst = (char *)(envp + count); - - /* some variables must not be modified, so we get them directly from the unix env */ -- for (i = 0; i < sizeof(unix_vars)/sizeof(unix_vars[0]); i++) -+ for (i = 0; i < ARRAY_SIZE( unix_vars ); i++) - { - if (!(p = getenv(unix_vars[i]))) continue; - *envptr++ = strcpy( dst, unix_vars[i] ); -@@ -2048,7 +2048,7 @@ static BOOL create_process( HANDLE hFile, LPCWSTR filename, LPWSTR cmd_line, LPW - while (*env_end) - { - static const WCHAR WINEDEBUG[] = {'W','I','N','E','D','E','B','U','G','=',0}; -- if (!winedebug && !strncmpW( env_end, WINEDEBUG, sizeof(WINEDEBUG)/sizeof(WCHAR) - 1 )) -+ if (!winedebug && !strncmpW( env_end, WINEDEBUG, ARRAY_SIZE( WINEDEBUG ) - 1 )) - { - DWORD len = WideCharToMultiByte( CP_UNIXCP, 0, env_end, -1, NULL, 0, NULL, NULL ); - if ((winedebug = HeapAlloc( GetProcessHeap(), 0, len ))) -@@ -2219,7 +2219,7 @@ static BOOL create_cmd_process( LPCWSTR filename, LPWSTR cmd_line, LPVOID env, L - WCHAR *newcmdline; - BOOL ret; - -- if (!GetEnvironmentVariableW( comspecW, comspec, sizeof(comspec)/sizeof(WCHAR) )) -+ if (!GetEnvironmentVariableW( comspecW, comspec, ARRAY_SIZE( comspec ))) - return FALSE; - if (!(newcmdline = HeapAlloc( GetProcessHeap(), 0, - (strlenW(comspec) + 7 + strlenW(cmd_line) + 2) * sizeof(WCHAR)))) -@@ -2340,7 +2340,7 @@ static BOOL create_process_impl( LPCWSTR app_name, LPWSTR cmd_line, LPSECURITY_A - - TRACE("app %s cmdline %s\n", debugstr_w(app_name), debugstr_w(cmd_line) ); - -- if (!(tidy_cmdline = get_file_name( app_name, cmd_line, name, sizeof(name)/sizeof(WCHAR), -+ if (!(tidy_cmdline = get_file_name( app_name, cmd_line, name, ARRAY_SIZE( name ), - &hFile, &binary_info ))) - return FALSE; - if (hFile == INVALID_HANDLE_VALUE) goto done; -@@ -3624,7 +3624,7 @@ BOOL WINAPI QueryFullProcessImageNameW(HANDLE hProcess, DWORD dwFlags, LPWSTR lp - drive[0] = result->Buffer[0]; - drive[1] = ':'; - drive[2] = 0; -- if (!QueryDosDeviceW(drive, device, sizeof(device)/sizeof(*device))) -+ if (!QueryDosDeviceW(drive, device, ARRAY_SIZE(device))) - { - status = STATUS_NO_SUCH_DEVICE; - goto cleanup; -diff --git a/dlls/kernel32/profile.c b/dlls/kernel32/profile.c -index 0974aaf..65a8f28 100644 ---- a/dlls/kernel32/profile.c -+++ b/dlls/kernel32/profile.c -@@ -772,7 +772,7 @@ static BOOL PROFILE_Open( LPCWSTR filename, BOOL write_access ) - else - { - LPWSTR dummy; -- GetFullPathNameW(filename, sizeof(buffer)/sizeof(buffer[0]), buffer, &dummy); -+ GetFullPathNameW(filename, ARRAY_SIZE(buffer), buffer, &dummy); - } - - TRACE("path: %s\n", debugstr_w(buffer)); -@@ -1238,9 +1238,8 @@ UINT WINAPI GetPrivateProfileIntW( LPCWSTR section, LPCWSTR entry, - UNICODE_STRING bufferW; - ULONG result; - -- if (GetPrivateProfileStringW( section, entry, emptystringW, -- buffer, sizeof(buffer)/sizeof(WCHAR), -- filename ) == 0) -+ if (GetPrivateProfileStringW( section, entry, emptystringW, buffer, ARRAY_SIZE( buffer ), -+ filename ) == 0) - return def_val; - - /* FIXME: if entry can be found but it's empty, then Win16 is -diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c -index 343998e..6c7249c 100644 ---- a/dlls/kernel32/sync.c -+++ b/dlls/kernel32/sync.c -@@ -1594,7 +1594,7 @@ BOOL WINAPI WaitNamedPipeW (LPCWSTR name, DWORD nTimeOut) - - if (nt_name.Length >= MAX_PATH * sizeof(WCHAR) || - nt_name.Length < sizeof(leadin) || -- strncmpiW( nt_name.Buffer, leadin, sizeof(leadin)/sizeof(WCHAR)) != 0) -+ strncmpiW( nt_name.Buffer, leadin, ARRAY_SIZE( leadin )) != 0) - { - RtlFreeUnicodeString( &nt_name ); - SetLastError( ERROR_PATH_NOT_FOUND ); -@@ -1630,8 +1630,7 @@ BOOL WINAPI WaitNamedPipeW (LPCWSTR name, DWORD nTimeOut) - else - pipe_wait->Timeout.QuadPart = (ULONGLONG)nTimeOut * -10000; - pipe_wait->NameLength = nt_name.Length - sizeof(leadin); -- memcpy(pipe_wait->Name, nt_name.Buffer + sizeof(leadin)/sizeof(WCHAR), -- pipe_wait->NameLength); -+ memcpy( pipe_wait->Name, nt_name.Buffer + ARRAY_SIZE( leadin ), pipe_wait->NameLength ); - RtlFreeUnicodeString( &nt_name ); - - status = NtFsControlFile( pipe_dev, NULL, NULL, NULL, &iosb, FSCTL_PIPE_WAIT, -@@ -2084,8 +2083,7 @@ BOOL WINAPI CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe, - '\\','W','i','n','3','2','.','P','i','p','e','s','.','%','0','8','l', - 'u','.','%','0','8','u','\0' }; - -- snprintfW(name, sizeof(name) / sizeof(name[0]), nameFmt, -- GetCurrentProcessId(), ++index); -+ snprintfW(name, ARRAY_SIZE(name), nameFmt, GetCurrentProcessId(), ++index); - RtlInitUnicodeString(&nt_name, name); - status = NtCreateNamedPipeFile(&hr, GENERIC_READ | SYNCHRONIZE, &attr, &iosb, - FILE_SHARE_WRITE, FILE_OVERWRITE_IF, -diff --git a/dlls/kernel32/term.c b/dlls/kernel32/term.c -index 171476a..b8877d4 100644 ---- a/dlls/kernel32/term.c -+++ b/dlls/kernel32/term.c -@@ -373,7 +373,7 @@ static BOOL TERM_BuildKeyDB(void) - struct dbkey_descr descr; - char tmp[64]; - -- for (i = 0; i < sizeof(TERM_dbkey_init) / sizeof(TERM_dbkey_init[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(TERM_dbkey_init); i++) - { - if (!TERM_AddKeyDescr(tigetstr((char *)TERM_dbkey_init[i].string_normal), &TERM_dbkey_init[i].descr)) - return FALSE; -diff --git a/dlls/kernel32/volume.c b/dlls/kernel32/volume.c -index 3a4edf8..1208436 100644 ---- a/dlls/kernel32/volume.c -+++ b/dlls/kernel32/volume.c -@@ -420,7 +420,7 @@ static BOOL UDF_Find_PVD( HANDLE handle, BYTE pvd[] ) - DWORD offset; - INT locations[] = { 256, -1, -257, 512 }; - -- for(i=0; iDeviceNameOffset), - o1->DeviceNameLength/sizeof(WCHAR))); - -- if (!strncmpW( p, volumeW, sizeof(volumeW)/sizeof(WCHAR) )) -+ if (!strncmpW( p, volumeW, ARRAY_SIZE( volumeW ))) - { - /* is there space in the return variable ?? */ - if ((o1->SymbolicLinkNameLength/sizeof(WCHAR))+2 > size) -@@ -1763,7 +1763,7 @@ BOOL WINAPI GetVolumePathNameW(LPCWSTR filename, LPWSTR volumepathname, DWORD bu - goto cleanup; - } - } -- else if (GetCurrentDirectoryW( sizeof(cwdW)/sizeof(cwdW[0]), cwdW )) -+ else if (GetCurrentDirectoryW(ARRAY_SIZE(cwdW), cwdW )) - { - /* if the path is completely bogus then revert to the drive of the working directory */ - fallbackpathW[0] = cwdW[0]; -@@ -1942,12 +1942,12 @@ BOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR volumename, LPWSTR volumepa - linkname = (const WCHAR *)((const char *)link + link->MountPoints[j].SymbolicLinkNameOffset); - - if (link->MountPoints[j].SymbolicLinkNameLength == sizeof(dosdevicesW) + 2 * sizeof(WCHAR) && -- !memicmpW( linkname, dosdevicesW, sizeof(dosdevicesW) / sizeof(WCHAR) )) -+ !memicmpW( linkname, dosdevicesW, ARRAY_SIZE( dosdevicesW ))) - { - len += 4; - if (volumepathname && len < buflen) - { -- path[0] = linkname[sizeof(dosdevicesW) / sizeof(WCHAR)]; -+ path[0] = linkname[ARRAY_SIZE( dosdevicesW )]; - path[1] = ':'; - path[2] = '\\'; - path[3] = 0; --- -1.9.1 - diff --git a/patches/ml-array_size/0053-mciwave-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0053-mciwave-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 89a86169..00000000 --- a/patches/ml-array_size/0053-mciwave-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3508dde97fce11ef0b8ad570b1305aacec34db2e Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:10 +0200 -Subject: [PATCH] mciwave: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/mciwave/mciwave.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/mciwave/mciwave.c b/dlls/mciwave/mciwave.c -index fd4d6f6..0fa9b20 100644 ---- a/dlls/mciwave/mciwave.c -+++ b/dlls/mciwave/mciwave.c -@@ -427,7 +427,7 @@ static DWORD create_tmp_file(HMMIO* hFile, LPWSTR* pszTmpFileName) - szPrefix[2] = 'I'; - szPrefix[3] = '\0'; - -- if (!GetTempPathW(sizeof(szTmpPath)/sizeof(szTmpPath[0]), szTmpPath)) { -+ if (!GetTempPathW(ARRAY_SIZE(szTmpPath), szTmpPath)) { - WARN("can't retrieve temp path!\n"); - *pszTmpFileName = NULL; - return MCIERR_FILE_NOT_FOUND; --- -1.9.1 - diff --git a/patches/ml-array_size/0054-midimap-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0054-midimap-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 221e2b1b..00000000 --- a/patches/ml-array_size/0054-midimap-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From dbea486286c0794f4a0f145b7c6b44d075ab7170 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:11 +0200 -Subject: [PATCH] midimap: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/midimap/midimap.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/midimap/midimap.c b/dlls/midimap/midimap.c -index 1b35da7..290300a 100644 ---- a/dlls/midimap/midimap.c -+++ b/dlls/midimap/midimap.c -@@ -172,7 +172,7 @@ static BOOL MIDIMAP_LoadSettingsScheme(MIDIMAPDATA* mom, const WCHAR* scheme) - return FALSE; - } - -- for (idx = 0; !RegEnumKeyW(hKey, idx, buffer, sizeof(buffer)/sizeof(buffer[0])); idx++) -+ for (idx = 0; !RegEnumKeyW(hKey, idx, buffer, ARRAY_SIZE(buffer)); idx++) - { - if (RegOpenKeyW(hKey, buffer, &hPortKey)) continue; - --- -1.9.1 - diff --git a/patches/ml-array_size/0055-mscms-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0055-mscms-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 25f0fa97..00000000 --- a/patches/ml-array_size/0055-mscms-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e8135dad94110944af7a599dc1310bcbd96eb548 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:12 +0200 -Subject: [PATCH] mscms: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/mscms/profile.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/mscms/profile.c b/dlls/mscms/profile.c -index f0c4087..cb4908c 100644 ---- a/dlls/mscms/profile.c -+++ b/dlls/mscms/profile.c -@@ -295,7 +295,7 @@ BOOL WINAPI GetColorDirectoryW( PCWSTR machine, PWSTR buffer, PDWORD size ) - - if (machine || !size) return FALSE; - -- GetSystemDirectoryW( colordir, sizeof(colordir) / sizeof(WCHAR) ); -+ GetSystemDirectoryW( colordir, ARRAY_SIZE( colordir )); - lstrcatW( colordir, colorsubdir ); - - len = lstrlenW( colordir ) * sizeof(WCHAR); --- -1.9.1 - diff --git a/patches/ml-array_size/0056-msctf-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0056-msctf-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index b43575c2..00000000 --- a/patches/ml-array_size/0056-msctf-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d6b9f1cef89956e4cc7ddd3e01d843cf9da2f770 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:13 +0200 -Subject: [PATCH] msctf: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/msctf/documentmgr.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/msctf/documentmgr.c b/dlls/msctf/documentmgr.c -index cf4c601..9fa6b0f 100644 ---- a/dlls/msctf/documentmgr.c -+++ b/dlls/msctf/documentmgr.c -@@ -188,7 +188,7 @@ static HRESULT WINAPI DocumentMgr_Pop(ITfDocumentMgr *iface, DWORD dwFlags) - { - int i; - -- for (i = 0; i < sizeof(This->contextStack)/sizeof(This->contextStack[0]); i++) -+ for (i = 0; i < ARRAY_SIZE(This->contextStack); i++) - if (This->contextStack[i]) - { - ITfThreadMgrEventSink_OnPopContext(This->ThreadMgrSink, This->contextStack[i]); --- -1.9.1 - diff --git a/patches/ml-array_size/0057-msscript.ocx-Use-the-ARRAY_SIZE-macro.patch b/patches/ml-array_size/0057-msscript.ocx-Use-the-ARRAY_SIZE-macro.patch deleted file mode 100644 index 4be7df58..00000000 --- a/patches/ml-array_size/0057-msscript.ocx-Use-the-ARRAY_SIZE-macro.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 0c5f59d4379c6ae8ce9ea64c525c8957a5665d57 Mon Sep 17 00:00:00 2001 -From: Michael Stefaniuc -Date: Mon, 30 Jul 2018 21:18:14 +0200 -Subject: [PATCH] msscript.ocx: Use the ARRAY_SIZE() macro - -Signed-off-by: Michael Stefaniuc ---- - dlls/msscript.ocx/msscript.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/msscript.ocx/msscript.c b/dlls/msscript.ocx/msscript.c -index 746c2d3..ae5edb7 100644 ---- a/dlls/msscript.ocx/msscript.c -+++ b/dlls/msscript.ocx/msscript.c -@@ -169,7 +169,7 @@ static void release_typelib(void) - if(!typelib) - return; - -- for(i=0; i < sizeof(typeinfos)/sizeof(*typeinfos); i++) -+ for(i = 0; i < ARRAY_SIZE(typeinfos); i++) - if(typeinfos[i]) - ITypeInfo_Release(typeinfos[i]); - --- -1.9.1 - diff --git a/patches/ml-patches/0001-wined3d-Fix-WINED3D_MCS_COLOR2.patch b/patches/ml-patches/0001-wined3d-Fix-WINED3D_MCS_COLOR2.patch deleted file mode 100644 index da6949b7..00000000 --- a/patches/ml-patches/0001-wined3d-Fix-WINED3D_MCS_COLOR2.patch +++ /dev/null @@ -1,75 +0,0 @@ -From d466b7735488b900ae331a5541bbe8db7d760afc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Wed, 25 Jul 2018 22:00:42 +0200 -Subject: [PATCH 01/24] wined3d: Fix WINED3D_MCS_COLOR2. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Don't use it unless we have a specular color in the vertex attributes, -but allow it if there's no diffuse color. - -Signed-off-by: Stefan Dösinger ---- - dlls/wined3d/utils.c | 37 ++++++++++++++++++++++++++++++++----- - 1 file changed, 32 insertions(+), 5 deletions(-) - -diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c -index 937c1bc..ccf5b84 100644 ---- a/dlls/wined3d/utils.c -+++ b/dlls/wined3d/utils.c -@@ -5854,6 +5854,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, - const struct wined3d_gl_info *gl_info = context->gl_info; - const struct wined3d_d3d_info *d3d_info = context->d3d_info; - unsigned int coord_idx, i; -+ BOOL has_diffuse, has_specular; - - memset(settings, 0, sizeof(*settings)); - -@@ -5911,12 +5912,38 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, - settings->point_size = state->gl_primitive_type == GL_POINTS; - settings->per_vertex_point_size = !!(si->use_map & 1u << WINED3D_FFP_PSIZE); - -- if (state->render_states[WINED3D_RS_COLORVERTEX] && (si->use_map & (1u << WINED3D_FFP_DIFFUSE))) -+ has_diffuse = si->use_map & (1u << WINED3D_FFP_DIFFUSE); -+ has_specular = si->use_map & (1u << WINED3D_FFP_SPECULAR); -+ -+ if (state->render_states[WINED3D_RS_COLORVERTEX] && (has_diffuse || has_specular)) - { -- settings->diffuse_source = state->render_states[WINED3D_RS_DIFFUSEMATERIALSOURCE]; -- settings->emissive_source = state->render_states[WINED3D_RS_EMISSIVEMATERIALSOURCE]; -- settings->ambient_source = state->render_states[WINED3D_RS_AMBIENTMATERIALSOURCE]; -- settings->specular_source = state->render_states[WINED3D_RS_SPECULARMATERIALSOURCE]; -+ if (state->render_states[WINED3D_RS_DIFFUSEMATERIALSOURCE] == WINED3D_MCS_COLOR1 && has_diffuse) -+ settings->diffuse_source = WINED3D_MCS_COLOR1; -+ else if (state->render_states[WINED3D_RS_DIFFUSEMATERIALSOURCE] == WINED3D_MCS_COLOR2 && has_specular) -+ settings->diffuse_source = WINED3D_MCS_COLOR2; -+ else -+ settings->diffuse_source = WINED3D_MCS_MATERIAL; -+ -+ if (state->render_states[WINED3D_RS_EMISSIVEMATERIALSOURCE] == WINED3D_MCS_COLOR1 && has_diffuse) -+ settings->emissive_source = WINED3D_MCS_COLOR1; -+ else if (state->render_states[WINED3D_RS_EMISSIVEMATERIALSOURCE] == WINED3D_MCS_COLOR2 && has_specular) -+ settings->emissive_source = WINED3D_MCS_COLOR2; -+ else -+ settings->emissive_source = WINED3D_MCS_MATERIAL; -+ -+ if (state->render_states[WINED3D_RS_AMBIENTMATERIALSOURCE] == WINED3D_MCS_COLOR1 && has_diffuse) -+ settings->ambient_source = WINED3D_MCS_COLOR1; -+ else if (state->render_states[WINED3D_RS_AMBIENTMATERIALSOURCE] == WINED3D_MCS_COLOR2 && has_specular) -+ settings->ambient_source = WINED3D_MCS_COLOR2; -+ else -+ settings->ambient_source = WINED3D_MCS_MATERIAL; -+ -+ if (state->render_states[WINED3D_RS_SPECULARMATERIALSOURCE] == WINED3D_MCS_COLOR1 && has_diffuse) -+ settings->specular_source = WINED3D_MCS_COLOR1; -+ else if (state->render_states[WINED3D_RS_SPECULARMATERIALSOURCE] == WINED3D_MCS_COLOR2 && has_specular) -+ settings->specular_source = WINED3D_MCS_COLOR2; -+ else -+ settings->specular_source = WINED3D_MCS_MATERIAL; - } - else - { --- -1.9.1 - diff --git a/patches/ml-patches/0002-d3d9-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch b/patches/ml-patches/0002-d3d9-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch deleted file mode 100644 index eef17281..00000000 --- a/patches/ml-patches/0002-d3d9-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 11bcbf7ddfb38cd895c6465d188fd441e364e4aa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Wed, 25 Jul 2018 22:00:43 +0200 -Subject: [PATCH 02/24] d3d9/tests: Add a test for D3DMCS_COLOR{1/2}. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Stefan Dösinger ---- - dlls/d3d9/tests/visual.c | 113 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 113 insertions(+) - -diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index b36c189..4be84a9 100644 ---- a/dlls/d3d9/tests/visual.c -+++ b/dlls/d3d9/tests/visual.c -@@ -24027,6 +24027,118 @@ done: - DestroyWindow(window); - } - -+static void test_color_vertex(void) -+{ -+ IDirect3D9 *d3d; -+ IDirect3DDevice9 *device; -+ D3DCOLOR color; -+ ULONG refcount; -+ HWND window; -+ HRESULT hr; -+ D3DMATERIAL9 material; -+ unsigned int i; -+ -+ /* The idea here is to set up ambient light parameters in a way that the ambient color from the -+ * material is just passed through. The emissive color is just passed through anyway. The sum of -+ * ambient + emissive should allow deduction of where the material color came from. -+ * -+ * Note that in cases without a D3DFVF_DIFFUSE flag the first color value in the struct will be -+ * fed into the specular vertex color slot. */ -+ static const struct -+ { -+ DWORD fvf, color_vertex, ambient, emissive, result; -+ } -+ tests[] = -+ { -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, FALSE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x000000c0}, -+ -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ffff00}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_MATERIAL, D3DMCS_COLOR2, 0x0000ff80}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x00ff0040}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR1, 0x00ff0000}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR2, D3DMCS_COLOR2, 0x0000ff00}, -+ -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ff0080}, -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x000000c0}, -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_MATERIAL, D3DMCS_COLOR2, 0x00ff0080}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ff0040}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x00ff0040}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR2, D3DMCS_MATERIAL, 0x000000c0}, -+ -+ {0, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x000000c0}, -+ }; -+ -+ static const struct -+ { -+ struct vec3 position; -+ DWORD diffuse; -+ DWORD specular; -+ } -+ quad[] = -+ { -+ {{-1.0f, -1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{-1.0f, 1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{ 1.0f, -1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{ 1.0f, 1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ }; -+ -+ window = create_window(); -+ ok(!!window, "Failed to create a window.\n"); -+ -+ d3d = Direct3DCreate9(D3D_SDK_VERSION); -+ ok(!!d3d, "Failed to create a D3D object.\n"); -+ if (!(device = create_device(d3d, window, window, TRUE))) -+ { -+ skip("Failed to create a D3D device, skipping tests.\n"); -+ IDirect3D9_Release(d3d); -+ DestroyWindow(window); -+ return; -+ } -+ -+ hr = IDirect3DDevice9_SetRenderState(device, D3DRS_LIGHTING, TRUE); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice9_SetRenderState(device, D3DRS_AMBIENT, 0xffffffff); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ -+ memset(&material, 0, sizeof(material)); -+ material.Ambient.b = 0.5; -+ material.Emissive.b = 0.25; -+ hr = IDirect3DDevice9_SetMaterial(device, &material); -+ ok(SUCCEEDED(hr), "Failed to set material, hr %#x\n", hr); -+ -+ for (i = 0; i < ARRAY_SIZE(tests); ++i) -+ { -+ hr = IDirect3DDevice9_SetRenderState(device, D3DRS_COLORVERTEX, tests[i].color_vertex); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice9_SetRenderState(device, D3DRS_AMBIENTMATERIALSOURCE, tests[i].ambient); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice9_SetRenderState(device, D3DRS_EMISSIVEMATERIALSOURCE, tests[i].emissive); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice9_SetFVF(device, D3DFVF_XYZ | tests[i].fvf); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ -+ hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0x77777777, 0.0f, 0); -+ ok(SUCCEEDED(hr), "Failed to clear depth/stencil, hr %#x.\n", hr); -+ -+ hr = IDirect3DDevice9_BeginScene(device); -+ ok(SUCCEEDED(hr), "Failed to begin scene, hr %#x.\n", hr); -+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(quad[0])); -+ ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr); -+ hr = IDirect3DDevice9_EndScene(device); -+ ok(SUCCEEDED(hr), "Failed to end scene, hr %#x.\n", hr); -+ -+ color = getPixelColor(device, 320, 240); -+ ok(color_match(color, tests[i].result, 1), -+ "Expected color 0x%08x for test %u, got 0x%08x.\n", -+ tests[i].result, i, color); -+ } -+ -+ refcount = IDirect3DDevice9_Release(device); -+ ok(!refcount, "Device has %u references left.\n", refcount); -+ IDirect3D9_Release(d3d); -+ DestroyWindow(window); -+} -+ - START_TEST(visual) - { - D3DADAPTER_IDENTIFIER9 identifier; -@@ -24164,4 +24276,5 @@ START_TEST(visual) - test_mvp_software_vertex_shaders(); - test_null_format(); - test_map_synchronisation(); -+ test_color_vertex(); - } --- -1.9.1 - diff --git a/patches/ml-patches/0003-d3d8-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch b/patches/ml-patches/0003-d3d8-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch deleted file mode 100644 index 710a6f9a..00000000 --- a/patches/ml-patches/0003-d3d8-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch +++ /dev/null @@ -1,144 +0,0 @@ -From 57b372d60b79f1bd08253181e15078f101055c7d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Wed, 25 Jul 2018 22:00:44 +0200 -Subject: [PATCH 03/24] d3d8/tests: Add a test for D3DMCS_COLOR{1/2}. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Stefan Dösinger ---- - dlls/d3d8/tests/visual.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 112 insertions(+) - -diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c -index bed70d8..c60af69 100644 ---- a/dlls/d3d8/tests/visual.c -+++ b/dlls/d3d8/tests/visual.c -@@ -10279,6 +10279,117 @@ done: - DestroyWindow(window); - } - -+static void test_color_vertex(void) -+{ -+ IDirect3D8 *d3d; -+ IDirect3DDevice8 *device; -+ D3DCOLOR color; -+ ULONG refcount; -+ HWND window; -+ HRESULT hr; -+ D3DMATERIAL8 material; -+ unsigned int i; -+ -+ /* The idea here is to set up ambient light parameters in a way that the ambient color from the -+ * material is just passed through. The emissive color is just passed through anyway. The sum of -+ * ambient + emissive should allow deduction of where the material color came from. -+ * -+ * Note that in cases without a D3DFVF_DIFFUSE flag the first color value in the struct will be -+ * fed into the specular vertex color slot. */ -+ static const struct -+ { -+ DWORD fvf, color_vertex, ambient, emissive, result; -+ } -+ tests[] = -+ { -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, FALSE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x000000c0}, -+ -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ffff00}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_MATERIAL, D3DMCS_COLOR2, 0x0000ff80}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x00ff0040}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR1, 0x00ff0000}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR2, D3DMCS_COLOR2, 0x0000ff00}, -+ -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ff0080}, -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x000000c0}, -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_MATERIAL, D3DMCS_COLOR2, 0x00ff0080}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ff0040}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x00ff0040}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR2, D3DMCS_MATERIAL, 0x000000c0}, -+ -+ {0, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x000000c0}, -+ }; -+ static const struct -+ { -+ struct vec3 position; -+ DWORD diffuse; -+ DWORD specular; -+ } -+ quad[] = -+ { -+ {{-1.0f, -1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{-1.0f, 1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{ 1.0f, -1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{ 1.0f, 1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ }; -+ -+ window = create_window(); -+ ok(!!window, "Failed to create a window.\n"); -+ -+ d3d = Direct3DCreate8(D3D_SDK_VERSION); -+ ok(!!d3d, "Failed to create a D3D object.\n"); -+ if (!(device = create_device(d3d, window, window, TRUE))) -+ { -+ skip("Failed to create a D3D device, skipping tests.\n"); -+ IDirect3D8_Release(d3d); -+ DestroyWindow(window); -+ return; -+ } -+ -+ hr = IDirect3DDevice8_SetRenderState(device, D3DRS_LIGHTING, TRUE); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice8_SetRenderState(device, D3DRS_AMBIENT, 0xffffffff); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ -+ memset(&material, 0, sizeof(material)); -+ material.Ambient.b = 0.5; -+ material.Emissive.b = 0.25; -+ hr = IDirect3DDevice8_SetMaterial(device, &material); -+ ok(SUCCEEDED(hr), "Failed to set material, hr %#x\n", hr); -+ -+ for (i = 0; i < ARRAY_SIZE(tests); ++i) -+ { -+ hr = IDirect3DDevice8_SetRenderState(device, D3DRS_COLORVERTEX, tests[i].color_vertex); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice8_SetRenderState(device, D3DRS_AMBIENTMATERIALSOURCE, tests[i].ambient); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice8_SetRenderState(device, D3DRS_EMISSIVEMATERIALSOURCE, tests[i].emissive); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice8_SetVertexShader(device, D3DFVF_XYZ | tests[i].fvf); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ -+ hr = IDirect3DDevice8_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0x77777777, 0.0f, 0); -+ ok(SUCCEEDED(hr), "Failed to clear depth/stencil, hr %#x.\n", hr); -+ -+ hr = IDirect3DDevice8_BeginScene(device); -+ ok(SUCCEEDED(hr), "Failed to begin scene, hr %#x.\n", hr); -+ hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(quad[0])); -+ ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr); -+ hr = IDirect3DDevice8_EndScene(device); -+ ok(SUCCEEDED(hr), "Failed to end scene, hr %#x.\n", hr); -+ -+ color = getPixelColor(device, 320, 240); -+ ok(color_match(color, tests[i].result, 1), -+ "Expected color 0x%08x for test %u, got 0x%08x.\n", -+ tests[i].result, i, color); -+ } -+ -+ refcount = IDirect3DDevice8_Release(device); -+ ok(!refcount, "Device has %u references left.\n", refcount); -+ IDirect3D8_Release(d3d); -+ DestroyWindow(window); -+} -+ - START_TEST(visual) - { - D3DADAPTER_IDENTIFIER8 identifier; -@@ -10352,4 +10463,5 @@ START_TEST(visual) - test_drawindexedprimitiveup(); - test_map_synchronisation(); - test_viewport(); -+ test_color_vertex(); - } --- -1.9.1 - diff --git a/patches/ml-patches/0004-ddraw-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch b/patches/ml-patches/0004-ddraw-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch deleted file mode 100644 index 26a62e89..00000000 --- a/patches/ml-patches/0004-ddraw-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch +++ /dev/null @@ -1,172 +0,0 @@ -From 32b2c4ee0b87bcfabccb5d84090c964094a29ed0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Wed, 25 Jul 2018 22:00:45 +0200 -Subject: [PATCH 04/24] ddraw/tests: Add a test for D3DMCS_COLOR{1/2}. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -A ddraw4 version is on my TODO list. ddraw1 and ddraw2 cannot use -lighting and per-vertex color at the same time due to the predefined -D3D*VERTEX structs. ddraw4 can, and it has D3DLIGHTSTATE_COLORVERTEX, -but the material source states are missing. I assume that one or more of -the material properties then track the vertex color, but I have to find -out which. - -Signed-off-by: Stefan Dösinger ---- - dlls/ddraw/tests/ddraw7.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 133 insertions(+) - -diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c -index 35a45c0..bf34962 100644 ---- a/dlls/ddraw/tests/ddraw7.c -+++ b/dlls/ddraw/tests/ddraw7.c -@@ -14267,6 +14267,138 @@ static void test_viewport(void) - DestroyWindow(window); - } - -+static void test_color_vertex(void) -+{ -+ IDirectDrawSurface7 *rt; -+ IDirect3DDevice7 *device; -+ unsigned int i; -+ ULONG refcount; -+ HWND window; -+ HRESULT hr; -+ D3DMATERIAL7 material; -+ D3DCOLOR color; -+ -+ static struct -+ { -+ struct vec3 position; -+ DWORD diffuse; -+ DWORD specular; -+ } -+ quad_2c[] = -+ { -+ {{-1.0f, -1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{-1.0f, 1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{ 1.0f, -1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ {{ 1.0f, 1.0f, 0.0f}, 0xffff0000, 0xff00ff00}, -+ }; -+ static struct -+ { -+ struct vec3 position; -+ DWORD color; -+ } -+ quad_1c[] = -+ { -+ {{-1.0f, -1.0f, 0.0f}, 0xffff0000}, -+ {{-1.0f, 1.0f, 0.0f}, 0xffff0000}, -+ {{ 1.0f, -1.0f, 0.0f}, 0xffff0000}, -+ {{ 1.0f, 1.0f, 0.0f}, 0xffff0000}, -+ }; -+ static struct -+ { -+ struct vec3 position; -+ } -+ quad_0c[] = -+ { -+ {{-1.0f, -1.0f, 0.0f}}, -+ {{-1.0f, 1.0f, 0.0f}}, -+ {{ 1.0f, -1.0f, 0.0f}}, -+ {{ 1.0f, 1.0f, 0.0f}}, -+ }; -+ -+ /* The idea here is to set up ambient light parameters in a way that the ambient color from the -+ * material is just passed through. The emissive color is just passed through anyway. The sum of -+ * ambient + emissive should allow deduction of where the material color came from. */ -+ static const struct -+ { -+ DWORD fvf, color_vertex, ambient, emissive, result; -+ void *vtx; -+ } -+ tests[] = -+ { -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, FALSE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x000000c0, quad_2c}, -+ -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ffff00, quad_2c}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_MATERIAL, D3DMCS_COLOR2, 0x0000ff80, quad_2c}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x00ff0040, quad_2c}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR1, 0x00ff0000, quad_2c}, -+ {D3DFVF_DIFFUSE | D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR2, D3DMCS_COLOR2, 0x0000ff00, quad_2c}, -+ -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ff0080, quad_1c}, -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x000000c0, quad_1c}, -+ {D3DFVF_SPECULAR, TRUE, D3DMCS_MATERIAL, D3DMCS_COLOR2, 0x00ff0080, quad_1c}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x00ff0040, quad_1c}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR1, D3DMCS_MATERIAL, 0x00ff0040, quad_1c}, -+ {D3DFVF_DIFFUSE, TRUE, D3DMCS_COLOR2, D3DMCS_MATERIAL, 0x000000c0, quad_1c}, -+ -+ {0, TRUE, D3DMCS_COLOR1, D3DMCS_COLOR2, 0x000000c0, quad_0c}, -+ }; -+ -+ window = CreateWindowA("static", "d3d7_test", WS_OVERLAPPEDWINDOW, -+ 0, 0, 640, 480, 0, 0, 0, 0); -+ if (!(device = create_device(window, DDSCL_NORMAL))) -+ { -+ skip("Failed to create a 3D device, skipping test.\n"); -+ DestroyWindow(window); -+ return; -+ } -+ hr = IDirect3DDevice7_GetRenderTarget(device, &rt); -+ ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr); -+ -+ hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_LIGHTING, TRUE); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_AMBIENT, 0xffffffff); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ -+ memset(&material, 0, sizeof(material)); -+ U3(U1(material).ambient).b = 0.5; -+ U3(U3(material).emissive).b = 0.25f; -+ hr = IDirect3DDevice7_SetMaterial(device, &material); -+ ok(SUCCEEDED(hr), "Failed to set material, hr %#x\n", hr); -+ -+ for (i = 0; i < ARRAY_SIZE(tests); ++i) -+ { -+ hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_COLORVERTEX, tests[i].color_vertex); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_AMBIENTMATERIALSOURCE, tests[i].ambient); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_EMISSIVEMATERIALSOURCE, tests[i].emissive); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ hr = IDirect3DDevice7_SetRenderState(device, D3DRENDERSTATE_ZENABLE, D3DZB_FALSE); -+ ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr); -+ -+ hr = IDirect3DDevice7_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0x77777777, 0.0f, 0); -+ ok(SUCCEEDED(hr), "Failed to clear depth/stencil, hr %#x.\n", hr); -+ -+ hr = IDirect3DDevice7_BeginScene(device); -+ ok(SUCCEEDED(hr), "Failed to begin scene, hr %#x.\n", hr); -+ hr = IDirect3DDevice7_DrawPrimitive(device, D3DPT_TRIANGLESTRIP, D3DFVF_XYZ | tests[i].fvf, -+ tests[i].vtx, 4, 0); -+ ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr); -+ hr = IDirect3DDevice7_EndScene(device); -+ ok(SUCCEEDED(hr), "Failed to end scene, hr %#x.\n", hr); -+ -+ color = get_surface_color(rt, 320, 240); -+ ok(compare_color(color, tests[i].result, 1), -+ "Expected color 0x%08x for test %u, got 0x%08x.\n", -+ tests[i].result, i, color); -+ } -+ -+ IDirectDrawSurface7_Release(rt); -+ refcount = IDirect3DDevice7_Release(device); -+ ok(!refcount, "Device has %u references left.\n", refcount); -+ DestroyWindow(window); -+} -+ - START_TEST(ddraw7) - { - DDDEVICEIDENTIFIER2 identifier; -@@ -14402,4 +14534,5 @@ START_TEST(ddraw7) - test_clear(); - test_enum_surfaces(); - test_viewport(); -+ test_color_vertex(); - } --- -1.9.1 - diff --git a/patches/ml-patches/0005-dsound-Correctly-calculate-angle-between-vectors-wit.patch b/patches/ml-patches/0005-dsound-Correctly-calculate-angle-between-vectors-wit.patch deleted file mode 100644 index d0628e19..00000000 --- a/patches/ml-patches/0005-dsound-Correctly-calculate-angle-between-vectors-wit.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0eeb6d6b57cb8e1c50c65915799fbd4a7b2b6c43 Mon Sep 17 00:00:00 2001 -From: Andrew Eikum -Date: Tue, 24 Jul 2018 11:05:06 -0500 -Subject: [PATCH 05/24] dsound: Correctly calculate angle between vectors with - equal and opposite directions - -Signed-off-by: Andrew Eikum ---- - dlls/dsound/sound3d.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/dlls/dsound/sound3d.c b/dlls/dsound/sound3d.c -index 03fd3d4..118bb60 100644 ---- a/dlls/dsound/sound3d.c -+++ b/dlls/dsound/sound3d.c -@@ -111,7 +111,13 @@ static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECT - return 0; - - cos = product/(la*lb); -- angle = acos(cos); -+ if(cos > 1.f){ -+ angle = 0; -+ }else if(cos < -1.f){ -+ angle = M_PI; -+ }else{ -+ angle = acos(cos); -+ } - TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f radians (%f degrees)\n", a->x, a->y, a->z, b->x, - b->y, b->z, angle, RadToDeg(angle)); - return angle; --- -1.9.1 - diff --git a/patches/ml-patches/0007-wine.inf-Add-Sources-key.patch b/patches/ml-patches/0007-wine.inf-Add-Sources-key.patch deleted file mode 100644 index 11858918..00000000 --- a/patches/ml-patches/0007-wine.inf-Add-Sources-key.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 45cf0122c89190fe8264be3e9b5e4ab65814fa87 Mon Sep 17 00:00:00 2001 -From: Gijs Vermeulen -Date: Wed, 25 Jul 2018 01:52:06 +0200 -Subject: [PATCH 07/24] wine.inf: Add "Sources" key. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44981 -Signed-off-by: Gijs Vermeulen ---- - loader/wine.inf.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/loader/wine.inf.in b/loader/wine.inf.in -index 9a76509..7774289 100644 ---- a/loader/wine.inf.in -+++ b/loader/wine.inf.in -@@ -3416,6 +3416,7 @@ HKLM,%CurrentVersionNT%\SvcHost,"netsvcs",0x00010008,"Schedule" - HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r" - HKLM,"System\CurrentControlSet\Services\Eventlog\Application",,16 - HKLM,"System\CurrentControlSet\Services\Eventlog\System",,16 -+HKLM,"System\CurrentControlSet\Services\Eventlog\System","Sources",0x10000,"" - HKLM,"System\CurrentControlSet\Services\Tcpip\Parameters",,16 - HKLM,"System\CurrentControlSet\Services\VxD\MSTCP",,16 - HKLM,"System\CurrentControlSet\Services\Winsock\Parameters",,16 --- -1.9.1 - diff --git a/patches/ml-patches/0009-api-ms-win-devices-config-l1-1-0-Add-dll.patch b/patches/ml-patches/0009-api-ms-win-devices-config-l1-1-0-Add-dll.patch deleted file mode 100644 index 6e51768c..00000000 --- a/patches/ml-patches/0009-api-ms-win-devices-config-l1-1-0-Add-dll.patch +++ /dev/null @@ -1,114 +0,0 @@ -From c5f3c80ec9c35af958a232a9deb8f98f2225b992 Mon Sep 17 00:00:00 2001 -From: Andrey Gusev -Date: Mon, 23 Jul 2018 15:07:39 +0300 -Subject: [PATCH 09/24] api-ms-win-devices-config-l1-1-0: Add dll. - -Signed-off-by: Andrey Gusev ---- - configure | 2 ++ - configure.ac | 1 + - dlls/api-ms-win-devices-config-l1-1-0/Makefile.in | 1 + - .../api-ms-win-devices-config-l1-1-0.spec | 38 ++++++++++++++++++++++ - tools/make_specfiles | 1 + - 5 files changed, 43 insertions(+) - create mode 100644 dlls/api-ms-win-devices-config-l1-1-0/Makefile.in - create mode 100644 dlls/api-ms-win-devices-config-l1-1-0/api-ms-win-devices-config-l1-1-0.spec - -diff --git a/configure b/configure -index 337ce91..fd58e15 100755 ---- a/configure -+++ b/configure -@@ -1045,6 +1045,7 @@ enable_api_ms_win_crt_stdio_l1_1_0 - enable_api_ms_win_crt_string_l1_1_0 - enable_api_ms_win_crt_time_l1_1_0 - enable_api_ms_win_crt_utility_l1_1_0 -+enable_api_ms_win_devices_config_l1_1_0 - enable_api_ms_win_devices_config_l1_1_1 - enable_api_ms_win_devices_query_l1_1_1 - enable_api_ms_win_downlevel_advapi32_l1_1_0 -@@ -19137,6 +19138,7 @@ wine_fn_config_makefile dlls/api-ms-win-crt-stdio-l1-1-0 enable_api_ms_win_crt_s - wine_fn_config_makefile dlls/api-ms-win-crt-string-l1-1-0 enable_api_ms_win_crt_string_l1_1_0 - wine_fn_config_makefile dlls/api-ms-win-crt-time-l1-1-0 enable_api_ms_win_crt_time_l1_1_0 - wine_fn_config_makefile dlls/api-ms-win-crt-utility-l1-1-0 enable_api_ms_win_crt_utility_l1_1_0 -+wine_fn_config_makefile dlls/api-ms-win-devices-config-l1-1-0 enable_api_ms_win_devices_config_l1_1_0 - wine_fn_config_makefile dlls/api-ms-win-devices-config-l1-1-1 enable_api_ms_win_devices_config_l1_1_1 - wine_fn_config_makefile dlls/api-ms-win-devices-query-l1-1-1 enable_api_ms_win_devices_query_l1_1_1 - wine_fn_config_makefile dlls/api-ms-win-downlevel-advapi32-l1-1-0 enable_api_ms_win_downlevel_advapi32_l1_1_0 -diff --git a/configure.ac b/configure.ac -index be247ea..ddf7ee3 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2998,6 +2998,7 @@ WINE_CONFIG_MAKEFILE(dlls/api-ms-win-crt-stdio-l1-1-0) - WINE_CONFIG_MAKEFILE(dlls/api-ms-win-crt-string-l1-1-0) - WINE_CONFIG_MAKEFILE(dlls/api-ms-win-crt-time-l1-1-0) - WINE_CONFIG_MAKEFILE(dlls/api-ms-win-crt-utility-l1-1-0) -+WINE_CONFIG_MAKEFILE(dlls/api-ms-win-devices-config-l1-1-0) - WINE_CONFIG_MAKEFILE(dlls/api-ms-win-devices-config-l1-1-1) - WINE_CONFIG_MAKEFILE(dlls/api-ms-win-devices-query-l1-1-1) - WINE_CONFIG_MAKEFILE(dlls/api-ms-win-downlevel-advapi32-l1-1-0) -diff --git a/dlls/api-ms-win-devices-config-l1-1-0/Makefile.in b/dlls/api-ms-win-devices-config-l1-1-0/Makefile.in -new file mode 100644 -index 0000000..1e11946 ---- /dev/null -+++ b/dlls/api-ms-win-devices-config-l1-1-0/Makefile.in -@@ -0,0 +1 @@ -+MODULE = api-ms-win-devices-config-l1-1-0.dll -diff --git a/dlls/api-ms-win-devices-config-l1-1-0/api-ms-win-devices-config-l1-1-0.spec b/dlls/api-ms-win-devices-config-l1-1-0/api-ms-win-devices-config-l1-1-0.spec -new file mode 100644 -index 0000000..fcd3aaa ---- /dev/null -+++ b/dlls/api-ms-win-devices-config-l1-1-0/api-ms-win-devices-config-l1-1-0.spec -@@ -0,0 +1,38 @@ -+@ stub CM_Delete_Class_Key -+@ stub CM_Delete_DevNode_Key -+@ stub CM_Delete_Device_Interface_KeyW -+@ stub CM_Disable_DevNode -+@ stub CM_Enable_DevNode -+@ stdcall CM_Get_Child(ptr long long) setupapi.CM_Get_Child -+@ stub CM_Get_Class_PropertyW -+@ stub CM_Get_Class_Property_Keys -+@ stdcall CM_Get_Class_Registry_PropertyW(ptr long ptr ptr long long ptr) setupapi.CM_Get_Class_Registry_PropertyW -+@ stub CM_Get_Depth -+@ stub CM_Get_DevNode_PropertyW -+@ stub CM_Get_DevNode_Property_Keys -+@ stdcall CM_Get_DevNode_Registry_PropertyW(long long ptr ptr ptr long) setupapi.CM_Get_DevNode_Registry_PropertyW -+@ stdcall CM_Get_DevNode_Status(ptr ptr long long) setupapi.CM_Get_DevNode_Status -+@ stdcall CM_Get_Device_IDW(ptr ptr long long) setupapi.CM_Get_Device_IDW -+@ stdcall CM_Get_Device_ID_ListW(wstr ptr long long) setupapi.CM_Get_Device_ID_ListW -+@ stdcall CM_Get_Device_ID_List_SizeW(ptr wstr long) setupapi.CM_Get_Device_ID_List_SizeW -+@ stdcall CM_Get_Device_ID_Size(ptr ptr long) setupapi.CM_Get_Device_ID_Size -+@ stub CM_Get_Device_Interface_ListW -+@ stdcall CM_Get_Device_Interface_List_SizeW(ptr ptr wstr long) setupapi.CM_Get_Device_Interface_List_SizeW -+@ stub CM_Get_Device_Interface_PropertyW -+@ stub CM_Get_Device_Interface_Property_KeysW -+@ stdcall CM_Get_Parent(ptr long long) setupapi.CM_Get_Parent -+@ stub CM_Get_Sibling -+@ stdcall CM_Locate_DevNodeW(ptr wstr long) setupapi.CM_Locate_DevNodeW -+@ stub CM_Open_Class_KeyW -+@ stdcall CM_Open_DevNode_Key(long long long long ptr long) setupapi.CM_Open_DevNode_Key -+@ stub CM_Open_Device_Interface_KeyW -+@ stub CM_Query_And_Remove_SubTreeW -+@ stub CM_Register_Notification -+@ stub CM_Set_Class_PropertyW -+@ stdcall CM_Set_Class_Registry_PropertyW(ptr long ptr long long ptr) setupapi.CM_Set_Class_Registry_PropertyW -+@ stub CM_Set_DevNode_PropertyW -+@ stub CM_Set_DevNode_Registry_PropertyW -+@ stub CM_Set_Device_Interface_PropertyW -+@ stub CM_Setup_DevNode -+@ stub CM_Uninstall_DevNode -+@ stub CM_Unregister_Notification -diff --git a/tools/make_specfiles b/tools/make_specfiles -index 4faf665..cd3af87 100755 ---- a/tools/make_specfiles -+++ b/tools/make_specfiles -@@ -105,6 +105,7 @@ my @dll_groups = - [ - "setupapi", - "cfgmgr32", -+ "api-ms-win-devices-config-l1-1-0", - "api-ms-win-devices-config-l1-1-1", - "api-ms-win-devices-query-l1-1-1", - ], --- -1.9.1 - diff --git a/patches/ml-patches/0010-wnet-Make-WNetGetUniversalNameW-return-required-size.patch b/patches/ml-patches/0010-wnet-Make-WNetGetUniversalNameW-return-required-size.patch deleted file mode 100644 index 01a7da15..00000000 --- a/patches/ml-patches/0010-wnet-Make-WNetGetUniversalNameW-return-required-size.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 569cd096daa90aa4d4fb8602453843f73feb7fe6 Mon Sep 17 00:00:00 2001 -From: Fabian Maurer -Date: Fri, 20 Jul 2018 21:05:05 +0200 -Subject: [PATCH 10/24] wnet: Make WNetGetUniversalNameW return required size - when buffer is too small and add test - -The pointer is set to the required size not only when the input size -is 0, but generally when it is too small. - -Signed-off-by: Fabian Maurer ---- - dlls/mpr/tests/mpr.c | 5 ++++- - dlls/mpr/wnet.c | 1 + - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/dlls/mpr/tests/mpr.c b/dlls/mpr/tests/mpr.c -index fc067d9..3e5ca09 100644 ---- a/dlls/mpr/tests/mpr.c -+++ b/dlls/mpr/tests/mpr.c -@@ -51,11 +51,14 @@ static void test_WNetGetUniversalName(void) - - ok(info_size == sizeof(buffer), "Got wrong size: %u\n", info_size); - -- fail_size = 0; -+ fail_size = 1; - ret = WNetGetUniversalNameA(driveA, UNIVERSAL_NAME_INFO_LEVEL, - buffer, &fail_size); - if(drive_type == DRIVE_REMOTE) -+ { - todo_wine ok(ret == WN_BAD_VALUE || ret == WN_MORE_DATA, "WNetGetUniversalNameA failed: %08x\n", ret); -+ ok(fail_size > 1, "Got %d\n", fail_size); -+ } - else - ok(ret == WN_NOT_CONNECTED || ret == WN_NO_NET_OR_BAD_PATH, - "(%s) WNetGetUniversalNameW gave wrong error: %u\n", driveA, ret); -diff --git a/dlls/mpr/wnet.c b/dlls/mpr/wnet.c -index ad4f1dd..a2f8a04 100644 ---- a/dlls/mpr/wnet.c -+++ b/dlls/mpr/wnet.c -@@ -2385,6 +2385,7 @@ DWORD WINAPI WNetGetUniversalNameW ( LPCWSTR lpLocalPath, DWORD dwInfoLevel, - size = sizeof(*info) + (lstrlenW(lpLocalPath) + 1) * sizeof(WCHAR); - if (*lpBufferSize < size) - { -+ *lpBufferSize = size; - err = WN_MORE_DATA; - break; - } --- -1.9.1 - diff --git a/patches/ml-patches/0011-msvcp90-Fix-EOF-delimiter-handling-in-basic_istream-.patch b/patches/ml-patches/0011-msvcp90-Fix-EOF-delimiter-handling-in-basic_istream-.patch deleted file mode 100644 index d2980793..00000000 --- a/patches/ml-patches/0011-msvcp90-Fix-EOF-delimiter-handling-in-basic_istream-.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 98b0a706020f3728e01cc7d38a6bba8ed8dd91f5 Mon Sep 17 00:00:00 2001 -From: Piotr Caban -Date: Thu, 26 Jul 2018 14:40:21 +0200 -Subject: [PATCH 11/24] msvcp90: Fix EOF delimiter handling in - basic_istream::ignore. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45495 - -Signed-off-by: Piotr Caban ---- - dlls/msvcp60/ios.c | 2 +- - dlls/msvcp90/ios.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dlls/msvcp60/ios.c b/dlls/msvcp60/ios.c -index 8a5813e..518c8da 100644 ---- a/dlls/msvcp60/ios.c -+++ b/dlls/msvcp60/ios.c -@@ -8101,7 +8101,7 @@ basic_istream_char* __thiscall basic_istream_char_ignore(basic_istream_char *thi - break; - } - -- if(ch==(unsigned char)delim) -+ if(ch==delim) - break; - - this->count++; -diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c -index 6a82db6..e71d30f 100644 ---- a/dlls/msvcp90/ios.c -+++ b/dlls/msvcp90/ios.c -@@ -8583,7 +8583,7 @@ basic_istream_char* __thiscall basic_istream_char_ignore(basic_istream_char *thi - break; - } - -- if(ch==(unsigned char)delim) -+ if(ch==delim) - break; - - this->count++; --- -1.9.1 - diff --git a/patches/ml-patches/0012-ntoskrnl-Emulate-sti-cli-instructions-on-x86_64.patch b/patches/ml-patches/0012-ntoskrnl-Emulate-sti-cli-instructions-on-x86_64.patch deleted file mode 100644 index aa12d23e..00000000 --- a/patches/ml-patches/0012-ntoskrnl-Emulate-sti-cli-instructions-on-x86_64.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 7a654e3796602a21c0e8cd93f12e16446ea26678 Mon Sep 17 00:00:00 2001 -From: Fabian Maurer -Date: Sat, 28 Jul 2018 16:31:46 +0200 -Subject: [PATCH 12/24] ntoskrnl: Emulate sti/cli instructions on x86_64 - -Fixes bug 45521. -Thanks to Anastasius Focht for the clear bug report. - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45521 -Signed-off-by: Fabian Maurer ---- - dlls/ntoskrnl.exe/instr.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/dlls/ntoskrnl.exe/instr.c b/dlls/ntoskrnl.exe/instr.c -index b2dac58..67cdd32 100644 ---- a/dlls/ntoskrnl.exe/instr.c -+++ b/dlls/ntoskrnl.exe/instr.c -@@ -815,6 +815,11 @@ static DWORD emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context ) - } - break; /* Unable to emulate it */ - } -+ -+ case 0xfa: /* cli */ -+ case 0xfb: /* sti */ -+ context->Rip += prefixlen + 1; -+ return ExceptionContinueExecution; - } - return ExceptionContinueSearch; /* Unable to emulate it */ - } --- -1.9.1 - diff --git a/patches/ml-patches/0014-odbc32-Rename-functions-to-avoid-conflicts-with-nati.patch b/patches/ml-patches/0014-odbc32-Rename-functions-to-avoid-conflicts-with-nati.patch deleted file mode 100644 index c0994b25..00000000 --- a/patches/ml-patches/0014-odbc32-Rename-functions-to-avoid-conflicts-with-nati.patch +++ /dev/null @@ -1,1365 +0,0 @@ -From 6520e0216aff376650c3e9c10de49eb616abe3be Mon Sep 17 00:00:00 2001 -From: Daniel Lehman -Date: Thu, 14 Jun 2018 09:43:02 -0700 -Subject: [PATCH 14/24] odbc32: Rename functions to avoid conflicts with native - drivers. - -Signed-off-by: Daniel Lehman ---- - dlls/odbc32/odbc32.spec | 232 ++++++++++++++++++++++----------------------- - dlls/odbc32/proxyodbc.c | 247 +++++++++++++++++++++++++----------------------- - 2 files changed, 243 insertions(+), 236 deletions(-) - -diff --git a/dlls/odbc32/odbc32.spec b/dlls/odbc32/odbc32.spec -index ccb540b..7363f3e 100644 ---- a/dlls/odbc32/odbc32.spec -+++ b/dlls/odbc32/odbc32.spec -@@ -1,81 +1,81 @@ -- 1 stdcall SQLAllocConnect(long ptr) -- 2 stdcall SQLAllocEnv(ptr) -- 3 stdcall SQLAllocStmt(long ptr) -- 4 stdcall SQLBindCol(long long long ptr long ptr) -- 5 stdcall SQLCancel(long) -- 6 stdcall SQLColAttributes(long long long ptr long ptr ptr) -- 7 stdcall SQLConnect(long str long str long str long) -- 8 stdcall SQLDescribeCol(long long str long ptr ptr ptr ptr ptr) -- 9 stdcall SQLDisconnect(long) -- 10 stdcall SQLError(long long long str ptr str long ptr) -- 11 stdcall SQLExecDirect(long str long) -- 12 stdcall SQLExecute(long) -- 13 stdcall SQLFetch(long) -- 14 stdcall SQLFreeConnect(long) -- 15 stdcall SQLFreeEnv(long) -- 16 stdcall SQLFreeStmt(long long ) -- 17 stdcall SQLGetCursorName(long str long ptr) -- 18 stdcall SQLNumResultCols(long ptr) -- 19 stdcall SQLPrepare(long str long) -- 20 stdcall SQLRowCount(long ptr) -- 21 stdcall SQLSetCursorName(long str long) -- 22 stdcall SQLSetParam(long long long long long long ptr ptr) -- 23 stdcall SQLTransact(long long long) -- 24 stdcall SQLAllocHandle(long long ptr) -- 25 stdcall SQLBindParam(long long long long long long ptr ptr) -- 26 stdcall SQLCloseCursor(long) -- 27 stdcall SQLColAttribute(long long long ptr long ptr ptr) -- 28 stdcall SQLCopyDesc(long long) -- 29 stdcall SQLEndTran(long long long) -- 30 stdcall SQLFetchScroll(long long long) -- 31 stdcall SQLFreeHandle(long long) -- 32 stdcall SQLGetConnectAttr(long long ptr long ptr) -- 33 stdcall SQLGetDescField(long long long ptr long ptr) -- 34 stdcall SQLGetDescRec(long long str long ptr ptr ptr ptr ptr ptr ptr) -- 35 stdcall SQLGetDiagField(long long long long ptr long ptr) -- 36 stdcall SQLGetDiagRec(long long long str ptr str long ptr) -- 37 stdcall SQLGetEnvAttr(long long ptr long ptr) -- 38 stdcall SQLGetStmtAttr(long long ptr long ptr) -- 39 stdcall SQLSetConnectAttr(long long ptr long) -- 40 stdcall SQLColumns(long str long str long str long str long) -- 41 stdcall SQLDriverConnect(long long str long str long ptr long) -- 42 stdcall SQLGetConnectOption(long long ptr) -- 43 stdcall SQLGetData(long long long ptr long ptr) -- 44 stdcall SQLGetFunctions(long long ptr) -- 45 stdcall SQLGetInfo(long long ptr long ptr) -- 46 stdcall SQLGetStmtOption(long long ptr) -- 47 stdcall SQLGetTypeInfo(long long) -- 48 stdcall SQLParamData(long ptr) -- 49 stdcall SQLPutData(long ptr long) -- 50 stdcall SQLSetConnectOption(long long long) -- 51 stdcall SQLSetStmtOption(long long long) -- 52 stdcall SQLSpecialColumns(long long str long str long str long long long) -- 53 stdcall SQLStatistics(long str long str long str long long long) -- 54 stdcall SQLTables(long str long str long str long str long) -- 55 stdcall SQLBrowseConnect(long str long str long ptr) -- 56 stdcall SQLColumnPrivileges(long str long str long str long str long) -- 57 stdcall SQLDataSources(long long str long ptr str long ptr) -- 58 stdcall SQLDescribeParam(long long ptr ptr ptr ptr) -- 59 stdcall SQLExtendedFetch(long long long ptr ptr) -- 60 stdcall SQLForeignKeys(long str long str long str long str long str long str long) -- 61 stdcall SQLMoreResults(long) -- 62 stdcall SQLNativeSql(long str long str long ptr) -- 63 stdcall SQLNumParams(long ptr) -- 64 stdcall SQLParamOptions(long long ptr) -- 65 stdcall SQLPrimaryKeys(long str long str long str long) -- 66 stdcall SQLProcedureColumns(long str long str long str long str long) -- 67 stdcall SQLProcedures(long str long str long str long) -- 68 stdcall SQLSetPos(long long long long) -- 69 stdcall SQLSetScrollOptions(long long long long) -- 70 stdcall SQLTablePrivileges(long str long str long str long) -- 71 stdcall SQLDrivers(long long str long ptr str long ptr) -- 72 stdcall SQLBindParameter(long long long long long long long ptr long ptr) -- 73 stdcall SQLSetDescField(long long long ptr long) -- 74 stdcall SQLSetDescRec(long long long long long long long ptr ptr ptr) -- 75 stdcall SQLSetEnvAttr(long long ptr long) -- 76 stdcall SQLSetStmtAttr(long long ptr long) -- 77 stdcall SQLAllocHandleStd(long long ptr) -- 78 stdcall SQLBulkOperations(long long) -+ 1 stdcall SQLAllocConnect(long ptr) ODBC32_SQLAllocConnect -+ 2 stdcall SQLAllocEnv(ptr) ODBC32_SQLAllocEnv -+ 3 stdcall SQLAllocStmt(long ptr) ODBC32_SQLAllocStmt -+ 4 stdcall SQLBindCol(long long long ptr long ptr) ODBC32_SQLBindCol -+ 5 stdcall SQLCancel(long) ODBC32_SQLCancel -+ 6 stdcall SQLColAttributes(long long long ptr long ptr ptr) ODBC32_SQLColAttributes -+ 7 stdcall SQLConnect(long str long str long str long) ODBC32_SQLConnect -+ 8 stdcall SQLDescribeCol(long long str long ptr ptr ptr ptr ptr) ODBC32_SQLDescribeCol -+ 9 stdcall SQLDisconnect(long) ODBC32_SQLDisconnect -+ 10 stdcall SQLError(long long long str ptr str long ptr) ODBC32_SQLError -+ 11 stdcall SQLExecDirect(long str long) ODBC32_SQLExecDirect -+ 12 stdcall SQLExecute(long) ODBC32_SQLExecute -+ 13 stdcall SQLFetch(long) ODBC32_SQLFetch -+ 14 stdcall SQLFreeConnect(long) ODBC32_SQLFreeConnect -+ 15 stdcall SQLFreeEnv(long) ODBC32_SQLFreeEnv -+ 16 stdcall SQLFreeStmt(long long ) ODBC32_SQLFreeStmt -+ 17 stdcall SQLGetCursorName(long str long ptr) ODBC32_SQLGetCursorName -+ 18 stdcall SQLNumResultCols(long ptr) ODBC32_SQLNumResultCols -+ 19 stdcall SQLPrepare(long str long) ODBC32_SQLPrepare -+ 20 stdcall SQLRowCount(long ptr) ODBC32_SQLRowCount -+ 21 stdcall SQLSetCursorName(long str long) ODBC32_SQLSetCursorName -+ 22 stdcall SQLSetParam(long long long long long long ptr ptr) ODBC32_SQLSetParam -+ 23 stdcall SQLTransact(long long long) ODBC32_SQLTransact -+ 24 stdcall SQLAllocHandle(long long ptr) ODBC32_SQLAllocHandle -+ 25 stdcall SQLBindParam(long long long long long long ptr ptr) ODBC32_SQLBindParam -+ 26 stdcall SQLCloseCursor(long) ODBC32_SQLCloseCursor -+ 27 stdcall SQLColAttribute(long long long ptr long ptr ptr) ODBC32_SQLColAttribute -+ 28 stdcall SQLCopyDesc(long long) ODBC32_SQLCopyDesc -+ 29 stdcall SQLEndTran(long long long) ODBC32_SQLEndTran -+ 30 stdcall SQLFetchScroll(long long long) ODBC32_SQLFetchScroll -+ 31 stdcall SQLFreeHandle(long long) ODBC32_SQLFreeHandle -+ 32 stdcall SQLGetConnectAttr(long long ptr long ptr) ODBC32_SQLGetConnectAttr -+ 33 stdcall SQLGetDescField(long long long ptr long ptr) ODBC32_SQLGetDescField -+ 34 stdcall SQLGetDescRec(long long str long ptr ptr ptr ptr ptr ptr ptr) ODBC32_SQLGetDescRec -+ 35 stdcall SQLGetDiagField(long long long long ptr long ptr) ODBC32_SQLGetDiagField -+ 36 stdcall SQLGetDiagRec(long long long str ptr str long ptr) ODBC32_SQLGetDiagRec -+ 37 stdcall SQLGetEnvAttr(long long ptr long ptr) ODBC32_SQLGetEnvAttr -+ 38 stdcall SQLGetStmtAttr(long long ptr long ptr) ODBC32_SQLGetStmtAttr -+ 39 stdcall SQLSetConnectAttr(long long ptr long) ODBC32_SQLSetConnectAttr -+ 40 stdcall SQLColumns(long str long str long str long str long) ODBC32_SQLColumns -+ 41 stdcall SQLDriverConnect(long long str long str long ptr long) ODBC32_SQLDriverConnect -+ 42 stdcall SQLGetConnectOption(long long ptr) ODBC32_SQLGetConnectOption -+ 43 stdcall SQLGetData(long long long ptr long ptr) ODBC32_SQLGetData -+ 44 stdcall SQLGetFunctions(long long ptr) ODBC32_SQLGetFunctions -+ 45 stdcall SQLGetInfo(long long ptr long ptr) ODBC32_SQLGetInfo -+ 46 stdcall SQLGetStmtOption(long long ptr) ODBC32_SQLGetStmtOption -+ 47 stdcall SQLGetTypeInfo(long long) ODBC32_SQLGetTypeInfo -+ 48 stdcall SQLParamData(long ptr) ODBC32_SQLParamData -+ 49 stdcall SQLPutData(long ptr long) ODBC32_SQLPutData -+ 50 stdcall SQLSetConnectOption(long long long) ODBC32_SQLSetConnectOption -+ 51 stdcall SQLSetStmtOption(long long long) ODBC32_SQLSetStmtOption -+ 52 stdcall SQLSpecialColumns(long long str long str long str long long long) ODBC32_SQLSpecialColumns -+ 53 stdcall SQLStatistics(long str long str long str long long long) ODBC32_SQLStatistics -+ 54 stdcall SQLTables(long str long str long str long str long) ODBC32_SQLTables -+ 55 stdcall SQLBrowseConnect(long str long str long ptr) ODBC32_SQLBrowseConnect -+ 56 stdcall SQLColumnPrivileges(long str long str long str long str long) ODBC32_SQLColumnPrivileges -+ 57 stdcall SQLDataSources(long long str long ptr str long ptr) ODBC32_SQLDataSources -+ 58 stdcall SQLDescribeParam(long long ptr ptr ptr ptr) ODBC32_SQLDescribeParam -+ 59 stdcall SQLExtendedFetch(long long long ptr ptr) ODBC32_SQLExtendedFetch -+ 60 stdcall SQLForeignKeys(long str long str long str long str long str long str long) ODBC32_SQLForeignKeys -+ 61 stdcall SQLMoreResults(long) ODBC32_SQLMoreResults -+ 62 stdcall SQLNativeSql(long str long str long ptr) ODBC32_SQLNativeSql -+ 63 stdcall SQLNumParams(long ptr) ODBC32_SQLNumParams -+ 64 stdcall SQLParamOptions(long long ptr) ODBC32_SQLParamOptions -+ 65 stdcall SQLPrimaryKeys(long str long str long str long) ODBC32_SQLPrimaryKeys -+ 66 stdcall SQLProcedureColumns(long str long str long str long str long) ODBC32_SQLProcedureColumns -+ 67 stdcall SQLProcedures(long str long str long str long) ODBC32_SQLProcedures -+ 68 stdcall SQLSetPos(long long long long) ODBC32_SQLSetPos -+ 69 stdcall SQLSetScrollOptions(long long long long) ODBC32_SQLSetScrollOptions -+ 70 stdcall SQLTablePrivileges(long str long str long str long) ODBC32_SQLTablePrivileges -+ 71 stdcall SQLDrivers(long long str long ptr str long ptr) ODBC32_SQLDrivers -+ 72 stdcall SQLBindParameter(long long long long long long long ptr long ptr) ODBC32_SQLBindParameter -+ 73 stdcall SQLSetDescField(long long long ptr long) ODBC32_SQLSetDescField -+ 74 stdcall SQLSetDescRec(long long long long long long long ptr ptr ptr) ODBC32_SQLSetDescRec -+ 75 stdcall SQLSetEnvAttr(long long ptr long) ODBC32_SQLSetEnvAttr -+ 76 stdcall SQLSetStmtAttr(long long ptr long) ODBC32_SQLSetStmtAttr -+ 77 stdcall SQLAllocHandleStd(long long ptr) ODBC32_SQLAllocHandleStd -+ 78 stdcall SQLBulkOperations(long long) ODBC32_SQLBulkOperations - 79 stub CloseODBCPerfData - 80 stub CollectODBCPerfData - 81 stub CursorLibLockDbc -@@ -86,43 +86,43 @@ - 86 stub ODBSetTryWaitValue - 89 stub ODBCSharedPerfMon - 90 stub ODBCSharedVSFlag --106 stdcall SQLColAttributesW(long long long ptr long ptr ptr) --107 stdcall SQLConnectW(long wstr long wstr long wstr long) --108 stdcall SQLDescribeColW(long long wstr long ptr ptr ptr ptr ptr) --110 stdcall SQLErrorW(long long long wstr ptr wstr long ptr) --111 stdcall SQLExecDirectW(long wstr long) --117 stdcall SQLGetCursorNameW(long wstr long ptr) --119 stdcall SQLPrepareW(long wstr long) --121 stdcall SQLSetCursorNameW(long wstr long) --127 stdcall SQLColAttributeW(long long long ptr long ptr ptr) --132 stdcall SQLGetConnectAttrW(long long ptr long ptr) --133 stdcall SQLGetDescFieldW(long long long ptr long ptr) --134 stdcall SQLGetDescRecW(long long wstr long ptr ptr ptr ptr ptr ptr ptr) --135 stdcall SQLGetDiagFieldW(long long long long ptr long ptr) --136 stdcall SQLGetDiagRecW(long long long wstr ptr wstr long ptr) --138 stdcall SQLGetStmtAttrW(long long ptr long ptr) --139 stdcall SQLSetConnectAttrW(long long ptr long) --140 stdcall SQLColumnsW(long wstr long wstr long wstr long wstr long) --141 stdcall SQLDriverConnectW(long long wstr long wstr long ptr long) --142 stdcall SQLGetConnectOptionW(long long ptr) --145 stdcall SQLGetInfoW(long long ptr long ptr) --147 stdcall SQLGetTypeInfoW(long long) --150 stdcall SQLSetConnectOptionW(long long long) --152 stdcall SQLSpecialColumnsW(long long wstr long wstr long wstr long long long) --153 stdcall SQLStatisticsW(long wstr long wstr long wstr long long long) --154 stdcall SQLTablesW(long wstr long wstr long wstr long wstr long) --155 stdcall SQLBrowseConnectW(long wstr long wstr long ptr) --156 stdcall SQLColumnPrivilegesW(long wstr long wstr long wstr long wstr long) --157 stdcall SQLDataSourcesW(long long wstr long ptr wstr long ptr) --160 stdcall SQLForeignKeysW(long wstr long wstr long wstr long wstr long wstr long wstr long) --162 stdcall SQLNativeSqlW(long wstr long wstr long ptr) --165 stdcall SQLPrimaryKeysW(long wstr long wstr long wstr long) --166 stdcall SQLProcedureColumnsW(long wstr long wstr long wstr long wstr long) --167 stdcall SQLProceduresW(long wstr long wstr long wstr long) --170 stdcall SQLTablePrivilegesW(long wstr long wstr long wstr long) --171 stdcall SQLDriversW(long long wstr long ptr wstr long ptr) --173 stdcall SQLSetDescFieldW(long long long ptr long) --176 stdcall SQLSetStmtAttrW(long long ptr long) -+106 stdcall SQLColAttributesW(long long long ptr long ptr ptr) ODBC32_SQLColAttributesW -+107 stdcall SQLConnectW(long wstr long wstr long wstr long) ODBC32_SQLConnectW -+108 stdcall SQLDescribeColW(long long wstr long ptr ptr ptr ptr ptr) ODBC32_SQLDescribeColW -+110 stdcall SQLErrorW(long long long wstr ptr wstr long ptr) ODBC32_SQLErrorW -+111 stdcall SQLExecDirectW(long wstr long) ODBC32_SQLExecDirectW -+117 stdcall SQLGetCursorNameW(long wstr long ptr) ODBC32_SQLGetCursorNameW -+119 stdcall SQLPrepareW(long wstr long) ODBC32_SQLPrepareW -+121 stdcall SQLSetCursorNameW(long wstr long) ODBC32_SQLSetCursorNameW -+127 stdcall SQLColAttributeW(long long long ptr long ptr ptr) ODBC32_SQLColAttributeW -+132 stdcall SQLGetConnectAttrW(long long ptr long ptr) ODBC32_SQLGetConnectAttrW -+133 stdcall SQLGetDescFieldW(long long long ptr long ptr) ODBC32_SQLGetDescFieldW -+134 stdcall SQLGetDescRecW(long long wstr long ptr ptr ptr ptr ptr ptr ptr) ODBC32_SQLGetDescRecW -+135 stdcall SQLGetDiagFieldW(long long long long ptr long ptr) ODBC32_SQLGetDiagFieldW -+136 stdcall SQLGetDiagRecW(long long long wstr ptr wstr long ptr) ODBC32_SQLGetDiagRecW -+138 stdcall SQLGetStmtAttrW(long long ptr long ptr) ODBC32_SQLGetStmtAttrW -+139 stdcall SQLSetConnectAttrW(long long ptr long) ODBC32_SQLSetConnectAttrW -+140 stdcall SQLColumnsW(long wstr long wstr long wstr long wstr long) ODBC32_SQLColumnsW -+141 stdcall SQLDriverConnectW(long long wstr long wstr long ptr long) ODBC32_SQLDriverConnectW -+142 stdcall SQLGetConnectOptionW(long long ptr) ODBC32_SQLGetConnectOptionW -+145 stdcall SQLGetInfoW(long long ptr long ptr) ODBC32_SQLGetInfoW -+147 stdcall SQLGetTypeInfoW(long long) ODBC32_SQLGetTypeInfoW -+150 stdcall SQLSetConnectOptionW(long long long) ODBC32_SQLSetConnectOptionW -+152 stdcall SQLSpecialColumnsW(long long wstr long wstr long wstr long long long) ODBC32_SQLSpecialColumnsW -+153 stdcall SQLStatisticsW(long wstr long wstr long wstr long long long) ODBC32_SQLStatisticsW -+154 stdcall SQLTablesW(long wstr long wstr long wstr long wstr long) ODBC32_SQLTablesW -+155 stdcall SQLBrowseConnectW(long wstr long wstr long ptr) ODBC32_SQLBrowseConnectW -+156 stdcall SQLColumnPrivilegesW(long wstr long wstr long wstr long wstr long) ODBC32_SQLColumnPrivilegesW -+157 stdcall SQLDataSourcesW(long long wstr long ptr wstr long ptr) ODBC32_SQLDataSourcesW -+160 stdcall SQLForeignKeysW(long wstr long wstr long wstr long wstr long wstr long wstr long) ODBC32_SQLForeignKeysW -+162 stdcall SQLNativeSqlW(long wstr long wstr long ptr) ODBC32_SQLNativeSqlW -+165 stdcall SQLPrimaryKeysW(long wstr long wstr long wstr long) ODBC32_SQLPrimaryKeysW -+166 stdcall SQLProcedureColumnsW(long wstr long wstr long wstr long wstr long) ODBC32_SQLProcedureColumnsW -+167 stdcall SQLProceduresW(long wstr long wstr long wstr long) ODBC32_SQLProceduresW -+170 stdcall SQLTablePrivilegesW(long wstr long wstr long wstr long) ODBC32_SQLTablePrivilegesW -+171 stdcall SQLDriversW(long long wstr long ptr wstr long ptr) ODBC32_SQLDriversW -+173 stdcall SQLSetDescFieldW(long long long ptr long) ODBC32_SQLSetDescFieldW -+176 stdcall SQLSetStmtAttrW(long long ptr long) ODBC32_SQLSetStmtAttrW - 206 stub SQLColAttributesA - 207 stub SQLConnectA - 208 stub SQLDescribeColA -@@ -150,7 +150,7 @@ - 254 stub SQLTablesA - 255 stub SQLBrowseConnectA - 256 stub SQLColumnPrivilegesA --257 stdcall SQLDataSourcesA(long long str long ptr str long ptr) -+257 stdcall SQLDataSourcesA(long long str long ptr str long ptr) ODBC32_SQLDataSourcesA - 260 stub SQLForeignKeysA - 262 stub SQLNativeSqlA - 265 stub SQLPrimaryKeysA -diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index 7e434cb..75f94a8 100644 ---- a/dlls/odbc32/proxyodbc.c -+++ b/dlls/odbc32/proxyodbc.c -@@ -175,6 +175,13 @@ static SQLRETURN (*pSQLTransact)(SQLHENV,SQLHDBC,SQLUSMALLINT); - static void *dmHandle; - static int nErrorType; - -+SQLRETURN WINAPI ODBC32_SQLAllocEnv(SQLHENV *); -+SQLRETURN WINAPI ODBC32_SQLFreeEnv(SQLHENV); -+SQLRETURN WINAPI ODBC32_SQLDataSources(SQLHENV, SQLUSMALLINT, SQLCHAR *, SQLSMALLINT, -+ SQLSMALLINT *, SQLCHAR *, SQLSMALLINT, SQLSMALLINT *); -+SQLRETURN WINAPI ODBC32_SQLDrivers(SQLHENV, SQLUSMALLINT, SQLCHAR *, SQLSMALLINT, SQLSMALLINT *, -+ SQLCHAR *, SQLSMALLINT, SQLSMALLINT *); -+ - /*********************************************************************** - * ODBC_ReplicateODBCInstToRegistry - * -@@ -218,7 +225,7 @@ static void ODBC_ReplicateODBCInstToRegistry (SQLHENV hEnv) - - success = TRUE; - dirn = SQL_FETCH_FIRST; -- while ((sql_ret = SQLDrivers (hEnv, dirn, (SQLCHAR*)desc, sizeof(desc), -+ while ((sql_ret = ODBC32_SQLDrivers (hEnv, dirn, (SQLCHAR*)desc, sizeof(desc), - &sizedesc, NULL, 0, NULL)) == SQL_SUCCESS || - sql_ret == SQL_SUCCESS_WITH_INFO) - { -@@ -345,7 +352,7 @@ static void ODBC_ReplicateODBCToRegistry (BOOL is_user, SQLHENV hEnv) - { - success = TRUE; - dirn = is_user ? SQL_FETCH_FIRST_USER : SQL_FETCH_FIRST_SYSTEM; -- while ((sql_ret = SQLDataSources (hEnv, dirn, -+ while ((sql_ret = ODBC32_SQLDataSources (hEnv, dirn, - (SQLCHAR*)dsn, sizeof(dsn), &sizedsn, - (SQLCHAR*)desc, sizeof(desc), &sizedesc)) == SQL_SUCCESS - || sql_ret == SQL_SUCCESS_WITH_INFO) -@@ -445,13 +452,13 @@ static void ODBC_ReplicateToRegistry (void) - SQLRETURN sql_ret; - SQLHENV hEnv; - -- if ((sql_ret = SQLAllocEnv (&hEnv)) == SQL_SUCCESS) -+ if ((sql_ret = ODBC32_SQLAllocEnv (&hEnv)) == SQL_SUCCESS) - { - ODBC_ReplicateODBCInstToRegistry (hEnv); - ODBC_ReplicateODBCToRegistry (FALSE /* system dsns */, hEnv); - ODBC_ReplicateODBCToRegistry (TRUE /* user dsns */, hEnv); - -- if ((sql_ret = SQLFreeEnv (hEnv)) != SQL_SUCCESS) -+ if ((sql_ret = ODBC32_SQLFreeEnv (hEnv)) != SQL_SUCCESS) - { - TRACE ("Error %d freeing the SQL environment.\n", (int)sql_ret); - } -@@ -671,7 +678,7 @@ static BOOL ODBC_LoadDMFunctions(void) - /************************************************************************* - * SQLAllocConnect [ODBC32.001] - */ --SQLRETURN WINAPI SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC *ConnectionHandle) -+SQLRETURN WINAPI ODBC32_SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC *ConnectionHandle) - { - SQLRETURN ret; - TRACE("(EnvironmentHandle %p)\n",EnvironmentHandle); -@@ -692,7 +699,7 @@ SQLRETURN WINAPI SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC *ConnectionH - /************************************************************************* - * SQLAllocEnv [ODBC32.002] - */ --SQLRETURN WINAPI SQLAllocEnv(SQLHENV *EnvironmentHandle) -+SQLRETURN WINAPI ODBC32_SQLAllocEnv(SQLHENV *EnvironmentHandle) - { - SQLRETURN ret; - TRACE("\n"); -@@ -713,7 +720,7 @@ SQLRETURN WINAPI SQLAllocEnv(SQLHENV *EnvironmentHandle) - /************************************************************************* - * SQLAllocHandle [ODBC32.024] - */ --SQLRETURN WINAPI SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) -+SQLRETURN WINAPI ODBC32_SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) - { - SQLRETURN ret; - TRACE("(Type %d, Handle %p)\n", HandleType, InputHandle); -@@ -745,7 +752,7 @@ SQLRETURN WINAPI SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, S - /************************************************************************* - * SQLAllocStmt [ODBC32.003] - */ --SQLRETURN WINAPI SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT *StatementHandle) -+SQLRETURN WINAPI ODBC32_SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT *StatementHandle) - { - SQLRETURN ret; - -@@ -767,7 +774,7 @@ SQLRETURN WINAPI SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT *StatementHandl - /************************************************************************* - * SQLAllocHandleStd [ODBC32.077] - */ --SQLRETURN WINAPI SQLAllocHandleStd( SQLSMALLINT HandleType, -+SQLRETURN WINAPI ODBC32_SQLAllocHandleStd( SQLSMALLINT HandleType, - SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) - { - TRACE("ProxyODBC: SQLAllocHandleStd.\n"); -@@ -796,7 +803,7 @@ SQLRETURN WINAPI SQLAllocHandleStd( SQLSMALLINT HandleType, - /************************************************************************* - * SQLBindCol [ODBC32.004] - */ --SQLRETURN WINAPI SQLBindCol(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLBindCol(SQLHSTMT StatementHandle, - SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, - SQLPOINTER TargetValue, SQLLEN BufferLength, - SQLLEN *StrLen_or_Ind) -@@ -817,7 +824,7 @@ SQLRETURN WINAPI SQLBindCol(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLBindParam [ODBC32.025] - */ --SQLRETURN WINAPI SQLBindParam(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLBindParam(SQLHSTMT StatementHandle, - SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, - SQLSMALLINT ParameterType, SQLULEN LengthPrecision, - SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, -@@ -835,7 +842,7 @@ SQLRETURN WINAPI SQLBindParam(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLCancel [ODBC32.005] - */ --SQLRETURN WINAPI SQLCancel(SQLHSTMT StatementHandle) -+SQLRETURN WINAPI ODBC32_SQLCancel(SQLHSTMT StatementHandle) - { - TRACE("\n"); - -@@ -847,7 +854,7 @@ SQLRETURN WINAPI SQLCancel(SQLHSTMT StatementHandle) - /************************************************************************* - * SQLCloseCursor [ODBC32.026] - */ --SQLRETURN WINAPI SQLCloseCursor(SQLHSTMT StatementHandle) -+SQLRETURN WINAPI ODBC32_SQLCloseCursor(SQLHSTMT StatementHandle) - { - SQLRETURN ret; - TRACE("(Handle %p)\n", StatementHandle); -@@ -863,7 +870,7 @@ SQLRETURN WINAPI SQLCloseCursor(SQLHSTMT StatementHandle) - /************************************************************************* - * SQLColAttribute [ODBC32.027] - */ --SQLRETURN WINAPI SQLColAttribute (SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLColAttribute (SQLHSTMT StatementHandle, - SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, - SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, - SQLSMALLINT *StringLength, SQLLEN *NumericAttribute) -@@ -879,7 +886,7 @@ SQLRETURN WINAPI SQLColAttribute (SQLHSTMT StatementHandle, - /************************************************************************* - * SQLColumns [ODBC32.040] - */ --SQLRETURN WINAPI SQLColumns(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLColumns(SQLHSTMT StatementHandle, - SQLCHAR *CatalogName, SQLSMALLINT NameLength1, - SQLCHAR *SchemaName, SQLSMALLINT NameLength2, - SQLCHAR *TableName, SQLSMALLINT NameLength3, -@@ -896,7 +903,7 @@ SQLRETURN WINAPI SQLColumns(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLConnect [ODBC32.007] - */ --SQLRETURN WINAPI SQLConnect(SQLHDBC ConnectionHandle, -+SQLRETURN WINAPI ODBC32_SQLConnect(SQLHDBC ConnectionHandle, - SQLCHAR *ServerName, SQLSMALLINT NameLength1, - SQLCHAR *UserName, SQLSMALLINT NameLength2, - SQLCHAR *Authentication, SQLSMALLINT NameLength3) -@@ -917,7 +924,7 @@ SQLRETURN WINAPI SQLConnect(SQLHDBC ConnectionHandle, - /************************************************************************* - * SQLCopyDesc [ODBC32.028] - */ --SQLRETURN WINAPI SQLCopyDesc(SQLHDESC SourceDescHandle, SQLHDESC TargetDescHandle) -+SQLRETURN WINAPI ODBC32_SQLCopyDesc(SQLHDESC SourceDescHandle, SQLHDESC TargetDescHandle) - { - TRACE("\n"); - -@@ -929,7 +936,7 @@ SQLRETURN WINAPI SQLCopyDesc(SQLHDESC SourceDescHandle, SQLHDESC TargetDescHandl - /************************************************************************* - * SQLDataSources [ODBC32.057] - */ --SQLRETURN WINAPI SQLDataSources(SQLHENV EnvironmentHandle, -+SQLRETURN WINAPI ODBC32_SQLDataSources(SQLHENV EnvironmentHandle, - SQLUSMALLINT Direction, SQLCHAR *ServerName, - SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1, - SQLCHAR *Description, SQLSMALLINT BufferLength2, -@@ -957,7 +964,7 @@ SQLRETURN WINAPI SQLDataSources(SQLHENV EnvironmentHandle, - return ret; - } - --SQLRETURN WINAPI SQLDataSourcesA(SQLHENV EnvironmentHandle, -+SQLRETURN WINAPI ODBC32_SQLDataSourcesA(SQLHENV EnvironmentHandle, - SQLUSMALLINT Direction, SQLCHAR *ServerName, - SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1, - SQLCHAR *Description, SQLSMALLINT BufferLength2, -@@ -987,7 +994,7 @@ SQLRETURN WINAPI SQLDataSourcesA(SQLHENV EnvironmentHandle, - /************************************************************************* - * SQLDescribeCol [ODBC32.008] - */ --SQLRETURN WINAPI SQLDescribeCol(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLDescribeCol(SQLHSTMT StatementHandle, - SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, - SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, - SQLSMALLINT *DataType, SQLULEN *ColumnSize, -@@ -1004,7 +1011,7 @@ SQLRETURN WINAPI SQLDescribeCol(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLDisconnect [ODBC32.009] - */ --SQLRETURN WINAPI SQLDisconnect(SQLHDBC ConnectionHandle) -+SQLRETURN WINAPI ODBC32_SQLDisconnect(SQLHDBC ConnectionHandle) - { - SQLRETURN ret; - TRACE("(Handle %p)\n", ConnectionHandle); -@@ -1020,7 +1027,7 @@ SQLRETURN WINAPI SQLDisconnect(SQLHDBC ConnectionHandle) - /************************************************************************* - * SQLEndTran [ODBC32.029] - */ --SQLRETURN WINAPI SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) -+SQLRETURN WINAPI ODBC32_SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) - { - TRACE("\n"); - -@@ -1032,7 +1039,7 @@ SQLRETURN WINAPI SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLIN - /************************************************************************* - * SQLError [ODBC32.010] - */ --SQLRETURN WINAPI SQLError(SQLHENV EnvironmentHandle, -+SQLRETURN WINAPI ODBC32_SQLError(SQLHENV EnvironmentHandle, - SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, - SQLCHAR *Sqlstate, SQLINTEGER *NativeError, - SQLCHAR *MessageText, SQLSMALLINT BufferLength, -@@ -1059,7 +1066,7 @@ SQLRETURN WINAPI SQLError(SQLHENV EnvironmentHandle, - /************************************************************************* - * SQLExecDirect [ODBC32.011] - */ --SQLRETURN WINAPI SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) -+SQLRETURN WINAPI ODBC32_SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) - { - TRACE("\n"); - -@@ -1071,7 +1078,7 @@ SQLRETURN WINAPI SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR *StatementText, - /************************************************************************* - * SQLExecute [ODBC32.012] - */ --SQLRETURN WINAPI SQLExecute(SQLHSTMT StatementHandle) -+SQLRETURN WINAPI ODBC32_SQLExecute(SQLHSTMT StatementHandle) - { - TRACE("\n"); - -@@ -1083,7 +1090,7 @@ SQLRETURN WINAPI SQLExecute(SQLHSTMT StatementHandle) - /************************************************************************* - * SQLFetch [ODBC32.013] - */ --SQLRETURN WINAPI SQLFetch(SQLHSTMT StatementHandle) -+SQLRETURN WINAPI ODBC32_SQLFetch(SQLHSTMT StatementHandle) - { - TRACE("\n"); - -@@ -1095,7 +1102,7 @@ SQLRETURN WINAPI SQLFetch(SQLHSTMT StatementHandle) - /************************************************************************* - * SQLFetchScroll [ODBC32.030] - */ --SQLRETURN WINAPI SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLLEN FetchOffset) -+SQLRETURN WINAPI ODBC32_SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLLEN FetchOffset) - { - TRACE("\n"); - -@@ -1107,7 +1114,7 @@ SQLRETURN WINAPI SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrien - /************************************************************************* - * SQLFreeConnect [ODBC32.014] - */ --SQLRETURN WINAPI SQLFreeConnect(SQLHDBC ConnectionHandle) -+SQLRETURN WINAPI ODBC32_SQLFreeConnect(SQLHDBC ConnectionHandle) - { - SQLRETURN ret; - TRACE("(Handle %p)\n", ConnectionHandle); -@@ -1123,7 +1130,7 @@ SQLRETURN WINAPI SQLFreeConnect(SQLHDBC ConnectionHandle) - /************************************************************************* - * SQLFreeEnv [ODBC32.015] - */ --SQLRETURN WINAPI SQLFreeEnv(SQLHENV EnvironmentHandle) -+SQLRETURN WINAPI ODBC32_SQLFreeEnv(SQLHENV EnvironmentHandle) - { - SQLRETURN ret; - TRACE("(EnvironmentHandle %p)\n",EnvironmentHandle); -@@ -1139,7 +1146,7 @@ SQLRETURN WINAPI SQLFreeEnv(SQLHENV EnvironmentHandle) - /************************************************************************* - * SQLFreeHandle [ODBC32.031] - */ --SQLRETURN WINAPI SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) -+SQLRETURN WINAPI ODBC32_SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) - { - SQLRETURN ret; - TRACE("(Type %d, Handle %p)\n", HandleType, Handle); -@@ -1155,7 +1162,7 @@ SQLRETURN WINAPI SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) - /************************************************************************* - * SQLFreeStmt [ODBC32.016] - */ --SQLRETURN WINAPI SQLFreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option) -+SQLRETURN WINAPI ODBC32_SQLFreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option) - { - SQLRETURN ret; - TRACE("(Handle %p, Option %d)\n", StatementHandle, Option); -@@ -1171,7 +1178,7 @@ SQLRETURN WINAPI SQLFreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option) - /************************************************************************* - * SQLGetConnectAttr [ODBC32.032] - */ --SQLRETURN WINAPI SQLGetConnectAttr(SQLHDBC ConnectionHandle, -+SQLRETURN WINAPI ODBC32_SQLGetConnectAttr(SQLHDBC ConnectionHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER BufferLength, SQLINTEGER *StringLength) - { -@@ -1186,7 +1193,7 @@ SQLRETURN WINAPI SQLGetConnectAttr(SQLHDBC ConnectionHandle, - /************************************************************************* - * SQLGetConnectOption [ODBC32.042] - */ --SQLRETURN WINAPI SQLGetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLPOINTER Value) -+SQLRETURN WINAPI ODBC32_SQLGetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLPOINTER Value) - { - TRACE("\n"); - -@@ -1198,7 +1205,7 @@ SQLRETURN WINAPI SQLGetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Opti - /************************************************************************* - * SQLGetCursorName [ODBC32.017] - */ --SQLRETURN WINAPI SQLGetCursorName(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLGetCursorName(SQLHSTMT StatementHandle, - SQLCHAR *CursorName, SQLSMALLINT BufferLength, - SQLSMALLINT *NameLength) - { -@@ -1212,7 +1219,7 @@ SQLRETURN WINAPI SQLGetCursorName(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLGetData [ODBC32.043] - */ --SQLRETURN WINAPI SQLGetData(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLGetData(SQLHSTMT StatementHandle, - SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, - SQLPOINTER TargetValue, SQLLEN BufferLength, - SQLLEN *StrLen_or_Ind) -@@ -1228,7 +1235,7 @@ SQLRETURN WINAPI SQLGetData(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLGetDescField [ODBC32.033] - */ --SQLRETURN WINAPI SQLGetDescField(SQLHDESC DescriptorHandle, -+SQLRETURN WINAPI ODBC32_SQLGetDescField(SQLHDESC DescriptorHandle, - SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, - SQLPOINTER Value, SQLINTEGER BufferLength, - SQLINTEGER *StringLength) -@@ -1244,7 +1251,7 @@ SQLRETURN WINAPI SQLGetDescField(SQLHDESC DescriptorHandle, - /************************************************************************* - * SQLGetDescRec [ODBC32.034] - */ --SQLRETURN WINAPI SQLGetDescRec(SQLHDESC DescriptorHandle, -+SQLRETURN WINAPI ODBC32_SQLGetDescRec(SQLHDESC DescriptorHandle, - SQLSMALLINT RecNumber, SQLCHAR *Name, - SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, - SQLSMALLINT *Type, SQLSMALLINT *SubType, -@@ -1262,7 +1269,7 @@ SQLRETURN WINAPI SQLGetDescRec(SQLHDESC DescriptorHandle, - /************************************************************************* - * SQLGetDiagField [ODBC32.035] - */ --SQLRETURN WINAPI SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, -+SQLRETURN WINAPI ODBC32_SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, - SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, - SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, - SQLSMALLINT *StringLength) -@@ -1278,7 +1285,7 @@ SQLRETURN WINAPI SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, - /************************************************************************* - * SQLGetDiagRec [ODBC32.036] - */ --SQLRETURN WINAPI SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, -+SQLRETURN WINAPI ODBC32_SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, - SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, - SQLINTEGER *NativeError, SQLCHAR *MessageText, - SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) -@@ -1294,7 +1301,7 @@ SQLRETURN WINAPI SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, - /************************************************************************* - * SQLGetEnvAttr [ODBC32.037] - */ --SQLRETURN WINAPI SQLGetEnvAttr(SQLHENV EnvironmentHandle, -+SQLRETURN WINAPI ODBC32_SQLGetEnvAttr(SQLHENV EnvironmentHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER BufferLength, SQLINTEGER *StringLength) - { -@@ -1308,7 +1315,7 @@ SQLRETURN WINAPI SQLGetEnvAttr(SQLHENV EnvironmentHandle, - /************************************************************************* - * SQLGetFunctions [ODBC32.044] - */ --SQLRETURN WINAPI SQLGetFunctions(SQLHDBC ConnectionHandle, SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported) -+SQLRETURN WINAPI ODBC32_SQLGetFunctions(SQLHDBC ConnectionHandle, SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported) - { - TRACE("\n"); - -@@ -1320,7 +1327,7 @@ SQLRETURN WINAPI SQLGetFunctions(SQLHDBC ConnectionHandle, SQLUSMALLINT Function - /************************************************************************* - * SQLGetInfo [ODBC32.045] - */ --SQLRETURN WINAPI SQLGetInfo(SQLHDBC ConnectionHandle, -+SQLRETURN WINAPI ODBC32_SQLGetInfo(SQLHDBC ConnectionHandle, - SQLUSMALLINT InfoType, SQLPOINTER InfoValue, - SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) - { -@@ -1334,7 +1341,7 @@ SQLRETURN WINAPI SQLGetInfo(SQLHDBC ConnectionHandle, - /************************************************************************* - * SQLGetStmtAttr [ODBC32.038] - */ --SQLRETURN WINAPI SQLGetStmtAttr(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLGetStmtAttr(SQLHSTMT StatementHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER BufferLength, SQLINTEGER *StringLength) - { -@@ -1348,7 +1355,7 @@ SQLRETURN WINAPI SQLGetStmtAttr(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLGetStmtOption [ODBC32.046] - */ --SQLRETURN WINAPI SQLGetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLPOINTER Value) -+SQLRETURN WINAPI ODBC32_SQLGetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLPOINTER Value) - { - TRACE("\n"); - -@@ -1360,7 +1367,7 @@ SQLRETURN WINAPI SQLGetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, - /************************************************************************* - * SQLGetTypeInfo [ODBC32.047] - */ --SQLRETURN WINAPI SQLGetTypeInfo(SQLHSTMT StatementHandle, SQLSMALLINT DataType) -+SQLRETURN WINAPI ODBC32_SQLGetTypeInfo(SQLHSTMT StatementHandle, SQLSMALLINT DataType) - { - TRACE("\n"); - -@@ -1372,7 +1379,7 @@ SQLRETURN WINAPI SQLGetTypeInfo(SQLHSTMT StatementHandle, SQLSMALLINT DataType) - /************************************************************************* - * SQLNumResultCols [ODBC32.018] - */ --SQLRETURN WINAPI SQLNumResultCols(SQLHSTMT StatementHandle, SQLSMALLINT *ColumnCount) -+SQLRETURN WINAPI ODBC32_SQLNumResultCols(SQLHSTMT StatementHandle, SQLSMALLINT *ColumnCount) - { - TRACE("\n"); - -@@ -1384,7 +1391,7 @@ SQLRETURN WINAPI SQLNumResultCols(SQLHSTMT StatementHandle, SQLSMALLINT *ColumnC - /************************************************************************* - * SQLParamData [ODBC32.048] - */ --SQLRETURN WINAPI SQLParamData(SQLHSTMT StatementHandle, SQLPOINTER *Value) -+SQLRETURN WINAPI ODBC32_SQLParamData(SQLHSTMT StatementHandle, SQLPOINTER *Value) - { - TRACE("\n"); - -@@ -1396,7 +1403,7 @@ SQLRETURN WINAPI SQLParamData(SQLHSTMT StatementHandle, SQLPOINTER *Value) - /************************************************************************* - * SQLPrepare [ODBC32.019] - */ --SQLRETURN WINAPI SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) -+SQLRETURN WINAPI ODBC32_SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) - { - TRACE("\n"); - -@@ -1408,7 +1415,7 @@ SQLRETURN WINAPI SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQ - /************************************************************************* - * SQLPutData [ODBC32.049] - */ --SQLRETURN WINAPI SQLPutData(SQLHSTMT StatementHandle, SQLPOINTER Data, SQLLEN StrLen_or_Ind) -+SQLRETURN WINAPI ODBC32_SQLPutData(SQLHSTMT StatementHandle, SQLPOINTER Data, SQLLEN StrLen_or_Ind) - { - TRACE("\n"); - -@@ -1420,7 +1427,7 @@ SQLRETURN WINAPI SQLPutData(SQLHSTMT StatementHandle, SQLPOINTER Data, SQLLEN St - /************************************************************************* - * SQLRowCount [ODBC32.020] - */ --SQLRETURN WINAPI SQLRowCount(SQLHSTMT StatementHandle, SQLLEN *RowCount) -+SQLRETURN WINAPI ODBC32_SQLRowCount(SQLHSTMT StatementHandle, SQLLEN *RowCount) - { - TRACE("\n"); - -@@ -1432,7 +1439,7 @@ SQLRETURN WINAPI SQLRowCount(SQLHSTMT StatementHandle, SQLLEN *RowCount) - /************************************************************************* - * SQLSetConnectAttr [ODBC32.039] - */ --SQLRETURN WINAPI SQLSetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, -+SQLRETURN WINAPI ODBC32_SQLSetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, - SQLPOINTER Value, SQLINTEGER StringLength) - { - TRACE("\n"); -@@ -1445,7 +1452,7 @@ SQLRETURN WINAPI SQLSetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribut - /************************************************************************* - * SQLSetConnectOption [ODBC32.050] - */ --SQLRETURN WINAPI SQLSetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLULEN Value) -+SQLRETURN WINAPI ODBC32_SQLSetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLULEN Value) - { - TRACE("\n"); - -@@ -1457,7 +1464,7 @@ SQLRETURN WINAPI SQLSetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Opti - /************************************************************************* - * SQLSetCursorName [ODBC32.021] - */ --SQLRETURN WINAPI SQLSetCursorName(SQLHSTMT StatementHandle, SQLCHAR *CursorName, SQLSMALLINT NameLength) -+SQLRETURN WINAPI ODBC32_SQLSetCursorName(SQLHSTMT StatementHandle, SQLCHAR *CursorName, SQLSMALLINT NameLength) - { - TRACE("\n"); - -@@ -1469,7 +1476,7 @@ SQLRETURN WINAPI SQLSetCursorName(SQLHSTMT StatementHandle, SQLCHAR *CursorName, - /************************************************************************* - * SQLSetDescField [ODBC32.073] - */ --SQLRETURN WINAPI SQLSetDescField(SQLHDESC DescriptorHandle, -+SQLRETURN WINAPI ODBC32_SQLSetDescField(SQLHDESC DescriptorHandle, - SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, - SQLPOINTER Value, SQLINTEGER BufferLength) - { -@@ -1483,7 +1490,7 @@ SQLRETURN WINAPI SQLSetDescField(SQLHDESC DescriptorHandle, - /************************************************************************* - * SQLSetDescRec [ODBC32.074] - */ --SQLRETURN WINAPI SQLSetDescRec(SQLHDESC DescriptorHandle, -+SQLRETURN WINAPI ODBC32_SQLSetDescRec(SQLHDESC DescriptorHandle, - SQLSMALLINT RecNumber, SQLSMALLINT Type, - SQLSMALLINT SubType, SQLLEN Length, - SQLSMALLINT Precision, SQLSMALLINT Scale, -@@ -1501,7 +1508,7 @@ SQLRETURN WINAPI SQLSetDescRec(SQLHDESC DescriptorHandle, - /************************************************************************* - * SQLSetEnvAttr [ODBC32.075] - */ --SQLRETURN WINAPI SQLSetEnvAttr(SQLHENV EnvironmentHandle, -+SQLRETURN WINAPI ODBC32_SQLSetEnvAttr(SQLHENV EnvironmentHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER StringLength) - { -@@ -1515,7 +1522,7 @@ SQLRETURN WINAPI SQLSetEnvAttr(SQLHENV EnvironmentHandle, - /************************************************************************* - * SQLSetParam [ODBC32.022] - */ --SQLRETURN WINAPI SQLSetParam(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLSetParam(SQLHSTMT StatementHandle, - SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, - SQLSMALLINT ParameterType, SQLULEN LengthPrecision, - SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, -@@ -1532,7 +1539,7 @@ SQLRETURN WINAPI SQLSetParam(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLSetStmtAttr [ODBC32.076] - */ --SQLRETURN WINAPI SQLSetStmtAttr(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLSetStmtAttr(SQLHSTMT StatementHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER StringLength) - { -@@ -1546,7 +1553,7 @@ SQLRETURN WINAPI SQLSetStmtAttr(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLSetStmtOption [ODBC32.051] - */ --SQLRETURN WINAPI SQLSetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLULEN Value) -+SQLRETURN WINAPI ODBC32_SQLSetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLULEN Value) - { - TRACE("\n"); - -@@ -1558,7 +1565,7 @@ SQLRETURN WINAPI SQLSetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, - /************************************************************************* - * SQLSpecialColumns [ODBC32.052] - */ --SQLRETURN WINAPI SQLSpecialColumns(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLSpecialColumns(SQLHSTMT StatementHandle, - SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName, - SQLSMALLINT NameLength1, SQLCHAR *SchemaName, - SQLSMALLINT NameLength2, SQLCHAR *TableName, -@@ -1575,7 +1582,7 @@ SQLRETURN WINAPI SQLSpecialColumns(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLStatistics [ODBC32.053] - */ --SQLRETURN WINAPI SQLStatistics(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLStatistics(SQLHSTMT StatementHandle, - SQLCHAR *CatalogName, SQLSMALLINT NameLength1, - SQLCHAR *SchemaName, SQLSMALLINT NameLength2, - SQLCHAR *TableName, SQLSMALLINT NameLength3, -@@ -1592,7 +1599,7 @@ SQLRETURN WINAPI SQLStatistics(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLTables [ODBC32.054] - */ --SQLRETURN WINAPI SQLTables(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLTables(SQLHSTMT StatementHandle, - SQLCHAR *CatalogName, SQLSMALLINT NameLength1, - SQLCHAR *SchemaName, SQLSMALLINT NameLength2, - SQLCHAR *TableName, SQLSMALLINT NameLength3, -@@ -1609,7 +1616,7 @@ SQLRETURN WINAPI SQLTables(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLTransact [ODBC32.023] - */ --SQLRETURN WINAPI SQLTransact(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, -+SQLRETURN WINAPI ODBC32_SQLTransact(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, - SQLUSMALLINT CompletionType) - { - TRACE("\n"); -@@ -1622,7 +1629,7 @@ SQLRETURN WINAPI SQLTransact(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle - /************************************************************************* - * SQLBrowseConnect [ODBC32.055] - */ --SQLRETURN WINAPI SQLBrowseConnect( -+SQLRETURN WINAPI ODBC32_SQLBrowseConnect( - SQLHDBC hdbc, - SQLCHAR *szConnStrIn, - SQLSMALLINT cbConnStrIn, -@@ -1640,7 +1647,7 @@ SQLRETURN WINAPI SQLBrowseConnect( - /************************************************************************* - * SQLBulkOperations [ODBC32.078] - */ --SQLRETURN WINAPI SQLBulkOperations( -+SQLRETURN WINAPI ODBC32_SQLBulkOperations( - SQLHSTMT StatementHandle, - SQLSMALLINT Operation) - { -@@ -1654,7 +1661,7 @@ SQLRETURN WINAPI SQLBulkOperations( - /************************************************************************* - * SQLColAttributes [ODBC32.006] - */ --SQLRETURN WINAPI SQLColAttributes( -+SQLRETURN WINAPI ODBC32_SQLColAttributes( - SQLHSTMT hstmt, - SQLUSMALLINT icol, - SQLUSMALLINT fDescType, -@@ -1673,7 +1680,7 @@ SQLRETURN WINAPI SQLColAttributes( - /************************************************************************* - * SQLColumnPrivileges [ODBC32.056] - */ --SQLRETURN WINAPI SQLColumnPrivileges( -+SQLRETURN WINAPI ODBC32_SQLColumnPrivileges( - SQLHSTMT hstmt, - SQLCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -1695,7 +1702,7 @@ SQLRETURN WINAPI SQLColumnPrivileges( - /************************************************************************* - * SQLDescribeParam [ODBC32.058] - */ --SQLRETURN WINAPI SQLDescribeParam( -+SQLRETURN WINAPI ODBC32_SQLDescribeParam( - SQLHSTMT hstmt, - SQLUSMALLINT ipar, - SQLSMALLINT *pfSqlType, -@@ -1713,7 +1720,7 @@ SQLRETURN WINAPI SQLDescribeParam( - /************************************************************************* - * SQLExtendedFetch [ODBC32.059] - */ --SQLRETURN WINAPI SQLExtendedFetch( -+SQLRETURN WINAPI ODBC32_SQLExtendedFetch( - SQLHSTMT hstmt, - SQLUSMALLINT fFetchType, - SQLLEN irow, -@@ -1730,7 +1737,7 @@ SQLRETURN WINAPI SQLExtendedFetch( - /************************************************************************* - * SQLForeignKeys [ODBC32.060] - */ --SQLRETURN WINAPI SQLForeignKeys( -+SQLRETURN WINAPI ODBC32_SQLForeignKeys( - SQLHSTMT hstmt, - SQLCHAR *szPkCatalogName, - SQLSMALLINT cbPkCatalogName, -@@ -1757,7 +1764,7 @@ SQLRETURN WINAPI SQLForeignKeys( - /************************************************************************* - * SQLMoreResults [ODBC32.061] - */ --SQLRETURN WINAPI SQLMoreResults(SQLHSTMT hstmt) -+SQLRETURN WINAPI ODBC32_SQLMoreResults(SQLHSTMT hstmt) - { - TRACE("\n"); - -@@ -1769,7 +1776,7 @@ SQLRETURN WINAPI SQLMoreResults(SQLHSTMT hstmt) - /************************************************************************* - * SQLNativeSql [ODBC32.062] - */ --SQLRETURN WINAPI SQLNativeSql( -+SQLRETURN WINAPI ODBC32_SQLNativeSql( - SQLHDBC hdbc, - SQLCHAR *szSqlStrIn, - SQLINTEGER cbSqlStrIn, -@@ -1787,7 +1794,7 @@ SQLRETURN WINAPI SQLNativeSql( - /************************************************************************* - * SQLNumParams [ODBC32.063] - */ --SQLRETURN WINAPI SQLNumParams( -+SQLRETURN WINAPI ODBC32_SQLNumParams( - SQLHSTMT hstmt, - SQLSMALLINT *pcpar) - { -@@ -1801,7 +1808,7 @@ SQLRETURN WINAPI SQLNumParams( - /************************************************************************* - * SQLParamOptions [ODBC32.064] - */ --SQLRETURN WINAPI SQLParamOptions( -+SQLRETURN WINAPI ODBC32_SQLParamOptions( - SQLHSTMT hstmt, - SQLULEN crow, - SQLULEN *pirow) -@@ -1816,7 +1823,7 @@ SQLRETURN WINAPI SQLParamOptions( - /************************************************************************* - * SQLPrimaryKeys [ODBC32.065] - */ --SQLRETURN WINAPI SQLPrimaryKeys( -+SQLRETURN WINAPI ODBC32_SQLPrimaryKeys( - SQLHSTMT hstmt, - SQLCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -1836,7 +1843,7 @@ SQLRETURN WINAPI SQLPrimaryKeys( - /************************************************************************* - * SQLProcedureColumns [ODBC32.066] - */ --SQLRETURN WINAPI SQLProcedureColumns( -+SQLRETURN WINAPI ODBC32_SQLProcedureColumns( - SQLHSTMT hstmt, - SQLCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -1858,7 +1865,7 @@ SQLRETURN WINAPI SQLProcedureColumns( - /************************************************************************* - * SQLProcedures [ODBC32.067] - */ --SQLRETURN WINAPI SQLProcedures( -+SQLRETURN WINAPI ODBC32_SQLProcedures( - SQLHSTMT hstmt, - SQLCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -1878,7 +1885,7 @@ SQLRETURN WINAPI SQLProcedures( - /************************************************************************* - * SQLSetPos [ODBC32.068] - */ --SQLRETURN WINAPI SQLSetPos( -+SQLRETURN WINAPI ODBC32_SQLSetPos( - SQLHSTMT hstmt, - SQLSETPOSIROW irow, - SQLUSMALLINT fOption, -@@ -1894,7 +1901,7 @@ SQLRETURN WINAPI SQLSetPos( - /************************************************************************* - * SQLTablePrivileges [ODBC32.070] - */ --SQLRETURN WINAPI SQLTablePrivileges( -+SQLRETURN WINAPI ODBC32_SQLTablePrivileges( - SQLHSTMT hstmt, - SQLCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -1914,7 +1921,7 @@ SQLRETURN WINAPI SQLTablePrivileges( - /************************************************************************* - * SQLDrivers [ODBC32.071] - */ --SQLRETURN WINAPI SQLDrivers( -+SQLRETURN WINAPI ODBC32_SQLDrivers( - SQLHENV henv, - SQLUSMALLINT fDirection, - SQLCHAR *szDriverDesc, -@@ -1943,7 +1950,7 @@ SQLRETURN WINAPI SQLDrivers( - /************************************************************************* - * SQLBindParameter [ODBC32.072] - */ --SQLRETURN WINAPI SQLBindParameter( -+SQLRETURN WINAPI ODBC32_SQLBindParameter( - SQLHSTMT hstmt, - SQLUSMALLINT ipar, - SQLSMALLINT fParamType, -@@ -1966,7 +1973,7 @@ SQLRETURN WINAPI SQLBindParameter( - /************************************************************************* - * SQLDriverConnect [ODBC32.041] - */ --SQLRETURN WINAPI SQLDriverConnect( -+SQLRETURN WINAPI ODBC32_SQLDriverConnect( - SQLHDBC hdbc, - SQLHWND hwnd, - SQLCHAR *conn_str_in, -@@ -1992,7 +1999,7 @@ SQLRETURN WINAPI SQLDriverConnect( - /************************************************************************* - * SQLSetScrollOptions [ODBC32.069] - */ --SQLRETURN WINAPI SQLSetScrollOptions( -+SQLRETURN WINAPI ODBC32_SQLSetScrollOptions( - SQLHSTMT statement_handle, - SQLUSMALLINT f_concurrency, - SQLLEN crow_keyset, -@@ -2037,7 +2044,7 @@ static BOOL SQLColAttributes_KnownStringAttribute(SQLUSMALLINT fDescType) - /************************************************************************* - * SQLColAttributesW [ODBC32.106] - */ --SQLRETURN WINAPI SQLColAttributesW( -+SQLRETURN WINAPI ODBC32_SQLColAttributesW( - SQLHSTMT hstmt, - SQLUSMALLINT icol, - SQLUSMALLINT fDescType, -@@ -2071,7 +2078,7 @@ SQLRETURN WINAPI SQLColAttributesW( - /************************************************************************* - * SQLConnectW [ODBC32.107] - */ --SQLRETURN WINAPI SQLConnectW(SQLHDBC ConnectionHandle, -+SQLRETURN WINAPI ODBC32_SQLConnectW(SQLHDBC ConnectionHandle, - WCHAR *ServerName, SQLSMALLINT NameLength1, - WCHAR *UserName, SQLSMALLINT NameLength2, - WCHAR *Authentication, SQLSMALLINT NameLength3) -@@ -2091,7 +2098,7 @@ SQLRETURN WINAPI SQLConnectW(SQLHDBC ConnectionHandle, - /************************************************************************* - * SQLDescribeColW [ODBC32.108] - */ --SQLRETURN WINAPI SQLDescribeColW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLDescribeColW(SQLHSTMT StatementHandle, - SQLUSMALLINT ColumnNumber, WCHAR *ColumnName, - SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, - SQLSMALLINT *DataType, SQLULEN *ColumnSize, -@@ -2120,7 +2127,7 @@ SQLRETURN WINAPI SQLDescribeColW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLErrorW [ODBC32.110] - */ --SQLRETURN WINAPI SQLErrorW(SQLHENV EnvironmentHandle, -+SQLRETURN WINAPI ODBC32_SQLErrorW(SQLHENV EnvironmentHandle, - SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, - WCHAR *Sqlstate, SQLINTEGER *NativeError, - WCHAR *MessageText, SQLSMALLINT BufferLength, -@@ -2136,7 +2143,7 @@ SQLRETURN WINAPI SQLErrorW(SQLHENV EnvironmentHandle, - /************************************************************************* - * SQLExecDirectW [ODBC32.111] - */ --SQLRETURN WINAPI SQLExecDirectW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLExecDirectW(SQLHSTMT StatementHandle, - WCHAR *StatementText, SQLINTEGER TextLength) - { - TRACE("\n"); -@@ -2148,7 +2155,7 @@ SQLRETURN WINAPI SQLExecDirectW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLGetCursorNameW [ODBC32.117] - */ --SQLRETURN WINAPI SQLGetCursorNameW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLGetCursorNameW(SQLHSTMT StatementHandle, - WCHAR *CursorName, SQLSMALLINT BufferLength, - SQLSMALLINT *NameLength) - { -@@ -2161,7 +2168,7 @@ SQLRETURN WINAPI SQLGetCursorNameW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLPrepareW [ODBC32.119] - */ --SQLRETURN WINAPI SQLPrepareW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLPrepareW(SQLHSTMT StatementHandle, - WCHAR *StatementText, SQLINTEGER TextLength) - { - TRACE("\n"); -@@ -2173,7 +2180,7 @@ SQLRETURN WINAPI SQLPrepareW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLSetCursorNameW [ODBC32.121] - */ --SQLRETURN WINAPI SQLSetCursorNameW(SQLHSTMT StatementHandle, WCHAR *CursorName, SQLSMALLINT NameLength) -+SQLRETURN WINAPI ODBC32_SQLSetCursorNameW(SQLHSTMT StatementHandle, WCHAR *CursorName, SQLSMALLINT NameLength) - { - TRACE("\n"); - -@@ -2184,7 +2191,7 @@ SQLRETURN WINAPI SQLSetCursorNameW(SQLHSTMT StatementHandle, WCHAR *CursorName, - /************************************************************************* - * SQLColAttributeW [ODBC32.127] - */ --SQLRETURN WINAPI SQLColAttributeW (SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLColAttributeW (SQLHSTMT StatementHandle, - SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, - SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, - SQLSMALLINT *StringLength, SQLLEN *NumericAttribute) -@@ -2216,7 +2223,7 @@ SQLRETURN WINAPI SQLColAttributeW (SQLHSTMT StatementHandle, - /************************************************************************* - * SQLGetConnectAttrW [ODBC32.132] - */ --SQLRETURN WINAPI SQLGetConnectAttrW(SQLHDBC ConnectionHandle, -+SQLRETURN WINAPI ODBC32_SQLGetConnectAttrW(SQLHDBC ConnectionHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER BufferLength, SQLINTEGER *StringLength) - { -@@ -2230,7 +2237,7 @@ SQLRETURN WINAPI SQLGetConnectAttrW(SQLHDBC ConnectionHandle, - /************************************************************************* - * SQLGetDescFieldW [ODBC32.133] - */ --SQLRETURN WINAPI SQLGetDescFieldW(SQLHDESC DescriptorHandle, -+SQLRETURN WINAPI ODBC32_SQLGetDescFieldW(SQLHDESC DescriptorHandle, - SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, - SQLPOINTER Value, SQLINTEGER BufferLength, - SQLINTEGER *StringLength) -@@ -2245,7 +2252,7 @@ SQLRETURN WINAPI SQLGetDescFieldW(SQLHDESC DescriptorHandle, - /************************************************************************* - * SQLGetDescRecW [ODBC32.134] - */ --SQLRETURN WINAPI SQLGetDescRecW(SQLHDESC DescriptorHandle, -+SQLRETURN WINAPI ODBC32_SQLGetDescRecW(SQLHDESC DescriptorHandle, - SQLSMALLINT RecNumber, WCHAR *Name, - SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, - SQLSMALLINT *Type, SQLSMALLINT *SubType, -@@ -2262,7 +2269,7 @@ SQLRETURN WINAPI SQLGetDescRecW(SQLHDESC DescriptorHandle, - /************************************************************************* - * SQLGetDiagFieldW [ODBC32.135] - */ --SQLRETURN WINAPI SQLGetDiagFieldW(SQLSMALLINT HandleType, SQLHANDLE Handle, -+SQLRETURN WINAPI ODBC32_SQLGetDiagFieldW(SQLSMALLINT HandleType, SQLHANDLE Handle, - SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, - SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, - SQLSMALLINT *StringLength) -@@ -2277,7 +2284,7 @@ SQLRETURN WINAPI SQLGetDiagFieldW(SQLSMALLINT HandleType, SQLHANDLE Handle, - /************************************************************************* - * SQLGetDiagRecW [ODBC32.136] - */ --SQLRETURN WINAPI SQLGetDiagRecW(SQLSMALLINT HandleType, SQLHANDLE Handle, -+SQLRETURN WINAPI ODBC32_SQLGetDiagRecW(SQLSMALLINT HandleType, SQLHANDLE Handle, - SQLSMALLINT RecNumber, WCHAR *Sqlstate, - SQLINTEGER *NativeError, WCHAR *MessageText, - SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) -@@ -2292,7 +2299,7 @@ SQLRETURN WINAPI SQLGetDiagRecW(SQLSMALLINT HandleType, SQLHANDLE Handle, - /************************************************************************* - * SQLGetStmtAttrW [ODBC32.138] - */ --SQLRETURN WINAPI SQLGetStmtAttrW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLGetStmtAttrW(SQLHSTMT StatementHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER BufferLength, SQLINTEGER *StringLength) - { -@@ -2320,7 +2327,7 @@ SQLRETURN WINAPI SQLGetStmtAttrW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLSetConnectAttrW [ODBC32.139] - */ --SQLRETURN WINAPI SQLSetConnectAttrW(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, -+SQLRETURN WINAPI ODBC32_SQLSetConnectAttrW(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, - SQLPOINTER Value, SQLINTEGER StringLength) - { - TRACE("\n"); -@@ -2332,7 +2339,7 @@ SQLRETURN WINAPI SQLSetConnectAttrW(SQLHDBC ConnectionHandle, SQLINTEGER Attribu - /************************************************************************* - * SQLColumnsW [ODBC32.140] - */ --SQLRETURN WINAPI SQLColumnsW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLColumnsW(SQLHSTMT StatementHandle, - WCHAR *CatalogName, SQLSMALLINT NameLength1, - WCHAR *SchemaName, SQLSMALLINT NameLength2, - WCHAR *TableName, SQLSMALLINT NameLength3, -@@ -2348,7 +2355,7 @@ SQLRETURN WINAPI SQLColumnsW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLDriverConnectW [ODBC32.141] - */ --SQLRETURN WINAPI SQLDriverConnectW( -+SQLRETURN WINAPI ODBC32_SQLDriverConnectW( - SQLHDBC hdbc, - SQLHWND hwnd, - WCHAR *conn_str_in, -@@ -2369,7 +2376,7 @@ SQLRETURN WINAPI SQLDriverConnectW( - /************************************************************************* - * SQLGetConnectOptionW [ODBC32.142] - */ --SQLRETURN WINAPI SQLGetConnectOptionW(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLPOINTER Value) -+SQLRETURN WINAPI ODBC32_SQLGetConnectOptionW(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLPOINTER Value) - { - TRACE("\n"); - -@@ -2380,7 +2387,7 @@ SQLRETURN WINAPI SQLGetConnectOptionW(SQLHDBC ConnectionHandle, SQLUSMALLINT Opt - /************************************************************************* - * SQLGetInfoW [ODBC32.145] - */ --SQLRETURN WINAPI SQLGetInfoW(SQLHDBC ConnectionHandle, -+SQLRETURN WINAPI ODBC32_SQLGetInfoW(SQLHDBC ConnectionHandle, - SQLUSMALLINT InfoType, SQLPOINTER InfoValue, - SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) - { -@@ -2401,7 +2408,7 @@ SQLRETURN WINAPI SQLGetInfoW(SQLHDBC ConnectionHandle, - /************************************************************************* - * SQLGetTypeInfoW [ODBC32.147] - */ --SQLRETURN WINAPI SQLGetTypeInfoW(SQLHSTMT StatementHandle, SQLSMALLINT DataType) -+SQLRETURN WINAPI ODBC32_SQLGetTypeInfoW(SQLHSTMT StatementHandle, SQLSMALLINT DataType) - { - TRACE("\n"); - -@@ -2412,7 +2419,7 @@ SQLRETURN WINAPI SQLGetTypeInfoW(SQLHSTMT StatementHandle, SQLSMALLINT DataType) - /************************************************************************* - * SQLSetConnectOptionW [ODBC32.150] - */ --SQLRETURN WINAPI SQLSetConnectOptionW(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLLEN Value) -+SQLRETURN WINAPI ODBC32_SQLSetConnectOptionW(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLLEN Value) - { - TRACE("\n"); - -@@ -2423,7 +2430,7 @@ SQLRETURN WINAPI SQLSetConnectOptionW(SQLHDBC ConnectionHandle, SQLUSMALLINT Opt - /************************************************************************* - * SQLSpecialColumnsW [ODBC32.152] - */ --SQLRETURN WINAPI SQLSpecialColumnsW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLSpecialColumnsW(SQLHSTMT StatementHandle, - SQLUSMALLINT IdentifierType, SQLWCHAR *CatalogName, - SQLSMALLINT NameLength1, SQLWCHAR *SchemaName, - SQLSMALLINT NameLength2, SQLWCHAR *TableName, -@@ -2438,7 +2445,7 @@ SQLRETURN WINAPI SQLSpecialColumnsW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLStatisticsW [ODBC32.153] - */ --SQLRETURN WINAPI SQLStatisticsW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLStatisticsW(SQLHSTMT StatementHandle, - SQLWCHAR *CatalogName, SQLSMALLINT NameLength1, - SQLWCHAR *SchemaName, SQLSMALLINT NameLength2, - SQLWCHAR *TableName, SQLSMALLINT NameLength3, -@@ -2454,7 +2461,7 @@ SQLRETURN WINAPI SQLStatisticsW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLTablesW [ODBC32.154] - */ --SQLRETURN WINAPI SQLTablesW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLTablesW(SQLHSTMT StatementHandle, - SQLWCHAR *CatalogName, SQLSMALLINT NameLength1, - SQLWCHAR *SchemaName, SQLSMALLINT NameLength2, - SQLWCHAR *TableName, SQLSMALLINT NameLength3, -@@ -2470,7 +2477,7 @@ SQLRETURN WINAPI SQLTablesW(SQLHSTMT StatementHandle, - /************************************************************************* - * SQLBrowseConnectW [ODBC32.155] - */ --SQLRETURN WINAPI SQLBrowseConnectW( -+SQLRETURN WINAPI ODBC32_SQLBrowseConnectW( - SQLHDBC hdbc, - SQLWCHAR *szConnStrIn, - SQLSMALLINT cbConnStrIn, -@@ -2488,7 +2495,7 @@ SQLRETURN WINAPI SQLBrowseConnectW( - /************************************************************************* - * SQLColumnPrivilegesW [ODBC32.156] - */ --SQLRETURN WINAPI SQLColumnPrivilegesW( -+SQLRETURN WINAPI ODBC32_SQLColumnPrivilegesW( - SQLHSTMT hstmt, - SQLWCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -2509,7 +2516,7 @@ SQLRETURN WINAPI SQLColumnPrivilegesW( - /************************************************************************* - * SQLDataSourcesW [ODBC32.157] - */ --SQLRETURN WINAPI SQLDataSourcesW(SQLHENV EnvironmentHandle, -+SQLRETURN WINAPI ODBC32_SQLDataSourcesW(SQLHENV EnvironmentHandle, - SQLUSMALLINT Direction, WCHAR *ServerName, - SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1, - WCHAR *Description, SQLSMALLINT BufferLength2, -@@ -2540,7 +2547,7 @@ SQLRETURN WINAPI SQLDataSourcesW(SQLHENV EnvironmentHandle, - /************************************************************************* - * SQLForeignKeysW [ODBC32.160] - */ --SQLRETURN WINAPI SQLForeignKeysW( -+SQLRETURN WINAPI ODBC32_SQLForeignKeysW( - SQLHSTMT hstmt, - SQLWCHAR *szPkCatalogName, - SQLSMALLINT cbPkCatalogName, -@@ -2566,7 +2573,7 @@ SQLRETURN WINAPI SQLForeignKeysW( - /************************************************************************* - * SQLNativeSqlW [ODBC32.162] - */ --SQLRETURN WINAPI SQLNativeSqlW( -+SQLRETURN WINAPI ODBC32_SQLNativeSqlW( - SQLHDBC hdbc, - SQLWCHAR *szSqlStrIn, - SQLINTEGER cbSqlStrIn, -@@ -2583,7 +2590,7 @@ SQLRETURN WINAPI SQLNativeSqlW( - /************************************************************************* - * SQLPrimaryKeysW [ODBC32.165] - */ --SQLRETURN WINAPI SQLPrimaryKeysW( -+SQLRETURN WINAPI ODBC32_SQLPrimaryKeysW( - SQLHSTMT hstmt, - SQLWCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -2602,7 +2609,7 @@ SQLRETURN WINAPI SQLPrimaryKeysW( - /************************************************************************* - * SQLProcedureColumnsW [ODBC32.166] - */ --SQLRETURN WINAPI SQLProcedureColumnsW( -+SQLRETURN WINAPI ODBC32_SQLProcedureColumnsW( - SQLHSTMT hstmt, - SQLWCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -2623,7 +2630,7 @@ SQLRETURN WINAPI SQLProcedureColumnsW( - /************************************************************************* - * SQLProceduresW [ODBC32.167] - */ --SQLRETURN WINAPI SQLProceduresW( -+SQLRETURN WINAPI ODBC32_SQLProceduresW( - SQLHSTMT hstmt, - SQLWCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -2642,7 +2649,7 @@ SQLRETURN WINAPI SQLProceduresW( - /************************************************************************* - * SQLTablePrivilegesW [ODBC32.170] - */ --SQLRETURN WINAPI SQLTablePrivilegesW( -+SQLRETURN WINAPI ODBC32_SQLTablePrivilegesW( - SQLHSTMT hstmt, - SQLWCHAR *szCatalogName, - SQLSMALLINT cbCatalogName, -@@ -2661,7 +2668,7 @@ SQLRETURN WINAPI SQLTablePrivilegesW( - /************************************************************************* - * SQLDriversW [ODBC32.171] - */ --SQLRETURN WINAPI SQLDriversW( -+SQLRETURN WINAPI ODBC32_SQLDriversW( - SQLHENV henv, - SQLUSMALLINT fDirection, - SQLWCHAR *szDriverDesc, -@@ -2689,7 +2696,7 @@ SQLRETURN WINAPI SQLDriversW( - /************************************************************************* - * SQLSetDescFieldW [ODBC32.173] - */ --SQLRETURN WINAPI SQLSetDescFieldW(SQLHDESC DescriptorHandle, -+SQLRETURN WINAPI ODBC32_SQLSetDescFieldW(SQLHDESC DescriptorHandle, - SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, - SQLPOINTER Value, SQLINTEGER BufferLength) - { -@@ -2702,7 +2709,7 @@ SQLRETURN WINAPI SQLSetDescFieldW(SQLHDESC DescriptorHandle, - /************************************************************************* - * SQLSetStmtAttrW [ODBC32.176] - */ --SQLRETURN WINAPI SQLSetStmtAttrW(SQLHSTMT StatementHandle, -+SQLRETURN WINAPI ODBC32_SQLSetStmtAttrW(SQLHSTMT StatementHandle, - SQLINTEGER Attribute, SQLPOINTER Value, - SQLINTEGER StringLength) - { --- -1.9.1 - diff --git a/patches/ml-patches/0015-winmm-Don-t-crash-in-waveOutOpen-when-nSamplesPerSec.patch b/patches/ml-patches/0015-winmm-Don-t-crash-in-waveOutOpen-when-nSamplesPerSec.patch deleted file mode 100644 index b1c9da17..00000000 --- a/patches/ml-patches/0015-winmm-Don-t-crash-in-waveOutOpen-when-nSamplesPerSec.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 65af7470de21a5d3b99ed8bc96f57d3f93012b56 Mon Sep 17 00:00:00 2001 -From: Fabian Maurer -Date: Fri, 3 Aug 2018 07:55:03 -0500 -Subject: [PATCH] winmm: Don't crash in waveOutOpen when nSamplesPerSec is 0 - and add tests - -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45530 -Signed-off-by: Fabian Maurer -Signed-off-by: Andrew Eikum ---- - dlls/winmm/tests/wave.c | 22 ++++++++++++++++++++++ - dlls/winmm/waveform.c | 7 +++++++ - 2 files changed, 29 insertions(+) - -diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c -index b402e21917..c106594b3f 100644 ---- a/dlls/winmm/tests/wave.c -+++ b/dlls/winmm/tests/wave.c -@@ -1415,6 +1415,28 @@ static void wave_out_test_device(UINT_PTR device) - } else - trace("waveOutOpen(%s): 32 bit float samples not supported\n", - dev_name(device)); -+ -+ /* Test invalid parameters */ -+ -+ format.wFormatTag = WAVE_FORMAT_PCM; -+ format.nChannels = 1; -+ format.nSamplesPerSec = 11025; -+ format.nBlockAlign = 1; -+ format.nAvgBytesPerSec = 11025 * 1; -+ format.wBitsPerSample = 8; -+ format.cbSize = 0; -+ -+ format.nAvgBytesPerSec = 0; -+ rc = waveOutOpen(&wout, device, &format, 0, 0, 0); -+ ok(rc == MMSYSERR_NOERROR, -+ "waveOutOpen(%s): returned %s\n",dev_name(device),wave_out_error(rc)); -+ waveOutClose(wout); -+ format.nAvgBytesPerSec = 11025 * 1; -+ -+ format.nSamplesPerSec = 0; -+ rc = waveOutOpen(&wout, device, &format, 0, 0, 0); -+ ok(rc == MMSYSERR_INVALPARAM || rc == WAVERR_BADFORMAT, /* XP and lower return WAVERR_BADFORMAT */ -+ "waveOutOpen(%s): returned %s\n",dev_name(device),wave_out_error(rc)); - } - - static void wave_out_tests(void) -diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c -index 045bf4ac20..0a259c0f74 100644 ---- a/dlls/winmm/waveform.c -+++ b/dlls/winmm/waveform.c -@@ -1088,6 +1088,13 @@ static LRESULT WINMM_OpenDevice(WINMM_Device *device, WINMM_OpenInfo *info, - } - - if(info->format->wFormatTag == WAVE_FORMAT_PCM){ -+ -+ if (info->format->nSamplesPerSec == 0) -+ { -+ ret = MMSYSERR_INVALPARAM; -+ goto error; -+ } -+ - /* we aren't guaranteed that the struct in lpFormat is a full - * WAVEFORMATEX struct, which IAC::IsFormatSupported requires */ - device->orig_fmt = HeapAlloc(GetProcessHeap(), 0, sizeof(WAVEFORMATEX)); --- -2.18.0 - diff --git a/patches/ml-patches/0016-msi-Generate-unique-names-for-32-and-64-bit-custom-a.patch b/patches/ml-patches/0016-msi-Generate-unique-names-for-32-and-64-bit-custom-a.patch deleted file mode 100644 index 5d97956c..00000000 --- a/patches/ml-patches/0016-msi-Generate-unique-names-for-32-and-64-bit-custom-a.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 47e5c48c7eadb3dd96d5fa3eb130f75f6c371c4b Mon Sep 17 00:00:00 2001 -From: Zebediah Figura -Date: Mon, 30 Jul 2018 14:11:11 -0500 -Subject: [PATCH 16/24] msi: Generate unique names for 32- and 64-bit custom - action server pipes. - -Signed-off-by: Zebediah Figura ---- - dlls/msi/custom.c | 6 ++++-- - programs/msiexec/msiexec.c | 4 ++-- - 2 files changed, 6 insertions(+), 4 deletions(-) - -diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c -index 1a8a982..51755f2 100644 ---- a/dlls/msi/custom.c -+++ b/dlls/msi/custom.c -@@ -590,7 +590,7 @@ UINT CDECL __wine_msi_call_dll_function(const GUID *guid) - - static DWORD custom_start_server(MSIPACKAGE *package, DWORD arch) - { -- static const WCHAR pipe_name[] = {'\\','\\','.','\\','p','i','p','e','\\','m','s','i','c','a','_','%','x',0}; -+ static const WCHAR pipe_name[] = {'\\','\\','.','\\','p','i','p','e','\\','m','s','i','c','a','_','%','x','_','%','d',0}; - static const WCHAR msiexecW[] = {'\\','m','s','i','e','x','e','c','.','e','x','e',0}; - static const WCHAR argsW[] = {'%','s',' ','-','E','m','b','e','d','d','i','n','g',' ','%','d',0}; - -@@ -606,9 +606,11 @@ static DWORD custom_start_server(MSIPACKAGE *package, DWORD arch) - (arch == SCS_64BIT_BINARY && package->custom_server_64_process)) - return ERROR_SUCCESS; - -- sprintfW(buffer, pipe_name, GetCurrentProcessId()); -+ sprintfW(buffer, pipe_name, GetCurrentProcessId(), arch == SCS_32BIT_BINARY ? 32 : 64); - pipe = CreateNamedPipeW(buffer, PIPE_ACCESS_DUPLEX, 0, 1, sizeof(DWORD64), - sizeof(GUID), 0, NULL); -+ if (pipe == INVALID_HANDLE_VALUE) -+ ERR("Failed to create custom action client pipe: %u\n", GetLastError()); - - if (sizeof(void *) == 8 && arch == SCS_32BIT_BINARY) - GetSystemWow64DirectoryW(path, MAX_PATH - sizeof(msiexecW)/sizeof(WCHAR)); -diff --git a/programs/msiexec/msiexec.c b/programs/msiexec/msiexec.c -index 47cef7e..ead3bfb 100644 ---- a/programs/msiexec/msiexec.c -+++ b/programs/msiexec/msiexec.c -@@ -406,7 +406,7 @@ static DWORD CALLBACK custom_action_thread(void *arg) - - static int custom_action_server(const WCHAR *arg) - { -- static const WCHAR pipe_name[] = {'\\','\\','.','\\','p','i','p','e','\\','m','s','i','c','a','_','%','x',0}; -+ static const WCHAR pipe_name[] = {'\\','\\','.','\\','p','i','p','e','\\','m','s','i','c','a','_','%','x','_','%','d',0}; - DWORD client_pid = atoiW(arg); - DWORD64 thread64; - WCHAR buffer[24]; -@@ -423,7 +423,7 @@ static int custom_action_server(const WCHAR *arg) - return 1; - } - -- sprintfW(buffer, pipe_name, client_pid); -+ sprintfW(buffer, pipe_name, client_pid, sizeof(void *) * 8); - pipe = CreateFileW(buffer, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); - if (pipe == INVALID_HANDLE_VALUE) - { --- -1.9.1 - diff --git a/patches/ml-patches/0017-winevulkan-Expose-driver-vkGetInstanceProcAddr-via-w.patch b/patches/ml-patches/0017-winevulkan-Expose-driver-vkGetInstanceProcAddr-via-w.patch deleted file mode 100644 index 54c7861d..00000000 --- a/patches/ml-patches/0017-winevulkan-Expose-driver-vkGetInstanceProcAddr-via-w.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 29c5d550d65f9d03be8319eeec75904ecdc88ce9 Mon Sep 17 00:00:00 2001 -From: Jacek Caban -Date: Fri, 27 Jul 2018 15:30:49 +0200 -Subject: [PATCH 17/24] winevulkan: Expose driver vkGetInstanceProcAddr via - winevulkan exports. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Józef Kucia -Signed-off-by: Jacek Caban ---- - dlls/winevulkan/make_vulkan | 1 + - dlls/winevulkan/vulkan.c | 10 ++++++++++ - dlls/winevulkan/winevulkan.spec | 1 + - 3 files changed, 12 insertions(+) - -diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan -index fe742b7..fae6ab0 100755 ---- a/dlls/winevulkan/make_vulkan -+++ b/dlls/winevulkan/make_vulkan -@@ -2282,6 +2282,7 @@ class VkGenerator(object): - self._generate_copyright(f, spec_file=True) - f.write("@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr\n") - f.write("@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion\n") -+ f.write("@ cdecl -norelay native_vkGetInstanceProcAddrWINE(ptr str)\n") - - # Export symbols for all Vulkan Core functions. - for func in self.registry.funcs.values(): -diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c -index 0bb68c2..bd652a5 100644 ---- a/dlls/winevulkan/vulkan.c -+++ b/dlls/winevulkan/vulkan.c -@@ -1163,3 +1163,13 @@ static void *wine_vk_get_global_proc_addr(const char *name) - } - return NULL; - } -+ -+/* -+ * Wrapper around driver vkGetInstanceProcAddr implementation. -+ * Allows winelib applications to access Vulkan functions with Wine -+ * additions and native ABI. -+ */ -+void *native_vkGetInstanceProcAddrWINE(VkInstance instance, const char *name) -+{ -+ return vk_funcs->p_vkGetInstanceProcAddr(instance, name); -+} -diff --git a/dlls/winevulkan/winevulkan.spec b/dlls/winevulkan/winevulkan.spec -index 8aab0fe..f979458 100644 ---- a/dlls/winevulkan/winevulkan.spec -+++ b/dlls/winevulkan/winevulkan.spec -@@ -36,6 +36,7 @@ - - @ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr - @ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion -+@ cdecl -norelay native_vkGetInstanceProcAddrWINE(ptr str) - @ stdcall wine_vkAcquireNextImage2KHR(ptr ptr ptr) - @ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) - @ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr) --- -1.9.1 - diff --git a/patches/ml-patches/0018-winevulkan-Mark-ICD-and-thunking-functions-as-privat.patch b/patches/ml-patches/0018-winevulkan-Mark-ICD-and-thunking-functions-as-privat.patch deleted file mode 100644 index 5c5b06ad..00000000 --- a/patches/ml-patches/0018-winevulkan-Mark-ICD-and-thunking-functions-as-privat.patch +++ /dev/null @@ -1,425 +0,0 @@ -From cef9ec3da9c0861b03a6b98fe318b21add0f6f16 Mon Sep 17 00:00:00 2001 -From: Jacek Caban -Date: Fri, 27 Jul 2018 15:31:01 +0200 -Subject: [PATCH 18/24] winevulkan: Mark ICD and thunking functions as private. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We don't need them in importlib. We use them only for vulkan-1 -forwarding, which doesn't need an importlib. - -Signed-off-by: Józef Kucia -Signed-off-by: Jacek Caban ---- - dlls/winevulkan/make_vulkan | 6 +- - dlls/winevulkan/winevulkan.spec | 360 ++++++++++++++++++++-------------------- - 2 files changed, 183 insertions(+), 183 deletions(-) - -diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan -index fae6ab0..73bba78 100755 ---- a/dlls/winevulkan/make_vulkan -+++ b/dlls/winevulkan/make_vulkan -@@ -647,7 +647,7 @@ class VkFunction(object): - spec = "" - params = " ".join([p.spec() for p in self.params]) - if prefix is not None: -- spec += "@ stdcall {0}{1}({2})".format(prefix, self.name, params) -+ spec += "@ stdcall -private {0}{1}({2})".format(prefix, self.name, params) - else: - spec += "@ stdcall {0}({1})".format(self.name, params) - -@@ -2280,8 +2280,8 @@ class VkGenerator(object): - - def generate_vulkan_spec(self, f): - self._generate_copyright(f, spec_file=True) -- f.write("@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr\n") -- f.write("@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion\n") -+ f.write("@ stdcall -private vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr\n") -+ f.write("@ stdcall -private vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion\n") - f.write("@ cdecl -norelay native_vkGetInstanceProcAddrWINE(ptr str)\n") - - # Export symbols for all Vulkan Core functions. -diff --git a/dlls/winevulkan/winevulkan.spec b/dlls/winevulkan/winevulkan.spec -index f979458..b075e9f 100644 ---- a/dlls/winevulkan/winevulkan.spec -+++ b/dlls/winevulkan/winevulkan.spec -@@ -34,195 +34,195 @@ - # but only in their entirety and only with respect to the Combined Software. - # - --@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr --@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion -+@ stdcall -private vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr -+@ stdcall -private vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion - @ cdecl -norelay native_vkGetInstanceProcAddrWINE(ptr str) --@ stdcall wine_vkAcquireNextImage2KHR(ptr ptr ptr) --@ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) --@ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr) --@ stdcall wine_vkAllocateDescriptorSets(ptr ptr ptr) --@ stdcall wine_vkAllocateMemory(ptr ptr ptr ptr) --@ stdcall wine_vkBeginCommandBuffer(ptr ptr) --@ stdcall wine_vkBindBufferMemory(ptr int64 int64 int64) --@ stdcall wine_vkBindBufferMemory2(ptr long ptr) --@ stdcall wine_vkBindImageMemory(ptr int64 int64 int64) --@ stdcall wine_vkBindImageMemory2(ptr long ptr) --@ stdcall wine_vkCmdBeginQuery(ptr int64 long long) --@ stdcall wine_vkCmdBeginRenderPass(ptr ptr long) --@ stdcall wine_vkCmdBindDescriptorSets(ptr long int64 long long ptr long ptr) --@ stdcall wine_vkCmdBindIndexBuffer(ptr int64 int64 long) --@ stdcall wine_vkCmdBindPipeline(ptr long int64) --@ stdcall wine_vkCmdBindVertexBuffers(ptr long long ptr ptr) --@ stdcall wine_vkCmdBlitImage(ptr int64 long int64 long long ptr long) --@ stdcall wine_vkCmdClearAttachments(ptr long ptr long ptr) --@ stdcall wine_vkCmdClearColorImage(ptr int64 long ptr long ptr) --@ stdcall wine_vkCmdClearDepthStencilImage(ptr int64 long ptr long ptr) --@ stdcall wine_vkCmdCopyBuffer(ptr int64 int64 long ptr) --@ stdcall wine_vkCmdCopyBufferToImage(ptr int64 int64 long long ptr) --@ stdcall wine_vkCmdCopyImage(ptr int64 long int64 long long ptr) --@ stdcall wine_vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr) --@ stdcall wine_vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long) --@ stdcall wine_vkCmdDispatch(ptr long long long) --@ stdcall wine_vkCmdDispatchBase(ptr long long long long long long) --@ stdcall wine_vkCmdDispatchIndirect(ptr int64 int64) --@ stdcall wine_vkCmdDraw(ptr long long long long) --@ stdcall wine_vkCmdDrawIndexed(ptr long long long long long) --@ stdcall wine_vkCmdDrawIndexedIndirect(ptr int64 int64 long long) --@ stdcall wine_vkCmdDrawIndirect(ptr int64 int64 long long) --@ stdcall wine_vkCmdEndQuery(ptr int64 long) --@ stdcall wine_vkCmdEndRenderPass(ptr) --@ stdcall wine_vkCmdExecuteCommands(ptr long ptr) --@ stdcall wine_vkCmdFillBuffer(ptr int64 int64 int64 long) --@ stdcall wine_vkCmdNextSubpass(ptr long) --@ stdcall wine_vkCmdPipelineBarrier(ptr long long long long ptr long ptr long ptr) --@ stdcall wine_vkCmdPushConstants(ptr int64 long long long ptr) --@ stdcall wine_vkCmdResetEvent(ptr int64 long) --@ stdcall wine_vkCmdResetQueryPool(ptr int64 long long) --@ stdcall wine_vkCmdResolveImage(ptr int64 long int64 long long ptr) --@ stdcall wine_vkCmdSetBlendConstants(ptr ptr) --@ stdcall wine_vkCmdSetDepthBias(ptr float float float) --@ stdcall wine_vkCmdSetDepthBounds(ptr float float) --@ stdcall wine_vkCmdSetDeviceMask(ptr long) --@ stdcall wine_vkCmdSetEvent(ptr int64 long) --@ stdcall wine_vkCmdSetLineWidth(ptr float) --@ stdcall wine_vkCmdSetScissor(ptr long long ptr) --@ stdcall wine_vkCmdSetStencilCompareMask(ptr long long) --@ stdcall wine_vkCmdSetStencilReference(ptr long long) --@ stdcall wine_vkCmdSetStencilWriteMask(ptr long long) --@ stdcall wine_vkCmdSetViewport(ptr long long ptr) --@ stdcall wine_vkCmdUpdateBuffer(ptr int64 int64 int64 ptr) --@ stdcall wine_vkCmdWaitEvents(ptr long ptr long long long ptr long ptr long ptr) --@ stdcall wine_vkCmdWriteTimestamp(ptr long int64 long) --@ stdcall wine_vkCreateBuffer(ptr ptr ptr ptr) --@ stdcall wine_vkCreateBufferView(ptr ptr ptr ptr) --@ stdcall wine_vkCreateCommandPool(ptr ptr ptr ptr) --@ stdcall wine_vkCreateComputePipelines(ptr int64 long ptr ptr ptr) --@ stdcall wine_vkCreateDescriptorPool(ptr ptr ptr ptr) --@ stdcall wine_vkCreateDescriptorSetLayout(ptr ptr ptr ptr) --@ stdcall wine_vkCreateDescriptorUpdateTemplate(ptr ptr ptr ptr) --@ stdcall wine_vkCreateDevice(ptr ptr ptr ptr) -+@ stdcall -private wine_vkAcquireNextImage2KHR(ptr ptr ptr) -+@ stdcall -private wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) -+@ stdcall -private wine_vkAllocateCommandBuffers(ptr ptr ptr) -+@ stdcall -private wine_vkAllocateDescriptorSets(ptr ptr ptr) -+@ stdcall -private wine_vkAllocateMemory(ptr ptr ptr ptr) -+@ stdcall -private wine_vkBeginCommandBuffer(ptr ptr) -+@ stdcall -private wine_vkBindBufferMemory(ptr int64 int64 int64) -+@ stdcall -private wine_vkBindBufferMemory2(ptr long ptr) -+@ stdcall -private wine_vkBindImageMemory(ptr int64 int64 int64) -+@ stdcall -private wine_vkBindImageMemory2(ptr long ptr) -+@ stdcall -private wine_vkCmdBeginQuery(ptr int64 long long) -+@ stdcall -private wine_vkCmdBeginRenderPass(ptr ptr long) -+@ stdcall -private wine_vkCmdBindDescriptorSets(ptr long int64 long long ptr long ptr) -+@ stdcall -private wine_vkCmdBindIndexBuffer(ptr int64 int64 long) -+@ stdcall -private wine_vkCmdBindPipeline(ptr long int64) -+@ stdcall -private wine_vkCmdBindVertexBuffers(ptr long long ptr ptr) -+@ stdcall -private wine_vkCmdBlitImage(ptr int64 long int64 long long ptr long) -+@ stdcall -private wine_vkCmdClearAttachments(ptr long ptr long ptr) -+@ stdcall -private wine_vkCmdClearColorImage(ptr int64 long ptr long ptr) -+@ stdcall -private wine_vkCmdClearDepthStencilImage(ptr int64 long ptr long ptr) -+@ stdcall -private wine_vkCmdCopyBuffer(ptr int64 int64 long ptr) -+@ stdcall -private wine_vkCmdCopyBufferToImage(ptr int64 int64 long long ptr) -+@ stdcall -private wine_vkCmdCopyImage(ptr int64 long int64 long long ptr) -+@ stdcall -private wine_vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr) -+@ stdcall -private wine_vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long) -+@ stdcall -private wine_vkCmdDispatch(ptr long long long) -+@ stdcall -private wine_vkCmdDispatchBase(ptr long long long long long long) -+@ stdcall -private wine_vkCmdDispatchIndirect(ptr int64 int64) -+@ stdcall -private wine_vkCmdDraw(ptr long long long long) -+@ stdcall -private wine_vkCmdDrawIndexed(ptr long long long long long) -+@ stdcall -private wine_vkCmdDrawIndexedIndirect(ptr int64 int64 long long) -+@ stdcall -private wine_vkCmdDrawIndirect(ptr int64 int64 long long) -+@ stdcall -private wine_vkCmdEndQuery(ptr int64 long) -+@ stdcall -private wine_vkCmdEndRenderPass(ptr) -+@ stdcall -private wine_vkCmdExecuteCommands(ptr long ptr) -+@ stdcall -private wine_vkCmdFillBuffer(ptr int64 int64 int64 long) -+@ stdcall -private wine_vkCmdNextSubpass(ptr long) -+@ stdcall -private wine_vkCmdPipelineBarrier(ptr long long long long ptr long ptr long ptr) -+@ stdcall -private wine_vkCmdPushConstants(ptr int64 long long long ptr) -+@ stdcall -private wine_vkCmdResetEvent(ptr int64 long) -+@ stdcall -private wine_vkCmdResetQueryPool(ptr int64 long long) -+@ stdcall -private wine_vkCmdResolveImage(ptr int64 long int64 long long ptr) -+@ stdcall -private wine_vkCmdSetBlendConstants(ptr ptr) -+@ stdcall -private wine_vkCmdSetDepthBias(ptr float float float) -+@ stdcall -private wine_vkCmdSetDepthBounds(ptr float float) -+@ stdcall -private wine_vkCmdSetDeviceMask(ptr long) -+@ stdcall -private wine_vkCmdSetEvent(ptr int64 long) -+@ stdcall -private wine_vkCmdSetLineWidth(ptr float) -+@ stdcall -private wine_vkCmdSetScissor(ptr long long ptr) -+@ stdcall -private wine_vkCmdSetStencilCompareMask(ptr long long) -+@ stdcall -private wine_vkCmdSetStencilReference(ptr long long) -+@ stdcall -private wine_vkCmdSetStencilWriteMask(ptr long long) -+@ stdcall -private wine_vkCmdSetViewport(ptr long long ptr) -+@ stdcall -private wine_vkCmdUpdateBuffer(ptr int64 int64 int64 ptr) -+@ stdcall -private wine_vkCmdWaitEvents(ptr long ptr long long long ptr long ptr long ptr) -+@ stdcall -private wine_vkCmdWriteTimestamp(ptr long int64 long) -+@ stdcall -private wine_vkCreateBuffer(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateBufferView(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateCommandPool(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateComputePipelines(ptr int64 long ptr ptr ptr) -+@ stdcall -private wine_vkCreateDescriptorPool(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateDescriptorSetLayout(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateDescriptorUpdateTemplate(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateDevice(ptr ptr ptr ptr) - @ stub vkCreateDisplayModeKHR - @ stub vkCreateDisplayPlaneSurfaceKHR --@ stdcall wine_vkCreateEvent(ptr ptr ptr ptr) --@ stdcall wine_vkCreateFence(ptr ptr ptr ptr) --@ stdcall wine_vkCreateFramebuffer(ptr ptr ptr ptr) --@ stdcall wine_vkCreateGraphicsPipelines(ptr int64 long ptr ptr ptr) --@ stdcall wine_vkCreateImage(ptr ptr ptr ptr) --@ stdcall wine_vkCreateImageView(ptr ptr ptr ptr) --@ stdcall wine_vkCreateInstance(ptr ptr ptr) --@ stdcall wine_vkCreatePipelineCache(ptr ptr ptr ptr) --@ stdcall wine_vkCreatePipelineLayout(ptr ptr ptr ptr) --@ stdcall wine_vkCreateQueryPool(ptr ptr ptr ptr) --@ stdcall wine_vkCreateRenderPass(ptr ptr ptr ptr) --@ stdcall wine_vkCreateSampler(ptr ptr ptr ptr) --@ stdcall wine_vkCreateSamplerYcbcrConversion(ptr ptr ptr ptr) --@ stdcall wine_vkCreateSemaphore(ptr ptr ptr ptr) --@ stdcall wine_vkCreateShaderModule(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateEvent(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateFence(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateFramebuffer(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateGraphicsPipelines(ptr int64 long ptr ptr ptr) -+@ stdcall -private wine_vkCreateImage(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateImageView(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateInstance(ptr ptr ptr) -+@ stdcall -private wine_vkCreatePipelineCache(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreatePipelineLayout(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateQueryPool(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateRenderPass(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateSampler(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateSamplerYcbcrConversion(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateSemaphore(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateShaderModule(ptr ptr ptr ptr) - @ stub vkCreateSharedSwapchainsKHR --@ stdcall wine_vkCreateSwapchainKHR(ptr ptr ptr ptr) --@ stdcall wine_vkCreateWin32SurfaceKHR(ptr ptr ptr ptr) --@ stdcall wine_vkDestroyBuffer(ptr int64 ptr) --@ stdcall wine_vkDestroyBufferView(ptr int64 ptr) --@ stdcall wine_vkDestroyCommandPool(ptr int64 ptr) --@ stdcall wine_vkDestroyDescriptorPool(ptr int64 ptr) --@ stdcall wine_vkDestroyDescriptorSetLayout(ptr int64 ptr) --@ stdcall wine_vkDestroyDescriptorUpdateTemplate(ptr int64 ptr) --@ stdcall wine_vkDestroyDevice(ptr ptr) --@ stdcall wine_vkDestroyEvent(ptr int64 ptr) --@ stdcall wine_vkDestroyFence(ptr int64 ptr) --@ stdcall wine_vkDestroyFramebuffer(ptr int64 ptr) --@ stdcall wine_vkDestroyImage(ptr int64 ptr) --@ stdcall wine_vkDestroyImageView(ptr int64 ptr) --@ stdcall wine_vkDestroyInstance(ptr ptr) --@ stdcall wine_vkDestroyPipeline(ptr int64 ptr) --@ stdcall wine_vkDestroyPipelineCache(ptr int64 ptr) --@ stdcall wine_vkDestroyPipelineLayout(ptr int64 ptr) --@ stdcall wine_vkDestroyQueryPool(ptr int64 ptr) --@ stdcall wine_vkDestroyRenderPass(ptr int64 ptr) --@ stdcall wine_vkDestroySampler(ptr int64 ptr) --@ stdcall wine_vkDestroySamplerYcbcrConversion(ptr int64 ptr) --@ stdcall wine_vkDestroySemaphore(ptr int64 ptr) --@ stdcall wine_vkDestroyShaderModule(ptr int64 ptr) --@ stdcall wine_vkDestroySurfaceKHR(ptr int64 ptr) --@ stdcall wine_vkDestroySwapchainKHR(ptr int64 ptr) --@ stdcall wine_vkDeviceWaitIdle(ptr) --@ stdcall wine_vkEndCommandBuffer(ptr) --@ stdcall wine_vkEnumerateDeviceExtensionProperties(ptr str ptr ptr) --@ stdcall wine_vkEnumerateDeviceLayerProperties(ptr ptr ptr) --@ stdcall wine_vkEnumerateInstanceExtensionProperties(str ptr ptr) --@ stdcall wine_vkEnumerateInstanceLayerProperties(ptr ptr) --@ stdcall wine_vkEnumerateInstanceVersion(ptr) --@ stdcall wine_vkEnumeratePhysicalDeviceGroups(ptr ptr ptr) --@ stdcall wine_vkEnumeratePhysicalDevices(ptr ptr ptr) --@ stdcall wine_vkFlushMappedMemoryRanges(ptr long ptr) --@ stdcall wine_vkFreeCommandBuffers(ptr int64 long ptr) --@ stdcall wine_vkFreeDescriptorSets(ptr int64 long ptr) --@ stdcall wine_vkFreeMemory(ptr int64 ptr) --@ stdcall wine_vkGetBufferMemoryRequirements(ptr int64 ptr) --@ stdcall wine_vkGetBufferMemoryRequirements2(ptr ptr ptr) --@ stdcall wine_vkGetDescriptorSetLayoutSupport(ptr ptr ptr) --@ stdcall wine_vkGetDeviceGroupPeerMemoryFeatures(ptr long long long long) --@ stdcall wine_vkGetDeviceGroupPresentCapabilitiesKHR(ptr ptr) --@ stdcall wine_vkGetDeviceGroupSurfacePresentModesKHR(ptr int64 long) --@ stdcall wine_vkGetDeviceMemoryCommitment(ptr int64 ptr) --@ stdcall wine_vkGetDeviceProcAddr(ptr str) --@ stdcall wine_vkGetDeviceQueue(ptr long long ptr) --@ stdcall wine_vkGetDeviceQueue2(ptr ptr ptr) -+@ stdcall -private wine_vkCreateSwapchainKHR(ptr ptr ptr ptr) -+@ stdcall -private wine_vkCreateWin32SurfaceKHR(ptr ptr ptr ptr) -+@ stdcall -private wine_vkDestroyBuffer(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyBufferView(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyCommandPool(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyDescriptorPool(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyDescriptorSetLayout(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyDescriptorUpdateTemplate(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyDevice(ptr ptr) -+@ stdcall -private wine_vkDestroyEvent(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyFence(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyFramebuffer(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyImage(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyImageView(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyInstance(ptr ptr) -+@ stdcall -private wine_vkDestroyPipeline(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyPipelineCache(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyPipelineLayout(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyQueryPool(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyRenderPass(ptr int64 ptr) -+@ stdcall -private wine_vkDestroySampler(ptr int64 ptr) -+@ stdcall -private wine_vkDestroySamplerYcbcrConversion(ptr int64 ptr) -+@ stdcall -private wine_vkDestroySemaphore(ptr int64 ptr) -+@ stdcall -private wine_vkDestroyShaderModule(ptr int64 ptr) -+@ stdcall -private wine_vkDestroySurfaceKHR(ptr int64 ptr) -+@ stdcall -private wine_vkDestroySwapchainKHR(ptr int64 ptr) -+@ stdcall -private wine_vkDeviceWaitIdle(ptr) -+@ stdcall -private wine_vkEndCommandBuffer(ptr) -+@ stdcall -private wine_vkEnumerateDeviceExtensionProperties(ptr str ptr ptr) -+@ stdcall -private wine_vkEnumerateDeviceLayerProperties(ptr ptr ptr) -+@ stdcall -private wine_vkEnumerateInstanceExtensionProperties(str ptr ptr) -+@ stdcall -private wine_vkEnumerateInstanceLayerProperties(ptr ptr) -+@ stdcall -private wine_vkEnumerateInstanceVersion(ptr) -+@ stdcall -private wine_vkEnumeratePhysicalDeviceGroups(ptr ptr ptr) -+@ stdcall -private wine_vkEnumeratePhysicalDevices(ptr ptr ptr) -+@ stdcall -private wine_vkFlushMappedMemoryRanges(ptr long ptr) -+@ stdcall -private wine_vkFreeCommandBuffers(ptr int64 long ptr) -+@ stdcall -private wine_vkFreeDescriptorSets(ptr int64 long ptr) -+@ stdcall -private wine_vkFreeMemory(ptr int64 ptr) -+@ stdcall -private wine_vkGetBufferMemoryRequirements(ptr int64 ptr) -+@ stdcall -private wine_vkGetBufferMemoryRequirements2(ptr ptr ptr) -+@ stdcall -private wine_vkGetDescriptorSetLayoutSupport(ptr ptr ptr) -+@ stdcall -private wine_vkGetDeviceGroupPeerMemoryFeatures(ptr long long long long) -+@ stdcall -private wine_vkGetDeviceGroupPresentCapabilitiesKHR(ptr ptr) -+@ stdcall -private wine_vkGetDeviceGroupSurfacePresentModesKHR(ptr int64 long) -+@ stdcall -private wine_vkGetDeviceMemoryCommitment(ptr int64 ptr) -+@ stdcall -private wine_vkGetDeviceProcAddr(ptr str) -+@ stdcall -private wine_vkGetDeviceQueue(ptr long long ptr) -+@ stdcall -private wine_vkGetDeviceQueue2(ptr ptr ptr) - @ stub vkGetDisplayModePropertiesKHR - @ stub vkGetDisplayPlaneCapabilitiesKHR - @ stub vkGetDisplayPlaneSupportedDisplaysKHR --@ stdcall wine_vkGetEventStatus(ptr int64) --@ stdcall wine_vkGetFenceStatus(ptr int64) --@ stdcall wine_vkGetImageMemoryRequirements(ptr int64 ptr) --@ stdcall wine_vkGetImageMemoryRequirements2(ptr ptr ptr) --@ stdcall wine_vkGetImageSparseMemoryRequirements(ptr int64 ptr ptr) --@ stdcall wine_vkGetImageSparseMemoryRequirements2(ptr ptr ptr ptr) --@ stdcall wine_vkGetImageSubresourceLayout(ptr int64 ptr ptr) --@ stdcall wine_vkGetInstanceProcAddr(ptr str) -+@ stdcall -private wine_vkGetEventStatus(ptr int64) -+@ stdcall -private wine_vkGetFenceStatus(ptr int64) -+@ stdcall -private wine_vkGetImageMemoryRequirements(ptr int64 ptr) -+@ stdcall -private wine_vkGetImageMemoryRequirements2(ptr ptr ptr) -+@ stdcall -private wine_vkGetImageSparseMemoryRequirements(ptr int64 ptr ptr) -+@ stdcall -private wine_vkGetImageSparseMemoryRequirements2(ptr ptr ptr ptr) -+@ stdcall -private wine_vkGetImageSubresourceLayout(ptr int64 ptr ptr) -+@ stdcall -private wine_vkGetInstanceProcAddr(ptr str) - @ stub vkGetPhysicalDeviceDisplayPlanePropertiesKHR - @ stub vkGetPhysicalDeviceDisplayPropertiesKHR - @ stub vkGetPhysicalDeviceExternalBufferProperties - @ stub vkGetPhysicalDeviceExternalFenceProperties - @ stub vkGetPhysicalDeviceExternalSemaphoreProperties --@ stdcall wine_vkGetPhysicalDeviceFeatures(ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceFeatures2(ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceFormatProperties(ptr long ptr) --@ stdcall wine_vkGetPhysicalDeviceFormatProperties2(ptr long ptr) --@ stdcall wine_vkGetPhysicalDeviceImageFormatProperties(ptr long long long long long ptr) --@ stdcall wine_vkGetPhysicalDeviceImageFormatProperties2(ptr ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceMemoryProperties(ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceMemoryProperties2(ptr ptr) --@ stdcall wine_vkGetPhysicalDevicePresentRectanglesKHR(ptr int64 ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceProperties(ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceProperties2(ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceQueueFamilyProperties2(ptr ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceSparseImageFormatProperties(ptr long long long long long ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceSparseImageFormatProperties2(ptr ptr ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(ptr int64 ptr) --@ stdcall wine_vkGetPhysicalDeviceSurfaceFormatsKHR(ptr int64 ptr ptr) --@ stdcall wine_vkGetPhysicalDeviceSurfacePresentModesKHR(ptr int64 ptr long) --@ stdcall wine_vkGetPhysicalDeviceSurfaceSupportKHR(ptr long int64 ptr) --@ stdcall wine_vkGetPhysicalDeviceWin32PresentationSupportKHR(ptr long) --@ stdcall wine_vkGetPipelineCacheData(ptr int64 ptr ptr) --@ stdcall wine_vkGetQueryPoolResults(ptr int64 long long long ptr int64 long) --@ stdcall wine_vkGetRenderAreaGranularity(ptr int64 ptr) --@ stdcall wine_vkGetSwapchainImagesKHR(ptr int64 ptr ptr) --@ stdcall wine_vkInvalidateMappedMemoryRanges(ptr long ptr) --@ stdcall wine_vkMapMemory(ptr int64 int64 int64 long ptr) --@ stdcall wine_vkMergePipelineCaches(ptr int64 long ptr) --@ stdcall wine_vkQueueBindSparse(ptr long ptr int64) --@ stdcall wine_vkQueuePresentKHR(ptr ptr) --@ stdcall wine_vkQueueSubmit(ptr long ptr int64) --@ stdcall wine_vkQueueWaitIdle(ptr) --@ stdcall wine_vkResetCommandBuffer(ptr long) --@ stdcall wine_vkResetCommandPool(ptr int64 long) --@ stdcall wine_vkResetDescriptorPool(ptr int64 long) --@ stdcall wine_vkResetEvent(ptr int64) --@ stdcall wine_vkResetFences(ptr long ptr) --@ stdcall wine_vkSetEvent(ptr int64) --@ stdcall wine_vkTrimCommandPool(ptr int64 long) --@ stdcall wine_vkUnmapMemory(ptr int64) --@ stdcall wine_vkUpdateDescriptorSetWithTemplate(ptr int64 int64 ptr) --@ stdcall wine_vkUpdateDescriptorSets(ptr long ptr long ptr) --@ stdcall wine_vkWaitForFences(ptr long ptr long int64) -+@ stdcall -private wine_vkGetPhysicalDeviceFeatures(ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceFeatures2(ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceFormatProperties(ptr long ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceFormatProperties2(ptr long ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceImageFormatProperties(ptr long long long long long ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceImageFormatProperties2(ptr ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceMemoryProperties(ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceMemoryProperties2(ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDevicePresentRectanglesKHR(ptr int64 ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceProperties(ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceProperties2(ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceQueueFamilyProperties2(ptr ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceSparseImageFormatProperties(ptr long long long long long ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceSparseImageFormatProperties2(ptr ptr ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(ptr int64 ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceSurfaceFormatsKHR(ptr int64 ptr ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceSurfacePresentModesKHR(ptr int64 ptr long) -+@ stdcall -private wine_vkGetPhysicalDeviceSurfaceSupportKHR(ptr long int64 ptr) -+@ stdcall -private wine_vkGetPhysicalDeviceWin32PresentationSupportKHR(ptr long) -+@ stdcall -private wine_vkGetPipelineCacheData(ptr int64 ptr ptr) -+@ stdcall -private wine_vkGetQueryPoolResults(ptr int64 long long long ptr int64 long) -+@ stdcall -private wine_vkGetRenderAreaGranularity(ptr int64 ptr) -+@ stdcall -private wine_vkGetSwapchainImagesKHR(ptr int64 ptr ptr) -+@ stdcall -private wine_vkInvalidateMappedMemoryRanges(ptr long ptr) -+@ stdcall -private wine_vkMapMemory(ptr int64 int64 int64 long ptr) -+@ stdcall -private wine_vkMergePipelineCaches(ptr int64 long ptr) -+@ stdcall -private wine_vkQueueBindSparse(ptr long ptr int64) -+@ stdcall -private wine_vkQueuePresentKHR(ptr ptr) -+@ stdcall -private wine_vkQueueSubmit(ptr long ptr int64) -+@ stdcall -private wine_vkQueueWaitIdle(ptr) -+@ stdcall -private wine_vkResetCommandBuffer(ptr long) -+@ stdcall -private wine_vkResetCommandPool(ptr int64 long) -+@ stdcall -private wine_vkResetDescriptorPool(ptr int64 long) -+@ stdcall -private wine_vkResetEvent(ptr int64) -+@ stdcall -private wine_vkResetFences(ptr long ptr) -+@ stdcall -private wine_vkSetEvent(ptr int64) -+@ stdcall -private wine_vkTrimCommandPool(ptr int64 long) -+@ stdcall -private wine_vkUnmapMemory(ptr int64) -+@ stdcall -private wine_vkUpdateDescriptorSetWithTemplate(ptr int64 int64 ptr) -+@ stdcall -private wine_vkUpdateDescriptorSets(ptr long ptr long ptr) -+@ stdcall -private wine_vkWaitForFences(ptr long ptr long int64) --- -1.9.1 - diff --git a/patches/ml-patches/0019-wmp-Make-it-possible-to-query-IUnknown-from-IWMPCont.patch b/patches/ml-patches/0019-wmp-Make-it-possible-to-query-IUnknown-from-IWMPCont.patch deleted file mode 100644 index 0953e7a5..00000000 --- a/patches/ml-patches/0019-wmp-Make-it-possible-to-query-IUnknown-from-IWMPCont.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 0c8b27474062d1908a821c4887fb49d8f5711406 Mon Sep 17 00:00:00 2001 -From: Nikolay Sivov -Date: Tue, 31 Jul 2018 15:40:08 +0300 -Subject: [PATCH 19/24] wmp: Make it possible to query IUnknown from - IWMPControls. - -Signed-off-by: Nikolay Sivov ---- - dlls/wmp/player.c | 4 +++- - dlls/wmp/tests/oleobj.c | 10 ++++++++-- - 2 files changed, 11 insertions(+), 3 deletions(-) - -diff --git a/dlls/wmp/player.c b/dlls/wmp/player.c -index 97fd66b..56b408f 100644 ---- a/dlls/wmp/player.c -+++ b/dlls/wmp/player.c -@@ -1365,7 +1365,9 @@ static const IWMPNetworkVtbl WMPNetworkVtbl = { - - static HRESULT WINAPI WMPControls_QueryInterface(IWMPControls *iface, REFIID riid, void **ppv) - { -- if(IsEqualGUID(riid, &IID_IDispatch)) { -+ if(IsEqualGUID(riid, &IID_IUnknown)) { -+ *ppv = iface; -+ }else if(IsEqualGUID(riid, &IID_IDispatch)) { - *ppv = iface; - }else if(IsEqualGUID(riid, &IID_IWMPControls)) { - *ppv = iface; -diff --git a/dlls/wmp/tests/oleobj.c b/dlls/wmp/tests/oleobj.c -index 6dfaa1c..472b985 100644 ---- a/dlls/wmp/tests/oleobj.c -+++ b/dlls/wmp/tests/oleobj.c -@@ -889,7 +889,6 @@ static void test_ConnectionPoint(IOleObject *unk) - IConnectionPoint_Release(point); - } - -- - static void test_wmp_ifaces(IOleObject *oleobj) - { - IWMPSettings *settings, *settings_qi; -@@ -899,6 +898,7 @@ static void test_wmp_ifaces(IOleObject *oleobj) - IWMPControls *controls; - VARIANT_BOOL vbool; - IWMPNetwork *network; -+ IUnknown *unk; - HRESULT hres; - BSTR filename; - BSTR url; -@@ -913,9 +913,15 @@ static void test_wmp_ifaces(IOleObject *oleobj) - - player = NULL; - hres = IWMPControls_QueryInterface(controls, &IID_IWMPPlayer, (void**)&player); -- ok(hres != S_OK, "Getting IWMPPlayer from IWMPControls SUCCEEDED\n"); -+ ok(hres == E_NOINTERFACE, "Getting IWMPPlayer from IWMPControls SUCCEEDED\n"); - ok(player == NULL, "player != NULL\n"); - -+ unk = NULL; -+ hres = IWMPControls_QueryInterface(controls, &IID_IUnknown, (void **)&unk); -+ ok(hres == S_OK, "Failed to get IUnknown, hr %#x.\n", hres); -+ ok(unk != NULL, "Unexpected interface pointer.\n"); -+ IUnknown_Release(unk); -+ - IWMPControls_Release(controls); - - /* IWPNetwork */ --- -1.9.1 - diff --git a/patches/ml-patches/0021-d3dcompiler-Make-types-array-static-const.patch b/patches/ml-patches/0021-d3dcompiler-Make-types-array-static-const.patch deleted file mode 100644 index 41f06dd8..00000000 --- a/patches/ml-patches/0021-d3dcompiler-Make-types-array-static-const.patch +++ /dev/null @@ -1,26 +0,0 @@ -From bc1d6f652f351e3b418d321af20df3a205e6cb09 Mon Sep 17 00:00:00 2001 -From: Matteo Bruni -Date: Tue, 31 Jul 2018 15:04:53 +0200 -Subject: [PATCH 21/24] d3dcompiler: Make types array static const. - -Signed-off-by: Matteo Bruni ---- - dlls/d3dcompiler_43/utils.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/d3dcompiler_43/utils.c b/dlls/d3dcompiler_43/utils.c -index b0232f3..748501f 100644 ---- a/dlls/d3dcompiler_43/utils.c -+++ b/dlls/d3dcompiler_43/utils.c -@@ -1154,7 +1154,7 @@ static BOOL expr_compatible_data_types(struct hlsl_type *t1, struct hlsl_type *t - - static enum hlsl_base_type expr_common_base_type(enum hlsl_base_type t1, enum hlsl_base_type t2) - { -- enum hlsl_base_type types[] = -+ static const enum hlsl_base_type types[] = - { - HLSL_TYPE_BOOL, - HLSL_TYPE_INT, --- -1.9.1 - diff --git a/patches/ml-patches/0023-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPAdd.patch b/patches/ml-patches/0023-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPAdd.patch deleted file mode 100644 index 1e9dd059..00000000 --- a/patches/ml-patches/0023-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPAdd.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 99ff0c4871819ad0eef719e22ce8bd61c90ff1b6 Mon Sep 17 00:00:00 2001 -From: Piotr Caban -Date: Wed, 1 Aug 2018 17:23:23 +0200 -Subject: [PATCH 23/24] wbemprox: Add - Win32_NetworkAdapterConfiguration::IPAddress property. - -Signed-off-by: Piotr Caban ---- - dlls/wbemprox/builtin.c | 37 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 37 insertions(+) - -diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c -index 73f4192..532ee88 100644 ---- a/dlls/wbemprox/builtin.c -+++ b/dlls/wbemprox/builtin.c -@@ -255,6 +255,8 @@ static const WCHAR prop_interfacetypeW[] = - {'I','n','t','e','r','f','a','c','e','T','y','p','e',0}; - static const WCHAR prop_intvalueW[] = - {'I','n','t','e','g','e','r','V','a','l','u','e',0}; -+static const WCHAR prop_ipaddressW[] = -+ {'I','P','A','d','d','r','e','s','s',0}; - static const WCHAR prop_ipconnectionmetricW[] = - {'I','P','C','o','n','n','e','c','t','i','o','n','M','e','t','r','i','c',0}; - static const WCHAR prop_ipenabledW[] = -@@ -553,6 +555,7 @@ static const struct column col_networkadapterconfig[] = - { prop_dnshostnameW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_dnsserversearchorderW, CIM_STRING|CIM_FLAG_ARRAY|COL_FLAG_DYNAMIC }, - { prop_indexW, CIM_UINT32|COL_FLAG_KEY, VT_I4 }, -+ { prop_ipaddressW, CIM_STRING|CIM_FLAG_ARRAY|COL_FLAG_DYNAMIC }, - { prop_ipconnectionmetricW, CIM_UINT32, VT_I4 }, - { prop_ipenabledW, CIM_BOOLEAN }, - { prop_macaddressW, CIM_STRING|COL_FLAG_DYNAMIC }, -@@ -970,6 +973,7 @@ struct record_networkadapterconfig - const WCHAR *dnshostname; - const struct array *dnsserversearchorder; - UINT32 index; -+ const struct array *ipaddress; - UINT32 ipconnectionmetric; - int ipenabled; - const WCHAR *mac_address; -@@ -2426,6 +2430,38 @@ static struct array *get_dnsserversearchorder( IP_ADAPTER_DNS_SERVER_ADDRESS *li - ret->ptr = ptr; - return ret; - } -+static struct array *get_ipaddress( IP_ADAPTER_UNICAST_ADDRESS_LH *list ) -+{ -+ IP_ADAPTER_UNICAST_ADDRESS_LH *address; -+ struct array *ret; -+ ULONG buflen, i = 0, count = 0; -+ WCHAR **ptr, buf[54]; /* max IPv6 address length */ -+ -+ if (!list) return NULL; -+ for (address = list; address; address = address->Next) count++; -+ -+ if (!(ret = heap_alloc( sizeof(*ret) ))) return NULL; -+ if (!(ptr = heap_alloc( sizeof(*ptr) * count ))) -+ { -+ heap_free( ret ); -+ return NULL; -+ } -+ for (address = list; address; address = address->Next) -+ { -+ buflen = sizeof(buf)/sizeof(buf[0]); -+ if (WSAAddressToStringW( address->Address.lpSockaddr, address->Address.iSockaddrLength, -+ NULL, buf, &buflen) || !(ptr[i++] = heap_strdupW( buf ))) -+ { -+ for (; i > 0; i--) heap_free( ptr[i - 1] ); -+ heap_free( ptr ); -+ heap_free( ret ); -+ return NULL; -+ } -+ } -+ ret->count = count; -+ ret->ptr = ptr; -+ return ret; -+} - static WCHAR *get_settingid( UINT32 index ) - { - GUID guid; -@@ -2475,6 +2511,7 @@ static enum fill_status fill_networkadapterconfig( struct table *table, const st - rec->dnshostname = get_dnshostname( aa->FirstUnicastAddress ); - rec->dnsserversearchorder = get_dnsserversearchorder( aa->FirstDnsServerAddress ); - rec->index = aa->u.s.IfIndex; -+ rec->ipaddress = get_ipaddress( aa->FirstUnicastAddress ); - rec->ipconnectionmetric = 20; - rec->ipenabled = -1; - rec->mac_address = get_mac_address( aa->PhysicalAddress, aa->PhysicalAddressLength ); --- -1.9.1 - diff --git a/patches/ml-patches/0024-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPSub.patch b/patches/ml-patches/0024-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPSub.patch deleted file mode 100644 index 590fee64..00000000 --- a/patches/ml-patches/0024-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPSub.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 9a8c43ec5ce2155b66de3623bf2af036f959a964 Mon Sep 17 00:00:00 2001 -From: Piotr Caban -Date: Wed, 1 Aug 2018 17:23:29 +0200 -Subject: [PATCH 24/24] wbemprox: Add - Win32_NetworkAdapterConfiguration::IPSubnet property. - -Signed-off-by: Piotr Caban ---- - dlls/wbemprox/builtin.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 58 insertions(+) - -diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c -index 532ee88..190f710 100644 ---- a/dlls/wbemprox/builtin.c -+++ b/dlls/wbemprox/builtin.c -@@ -49,6 +49,7 @@ - #include "wbemcli.h" - #include "wbemprov.h" - #include "iphlpapi.h" -+#include "netioapi.h" - #include "tlhelp32.h" - #include "d3d10.h" - #include "winternl.h" -@@ -261,6 +262,8 @@ static const WCHAR prop_ipconnectionmetricW[] = - {'I','P','C','o','n','n','e','c','t','i','o','n','M','e','t','r','i','c',0}; - static const WCHAR prop_ipenabledW[] = - {'I','P','E','n','a','b','l','e','d',0}; -+static const WCHAR prop_ipsubnet[] = -+ {'I','P','S','u','b','n','e','t',0}; - static const WCHAR prop_lastbootuptimeW[] = - {'L','a','s','t','B','o','o','t','U','p','T','i','m','e',0}; - static const WCHAR prop_levelW[] = -@@ -558,6 +561,7 @@ static const struct column col_networkadapterconfig[] = - { prop_ipaddressW, CIM_STRING|CIM_FLAG_ARRAY|COL_FLAG_DYNAMIC }, - { prop_ipconnectionmetricW, CIM_UINT32, VT_I4 }, - { prop_ipenabledW, CIM_BOOLEAN }, -+ { prop_ipsubnet, CIM_STRING|CIM_FLAG_ARRAY|COL_FLAG_DYNAMIC }, - { prop_macaddressW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_settingidW, CIM_STRING|COL_FLAG_DYNAMIC } - }; -@@ -976,6 +980,7 @@ struct record_networkadapterconfig - const struct array *ipaddress; - UINT32 ipconnectionmetric; - int ipenabled; -+ const struct array *ipsubnet; - const WCHAR *mac_address; - const WCHAR *settingid; - }; -@@ -2462,6 +2467,58 @@ static struct array *get_ipaddress( IP_ADAPTER_UNICAST_ADDRESS_LH *list ) - ret->ptr = ptr; - return ret; - } -+static struct array *get_ipsubnet( IP_ADAPTER_UNICAST_ADDRESS_LH *list ) -+{ -+ IP_ADAPTER_UNICAST_ADDRESS_LH *address; -+ struct array *ret; -+ ULONG i = 0, count = 0; -+ WCHAR **ptr; -+ -+ if (!list) return NULL; -+ for (address = list; address; address = address->Next) count++; -+ -+ if (!(ret = heap_alloc( sizeof(*ret) ))) return NULL; -+ if (!(ptr = heap_alloc( sizeof(*ptr) * count ))) -+ { -+ heap_free( ret ); -+ return NULL; -+ } -+ for (address = list; address; address = address->Next) -+ { -+ if (address->Address.lpSockaddr->sa_family == AF_INET) -+ { -+ WCHAR buf[INET_ADDRSTRLEN]; -+ SOCKADDR_IN addr; -+ ULONG buflen = sizeof(buf)/sizeof(buf[0]); -+ -+ memset( &addr, 0, sizeof(addr) ); -+ addr.sin_family = AF_INET; -+ if (ConvertLengthToIpv4Mask( address->OnLinkPrefixLength, &addr.sin_addr.S_un.S_addr ) != NO_ERROR -+ || WSAAddressToStringW( (SOCKADDR*)&addr, sizeof(addr), NULL, buf, &buflen)) -+ ptr[i] = NULL; -+ else -+ ptr[i] = heap_strdupW( buf ); -+ } -+ else -+ { -+ static const WCHAR fmtW[] = {'%','u',0}; -+ WCHAR buf[11]; -+ -+ sprintfW(buf, fmtW, address->OnLinkPrefixLength); -+ ptr[i] = heap_strdupW( buf ); -+ } -+ if (!ptr[i++]) -+ { -+ for (; i > 0; i--) heap_free( ptr[i - 1] ); -+ heap_free( ptr ); -+ heap_free( ret ); -+ return NULL; -+ } -+ } -+ ret->count = count; -+ ret->ptr = ptr; -+ return ret; -+} - static WCHAR *get_settingid( UINT32 index ) - { - GUID guid; -@@ -2514,6 +2571,7 @@ static enum fill_status fill_networkadapterconfig( struct table *table, const st - rec->ipaddress = get_ipaddress( aa->FirstUnicastAddress ); - rec->ipconnectionmetric = 20; - rec->ipenabled = -1; -+ rec->ipsubnet = get_ipsubnet( aa->FirstUnicastAddress ); - rec->mac_address = get_mac_address( aa->PhysicalAddress, aa->PhysicalAddressLength ); - rec->settingid = get_settingid( rec->index ); - if (!match_row( table, row, cond, &status )) --- -1.9.1 - diff --git a/patches/msi-Deferral/0001-msi-Implement-deferral-for-standard-and-custom-actio.patch b/patches/msi-Deferral/0001-msi-Implement-deferral-for-standard-and-custom-actio.patch deleted file mode 100644 index ff81fd0b..00000000 --- a/patches/msi-Deferral/0001-msi-Implement-deferral-for-standard-and-custom-actio.patch +++ /dev/null @@ -1,1006 +0,0 @@ -From c6165af857028e093648c0b5e21afc279f4c5cfa Mon Sep 17 00:00:00 2001 -From: Zebediah Figura -Date: Sat, 12 May 2018 14:22:55 -0500 -Subject: [PATCH] msi: Implement deferral for standard and custom actions. - -Signed-off-by: Zebediah Figura ---- - dlls/msi/action.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++-- - dlls/msi/assembly.c | 6 ++++ - dlls/msi/classes.c | 24 +++++++++++++ - dlls/msi/custom.c | 1 + - dlls/msi/files.c | 18 ++++++++++ - dlls/msi/font.c | 6 ++++ - dlls/msi/msipriv.h | 1 + - dlls/msi/tests/custom.c | 70 +------------------------------------ - dlls/msi/tests/install.c | 1 - - 9 files changed, 143 insertions(+), 73 deletions(-) - -diff --git a/dlls/msi/action.c b/dlls/msi/action.c -index 9d216ab..8869de7 100644 ---- a/dlls/msi/action.c -+++ b/dlls/msi/action.c -@@ -105,8 +105,6 @@ static const WCHAR szIsolateComponents[] = - {'I','s','o','l','a','t','e','C','o','m','p','o','n','e','n','t','s',0}; - static const WCHAR szMigrateFeatureStates[] = - {'M','i','g','r','a','t','e','F','e','a','t','u','r','e','S','t','a','t','e','s',0}; --static const WCHAR szMsiUnpublishAssemblies[] = -- {'M','s','i','U','n','p','u','b','l','i','s','h','A','s','s','e','m','b','l','i','e','s',0}; - static const WCHAR szInstallODBC[] = - {'I','n','s','t','a','l','l','O','D','B','C',0}; - static const WCHAR szInstallServices[] = -@@ -824,6 +822,9 @@ static UINT ACTION_CreateFolders(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szCreateFolders); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -903,6 +904,9 @@ static UINT ACTION_RemoveFolders( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveFolders); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -2977,6 +2981,9 @@ static UINT ACTION_WriteRegistryValues(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szWriteRegistryValues); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -3211,6 +3218,9 @@ static UINT ACTION_RemoveRegistryValues( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveRegistryValues); -+ - rc = MSI_DatabaseOpenViewW( package->db, registry_query, &view ); - if (rc == ERROR_SUCCESS) - { -@@ -3529,9 +3539,13 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package) - - TRACE("\n"); - -- squash_guid( package->ProductCode, squashed_pc ); - msi_set_sourcedir_props(package, FALSE); - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szProcessComponents); -+ -+ squash_guid( package->ProductCode, squashed_pc ); -+ - LIST_FOR_EACH_ENTRY( comp, &package->components, MSICOMPONENT, entry ) - { - MSIRECORD *uirow; -@@ -3805,6 +3819,9 @@ static UINT ACTION_RegisterTypeLibraries(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterTypeLibraries); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -3866,6 +3883,9 @@ static UINT ACTION_UnregisterTypeLibraries( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnregisterTypeLibraries); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -4050,6 +4070,9 @@ static UINT ACTION_CreateShortcuts(MSIPACKAGE *package) - HRESULT res; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szCreateShortcuts); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -4103,6 +4126,9 @@ static UINT ACTION_RemoveShortcuts( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveShortcuts); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -4475,6 +4501,9 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package) - MSIRECORD *uirow; - BOOL republish = FALSE; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szPublishProduct); -+ - if (!list_empty(&package->patches)) - { - rc = msi_publish_patches(package); -@@ -4672,6 +4701,9 @@ static UINT ACTION_WriteIniValues(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szWriteIniValues); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -4815,6 +4847,9 @@ static UINT ACTION_RemoveIniValues( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveIniValues); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc == ERROR_SUCCESS) - { -@@ -4900,6 +4935,9 @@ static UINT ACTION_SelfRegModules(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szSelfRegModules); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -4950,6 +4988,9 @@ static UINT ACTION_SelfUnregModules( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szSelfUnregModules); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -4965,6 +5006,9 @@ static UINT ACTION_PublishFeatures(MSIPACKAGE *package) - UINT rc; - HKEY hkey = NULL, userdata = NULL; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szPublishFeatures); -+ - if (!msi_check_publish(package)) - return ERROR_SUCCESS; - -@@ -5105,6 +5149,9 @@ static UINT ACTION_UnpublishFeatures(MSIPACKAGE *package) - { - MSIFEATURE *feature; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnpublishFeatures); -+ - if (!msi_check_unpublish(package)) - return ERROR_SUCCESS; - -@@ -5257,6 +5304,9 @@ static UINT ACTION_RegisterProduct(MSIPACKAGE *package) - HKEY hkey, props, upgrade_key; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterProduct); -+ - /* FIXME: also need to publish if the product is in advertise mode */ - if (!msi_get_property_int( package->db, szProductToBeRegistered, 0 ) - && !msi_check_publish(package)) -@@ -5575,6 +5625,9 @@ static UINT ACTION_RegisterUser(MSIPACKAGE *package) - {0}, - }; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterUser); -+ - if (msi_check_unpublish(package)) - { - MSIREG_DeleteUserDataProductKey(package->ProductCode, package->Context); -@@ -5897,6 +5950,9 @@ static UINT ACTION_PublishComponents(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szPublishComponents); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -5969,6 +6025,9 @@ static UINT ACTION_UnpublishComponents( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnpublishComponents); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -6117,6 +6176,9 @@ static UINT ACTION_InstallServices( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szInstallServices); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -6288,6 +6350,9 @@ static UINT ACTION_StartServices( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szStartServices); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -6451,6 +6516,9 @@ static UINT ACTION_StopServices( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szStopServices); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -6534,6 +6602,9 @@ static UINT ACTION_DeleteServices( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szDeleteServices); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -6804,6 +6875,9 @@ static UINT ACTION_InstallODBC( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szInstallODBC); -+ - rc = MSI_DatabaseOpenViewW(package->db, driver_query, &view); - if (rc == ERROR_SUCCESS) - { -@@ -6982,6 +7056,9 @@ static UINT ACTION_RemoveODBC( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveODBC); -+ - rc = MSI_DatabaseOpenViewW( package->db, driver_query, &view ); - if (rc == ERROR_SUCCESS) - { -@@ -7328,6 +7405,9 @@ static UINT ACTION_WriteEnvironmentStrings( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szWriteEnvironmentStrings); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -7470,6 +7550,9 @@ static UINT ACTION_RemoveEnvironmentStrings( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveEnvironmentStrings); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -diff --git a/dlls/msi/assembly.c b/dlls/msi/assembly.c -index bccd114..59fd332 100644 ---- a/dlls/msi/assembly.c -+++ b/dlls/msi/assembly.c -@@ -652,6 +652,9 @@ UINT ACTION_MsiPublishAssemblies( MSIPACKAGE *package ) - { - MSICOMPONENT *comp; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szMsiPublishAssemblies); -+ - LIST_FOR_EACH_ENTRY(comp, &package->components, MSICOMPONENT, entry) - { - LONG res; -@@ -717,6 +720,9 @@ UINT ACTION_MsiUnpublishAssemblies( MSIPACKAGE *package ) - { - MSICOMPONENT *comp; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szMsiUnpublishAssemblies); -+ - LIST_FOR_EACH_ENTRY(comp, &package->components, MSICOMPONENT, entry) - { - LONG res; -diff --git a/dlls/msi/classes.c b/dlls/msi/classes.c -index 60cc3c1..293aa10 100644 ---- a/dlls/msi/classes.c -+++ b/dlls/msi/classes.c -@@ -753,6 +753,9 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package) - MSICLASS *cls; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterClassInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -@@ -918,6 +921,9 @@ UINT ACTION_UnregisterClassInfo( MSIPACKAGE *package ) - HKEY hkey, hkey2; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnregisterClassInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -@@ -1083,6 +1089,9 @@ UINT ACTION_RegisterProgIdInfo(MSIPACKAGE *package) - MSIRECORD *uirow; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterProgIdInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -@@ -1143,6 +1152,9 @@ UINT ACTION_UnregisterProgIdInfo( MSIPACKAGE *package ) - LONG res; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnregisterProgIdInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -@@ -1255,6 +1267,9 @@ UINT ACTION_RegisterExtensionInfo(MSIPACKAGE *package) - LONG res; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterExtensionInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -@@ -1363,6 +1378,9 @@ UINT ACTION_UnregisterExtensionInfo( MSIPACKAGE *package ) - LONG res; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnregisterExtensionInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -@@ -1446,6 +1464,9 @@ UINT ACTION_RegisterMIMEInfo(MSIPACKAGE *package) - MSIMIME *mt; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterMIMEInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -@@ -1500,6 +1521,9 @@ UINT ACTION_UnregisterMIMEInfo( MSIPACKAGE *package ) - MSIMIME *mime; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnregisterMIMEInfo); -+ - r = load_classes_and_such( package ); - if (r != ERROR_SUCCESS) - return r; -diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c -index e68528f..3798e81 100644 ---- a/dlls/msi/custom.c -+++ b/dlls/msi/custom.c -@@ -1159,6 +1159,7 @@ static BOOL action_type_matches_script( UINT type, UINT script ) - switch (script) - { - case SCRIPT_NONE: -+ return FALSE; - case SCRIPT_INSTALL: - return !(type & msidbCustomActionTypeCommit) && !(type & msidbCustomActionTypeRollback); - case SCRIPT_COMMIT: -diff --git a/dlls/msi/files.c b/dlls/msi/files.c -index f6cf3e7..5a88c14 100644 ---- a/dlls/msi/files.c -+++ b/dlls/msi/files.c -@@ -359,6 +359,9 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package) - - msi_set_sourcedir_props(package, FALSE); - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szInstallFiles); -+ - schedule_install_files(package); - mi = msi_alloc_zero( sizeof(MSIMEDIAINFO) ); - -@@ -584,6 +587,9 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package ) - - TRACE("%p\n", package); - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szPatchFiles); -+ - mi = msi_alloc_zero( sizeof(MSIMEDIAINFO) ); - - TRACE("extracting files\n"); -@@ -1002,6 +1008,9 @@ UINT ACTION_MoveFiles( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szMoveFiles); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -1134,6 +1143,9 @@ UINT ACTION_DuplicateFiles(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szDuplicateFiles); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -1210,6 +1222,9 @@ UINT ACTION_RemoveDuplicateFiles( MSIPACKAGE *package ) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveDuplicateFiles); -+ - rc = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -1350,6 +1365,9 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package ) - MSIFILE *file; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRemoveFiles); -+ - r = MSI_DatabaseOpenViewW(package->db, query, &view); - if (r == ERROR_SUCCESS) - { -diff --git a/dlls/msi/font.c b/dlls/msi/font.c -index 5c1e59d..fc05006 100644 ---- a/dlls/msi/font.c -+++ b/dlls/msi/font.c -@@ -294,6 +294,9 @@ UINT ACTION_RegisterFonts(MSIPACKAGE *package) - MSIQUERY *view; - UINT rc; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szRegisterFonts); -+ - rc = MSI_DatabaseOpenViewW(package->db, query, &view); - if (rc != ERROR_SUCCESS) - return ERROR_SUCCESS; -@@ -374,6 +377,9 @@ UINT ACTION_UnregisterFonts( MSIPACKAGE *package ) - MSIQUERY *view; - UINT r; - -+ if (package->script == SCRIPT_NONE) -+ return msi_schedule_action(package, SCRIPT_INSTALL, szUnregisterFonts); -+ - r = MSI_DatabaseOpenViewW( package->db, query, &view ); - if (r != ERROR_SUCCESS) - return ERROR_SUCCESS; -diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h -index 8043d0a..86a0aba 100644 ---- a/dlls/msi/msipriv.h -+++ b/dlls/msi/msipriv.h -@@ -1181,6 +1181,7 @@ static const WCHAR szWow6432NodeCLSID[] = {'W','o','w','6','4','3','2','N','o',' - static const WCHAR szStreams[] = {'_','S','t','r','e','a','m','s',0}; - static const WCHAR szStorages[] = {'_','S','t','o','r','a','g','e','s',0}; - static const WCHAR szMsiPublishAssemblies[] = {'M','s','i','P','u','b','l','i','s','h','A','s','s','e','m','b','l','i','e','s',0}; -+static const WCHAR szMsiUnpublishAssemblies[] = {'M','s','i','U','n','p','u','b','l','i','s','h','A','s','s','e','m','b','l','i','e','s',0}; - static const WCHAR szCostingComplete[] = {'C','o','s','t','i','n','g','C','o','m','p','l','e','t','e',0}; - static const WCHAR szTempFolder[] = {'T','e','m','p','F','o','l','d','e','r',0}; - static const WCHAR szDatabase[] = {'D','A','T','A','B','A','S','E',0}; -diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c -index 4d45c9e..cf1289e 100644 ---- a/dlls/msi/tests/custom.c -+++ b/dlls/msi/tests/custom.c -@@ -1163,52 +1163,42 @@ static BOOL pf_exists(const char *file) - - UINT WINAPI cf_present(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, pf_exists("msitest\\first"), "folder absent\n"); - ok(hinst, pf_exists("msitest\\second"), "folder absent\n"); - ok(hinst, pf_exists("msitest\\third"), "folder absent\n"); --} - return ERROR_SUCCESS; - } - - UINT WINAPI cf_absent(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, !pf_exists("msitest\\first"), "folder present\n"); - ok(hinst, !pf_exists("msitest\\second"), "folder present\n"); - ok(hinst, !pf_exists("msitest\\third"), "folder present\n"); --} - return ERROR_SUCCESS; - } - - UINT WINAPI file_present(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, pf_exists("msitest\\first\\one.txt"), "file absent\n"); - ok(hinst, pf_exists("msitest\\second\\two.txt"), "file absent\n"); --} - return ERROR_SUCCESS; - } - - UINT WINAPI file_absent(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, !pf_exists("msitest\\first\\one.txt"), "file present\n"); - ok(hinst, !pf_exists("msitest\\second\\two.txt"), "file present\n"); --} - return ERROR_SUCCESS; - } - - UINT WINAPI crs_present(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, pf_exists("msitest\\shortcut.lnk"), "shortcut absent\n"); - return ERROR_SUCCESS; - } - - UINT WINAPI crs_absent(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, !pf_exists("msitest\\shortcut.lnk"), "shortcut present\n"); - return ERROR_SUCCESS; - } -@@ -1218,7 +1208,6 @@ UINT WINAPI sds_present(MSIHANDLE hinst) - SC_HANDLE manager, service; - manager = OpenSCManagerA(NULL, NULL, SC_MANAGER_ALL_ACCESS); - service = OpenServiceA(manager, "TestService3", GENERIC_ALL); --todo_wine - ok(hinst, !!service, "service absent: %u\n", GetLastError()); - CloseServiceHandle(service); - CloseServiceHandle(manager); -@@ -1252,7 +1241,6 @@ UINT WINAPI sis_absent(MSIHANDLE hinst) - SC_HANDLE manager, service; - manager = OpenSCManagerA(NULL, NULL, SC_MANAGER_ALL_ACCESS); - service = OpenServiceA(manager, "TestService", GENERIC_ALL); --todo_wine - ok(hinst, !service, "service present\n"); - if (service) CloseServiceHandle(service); - CloseServiceHandle(manager); -@@ -1269,7 +1257,6 @@ UINT WINAPI sss_started(MSIHANDLE hinst) - service = OpenServiceA(manager, "Spooler", SC_MANAGER_ALL_ACCESS); - ret = QueryServiceStatus(service, &status); - ok(hinst, ret, "QueryServiceStatus failed: %u\n", GetLastError()); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, status.dwCurrentState == SERVICE_RUNNING, "got %u\n", status.dwCurrentState); - - CloseServiceHandle(service); -@@ -1296,10 +1283,8 @@ UINT WINAPI sss_stopped(MSIHANDLE hinst) - - UINT WINAPI rd_present(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, pf_exists("msitest\\original2.txt"), "file absent\n"); - ok(hinst, pf_exists("msitest\\duplicate.txt"), "file absent\n"); --} - ok(hinst, !pf_exists("msitest\\original3.txt"), "file present\n"); - ok(hinst, !pf_exists("msitest\\duplicate2.txt"), "file present\n"); - return ERROR_SUCCESS; -@@ -1307,10 +1292,8 @@ todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - - UINT WINAPI rd_absent(MSIHANDLE hinst) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, !pf_exists("msitest\\original2.txt"), "file present\n"); - ok(hinst, !pf_exists("msitest\\duplicate.txt"), "file present\n"); --} - ok(hinst, !pf_exists("msitest\\original3.txt"), "file present\n"); - ok(hinst, !pf_exists("msitest\\duplicate2.txt"), "file present\n"); - return ERROR_SUCCESS; -@@ -1333,10 +1316,8 @@ UINT WINAPI odbc_present(MSIHANDLE hinst) - if (!strcmp(p, "ODBC test driver2")) - gotdriver2 = 1; - } --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, gotdriver, "driver absent\n"); - ok(hinst, gotdriver2, "driver 2 absent\n"); --} - return ERROR_SUCCESS; - } - -@@ -1357,10 +1338,8 @@ UINT WINAPI odbc_absent(MSIHANDLE hinst) - if (!strcmp(p, "ODBC test driver2")) - gotdriver2 = 1; - } --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - ok(hinst, !gotdriver, "driver present\n"); - ok(hinst, !gotdriver2, "driver 2 present\n"); --} - return ERROR_SUCCESS; - } - -@@ -1373,10 +1352,8 @@ UINT WINAPI mov_present(MSIHANDLE hinst) - - UINT WINAPI mov_absent(MSIHANDLE hinst) - { --todo_wine { - ok(hinst, !pf_exists("msitest\\canada"), "file present\n"); - ok(hinst, !pf_exists("msitest\\dominica"), "file present\n"); --} - return ERROR_SUCCESS; - } - -@@ -1410,9 +1387,7 @@ UINT WINAPI pa_present(MSIHANDLE hinst) - - res = RegOpenKeyA(HKEY_CURRENT_USER, path_dotnet, &key); - ok(hinst, !res, "got %d\n", res); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - check_reg_str(hinst, key, name_dotnet, "rcHQPHq?CA@Uv-XqMI1e>Z'q,T*76M@=YEg6My?~]"); --} - RegCloseKey(key); - - return ERROR_SUCCESS; -@@ -1427,9 +1402,7 @@ UINT WINAPI pa_absent(MSIHANDLE hinst) - ok(hinst, !res || res == ERROR_FILE_NOT_FOUND, "got %d\n", res); - if (!res) - { --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - check_reg_str(hinst, key, name_dotnet, NULL); --} - RegCloseKey(key); - } - return ERROR_SUCCESS; -@@ -1462,7 +1435,6 @@ UINT WINAPI ppc_absent(MSIHANDLE hinst) - UINT r; - - r = RegOpenKeyExA(HKEY_LOCAL_MACHINE, ppc_key, 0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &key); --todo_wine - ok(hinst, r == ERROR_FILE_NOT_FOUND, "got %u\n", r); - return ERROR_SUCCESS; - } -@@ -1474,12 +1446,10 @@ UINT WINAPI pub_present(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyA(HKEY_CURRENT_USER, pub_key, &key); - ok(hinst, !res, "got %u\n", res); - res = RegQueryValueExA(key, "english.txt", NULL, NULL, NULL, NULL); - ok(hinst, !res, "got %u\n", res); --} - RegCloseKey(key); - return ERROR_SUCCESS; - } -@@ -1490,7 +1460,6 @@ UINT WINAPI pub_absent(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyA(HKEY_CURRENT_USER, pub_key, &key); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - return ERROR_SUCCESS; - } -@@ -1504,7 +1473,6 @@ UINT WINAPI pf_present(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyExA(HKEY_CLASSES_ROOT, pf_classkey, 0, KEY_READ | KEY_WOW64_64KEY, &key); - ok(hinst, !res, "got %u\n", res); - check_reg_str(hinst, key, "feature", ""); -@@ -1516,7 +1484,6 @@ todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - check_reg_str(hinst, key, "feature", "VGtfp^p+,?82@JU1j_KE"); - check_reg_str(hinst, key, "montecristo", "VGtfp^p+,?82@JU1j_KE"); - RegCloseKey(key); --} - - return ERROR_SUCCESS; - } -@@ -1527,11 +1494,9 @@ UINT WINAPI pf_absent(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyExA(HKEY_CLASSES_ROOT, pf_classkey, 0, KEY_READ | KEY_WOW64_64KEY, &key); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, pf_userkey, 0, KEY_READ | KEY_WOW64_64KEY, &key); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - return ERROR_SUCCESS; -@@ -1560,7 +1525,6 @@ UINT WINAPI pp_absent(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyExA(HKEY_CLASSES_ROOT, pp_prodkey, 0, KEY_READ | KEY_WOW64_64KEY, &key); --todo_wine - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - return ERROR_SUCCESS; -@@ -1571,7 +1535,6 @@ UINT WINAPI rci_present(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyExA(HKEY_CLASSES_ROOT, "CLSID\\{110913E7-86D1-4BF3-9922-BA103FCDDDFA}", - 0, KEY_READ | KEY_WOW64_32KEY, &key); - ok(hinst, !res, "got %u\n", res); -@@ -1584,7 +1547,6 @@ todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "AppID\\{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}", &key); - ok(hinst, !res, "got %u\n", res); - RegCloseKey(key); --} - - return ERROR_SUCCESS; - } -@@ -1594,7 +1556,6 @@ UINT WINAPI rci_absent(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyExA(HKEY_CLASSES_ROOT, "CLSID\\{110913E7-86D1-4BF3-9922-BA103FCDDDFA}", - 0, KEY_READ | KEY_WOW64_32KEY, &key); - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); -@@ -1604,7 +1565,6 @@ todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "AppID\\{CFCC3B38-E683-497D-9AB4-CB40AAFE307F}", &key); - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); --} - - return ERROR_SUCCESS; - } -@@ -1614,7 +1574,6 @@ UINT WINAPI rei_present(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyA(HKEY_CLASSES_ROOT, ".extension", &key); - ok(hinst, !res, "got %u\n", res); - RegCloseKey(key); -@@ -1622,7 +1581,6 @@ todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "Prog.Id.1\\shell\\Open\\command", &key); - ok(hinst, !res, "got %u\n", res); - RegCloseKey(key); --} - - return ERROR_SUCCESS; - } -@@ -1632,13 +1590,11 @@ UINT WINAPI rei_absent(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyA(HKEY_CLASSES_ROOT, ".extension", &key); - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "Prog.Id.1\\shell\\Open\\command", &key); - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); --} - - return ERROR_SUCCESS; - } -@@ -1653,7 +1609,6 @@ UINT WINAPI font_present(MSIHANDLE hinst) - res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, font_key, 0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &key); - ok(hinst, !res, "got %u\n", res); - res = RegQueryValueExA(key, "msi test font", NULL, NULL, NULL, NULL); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, !res, "got %u\n", res); - RegCloseKey(key); - -@@ -1667,9 +1622,7 @@ UINT WINAPI font_absent(MSIHANDLE hinst) - - res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, font_key, 0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &key); - ok(hinst, !res, "got %u\n", res); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - check_reg_str(hinst, key, "msi test font", NULL); --} - RegCloseKey(key); - - return ERROR_SUCCESS; -@@ -1681,7 +1634,6 @@ UINT WINAPI rmi_present(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "MIME\\Database\\Content Type\\mime/type", &key); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, !res, "got %u\n", res); - - return ERROR_SUCCESS; -@@ -1693,7 +1645,6 @@ UINT WINAPI rmi_absent(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "MIME\\Database\\Content Type\\mime/type", &key); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - return ERROR_SUCCESS; -@@ -1721,7 +1672,6 @@ UINT WINAPI rp_absent(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, rp_key, 0, KEY_READ | KEY_WOW64_32KEY, &key); --todo_wine - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - return ERROR_SUCCESS; -@@ -1732,7 +1682,6 @@ UINT WINAPI rpi_present(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyExA(HKEY_CLASSES_ROOT, "CLSID\\{110913E7-86D1-4BF3-9922-BA103FCDDDFA}", - 0, KEY_READ | KEY_WOW64_32KEY, &key); - ok(hinst, !res, "got %u\n", res); -@@ -1749,7 +1698,6 @@ todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "Winetest.Class.2", &key); - ok(hinst, !res, "got %u\n", res); - RegCloseKey(key); --} - - return ERROR_SUCCESS; - } -@@ -1759,7 +1707,6 @@ UINT WINAPI rpi_absent(MSIHANDLE hinst) - HKEY key; - LONG res; - --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - res = RegOpenKeyExA(HKEY_CLASSES_ROOT, "CLSID\\{110913E7-86D1-4BF3-9922-BA103FCDDDFA}", - 0, KEY_READ | KEY_WOW64_32KEY, &key); - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); -@@ -1772,7 +1719,6 @@ todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "Winetest.Class.2", &key); - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); --} - - return ERROR_SUCCESS; - } -@@ -1799,7 +1745,6 @@ UINT WINAPI ru_absent(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, ru_key, 0, KEY_READ | KEY_WOW64_64KEY, &key); --todo_wine - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - return ERROR_SUCCESS; -@@ -1814,10 +1759,8 @@ UINT WINAPI tl_present(MSIHANDLE hinst) - HRESULT hr; - - hr = LoadRegTypeLib(&LIBID_register_test, 7, 1, 0, &tlb); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, hr == S_OK, "got %#x\n", hr); -- if (tlb) -- ITypeLib_Release(tlb); -+ ITypeLib_Release(tlb); - - return ERROR_SUCCESS; - } -@@ -1828,7 +1771,6 @@ UINT WINAPI tl_absent(MSIHANDLE hinst) - HRESULT hr; - - hr = LoadRegTypeLib(&LIBID_register_test, 7, 1, 0, &tlb); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, hr == TYPE_E_LIBNOTREGISTERED, "got %#x\n", hr); - - return ERROR_SUCCESS; -@@ -1840,7 +1782,6 @@ UINT WINAPI sr_present(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "selfreg_test", &key); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, !res, "got %u\n", res); - RegCloseKey(key); - -@@ -1853,7 +1794,6 @@ UINT WINAPI sr_absent(MSIHANDLE hinst) - LONG res; - - res = RegOpenKeyA(HKEY_CLASSES_ROOT, "selfreg_test", &key); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, res == ERROR_FILE_NOT_FOUND, "got %u\n", res); - - return ERROR_SUCCESS; -@@ -1866,10 +1806,8 @@ UINT WINAPI env_present(MSIHANDLE hinst) - - res = RegOpenKeyA(HKEY_CURRENT_USER, "Environment", &key); - ok(hinst, !res, "got %u\n", res); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - check_reg_str(hinst, key, "MSITESTVAR3", "1"); - check_reg_str(hinst, key, "MSITESTVAR4", "1"); --} - RegCloseKey(key); - - return ERROR_SUCCESS; -@@ -1882,10 +1820,8 @@ UINT WINAPI env_absent(MSIHANDLE hinst) - - res = RegOpenKeyA(HKEY_CURRENT_USER, "Environment", &key); - ok(hinst, !res, "got %u\n", res); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) { - check_reg_str(hinst, key, "MSITESTVAR3", NULL); - check_reg_str(hinst, key, "MSITESTVAR4", NULL); --} - RegCloseKey(key); - - return ERROR_SUCCESS; -@@ -1901,7 +1837,6 @@ UINT WINAPI ini_present(MSIHANDLE hinst) - strcat(path, "\\msitest\\test.ini"); - - len = GetPrivateProfileStringA("section1", "key1", NULL, buf, sizeof(buf), path); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, len == 6, "got %u\n", len); - - return ERROR_SUCCESS; -@@ -1917,7 +1852,6 @@ UINT WINAPI ini_absent(MSIHANDLE hinst) - strcat(path, "\\msitest\\test.ini"); - - len = GetPrivateProfileStringA("section1", "key1", NULL, buf, sizeof(buf), path); --todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - ok(hinst, !len, "got %u\n", len); - - return ERROR_SUCCESS; -@@ -1930,7 +1864,6 @@ UINT WINAPI wrv_present(MSIHANDLE hinst) - - res = RegOpenKeyA(HKEY_CURRENT_USER, "msitest", &key); - ok(hinst, !res, "got %u\n", res); -- todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - check_reg_str(hinst, key, "sz", "string"); - RegCloseKey(key); - -@@ -1944,7 +1877,6 @@ UINT WINAPI wrv_absent(MSIHANDLE hinst) - - res = RegOpenKeyA(HKEY_CURRENT_USER, "msitest", &key); - ok(hinst, !res, "got %u\n", res); -- todo_wine_if(!MsiGetMode(hinst, MSIRUNMODE_SCHEDULED)) - check_reg_str(hinst, key, "sz", NULL); - RegCloseKey(key); - -diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c -index f21e327..663a27b 100644 ---- a/dlls/msi/tests/install.c -+++ b/dlls/msi/tests/install.c -@@ -6074,7 +6074,6 @@ static void test_deferred_action(void) - } - ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); - --todo_wine - check_file_matches(file, "onetwo"); - - ok(DeleteFileA(file), "Directory not created\n"); --- -2.7.4 - diff --git a/patches/msi-Deferral/definition b/patches/msi-Deferral/definition deleted file mode 100644 index 03972ce0..00000000 --- a/patches/msi-Deferral/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [34989] Multiple installers using Caphyon 'Advanced Installer' (AI) technology hang (Atlassian SourceTree v1.3.2, League of Legends 2013+) (deferred type 1 custom action executed before regular type 1 custom action) diff --git a/patches/msvfw32-ICGetDisplayFormat/0001-msvfw32-Try-different-formarts-in-ICGetDisplayFormat.patch b/patches/msvfw32-ICGetDisplayFormat/0001-msvfw32-Try-different-formarts-in-ICGetDisplayFormat.patch deleted file mode 100644 index 8a1e3b6b..00000000 --- a/patches/msvfw32-ICGetDisplayFormat/0001-msvfw32-Try-different-formarts-in-ICGetDisplayFormat.patch +++ /dev/null @@ -1,389 +0,0 @@ -From 9ae94214e0afa58f6b518ec34fd325a1ae57230a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Thu, 31 Mar 2016 00:58:04 +0200 -Subject: msvfw32: Try different formarts in ICGetDisplayFormat. - ---- - dlls/msvfw32/msvideo_main.c | 90 +++++++++++++---- - dlls/msvfw32/tests/msvfw.c | 240 ++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 308 insertions(+), 22 deletions(-) - -diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c -index cc5c85d..25b80ff 100644 ---- a/dlls/msvfw32/msvideo_main.c -+++ b/dlls/msvfw32/msvideo_main.c -@@ -718,25 +718,80 @@ HIC VFWAPI ICGetDisplayFormat( - HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut, - INT depth,INT dx,INT dy) - { -- HIC tmphic = hic; -+ static const struct -+ { -+ int depth; -+ int compression; -+ } -+ try_depths[] = -+ { -+ { 8, BI_RGB}, -+ {16, BI_RGB}, -+ {16, BI_BITFIELDS}, -+ {24, BI_RGB}, -+ {32, BI_RGB}, -+ }; - -- TRACE("(%p,%p,%p,%d,%d,%d)!\n",hic,lpbiIn,lpbiOut,depth,dx,dy); -+ int screen_depth, i; -+ BOOL found = FALSE; -+ HIC tmphic; -+ HDC hdc; - -- if (!tmphic) { -- tmphic=ICLocate(ICTYPE_VIDEO,0,lpbiIn,NULL,ICMODE_DECOMPRESS); -- if (!tmphic) -- return tmphic; -- } -- if ((dy == lpbiIn->biHeight) && (dx == lpbiIn->biWidth)) -- dy = dx = 0; /* no resize needed */ -+ TRACE("(%p,%p,%p,%d,%d,%d)!\n", hic, lpbiIn, lpbiOut, depth, dx, dy); -+ -+ tmphic = hic ? hic : ICLocate(ICTYPE_VIDEO, 0, lpbiIn, NULL, ICMODE_DECOMPRESS); -+ if (!tmphic) return tmphic; -+ -+ hdc = GetDC(0); -+ screen_depth = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES); -+ ReleaseDC(0, hdc); -+ -+ if (!dx) dx = lpbiIn->biWidth; -+ if (!dy) dy = lpbiIn->biHeight; -+ if (!depth) depth = screen_depth; - - /* Can we decompress it ? */ -- if (ICDecompressQuery(tmphic,lpbiIn,NULL) != 0) -+ if (ICDecompressQuery(tmphic, lpbiIn, NULL) != ICERR_OK) - goto errout; /* no, sorry */ - - ICSendMessage(tmphic, ICM_DECOMPRESS_GET_FORMAT, (DWORD_PTR)lpbiIn, (DWORD_PTR)lpbiOut); - -- if (lpbiOut->biCompression != 0) { -+ lpbiOut->biSize = sizeof(BITMAPINFOHEADER); -+ lpbiOut->biWidth = dx; -+ lpbiOut->biHeight = dy; -+ lpbiOut->biPlanes = 1; -+ lpbiOut->biSizeImage = 0; -+ -+ for (i = 0; i < sizeof(try_depths) / sizeof(try_depths[0]); i++) -+ { -+ if (!found && try_depths[i].depth != depth) -+ continue; -+ -+ found = TRUE; -+ lpbiOut->biBitCount = try_depths[i].depth; -+ lpbiOut->biCompression = try_depths[i].compression; -+ -+ if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) -+ goto success; -+ } -+ -+ if (!found) -+ { -+ lpbiOut->biBitCount = depth; -+ lpbiOut->biCompression = BI_RGB; -+ if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) -+ goto success; -+ -+ lpbiOut->biBitCount = screen_depth; -+ lpbiOut->biCompression = BI_RGB; -+ if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) -+ goto success; -+ } -+ -+ if (ICSendMessage(tmphic, ICM_DECOMPRESS_GET_FORMAT, (DWORD_PTR)lpbiIn, (DWORD_PTR)lpbiOut)) -+ goto errout; -+ -+ if (lpbiOut->biCompression != 0) { - FIXME("Ooch, how come decompressor outputs compressed data (%d)??\n", - lpbiOut->biCompression); - } -@@ -745,20 +800,11 @@ HIC VFWAPI ICGetDisplayFormat( - lpbiOut->biSize); - lpbiOut->biSize = sizeof(*lpbiOut); - } -- if (!depth) { -- HDC hdc; -- -- hdc = GetDC(0); -- depth = GetDeviceCaps(hdc,BITSPIXEL)*GetDeviceCaps(hdc,PLANES); -- ReleaseDC(0,hdc); -- if (depth==15) depth = 16; -- if (depth<8) depth = 8; -- } -- if (lpbiIn->biBitCount == 8) -- depth = 8; - -+success: - TRACE("=> %p\n", tmphic); - return tmphic; -+ - errout: - if (hic!=tmphic) - ICClose(tmphic); -diff --git a/dlls/msvfw32/tests/msvfw.c b/dlls/msvfw32/tests/msvfw.c -index 3fe6702..22b32ee 100644 ---- a/dlls/msvfw32/tests/msvfw.c -+++ b/dlls/msvfw32/tests/msvfw.c -@@ -285,6 +285,245 @@ static void test_ICSeqCompress(void) - ok(err == ICERR_BADHANDLE, "Expected -8, got %d\n", err); - } - -+struct msg_result -+{ -+ int msg_index; -+ UINT msg; -+ BOOL output_format; -+ int width; -+ int height; -+ int bits; -+ int compression; -+ LRESULT result; -+ BOOL todo; -+}; -+ -+static struct msg_result expected_msgs[] = -+{ -+ /* Wine bug - shouldn't be called */ -+ { 0, DRV_LOAD, FALSE, 0, 0, 0, 0, TRUE, TRUE}, -+ { 0, DRV_ENABLE, FALSE, 0, 0, 0, 0, 0, TRUE}, -+ -+ { 0, DRV_OPEN, FALSE, 0, 0, 0, 0, 0xdeadbeef, FALSE}, -+ -+ /* test 1 */ -+ { 1, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ { 2, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ { 3, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 8, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ { 4, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 16, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ { 5, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 16, BI_BITFIELDS, ICERR_BADFORMAT, FALSE}, -+ { 6, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 24, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ { 7, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ { 8, ICM_DECOMPRESS_GET_FORMAT, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 2 */ -+ { 9, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {10, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {11, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 8, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {12, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 16, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 3 */ -+ {13, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {14, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {15, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 8, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {16, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 16, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 4 */ -+ {17, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {18, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {19, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 24, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {20, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {21, ICM_DECOMPRESS_GET_FORMAT, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 5 */ -+ {22, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {23, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {24, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 6 */ -+ {25, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {26, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {27, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 7 */ -+ {28, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {29, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {30, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 9, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {31, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_BADFORMAT, FALSE}, -+ {32, ICM_DECOMPRESS_GET_FORMAT, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 8 */ -+ {33, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {34, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {35, ICM_DECOMPRESS_QUERY, TRUE, 800, 600, 32, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* Wine bug - shouldn't be called */ -+ {36, DRV_DISABLE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -+ {36, DRV_FREE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -+}; -+ -+static int msg_index = 0; -+ -+static struct msg_result *get_expected_msg(UINT msg) -+{ -+ int i = 0; -+ for(; i < sizeof(expected_msgs) / sizeof(expected_msgs[0]); i++) -+ { -+ if (expected_msgs[i].msg_index == msg_index && expected_msgs[i].msg == msg) -+ return &expected_msgs[i]; -+ } -+ return NULL; -+} -+ -+LRESULT WINAPI driver_proc_test(DWORD_PTR dwDriverId, HDRVR hdrvr, UINT msg, -+ LPARAM lParam1, LPARAM lParam2) -+{ -+ struct msg_result *expected = get_expected_msg(msg); -+ LRESULT res = expected ? expected->result : ICERR_UNSUPPORTED; -+ -+ if (msg == DRV_CLOSE) -+ return ICERR_OK; -+ -+ if (!expected) -+ { -+ ok(0, "unexpected message: %04x %ld %ld at msg index %d\n", -+ msg, lParam1, lParam2, msg_index); -+ return ICERR_UNSUPPORTED; -+ } -+ else if (expected->todo) -+ { -+ todo_wine ok(0, "unexpected message: %04x %ld %ld at msg index %d\n", -+ msg, lParam1, lParam2, msg_index); -+ return res; -+ } -+ -+ switch (msg) -+ { -+ case ICM_DECOMPRESS_QUERY: -+ { -+ BITMAPINFOHEADER *out = (BITMAPINFOHEADER *)lParam2; -+ -+ if (!lParam2) -+ { -+ trace("query -> without format\n"); -+ ok(!expected->output_format, "Expected no output format pointer\n"); -+ break; -+ } -+ -+ ok(expected->output_format, "Expected output format pointer\n"); -+ ok(out->biWidth == expected->width, -+ "Expected width %d, got %d\n", expected->width, out->biWidth); -+ ok(out->biHeight == expected->height, -+ "Expected height %d, got %d\n", expected->height, out->biHeight); -+ ok(out->biBitCount == expected->bits, -+ "Expected biBitCount %d, got %d\n", expected->bits, out->biBitCount); -+ ok(out->biCompression == expected->compression, -+ "Expected compression %d, got %d\n", expected->compression, out->biCompression); -+ -+ trace("query -> width: %d, height: %d, bit: %d, compression: %d\n", -+ out->biWidth, out->biHeight, out->biBitCount, out->biCompression); -+ break; -+ } -+ -+ case ICM_DECOMPRESS_GET_FORMAT: -+ { -+ BITMAPINFOHEADER *out = (BITMAPINFOHEADER *)lParam2; -+ -+ if (!lParam2) -+ { -+ trace("format -> without format\n"); -+ ok(!expected->output_format, "Expected no output format pointer\n"); -+ break; -+ } -+ -+ ok(expected->output_format, "Expected output format pointer\n"); -+ ok(out->biWidth == expected->width, -+ "Expected width %d, got %d\n", expected->width, out->biWidth); -+ ok(out->biHeight == expected->height, -+ "Expected height %d, got %d\n", expected->height, out->biHeight); -+ ok(out->biBitCount == expected->bits, -+ "Expected biBitCount %d, got %d\n", expected->bits, out->biBitCount); -+ ok(out->biCompression == expected->compression, -+ "Expected compression %d, got %d\n", expected->compression, out->biCompression); -+ -+ trace("format -> width: %d, height: %d, bit: %d, compression: %d\n", -+ out->biWidth, out->biHeight, out->biBitCount, out->biCompression); -+ -+ out->biBitCount = 64; -+ break; -+ } -+ } -+ -+ msg_index++; -+ return res; -+} -+ -+ -+void test_ICGetDisplayFormat(void) -+{ -+ static const struct -+ { -+ int bits_wanted; -+ int bits_expected; -+ int dx; -+ int width_expected; -+ int dy; -+ int height_expected; -+ int msg_index; -+ } -+ tests[] = -+ { -+ { 8, 64, 0, 640, 0, 480, 9}, -+ { 8, 16, 0, 640, 0, 480, 13}, -+ { 8, 16, 0, 640, 0, 480, 17}, -+ {24, 64, 0, 640, 0, 480, 22}, -+ {32, 32, 0, 640, 0, 480, 25}, -+ { 0, 32, 0, 640, 0, 480, 28}, -+ { 9, 64, 0, 640, 0, 480, 33}, -+ {32, 32, 800, 800, 600, 600, 36}, -+ }; -+ -+ HIC ic, ic2; -+ BITMAPINFOHEADER in; -+ BITMAPINFOHEADER out; -+ int i; -+ -+ ic = ICOpenFunction(ICTYPE_VIDEO, 0xdeadbeef, ICMODE_DECOMPRESS, driver_proc_test); -+ ok(!!ic, "Opening driver failed\n"); -+ -+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) -+ { -+ memset(&in, 0, sizeof(in)); -+ memset(&out, 0, sizeof(out)); -+ -+ in.biSize = sizeof(in); -+ in.biWidth = 640; -+ in.biHeight = 480; -+ in.biPlanes = 1; -+ in.biBitCount = 32; -+ in.biCompression = BI_PNG; -+ in.biSizeImage = 1024; -+ -+ out.biBitCount = 16; -+ out.biWidth = 320; -+ out.biHeight = 240; -+ -+ ic2 = ICGetDisplayFormat(ic, &in, &out, tests[i].bits_wanted, tests[i].dx, tests[i].dy); -+ ok(!!ic2, "Expected ICGetDisplayFormat to succeeded\n"); -+ -+ ok(out.biBitCount == tests[i].bits_expected, -+ "Expected biBitCount %d, got %d\n", tests[i].bits_expected, out.biBitCount); -+ ok(out.biWidth == tests[i].width_expected, -+ "Expected biWidth %d, got %d\n", tests[i].width_expected, out.biWidth); -+ ok(out.biHeight == tests[i].height_expected, -+ "Expected biHeight %d, got %d\n", tests[i].height_expected, out.biHeight); -+ ok(msg_index == tests[i].msg_index, -+ "Expected msg_index %d, got %d\n", tests[i].msg_index, msg_index); -+ } -+ -+ ICClose(ic); -+} -+ - static void test_ICInfo(void) - { - ICINFO info, info2; -@@ -324,5 +563,6 @@ START_TEST(msvfw) - test_OpenCase(); - test_Locate(); - test_ICSeqCompress(); -+ test_ICGetDisplayFormat(); - test_ICInfo(); - } --- -2.9.0 - diff --git a/patches/msvfw32-ICGetDisplayFormat/0002-msvfw32-Add-test-for-negative-width-height-values-pa.patch b/patches/msvfw32-ICGetDisplayFormat/0002-msvfw32-Add-test-for-negative-width-height-values-pa.patch deleted file mode 100644 index 1e1b08ef..00000000 --- a/patches/msvfw32-ICGetDisplayFormat/0002-msvfw32-Add-test-for-negative-width-height-values-pa.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 37a47ad2b8a776a15d1e0431c0e1c1924884fbe1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Thu, 31 Mar 2016 17:17:20 +0200 -Subject: msvfw32: Add test for negative width/height values passed to - ICGetDisplayFormat. - ---- - dlls/msvfw32/msvideo_main.c | 4 ++-- - dlls/msvfw32/tests/msvfw.c | 16 ++++++++++++++-- - 2 files changed, 16 insertions(+), 4 deletions(-) - -diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c -index 28f405e..41bd234 100644 ---- a/dlls/msvfw32/msvideo_main.c -+++ b/dlls/msvfw32/msvideo_main.c -@@ -747,8 +747,8 @@ HIC VFWAPI ICGetDisplayFormat( - screen_depth = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES); - ReleaseDC(0, hdc); - -- if (!dx) dx = lpbiIn->biWidth; -- if (!dy) dy = lpbiIn->biHeight; -+ if (dx <= 0) dx = lpbiIn->biWidth; -+ if (dy <= 0) dy = lpbiIn->biHeight; - if (!depth) depth = screen_depth; - - /* Can we decompress it ? */ -diff --git a/dlls/msvfw32/tests/msvfw.c b/dlls/msvfw32/tests/msvfw.c -index 7fd4c43..36dec1d 100644 ---- a/dlls/msvfw32/tests/msvfw.c -+++ b/dlls/msvfw32/tests/msvfw.c -@@ -357,9 +357,19 @@ static struct msg_result expected_msgs[] = - {34, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, - {35, ICM_DECOMPRESS_QUERY, TRUE, 800, 600, 32, BI_RGB, ICERR_OK, FALSE}, - -+ /* test 9 */ -+ {36, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {37, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {38, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 10 */ -+ {39, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {40, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {41, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, -+ - /* Wine bug - shouldn't be called */ -- {36, DRV_DISABLE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -- {36, DRV_FREE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -+ {42, DRV_DISABLE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -+ {42, DRV_FREE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, - }; - - static int msg_index = 0; -@@ -481,6 +491,8 @@ void test_ICGetDisplayFormat(void) - { 0, 32, 0, 640, 0, 480, 28}, - { 9, 64, 0, 640, 0, 480, 33}, - {32, 32, 800, 800, 600, 600, 36}, -+ {32, 32, -1, 640, -1, 480, 39}, -+ {32, 32, -90, 640, -60, 480, 42}, - }; - - HIC ic, ic2; --- -2.7.1 - diff --git a/patches/msvfw32-ICGetDisplayFormat/0003-msvfw32-Set-biSizeImage-correctly-in-ICGetDisplayFor.patch b/patches/msvfw32-ICGetDisplayFormat/0003-msvfw32-Set-biSizeImage-correctly-in-ICGetDisplayFor.patch deleted file mode 100644 index f7a1ba33..00000000 --- a/patches/msvfw32-ICGetDisplayFormat/0003-msvfw32-Set-biSizeImage-correctly-in-ICGetDisplayFor.patch +++ /dev/null @@ -1,95 +0,0 @@ -From cd04ddddb9d9fcf5011b49320682fefb0b7a28c1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 2 Apr 2016 16:13:44 +0200 -Subject: msvfw32: Set biSizeImage correctly in ICGetDisplayFormat. - ---- - dlls/msvfw32/msvideo_main.c | 4 +++- - dlls/msvfw32/tests/msvfw.c | 15 +++++++++++---- - 2 files changed, 14 insertions(+), 5 deletions(-) - -diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c -index 41bd234..6f91859 100644 ---- a/dlls/msvfw32/msvideo_main.c -+++ b/dlls/msvfw32/msvideo_main.c -@@ -761,7 +761,6 @@ HIC VFWAPI ICGetDisplayFormat( - lpbiOut->biWidth = dx; - lpbiOut->biHeight = dy; - lpbiOut->biPlanes = 1; -- lpbiOut->biSizeImage = 0; - - for (i = 0; i < sizeof(try_depths) / sizeof(try_depths[0]); i++) - { -@@ -771,6 +770,7 @@ HIC VFWAPI ICGetDisplayFormat( - found = TRUE; - lpbiOut->biBitCount = try_depths[i].depth; - lpbiOut->biCompression = try_depths[i].compression; -+ lpbiOut->biSizeImage = dx * dy * lpbiOut->biBitCount / 8; - - if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) - goto success; -@@ -780,11 +780,13 @@ HIC VFWAPI ICGetDisplayFormat( - { - lpbiOut->biBitCount = depth; - lpbiOut->biCompression = BI_RGB; -+ lpbiOut->biSizeImage = (dx * dy * depth) / 8; - if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) - goto success; - - lpbiOut->biBitCount = screen_depth; - lpbiOut->biCompression = BI_RGB; -+ lpbiOut->biSizeImage = dx * dy * screen_depth / 8; - if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) - goto success; - } -diff --git a/dlls/msvfw32/tests/msvfw.c b/dlls/msvfw32/tests/msvfw.c -index 36dec1d..252aba2 100644 ---- a/dlls/msvfw32/tests/msvfw.c -+++ b/dlls/msvfw32/tests/msvfw.c -@@ -429,9 +429,12 @@ LRESULT WINAPI driver_proc_test(DWORD_PTR dwDriverId, HDRVR hdrvr, UINT msg, - "Expected biBitCount %d, got %d\n", expected->bits, out->biBitCount); - ok(out->biCompression == expected->compression, - "Expected compression %d, got %d\n", expected->compression, out->biCompression); -+ ok(out->biSizeImage == (out->biWidth * out->biHeight * out->biBitCount) / 8, -+ "Expected biSizeImage %d, got %d\n", (out->biWidth * out->biHeight * out->biBitCount) / 8, -+ out->biSizeImage); - -- trace("query -> width: %d, height: %d, bit: %d, compression: %d\n", -- out->biWidth, out->biHeight, out->biBitCount, out->biCompression); -+ trace("query -> width: %d, height: %d, bit: %d, compression: %d, size: %d\n", -+ out->biWidth, out->biHeight, out->biBitCount, out->biCompression, out->biSizeImage); - break; - } - -@@ -456,8 +459,8 @@ LRESULT WINAPI driver_proc_test(DWORD_PTR dwDriverId, HDRVR hdrvr, UINT msg, - ok(out->biCompression == expected->compression, - "Expected compression %d, got %d\n", expected->compression, out->biCompression); - -- trace("format -> width: %d, height: %d, bit: %d, compression: %d\n", -- out->biWidth, out->biHeight, out->biBitCount, out->biCompression); -+ trace("format -> width: %d, height: %d, bit: %d, compression: %d, size: %d\n", -+ out->biWidth, out->biHeight, out->biBitCount, out->biCompression, out->biSizeImage); - - out->biBitCount = 64; - break; -@@ -498,6 +501,7 @@ void test_ICGetDisplayFormat(void) - HIC ic, ic2; - BITMAPINFOHEADER in; - BITMAPINFOHEADER out; -+ int real_depth; - int i; - - ic = ICOpenFunction(ICTYPE_VIDEO, 0xdeadbeef, ICMODE_DECOMPRESS, driver_proc_test); -@@ -529,6 +533,9 @@ void test_ICGetDisplayFormat(void) - "Expected biWidth %d, got %d\n", tests[i].width_expected, out.biWidth); - ok(out.biHeight == tests[i].height_expected, - "Expected biHeight %d, got %d\n", tests[i].height_expected, out.biHeight); -+ real_depth = (out.biBitCount > 32) ? 4 : out.biBitCount / 8; -+ ok(out.biSizeImage == out.biWidth * out.biHeight * real_depth, -+ "Expected biSizeImage %d, got %d\n", out.biWidth * out.biHeight * real_depth, out.biSizeImage); - ok(msg_index == tests[i].msg_index, - "Expected msg_index %d, got %d\n", tests[i].msg_index, msg_index); - } --- -2.7.1 - diff --git a/patches/msvfw32-ICGetDisplayFormat/0004-msvfw32-Take-stride-into-account-and-ask-for-palette.patch b/patches/msvfw32-ICGetDisplayFormat/0004-msvfw32-Take-stride-into-account-and-ask-for-palette.patch deleted file mode 100644 index 1ffc4143..00000000 --- a/patches/msvfw32-ICGetDisplayFormat/0004-msvfw32-Take-stride-into-account-and-ask-for-palette.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 6c25d94295130d7ab3e07dd985311520d303aad2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sun, 3 Apr 2016 17:47:43 +0200 -Subject: msvfw32: Take stride into account and ask for palette in - ICGetDisplayFormat. - ---- - dlls/msvfw32/msvideo_main.c | 15 ++++++++++++--- - dlls/msvfw32/tests/msvfw.c | 45 ++++++++++++++++++++++++++++++++++++++------- - 2 files changed, 50 insertions(+), 10 deletions(-) - -diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c -index 6f91859..e3a7719 100644 ---- a/dlls/msvfw32/msvideo_main.c -+++ b/dlls/msvfw32/msvideo_main.c -@@ -98,6 +98,11 @@ static const char *wine_dbgstr_icerr( int ret ) - return str; - } - -+static inline int get_stride(int width, int depth) -+{ -+ return ((depth * width + 31) >> 3) & ~3; -+} -+ - static WINE_HIC* MSVIDEO_FirstHic /* = NULL */; - - typedef struct _reg_driver reg_driver; -@@ -770,23 +775,27 @@ HIC VFWAPI ICGetDisplayFormat( - found = TRUE; - lpbiOut->biBitCount = try_depths[i].depth; - lpbiOut->biCompression = try_depths[i].compression; -- lpbiOut->biSizeImage = dx * dy * lpbiOut->biBitCount / 8; -+ lpbiOut->biSizeImage = dx * get_stride(dy, lpbiOut->biBitCount); - - if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) -+ { -+ if (try_depths[i].depth == 8) -+ ICDecompressGetPalette(tmphic, lpbiIn, lpbiOut); - goto success; -+ } - } - - if (!found) - { - lpbiOut->biBitCount = depth; - lpbiOut->biCompression = BI_RGB; -- lpbiOut->biSizeImage = (dx * dy * depth) / 8; -+ lpbiOut->biSizeImage = dx * get_stride(dy, lpbiOut->biBitCount); - if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) - goto success; - - lpbiOut->biBitCount = screen_depth; - lpbiOut->biCompression = BI_RGB; -- lpbiOut->biSizeImage = dx * dy * screen_depth / 8; -+ lpbiOut->biSizeImage = dx * get_stride(dy, lpbiOut->biBitCount); - if (ICDecompressQuery(tmphic, lpbiIn, lpbiOut) == ICERR_OK) - goto success; - } -diff --git a/dlls/msvfw32/tests/msvfw.c b/dlls/msvfw32/tests/msvfw.c -index 252aba2..91628e2 100644 ---- a/dlls/msvfw32/tests/msvfw.c -+++ b/dlls/msvfw32/tests/msvfw.c -@@ -25,6 +25,11 @@ - - #include "wine/test.h" - -+static inline int get_stride(int width, int depth) -+{ -+ return ((depth * width + 31) >> 3) & ~3; -+} -+ - static void test_OpenCase(void) - { - HIC h; -@@ -367,9 +372,30 @@ static struct msg_result expected_msgs[] = - {40, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, - {41, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 32, BI_RGB, ICERR_OK, FALSE}, - -+ /* test 11 */ -+ {42, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {43, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {44, ICM_DECOMPRESS_QUERY, TRUE, 270, 270, 8, BI_RGB, ICERR_OK, FALSE}, -+ {45, ICM_DECOMPRESS_GET_PALETTE, FALSE, 0, 0, 0, 0, ICERR_UNSUPPORTED, FALSE}, -+ -+ /* test 12 */ -+ {46, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {47, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {48, ICM_DECOMPRESS_QUERY, TRUE, 270, 270, 16, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 13 */ -+ {49, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {50, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {51, ICM_DECOMPRESS_QUERY, TRUE, 270, 270, 24, BI_RGB, ICERR_OK, FALSE}, -+ -+ /* test 14 */ -+ {52, ICM_DECOMPRESS_QUERY, FALSE, 0, 0, 0, 0, ICERR_OK, FALSE}, -+ {53, ICM_DECOMPRESS_GET_FORMAT, TRUE, 320, 240, 16, BI_RGB, ICERR_OK, FALSE}, -+ {54, ICM_DECOMPRESS_QUERY, TRUE, 640, 480, 4, BI_RGB, ICERR_OK, FALSE}, -+ - /* Wine bug - shouldn't be called */ -- {42, DRV_DISABLE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -- {42, DRV_FREE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -+ {55, DRV_DISABLE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, -+ {55, DRV_FREE, FALSE, 0, 0, 0, 0, ICERR_OK, TRUE}, - }; - - static int msg_index = 0; -@@ -429,8 +455,8 @@ LRESULT WINAPI driver_proc_test(DWORD_PTR dwDriverId, HDRVR hdrvr, UINT msg, - "Expected biBitCount %d, got %d\n", expected->bits, out->biBitCount); - ok(out->biCompression == expected->compression, - "Expected compression %d, got %d\n", expected->compression, out->biCompression); -- ok(out->biSizeImage == (out->biWidth * out->biHeight * out->biBitCount) / 8, -- "Expected biSizeImage %d, got %d\n", (out->biWidth * out->biHeight * out->biBitCount) / 8, -+ ok(out->biSizeImage == get_stride(out->biWidth, out->biBitCount) * out->biHeight, -+ "Expected biSizeImage %d, got %d\n", get_stride(out->biWidth, out->biBitCount) * out->biHeight, - out->biSizeImage); - - trace("query -> width: %d, height: %d, bit: %d, compression: %d, size: %d\n", -@@ -496,6 +522,10 @@ void test_ICGetDisplayFormat(void) - {32, 32, 800, 800, 600, 600, 36}, - {32, 32, -1, 640, -1, 480, 39}, - {32, 32, -90, 640, -60, 480, 42}, -+ { 8, 8, 270, 270, 270, 270, 46}, -+ {16, 16, 270, 270, 270, 270, 49}, -+ {24, 24, 270, 270, 270, 270, 52}, -+ { 4, 4, 0, 640, 0, 480, 55}, - }; - - HIC ic, ic2; -@@ -533,9 +563,10 @@ void test_ICGetDisplayFormat(void) - "Expected biWidth %d, got %d\n", tests[i].width_expected, out.biWidth); - ok(out.biHeight == tests[i].height_expected, - "Expected biHeight %d, got %d\n", tests[i].height_expected, out.biHeight); -- real_depth = (out.biBitCount > 32) ? 4 : out.biBitCount / 8; -- ok(out.biSizeImage == out.biWidth * out.biHeight * real_depth, -- "Expected biSizeImage %d, got %d\n", out.biWidth * out.biHeight * real_depth, out.biSizeImage); -+ real_depth = (out.biBitCount > 32) ? 32 : out.biBitCount; -+ ok(out.biSizeImage == get_stride(out.biWidth, real_depth) * out.biHeight, -+ "Expected biSizeImage %d, got %d\n", get_stride(out.biWidth, real_depth) * out.biHeight, -+ out.biSizeImage); - ok(msg_index == tests[i].msg_index, - "Expected msg_index %d, got %d\n", tests[i].msg_index, msg_index); - } --- -2.7.1 - diff --git a/patches/msvfw32-ICGetDisplayFormat/0005-iccvid-Fix-calculation-of-stride-and-size.patch b/patches/msvfw32-ICGetDisplayFormat/0005-iccvid-Fix-calculation-of-stride-and-size.patch index 64e9d504..0c88b173 100644 --- a/patches/msvfw32-ICGetDisplayFormat/0005-iccvid-Fix-calculation-of-stride-and-size.patch +++ b/patches/msvfw32-ICGetDisplayFormat/0005-iccvid-Fix-calculation-of-stride-and-size.patch @@ -1,15 +1,15 @@ -From cd25e5befd357c848ae4e82f5166ea2465bd6ad7 Mon Sep 17 00:00:00 2001 +From 9508597f0940703a95edd8fde9584ef11a9a1e1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 3 Apr 2016 18:22:29 +0200 Subject: [PATCH] iccvid: Fix calculation of stride and size. --- - dlls/iccvid/iccvid.c | 10 +++++++--- - dlls/msvfw32/tests/msvfw.c | 40 ++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 47 insertions(+), 3 deletions(-) + dlls/iccvid/iccvid.c | 10 ++++++--- + dlls/msvfw32/tests/msvfw.c | 45 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/dlls/iccvid/iccvid.c b/dlls/iccvid/iccvid.c -index 89d282b..3977d95 100644 +index 89d282ba78..3977d95a41 100644 --- a/dlls/iccvid/iccvid.c +++ b/dlls/iccvid/iccvid.c @@ -169,6 +169,10 @@ int x, y; @@ -45,10 +45,22 @@ index 89d282b..3977d95 100644 } return size; diff --git a/dlls/msvfw32/tests/msvfw.c b/dlls/msvfw32/tests/msvfw.c -index 127dc24..2507ead 100644 +index 406a35b8f1..42f148230e 100644 --- a/dlls/msvfw32/tests/msvfw.c +++ b/dlls/msvfw32/tests/msvfw.c -@@ -93,6 +93,7 @@ static void test_Locate(void) +@@ -25,6 +25,11 @@ + + #include "wine/test.h" + ++static inline int get_stride(int width, int depth) ++{ ++ return ((depth * width + 31) >> 3) & ~3; ++} ++ + static void test_OpenCase(void) + { + HIC h; +@@ -88,6 +93,7 @@ static void test_Locate(void) { static BITMAPINFOHEADER bi = {sizeof(BITMAPINFOHEADER),32,8, 1,8, BI_RLE8, 0,100000,100000, 0,0}; static BITMAPINFOHEADER bo = {sizeof(BITMAPINFOHEADER),32,8, 1,8, BI_RGB, 0,100000,100000, 0,0}; @@ -56,7 +68,7 @@ index 127dc24..2507ead 100644 HIC h; DWORD err; -@@ -128,6 +129,45 @@ static void test_Locate(void) +@@ -123,6 +129,45 @@ static void test_Locate(void) ok(err == ICERR_OK, "Query cvid->RGB32 height<0: %d\n", err); bo.biHeight = -bo.biHeight; @@ -103,5 +115,5 @@ index 127dc24..2507ead 100644 bo.biBitCount = bi.biBitCount = 8; -- -1.9.1 +2.18.0 diff --git a/patches/ntdll-Heap_Improvements/0002-ntdll-Improve-heap-allocation-performance.patch b/patches/ntdll-Heap_Improvements/0002-ntdll-Improve-heap-allocation-performance.patch index 3365a9c2..1ddeeaae 100644 --- a/patches/ntdll-Heap_Improvements/0002-ntdll-Improve-heap-allocation-performance.patch +++ b/patches/ntdll-Heap_Improvements/0002-ntdll-Improve-heap-allocation-performance.patch @@ -1,18 +1,18 @@ -From 83b15590acbeec9bae0d6ebefb50db07a6bd0b18 Mon Sep 17 00:00:00 2001 +From ff5a1ffd966ca678a579f2b1da63290ae107d71c Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 22 Jul 2017 07:21:45 +0200 -Subject: ntdll: Improve heap allocation performance. (v2) +Subject: [PATCH] ntdll: Improve heap allocation performance. (v2) --- configure.ac | 9 ++ - dlls/ntdll/heap.c | 322 ++++++++++++++++++++++++++++++++++++++---------------- - 2 files changed, 234 insertions(+), 97 deletions(-) + dlls/ntdll/heap.c | 321 ++++++++++++++++++++++++++++++++-------------- + 2 files changed, 234 insertions(+), 96 deletions(-) diff --git a/configure.ac b/configure.ac -index 44c7eed86f8..b37693c01aa 100644 +index b4b3c7c55d..0c9bfe4628 100644 --- a/configure.ac +++ b/configure.ac -@@ -2655,6 +2655,15 @@ then +@@ -2829,6 +2829,15 @@ then AC_DEFINE(HAVE___BUILTIN_CLZ, 1, [Define to 1 if you have the `__builtin_clz' built-in function.]) fi @@ -29,7 +29,7 @@ index 44c7eed86f8..b37693c01aa 100644 AC_CACHE_CHECK([for __builtin_popcount], ac_cv_have___builtin_popcount, AC_LINK_IFELSE([AC_LANG_PROGRAM(,[[return __builtin_popcount(1)]])], diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c -index b47c2e69feb..effda46d0bf 100644 +index 3f1afd6f0f..a06ba32024 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -3,6 +3,7 @@ @@ -96,11 +96,10 @@ index b47c2e69feb..effda46d0bf 100644 /* minimum size that must remain to shrink an allocated block */ #define HEAP_MIN_SHRINK_SIZE (HEAP_MIN_DATA_SIZE+sizeof(ARENA_FREE)) /* minimum size to start allocating large blocks */ -@@ -113,24 +121,14 @@ C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 ); - /* extra size to add at the end of block for tail checking */ +@@ -114,23 +122,14 @@ C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 ); #define HEAP_TAIL_EXTRA_SIZE(flags) \ ((flags & HEAP_TAIL_CHECKING_ENABLED) || RUNNING_ON_VALGRIND ? ALIGNMENT : 0) -- + -/* There will be a free list bucket for every arena size up to and including this value */ -#define HEAP_MAX_SMALL_FREE_LIST 0x100 -C_ASSERT( HEAP_MAX_SMALL_FREE_LIST % ALIGNMENT == 0 ); @@ -111,7 +110,7 @@ index b47c2e69feb..effda46d0bf 100644 -{ - 0x200, 0x400, 0x1000, ~0UL -}; --#define HEAP_NB_FREE_LISTS (sizeof(HEAP_freeListSizes) / sizeof(HEAP_freeListSizes[0]) + HEAP_NB_SMALL_FREE_LISTS) +-#define HEAP_NB_FREE_LISTS (ARRAY_SIZE( HEAP_freeListSizes ) + HEAP_NB_SMALL_FREE_LISTS) - -typedef union -{ @@ -129,7 +128,7 @@ index b47c2e69feb..effda46d0bf 100644 struct tagHEAP; -@@ -163,9 +161,17 @@ typedef struct tagHEAP +@@ -163,9 +162,17 @@ typedef struct tagHEAP DWORD pending_pos; /* Position in pending free requests ring */ ARENA_INUSE **pending_free; /* Ring buffer for pending free requests */ RTL_CRITICAL_SECTION critSection; /* Critical section for serialization */ @@ -148,7 +147,7 @@ index b47c2e69feb..effda46d0bf 100644 #define HEAP_MAGIC ((DWORD)('H' | ('E'<<8) | ('A'<<16) | ('P'<<24))) #define HEAP_DEF_SIZE 0x110000 /* Default heap size = 1Mb + 64Kb */ -@@ -182,6 +188,30 @@ static HEAP *processHeap; /* main process heap */ +@@ -182,6 +189,30 @@ static HEAP *processHeap; /* main process heap */ static BOOL HEAP_IsRealArena( HEAP *heapPtr, DWORD flags, LPCVOID block, BOOL quiet ); @@ -179,7 +178,7 @@ index b47c2e69feb..effda46d0bf 100644 /* mark a block of memory as free for debugging purposes */ static inline void mark_block_free( void *ptr, SIZE_T size, DWORD flags ) { -@@ -303,20 +333,6 @@ static void subheap_notify_free_all(SUBHEAP const *subheap) +@@ -303,20 +334,6 @@ static void subheap_notify_free_all(SUBHEAP const *subheap) #endif } @@ -200,7 +199,7 @@ index b47c2e69feb..effda46d0bf 100644 /* get the memory protection type to use for a given heap */ static inline ULONG get_protection_type( DWORD flags ) { -@@ -344,13 +360,31 @@ static void HEAP_Dump( HEAP *heap ) +@@ -344,13 +361,31 @@ static void HEAP_Dump( HEAP *heap ) DPRINTF( "Next: %p Sub-heaps:", LIST_ENTRY( heap->entry.next, HEAP, entry ) ); LIST_FOR_EACH_ENTRY( subheap, &heap->subheap_list, SUBHEAP, entry ) DPRINTF( " %p", subheap ); @@ -238,7 +237,7 @@ index b47c2e69feb..effda46d0bf 100644 LIST_FOR_EACH_ENTRY( subheap, &heap->subheap_list, SUBHEAP, entry ) { -@@ -365,11 +399,32 @@ static void HEAP_Dump( HEAP *heap ) +@@ -365,11 +400,32 @@ static void HEAP_Dump( HEAP *heap ) if (*(DWORD *)ptr & ARENA_FLAG_FREE) { ARENA_FREE *pArena = (ARENA_FREE *)ptr; @@ -276,7 +275,7 @@ index b47c2e69feb..effda46d0bf 100644 ptr += sizeof(*pArena) + (pArena->size & ARENA_SIZE_MASK); arenaSize += sizeof(ARENA_FREE); freeSize += pArena->size & ARENA_SIZE_MASK; -@@ -477,20 +532,19 @@ static HEAP *HEAP_GetPtr( +@@ -477,20 +533,19 @@ static HEAP *HEAP_GetPtr( */ static inline void HEAP_InsertFreeBlock( HEAP *heap, ARENA_FREE *pArena, BOOL last ) { @@ -305,7 +304,7 @@ index b47c2e69feb..effda46d0bf 100644 } -@@ -501,7 +555,19 @@ static inline void HEAP_InsertFreeBlock( HEAP *heap, ARENA_FREE *pArena, BOOL la +@@ -501,7 +556,19 @@ static inline void HEAP_InsertFreeBlock( HEAP *heap, ARENA_FREE *pArena, BOOL la */ static inline void HEAP_DeleteFreeBlock( HEAP *heap, ARENA_FREE *pArena ) { @@ -326,7 +325,7 @@ index b47c2e69feb..effda46d0bf 100644 } -@@ -881,6 +947,15 @@ static BOOL validate_large_arena( HEAP *heap, const ARENA_LARGE *arena, BOOL qui +@@ -881,6 +948,15 @@ static BOOL validate_large_arena( HEAP *heap, const ARENA_LARGE *arena, BOOL qui } @@ -342,7 +341,7 @@ index b47c2e69feb..effda46d0bf 100644 /*********************************************************************** * HEAP_CreateSubHeap */ -@@ -888,7 +963,6 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, +@@ -888,7 +964,6 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, SIZE_T commitSize, SIZE_T totalSize ) { SUBHEAP *subheap; @@ -350,7 +349,7 @@ index b47c2e69feb..effda46d0bf 100644 unsigned int i; if (!address) -@@ -949,17 +1023,21 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, +@@ -949,17 +1024,21 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, subheap->headerSize = ROUND_SIZE( sizeof(HEAP) ); list_add_head( &heap->subheap_list, &subheap->entry ); @@ -382,7 +381,7 @@ index b47c2e69feb..effda46d0bf 100644 /* Initialize critical section */ -@@ -1002,6 +1080,34 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, +@@ -1002,6 +1081,34 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, } @@ -417,7 +416,7 @@ index b47c2e69feb..effda46d0bf 100644 /*********************************************************************** * HEAP_FindFreeBlock * -@@ -1011,26 +1117,39 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, +@@ -1011,26 +1118,39 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags, static ARENA_FREE *HEAP_FindFreeBlock( HEAP *heap, SIZE_T size, SUBHEAP **ppSubHeap ) { @@ -469,7 +468,7 @@ index b47c2e69feb..effda46d0bf 100644 } /* If no block was found, attempt to grow the heap */ -@@ -1076,13 +1195,10 @@ static ARENA_FREE *HEAP_FindFreeBlock( HEAP *heap, SIZE_T size, +@@ -1076,13 +1196,10 @@ static ARENA_FREE *HEAP_FindFreeBlock( HEAP *heap, SIZE_T size, */ static BOOL HEAP_IsValidArenaPtr( const HEAP *heap, const ARENA_FREE *ptr ) { @@ -483,7 +482,7 @@ index b47c2e69feb..effda46d0bf 100644 return FALSE; } -@@ -1094,7 +1210,7 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena ) +@@ -1094,7 +1211,7 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena ) { DWORD flags = subheap->heap->flags; SIZE_T size; @@ -492,7 +491,7 @@ index b47c2e69feb..effda46d0bf 100644 char *heapEnd = (char *)subheap->base + subheap->size; /* Check for unaligned pointers */ -@@ -1111,7 +1227,8 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena ) +@@ -1111,7 +1228,8 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena ) return FALSE; } /* Check size flags */ @@ -502,7 +501,7 @@ index b47c2e69feb..effda46d0bf 100644 (pArena->size & ARENA_FLAG_PREV_FREE)) { ERR("Heap %p: bad flags %08x for free arena %p\n", -@@ -1125,34 +1242,45 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena ) +@@ -1125,34 +1243,45 @@ static BOOL HEAP_ValidateFreeArena( SUBHEAP *subheap, ARENA_FREE *pArena ) ERR("Heap %p: bad size %08lx for free arena %p\n", subheap->heap, size, pArena ); return FALSE; } @@ -557,5 +556,5 @@ index b47c2e69feb..effda46d0bf 100644 subheap->heap, prev, pArena ); return FALSE; -- -2.14.1 +2.18.0 diff --git a/patches/opengl32-Revert_Disable_Ext/0001-Revert-opengl32-Return-a-NULL-pointer-for-functions-.patch b/patches/opengl32-Revert_Disable_Ext/0001-Revert-opengl32-Return-a-NULL-pointer-for-functions-.patch index b3193f76..5411b797 100644 --- a/patches/opengl32-Revert_Disable_Ext/0001-Revert-opengl32-Return-a-NULL-pointer-for-functions-.patch +++ b/patches/opengl32-Revert_Disable_Ext/0001-Revert-opengl32-Return-a-NULL-pointer-for-functions-.patch @@ -1,8 +1,8 @@ -From 2db198094888b7de074fcac0f27758364d07ef55 Mon Sep 17 00:00:00 2001 +From b0535885132a6e2a6e7bebd9a0bad90a4414172b Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 10 Apr 2015 08:17:22 +0200 -Subject: Revert "opengl32: Return a NULL pointer for functions requiring - unsupported or disabled extensions." +Subject: [PATCH] Revert "opengl32: Return a NULL pointer for functions + requiring unsupported or disabled extensions." This reverts commit bfd4836867d6d90eaeae6ccbc02e37678b59b8f1 and following changes. --- @@ -10,10 +10,10 @@ This reverts commit bfd4836867d6d90eaeae6ccbc02e37678b59b8f1 and following chang 1 file changed, 17 deletions(-) diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c -index f3f78ef..75d3796 100644 +index 04ace8effe..716081125e 100644 --- a/dlls/opengl32/wgl.c +++ b/dlls/opengl32/wgl.c -@@ -877,24 +877,7 @@ PROC WINAPI wglGetProcAddress( LPCSTR name ) +@@ -883,24 +883,7 @@ PROC WINAPI wglGetProcAddress( LPCSTR name ) void *driver_func = funcs->wgl.p_wglGetProcAddress( name ); if (!is_extension_supported(ext_ret->extension)) @@ -25,7 +25,7 @@ index f3f78ef..75d3796 100644 - { "glVertexAttribDivisor", "glVertexAttribDivisorARB"}, /* needed by Caffeine */ - }; - -- for (i = 0; i < sizeof(alternatives)/sizeof(alternatives[0]); i++) +- for (i = 0; i < ARRAY_SIZE(alternatives); i++) - { - if (strcmp( name, alternatives[i].name )) continue; - WARN("Extension %s required for %s not supported, trying %s\n", @@ -39,5 +39,5 @@ index f3f78ef..75d3796 100644 if (driver_func == NULL) { -- -2.6.2 +2.18.0 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 95d03aaf..7f13c57c 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "25cc380b8ed41652b135657ef7651beef2f20ae4" + echo "ba9f3dc198dfc81bb40159077b73b797006bb73c" } # Show version information @@ -115,7 +115,6 @@ patch_enable_all () enable_d3dx9_36_32bpp_Alpha_Channel="$1" enable_d3dx9_36_BumpLuminance="$1" enable_d3dx9_36_CloneEffect="$1" - enable_d3dx9_36_D3DXCreateTeapot="$1" enable_d3dx9_36_D3DXDisassembleShader="$1" enable_d3dx9_36_D3DXOptimizeVertices="$1" enable_d3dx9_36_D3DXStubs="$1" @@ -145,7 +144,6 @@ patch_enable_all () enable_dsound_Fast_Mixer="$1" enable_dsound_Revert_Cleanup="$1" enable_dwrite_FontFallback="$1" - enable_dwrite_layout_check="$1" enable_dxdiagn_Enumerate_DirectSound="$1" enable_dxdiagn_GetChildContainer_Leaf_Nodes="$1" enable_dxgi_GammaRamp="$1" @@ -189,13 +187,11 @@ patch_enable_all () enable_libs_Debug_Channel="$1" enable_libs_Unicode_Collation="$1" enable_loader_OSX_Preloader="$1" - enable_ml_array_size="$1" enable_ml_patches="$1" enable_mmsystem_dll16_MIDIHDR_Refcount="$1" enable_mountmgr_DosDevices="$1" enable_mscoree_CorValidateImage="$1" enable_mshtml_HTMLLocation_put_hash="$1" - enable_msi_Deferral="$1" enable_msi_MsiGetDatabaseState="$1" enable_msi_msi_vcl_get_cost="$1" enable_msidb_Implementation="$1" @@ -381,7 +377,6 @@ patch_enable_all () enable_wined3d_UAV_Counters="$1" enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM="$1" enable_wined3d_WINED3D_RS_COLORWRITEENABLE="$1" - enable_wined3d_texture_blt_device="$1" enable_wined3d_wined3d_guess_gl_vendor="$1" enable_winedbg_Process_Arguments="$1" enable_winedevice_Default_Drivers="$1" @@ -401,7 +396,6 @@ patch_enable_all () enable_winex11_Window_Style="$1" enable_winex11_XEMBED="$1" enable_winex11__NET_ACTIVE_WINDOW="$1" - enable_winex11_compile_vulkan="$1" enable_winex11_wglShareLists="$1" enable_winhttp_Accept_Headers="$1" enable_winhttp_System_Proxy_Autoconfig="$1" @@ -531,9 +525,6 @@ patch_enable () d3dx9_36-CloneEffect) enable_d3dx9_36_CloneEffect="$2" ;; - d3dx9_36-D3DXCreateTeapot) - enable_d3dx9_36_D3DXCreateTeapot="$2" - ;; d3dx9_36-D3DXDisassembleShader) enable_d3dx9_36_D3DXDisassembleShader="$2" ;; @@ -621,9 +612,6 @@ patch_enable () dwrite-FontFallback) enable_dwrite_FontFallback="$2" ;; - dwrite-layout-check) - enable_dwrite_layout_check="$2" - ;; dxdiagn-Enumerate_DirectSound) enable_dxdiagn_Enumerate_DirectSound="$2" ;; @@ -753,9 +741,6 @@ patch_enable () loader-OSX_Preloader) enable_loader_OSX_Preloader="$2" ;; - ml-array_size) - enable_ml_array_size="$2" - ;; ml-patches) enable_ml_patches="$2" ;; @@ -771,9 +756,6 @@ patch_enable () mshtml-HTMLLocation_put_hash) enable_mshtml_HTMLLocation_put_hash="$2" ;; - msi-Deferral) - enable_msi_Deferral="$2" - ;; msi-MsiGetDatabaseState) enable_msi_MsiGetDatabaseState="$2" ;; @@ -1329,9 +1311,6 @@ patch_enable () wined3d-WINED3D_RS_COLORWRITEENABLE) enable_wined3d_WINED3D_RS_COLORWRITEENABLE="$2" ;; - wined3d-texture-blt-device) - enable_wined3d_texture_blt_device="$2" - ;; wined3d-wined3d_guess_gl_vendor) enable_wined3d_wined3d_guess_gl_vendor="$2" ;; @@ -1389,9 +1368,6 @@ patch_enable () winex11-_NET_ACTIVE_WINDOW) enable_winex11__NET_ACTIVE_WINDOW="$2" ;; - winex11-compile-vulkan) - enable_winex11_compile_vulkan="$2" - ;; winex11-wglShareLists) enable_winex11_wglShareLists="$2" ;; @@ -2353,13 +2329,9 @@ if test "$enable_advapi32_LsaLookupSids" -eq 1; then fi if test "$enable_Compiler_Warnings" -eq 1; then - if test "$enable_ml_array_size" -gt 1; then - abort "Patchset ml-array_size disabled, but Compiler_Warnings depends on that." - fi if test "$enable_ml_patches" -gt 1; then abort "Patchset ml-patches disabled, but Compiler_Warnings depends on that." fi - enable_ml_array_size=1 enable_ml_patches=1 fi @@ -2379,220 +2351,28 @@ if test "$enable_patchlist" -eq 1; then fi -# Patchset ml-array_size -# | -# | Modified files: -# | * dlls/amstream/main.c, dlls/amstream/tests/amstream.c, dlls/browseui/progressdlg.c, dlls/d3d10/effect.c, -# | dlls/d3d8/device.c, dlls/d3dcompiler_43/compiler.c, dlls/d3dcompiler_43/utils.c, dlls/d3dxof/main.c, -# | dlls/dnsapi/query.c, dlls/dpnet/address.c, dlls/dx8vb/main.c, dlls/dxdiagn/provider.c, dlls/evr/main.c, -# | dlls/fusion/asmcache.c, dlls/fusion/fusion.c, dlls/gameux/gameexplorer.c, dlls/hhctrl.ocx/chm.c, dlls/hhctrl.ocx/help.c, -# | dlls/inetcomm/mimeole.c, dlls/inetcomm/protocol.c, dlls/inetcpl.cpl/connections.c, dlls/inetcpl.cpl/general.c, -# | dlls/inetcpl.cpl/security.c, dlls/inetmib1/main.c, dlls/iphlpapi/iphlpapi_main.c, dlls/iphlpapi/ipstats.c, -# | dlls/itss/moniker.c, dlls/itss/protocol.c, dlls/kernel32/computername.c, dlls/kernel32/console.c, dlls/kernel32/file.c, -# | dlls/kernel32/lcformat.c, dlls/kernel32/locale.c, dlls/kernel32/module.c, dlls/kernel32/path.c, dlls/kernel32/process.c, -# | dlls/kernel32/profile.c, dlls/kernel32/sync.c, dlls/kernel32/term.c, dlls/kernel32/volume.c, dlls/krnl386.exe16/int21.c, -# | dlls/krnl386.exe16/interrupts.c, dlls/krnl386.exe16/relay.c, dlls/krnl386.exe16/snoop.c, dlls/krnl386.exe16/vxd.c, -# | dlls/localspl/localmon.c, dlls/localspl/provider.c, dlls/localui/localui.c, dlls/mapi32/sendmail.c, dlls/mapi32/util.c, -# | dlls/mciwave/mciwave.c, dlls/midimap/midimap.c, dlls/mmdevapi/devenum.c, dlls/mmdevapi/main.c, -# | dlls/mountmgr.sys/device.c, dlls/mpr/wnet.c, dlls/msacm32/filter.c, dlls/msacm32/format.c, dlls/msacm32/internal.c, -# | dlls/msacm32/pcmconverter.c, dlls/msacm32/tests/msacm.c, dlls/mscms/profile.c, dlls/mscoree/config.c, -# | dlls/mscoree/corruntimehost.c, dlls/mscoree/mscoree_main.c, dlls/msctf/documentmgr.c, dlls/msrle32/msrle32.c, -# | dlls/msscript.ocx/msscript.c, dlls/msvcrt/console.c, dlls/msvcrt/ctype.c, dlls/msvcrt/errno.c, dlls/msvcrt/except.c, -# | dlls/msvcrt/exit.c, dlls/msvcrt/file.c, dlls/msvcrt/locale.c, dlls/msvcrt/printf.h, dlls/msvcrt/process.c, -# | dlls/msvcrt/scheduler.c, dlls/msvcrt/wcs.c, dlls/msvideo.dll16/msvideo16.c, dlls/scrobj/scrobj.c, -# | dlls/storage.dll16/storage.c, dlls/urlmon/urlmon_main.c, dlls/windowscodecs/bitmap.c, dlls/windowscodecs/bmpencode.c, -# | dlls/windowscodecs/jpegformat.c, dlls/windowscodecs/metadataquery.c, dlls/windowscodecs/pngformat.c, -# | dlls/windowscodecs/tiffformat.c, include/wine/server_protocol.h, programs/attrib/attrib.c, programs/clock/main.c, -# | programs/clock/winclock.c, programs/hostname/hostname.c, programs/icinfo/icinfo.c, programs/ipconfig/ipconfig.c, -# | programs/msiexec/msiexec.c, programs/net/net.c, programs/taskkill/taskkill.c, programs/taskmgr/about.c, -# | programs/taskmgr/affinity.c, programs/taskmgr/applpage.c, programs/taskmgr/column.c, programs/taskmgr/dbgchnl.c, -# | programs/taskmgr/debug.c, programs/taskmgr/endproc.c, programs/taskmgr/perfdata.c, programs/taskmgr/perfpage.c, -# | programs/taskmgr/priority.c, programs/taskmgr/procpage.c, programs/taskmgr/taskmgr.c, programs/taskmgr/trayicon.c, -# | programs/uninstaller/main.c, programs/wineboot/wineboot.c, programs/winetest/gui.c, programs/winetest/main.c, -# | programs/wordpad/wordpad.c, server/request.h, server/trace.c -# | -if test "$enable_ml_array_size" -eq 1; then - patch_apply ml-array_size/0001-windowscodecs-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0003-localspl-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0004-mmdevapi-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0005-mapi32-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0006-krnl386.exe16-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0007-inetcpl.cpl-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0008-hhctrl.ocx-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0009-dpnet-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0010-dx8vb-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0011-fusion-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0012-evr-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0013-d3d10-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0014-d3d8-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0015-d3dcompiler-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0016-d3dxof-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0017-dnsapi-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0019-amstream-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0020-browseui-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0021-gameux-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0022-inetcomm-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0023-iphlpapi-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0024-itss-Remove-a-superfluous-variable-initialization.patch - patch_apply ml-array_size/0025-itss-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0026-attrib-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0027-clock-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0028-hostname-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0029-icinfo-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0030-net-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0031-taskkill-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0032-ipconfig-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0033-msiexec-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0034-taskmgr-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0035-uninstaller-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0036-wineboot-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0037-wordpad-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0038-winetest-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0039-mountmgr.sys-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0040-mpr-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0041-msacm32-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0042-msrle32-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0043-msvcrt-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0044-scrobj-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0045-storage.dll16-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0046-urlmon-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0047-msvideo.dll16-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0048-mscoree-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0049-dxdiagn-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0050-localui-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0051-inetmib1-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0052-kernel32-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0053-mciwave-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0054-midimap-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0055-mscms-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0056-msctf-Use-the-ARRAY_SIZE-macro.patch - patch_apply ml-array_size/0057-msscript.ocx-Use-the-ARRAY_SIZE-macro.patch - ( - printf '%s\n' '+ { "Michael Stefaniuc", "windowscodecs: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "localspl: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "mmdevapi: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "mapi32: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "krnl386.exe16: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "inetcpl.cpl: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "hhctrl.ocx: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "dpnet: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "dx8vb: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "fusion: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "evr: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "d3d10: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "d3d8: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "d3dcompiler: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "d3dxof: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "dnsapi: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "amstream: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "browseui: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "gameux: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "inetcomm: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "iphlpapi: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "itss: Remove a superfluous variable initialization.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "itss: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "attrib: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "clock: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "hostname: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "icinfo: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "net: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "taskkill: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "ipconfig: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "msiexec: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "taskmgr: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "uninstaller: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "wineboot: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "wordpad: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "winetest: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "mountmgr.sys: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "mpr: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "msacm32: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "msrle32: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "msvcrt: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "scrobj: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "storage.dll16: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "urlmon: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "msvideo.dll16: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "mscoree: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "dxdiagn: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "localui: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "inetmib1: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "kernel32: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "mciwave: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "midimap: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "mscms: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "msctf: Use the ARRAY_SIZE() macro.", 1 },'; - printf '%s\n' '+ { "Michael Stefaniuc", "msscript.ocx: Use the ARRAY_SIZE() macro.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ml-patches # | # | Modified files: -# | * configure, configure.ac, dlls/api-ms-win-devices-config-l1-1-0/Makefile.in, dlls/api-ms-win-devices-config-l1-1-0/api- -# | ms-win-devices-config-l1-1-0.spec, dlls/d3d8/tests/visual.c, dlls/d3d9/tests/visual.c, dlls/d3dcompiler_43/utils.c, -# | dlls/ddraw/tests/ddraw7.c, dlls/dsound/sound3d.c, dlls/hidclass.sys/hid.h, dlls/hidclass.sys/main.c, -# | dlls/hidclass.sys/pnp.c, dlls/kernel32/process.c, dlls/mpr/tests/mpr.c, dlls/mpr/wnet.c, dlls/msi/custom.c, -# | dlls/msvcp60/ios.c, dlls/msvcp90/ios.c, dlls/ntoskrnl.exe/instr.c, dlls/odbc32/odbc32.spec, dlls/odbc32/proxyodbc.c, -# | dlls/wbemprox/builtin.c, dlls/winebus.sys/bus.h, dlls/winebus.sys/bus_iohid.c, dlls/winebus.sys/bus_sdl.c, -# | dlls/winebus.sys/bus_udev.c, dlls/winebus.sys/main.c, dlls/wined3d/utils.c, dlls/winevulkan/make_vulkan, -# | dlls/winevulkan/vulkan.c, dlls/winevulkan/winevulkan.spec, dlls/winmm/tests/wave.c, dlls/winmm/waveform.c, -# | dlls/wmp/player.c, dlls/wmp/tests/oleobj.c, libs/wine/loader.c, loader/wine.inf.in, -# | programs/cmd/tests/test_builtins.cmd, programs/cmd/tests/test_builtins.cmd.exp, programs/cmd/wcmdmain.c, -# | programs/msiexec/msiexec.c, programs/winecfg/resource.h, programs/winecfg/theme.c, programs/winecfg/winecfg.rc, -# | programs/winemenubuilder/winemenubuilder.c, tools/make_specfiles +# | * dlls/hidclass.sys/hid.h, dlls/hidclass.sys/main.c, dlls/hidclass.sys/pnp.c, dlls/kernel32/process.c, +# | dlls/winebus.sys/bus.h, dlls/winebus.sys/bus_iohid.c, dlls/winebus.sys/bus_sdl.c, dlls/winebus.sys/bus_udev.c, +# | dlls/winebus.sys/main.c, libs/wine/loader.c, programs/cmd/tests/test_builtins.cmd, +# | programs/cmd/tests/test_builtins.cmd.exp, programs/cmd/wcmdmain.c, programs/winecfg/resource.h, +# | programs/winecfg/theme.c, programs/winecfg/winecfg.rc, programs/winemenubuilder/winemenubuilder.c # | if test "$enable_ml_patches" -eq 1; then - patch_apply ml-patches/0001-wined3d-Fix-WINED3D_MCS_COLOR2.patch - patch_apply ml-patches/0002-d3d9-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch - patch_apply ml-patches/0003-d3d8-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch - patch_apply ml-patches/0004-ddraw-tests-Add-a-test-for-D3DMCS_COLOR-1-2.patch - patch_apply ml-patches/0005-dsound-Correctly-calculate-angle-between-vectors-wit.patch patch_apply ml-patches/0006-hidclass.sys-Unload-all-devices-before-unloading-a-m.patch - patch_apply ml-patches/0007-wine.inf-Add-Sources-key.patch patch_apply ml-patches/0008-programs-Allow-to-disable-MIME-type-associations.patch - patch_apply ml-patches/0009-api-ms-win-devices-config-l1-1-0-Add-dll.patch - patch_apply ml-patches/0010-wnet-Make-WNetGetUniversalNameW-return-required-size.patch - patch_apply ml-patches/0011-msvcp90-Fix-EOF-delimiter-handling-in-basic_istream-.patch - patch_apply ml-patches/0012-ntoskrnl-Emulate-sti-cli-instructions-on-x86_64.patch patch_apply ml-patches/0013-winebus.sys-Do-not-report-HID-report-read-errors-unc.patch - patch_apply ml-patches/0014-odbc32-Rename-functions-to-avoid-conflicts-with-nati.patch - patch_apply ml-patches/0015-winmm-Don-t-crash-in-waveOutOpen-when-nSamplesPerSec.patch - patch_apply ml-patches/0016-msi-Generate-unique-names-for-32-and-64-bit-custom-a.patch - patch_apply ml-patches/0017-winevulkan-Expose-driver-vkGetInstanceProcAddr-via-w.patch - patch_apply ml-patches/0018-winevulkan-Mark-ICD-and-thunking-functions-as-privat.patch - patch_apply ml-patches/0019-wmp-Make-it-possible-to-query-IUnknown-from-IWMPCont.patch patch_apply ml-patches/0020-libwine-Use-getsegmentdata-3-on-Mac-OS-to-find-the-e.patch - patch_apply ml-patches/0021-d3dcompiler-Make-types-array-static-const.patch patch_apply ml-patches/0022-kernel32-Set-environment-variable-PUBLIC-on-the-proc.patch - patch_apply ml-patches/0023-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPAdd.patch - patch_apply ml-patches/0024-wbemprox-Add-Win32_NetworkAdapterConfiguration-IPSub.patch patch_apply ml-patches/0028-cmd-Handle-quotes-when-parsing-the-folders-in-the-PA.patch ( - printf '%s\n' '+ { "Stefan Dösinger", "wined3d: Fix WINED3D_MCS_COLOR2.", 1 },'; - printf '%s\n' '+ { "Stefan Dösinger", "d3d9/tests: Add a test for D3DMCS_COLOR{1/2}.", 1 },'; - printf '%s\n' '+ { "Stefan Dösinger", "d3d8/tests: Add a test for D3DMCS_COLOR{1/2}.", 1 },'; - printf '%s\n' '+ { "Stefan Dösinger", "ddraw/tests: Add a test for D3DMCS_COLOR{1/2}.", 1 },'; - printf '%s\n' '+ { "Andrew Eikum", "dsound: Correctly calculate angle between vectors with equal and opposite directions.", 1 },'; printf '%s\n' '+ { "Aric Stewart", "hidclass.sys: Unload all devices before unloading a minidriver.", 1 },'; - printf '%s\n' '+ { "Gijs Vermeulen", "wine.inf: Add \"Sources\" key.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "programs: Allow to disable MIME-type associations.", 1 },'; - printf '%s\n' '+ { "Andrey Gusev", "api-ms-win-devices-config-l1-1-0: Add dll.", 1 },'; - printf '%s\n' '+ { "Fabian Maurer", "wnet: Make WNetGetUniversalNameW return required size when buffer is too small and add test.", 1 },'; - printf '%s\n' '+ { "Piotr Caban", "msvcp90: Fix EOF delimiter handling in basic_istream::ignore.", 1 },'; - printf '%s\n' '+ { "Fabian Maurer", "ntoskrnl: Emulate sti/cli instructions on x86_64.", 1 },'; printf '%s\n' '+ { "Kai Krakow", "winebus.sys: Do not report HID report read errors unconditionally.", 1 },'; - printf '%s\n' '+ { "Daniel Lehman", "odbc32: Rename functions to avoid conflicts with native drivers.", 1 },'; - printf '%s\n' '+ { "Fabian Maurer", "winmm: Don'\''t crash in waveOutOpen when nSamplesPerSec is 0 and add tests.", 1 },'; - printf '%s\n' '+ { "Zebediah Figura", "msi: Generate unique names for 32- and 64-bit custom action server pipes.", 1 },'; - printf '%s\n' '+ { "Jacek Caban", "winevulkan: Expose driver vkGetInstanceProcAddr via winevulkan exports.", 1 },'; - printf '%s\n' '+ { "Jacek Caban", "winevulkan: Mark ICD and thunking functions as private.", 1 },'; - printf '%s\n' '+ { "Nikolay Sivov", "wmp: Make it possible to query IUnknown from IWMPControls.", 1 },'; printf '%s\n' '+ { "Chip Davis", "libwine: Use getsegmentdata(3) on Mac OS to find the end of the __TEXT segment.", 1 },'; - printf '%s\n' '+ { "Matteo Bruni", "d3dcompiler: Make types array static const.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "kernel32: Set environment variable %PUBLIC% on the process start-up.", 1 },'; - printf '%s\n' '+ { "Piotr Caban", "wbemprox: Add Win32_NetworkAdapterConfiguration::IPAddress property.", 1 },'; - printf '%s\n' '+ { "Piotr Caban", "wbemprox: Add Win32_NetworkAdapterConfiguration::IPSubnet property.", 1 },'; printf '%s\n' '+ { "Fabian Maurer", "cmd: Handle quotes when parsing the folders in the PATH environment variable.", 1 },'; ) >> "$patchlist" fi @@ -2600,7 +2380,7 @@ fi # Patchset Compiler_Warnings # | # | This patchset has the following (direct or indirect) dependencies: -# | * ml-array_size, ml-patches +# | * ml-patches # | # | Modified files: # | * dlls/amstream/mediastreamfilter.c, dlls/d2d1/brush.c, dlls/d2d1/geometry.c, dlls/d3d11/view.c, dlls/d3d8/texture.c, @@ -3425,21 +3205,6 @@ if test "$enable_d3dx9_36_CloneEffect" -eq 1; then ) >> "$patchlist" fi -# Patchset d3dx9_36-D3DXCreateTeapot -# | -# | This patchset fixes the following Wine bugs: -# | * [#36884] Return a valid mesh in D3DXCreateTeapot -# | -# | Modified files: -# | * dlls/d3dx9_36/mesh.c -# | -if test "$enable_d3dx9_36_D3DXCreateTeapot" -eq 1; then - patch_apply d3dx9_36-D3DXCreateTeapot/0001-d3dx9_36-Return-a-mesh-in-D3DXCreateTeapot.patch - ( - printf '%s\n' '+ { "Alistair Leslie-Hughes", "d3dx9_36: Return a mesh in D3DXCreateTeapot.", 1 },'; - ) >> "$patchlist" -fi - # Patchset d3dx9_36-D3DXDisassembleShader # | # | Modified files: @@ -3962,21 +3727,6 @@ if test "$enable_dwrite_FontFallback" -eq 1; then ) >> "$patchlist" fi -# Patchset dwrite-layout-check -# | -# | This patchset fixes the following Wine bugs: -# | * [#45535] - dwrite Correct out of access -# | -# | Modified files: -# | * dlls/dwrite/layout.c -# | -if test "$enable_dwrite_layout_check" -eq 1; then - patch_apply dwrite-layout-check/0001-dwrite-Avoid-possible-out-of-bounds-cluster-metrics-.patch - ( - printf '%s\n' '+ { "Nikolay Sivov", "dwrite: Avoid possible out-of-bounds cluster metrics access.", 1 },'; - ) >> "$patchlist" -fi - # Patchset dxdiagn-Enumerate_DirectSound # | # | This patchset fixes the following Wine bugs: @@ -4808,23 +4558,6 @@ if test "$enable_mshtml_HTMLLocation_put_hash" -eq 1; then ) >> "$patchlist" fi -# Patchset msi-Deferral -# | -# | This patchset fixes the following Wine bugs: -# | * [#34989] Multiple installers using Caphyon 'Advanced Installer' (AI) technology hang (Atlassian SourceTree v1.3.2, -# | League of Legends 2013+) (deferred type 1 custom action executed before regular type 1 custom action) -# | -# | Modified files: -# | * dlls/msi/action.c, dlls/msi/assembly.c, dlls/msi/classes.c, dlls/msi/custom.c, dlls/msi/files.c, dlls/msi/font.c, -# | dlls/msi/msipriv.h, dlls/msi/tests/custom.c, dlls/msi/tests/install.c -# | -if test "$enable_msi_Deferral" -eq 1; then - patch_apply msi-Deferral/0001-msi-Implement-deferral-for-standard-and-custom-actio.patch - ( - printf '%s\n' '+ { "Zebediah Figura", "msi: Implement deferral for standard and custom actions.", 1 },'; - ) >> "$patchlist" -fi - # Patchset msi-MsiGetDatabaseState # | # | Modified files: @@ -4907,21 +4640,13 @@ fi # | * [#14695] Implement support for converting 16 bit depth to 24 bit in msvidc32 # | # | Modified files: -# | * dlls/iccvid/iccvid.c, dlls/msvfw32/msvideo_main.c, dlls/msvfw32/tests/msvfw.c, dlls/msvidc32/msvideo1.c +# | * dlls/iccvid/iccvid.c, dlls/msvfw32/tests/msvfw.c, dlls/msvidc32/msvideo1.c # | if test "$enable_msvfw32_ICGetDisplayFormat" -eq 1; then - patch_apply msvfw32-ICGetDisplayFormat/0001-msvfw32-Try-different-formarts-in-ICGetDisplayFormat.patch - patch_apply msvfw32-ICGetDisplayFormat/0002-msvfw32-Add-test-for-negative-width-height-values-pa.patch - patch_apply msvfw32-ICGetDisplayFormat/0003-msvfw32-Set-biSizeImage-correctly-in-ICGetDisplayFor.patch - patch_apply msvfw32-ICGetDisplayFormat/0004-msvfw32-Take-stride-into-account-and-ask-for-palette.patch patch_apply msvfw32-ICGetDisplayFormat/0005-iccvid-Fix-calculation-of-stride-and-size.patch patch_apply msvfw32-ICGetDisplayFormat/0006-msvidc32-Add-support-for-converting-16-bit-depth-to-.patch patch_apply msvfw32-ICGetDisplayFormat/0007-msvidc32-Fix-calculation-of-stride-and-size.patch ( - printf '%s\n' '+ { "Michael Müller", "msvfw32: Try different formarts in ICGetDisplayFormat.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "msvfw32: Add test for negative width/height values passed to ICGetDisplayFormat.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "msvfw32: Set biSizeImage correctly in ICGetDisplayFormat.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "msvfw32: Take stride into account and ask for palette in ICGetDisplayFormat.", 1 },'; printf '%s\n' '+ { "Michael Müller", "iccvid: Fix calculation of stride and size.", 1 },'; printf '%s\n' '+ { "Michael Müller", "msvidc32: Add support for converting 16 bit depth to 24 bit.", 1 },'; printf '%s\n' '+ { "Michael Müller", "msvidc32: Fix calculation of stride and size.", 1 },'; @@ -5873,7 +5598,7 @@ fi # Patchset ntoskrnl-Stubs # | # | This patchset has the following (direct or indirect) dependencies: -# | * ml-array_size, ml-patches, Compiler_Warnings +# | * ml-patches, Compiler_Warnings # | # | Modified files: # | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, dlls/ntoskrnl.exe/tests/driver.c, include/ddk/wdm.h, @@ -8040,21 +7765,6 @@ if test "$enable_wined3d_WINED3DFMT_B8G8R8X8_UNORM" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-texture-blt-device -# | -# | This patchset fixes the following Wine bugs: -# | * [#45382] Stop the Sting demo crashing -# | -# | Modified files: -# | * dlls/wined3d/texture.c -# | -if test "$enable_wined3d_texture_blt_device" -eq 1; then - patch_apply wined3d-texture-blt-device/0001-wined3d-Dont-blt-textures-on-different-devices.patch - ( - printf '%s\n' '+ { "Józef Kucia", "wined3d: Dont blt textures on different devices.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-wined3d_guess_gl_vendor # | # | This patchset fixes the following Wine bugs: @@ -8085,7 +7795,7 @@ fi # Patchset winedevice-Default_Drivers # | # | This patchset has the following (direct or indirect) dependencies: -# | * dxva2-Video_Decoder, ml-array_size, ml-patches, Compiler_Warnings, ntoskrnl-Stubs +# | * dxva2-Video_Decoder, ml-patches, Compiler_Warnings, ntoskrnl-Stubs # | # | Modified files: # | * configure.ac, dlls/dxgkrnl.sys/Makefile.in, dlls/dxgkrnl.sys/dxgkrnl.sys.spec, dlls/dxgkrnl.sys/main.c, @@ -8363,21 +8073,6 @@ if test "$enable_winex11_XEMBED" -eq 1; then ) >> "$patchlist" fi -# Patchset winex11-compile-vulkan -# | -# | This patchset fixes the following Wine bugs: -# | * [#45554] - Correct compile error with gcc 4.5 -# | -# | Modified files: -# | * dlls/winex11.drv/vulkan.c -# | -if test "$enable_winex11_compile_vulkan" -eq 1; then - patch_apply winex11-compile-vulkan/0001-winex11.drv-Correct-bBuild-fail-with-GCC-4.5.patch - ( - printf '%s\n' '+ { "Józef Kucia", "winex11.drv: Correct bBuild fail with GCC 4.5.", 1 },'; - ) >> "$patchlist" -fi - # Patchset winex11-wglShareLists # | # | This patchset fixes the following Wine bugs: diff --git a/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch b/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch index b2d319b1..9ab2184b 100644 --- a/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch +++ b/patches/wined3d-Dual_Source_Blending/0003-wined3d-Implement-dual-source-blending.patch @@ -1,4 +1,4 @@ -From e0d173b54b5c76ffc1eda2f973d0d470e3c20cca Mon Sep 17 00:00:00 2001 +From ad95d230cde0c3fe96259e823ed46be34f801fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 18 Aug 2017 23:51:59 +0200 Subject: [PATCH] wined3d: Implement dual source blending. @@ -14,10 +14,10 @@ Subject: [PATCH] wined3d: Implement dual source blending. 7 files changed, 74 insertions(+), 9 deletions(-) diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c -index 413c07a..b44d5b5 100644 +index e6e3c215c1..6e025d23ab 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c -@@ -27727,7 +27727,7 @@ static void test_dual_blending(void) +@@ -27869,7 +27869,7 @@ static void test_dual_blending(void) ID3D11DeviceContext_ClearRenderTargetView(context, rtv[1], white); ID3D11DeviceContext_Draw(context, 3, 0); @@ -27,7 +27,7 @@ index 413c07a..b44d5b5 100644 ID3D11BlendState_Release(blend_state); diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index 21ad11d..ec5af4f 100644 +index 21ad11d958..ec5af4f5a4 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -3131,10 +3131,19 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const @@ -52,10 +52,10 @@ index 21ad11d..ec5af4f 100644 { i = wined3d_bit_scan(&mask); diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c -index 9ecc4ed..dae2ba7 100644 +index 3a958991b1..552a4b9a1c 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c -@@ -3515,6 +3515,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info) +@@ -3544,6 +3544,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info) gl_info->limits.buffers = min(MAX_RENDER_TARGET_VIEWS, gl_max); TRACE("Max draw buffers: %u.\n", gl_max); } @@ -68,7 +68,7 @@ index 9ecc4ed..dae2ba7 100644 if (gl_info->supported[ARB_MULTITEXTURE]) { if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT]) -@@ -4314,6 +4320,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, +@@ -4343,6 +4349,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, for (i = 0; i < gl_info->limits.buffers; ++i) d3d_info->valid_rt_mask |= (1u << i); @@ -80,7 +80,7 @@ index 9ecc4ed..dae2ba7 100644 { /* We do not want to deal with re-creating immutable texture storage for color keying emulation. */ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index af50c8b..fc61b6f 100644 +index a4e66ccca7..49fb5f7c59 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -3036,6 +3036,7 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register * @@ -91,7 +91,7 @@ index af50c8b..fc61b6f 100644 if (reg->idx[0].offset >= gl_info->limits.buffers) WARN("Write to render target %u, only %d supported.\n", reg->idx[0].offset, gl_info->limits.buffers); -@@ -7892,7 +7893,10 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context +@@ -7896,7 +7897,10 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context { const struct wined3d_shader_signature *output_signature = &shader->output_signature; @@ -103,7 +103,7 @@ index af50c8b..fc61b6f 100644 if (output_signature->element_count) { for (i = 0; i < output_signature->element_count; ++i) -@@ -7907,7 +7911,12 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context +@@ -7911,7 +7915,12 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context continue; } if (shader_glsl_use_explicit_attrib_location(gl_info)) @@ -117,7 +117,7 @@ index af50c8b..fc61b6f 100644 shader_addline(buffer, "out %s4 color_out%u;\n", component_type_info[output->component_type].glsl_vector_type, output->semantic_idx); } -@@ -7920,7 +7929,12 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context +@@ -7924,7 +7933,12 @@ static GLuint shader_glsl_generate_pshader(const struct wined3d_context *context { i = wined3d_bit_scan(&mask); if (shader_glsl_use_explicit_attrib_location(gl_info)) @@ -132,7 +132,7 @@ index af50c8b..fc61b6f 100644 } } diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index 20d4f07..f2e3c23 100644 +index 20d4f0773d..f2e3c23976 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -4101,6 +4101,8 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 @@ -145,7 +145,7 @@ index 20d4f07..f2e3c23 100644 static HRESULT pixel_shader_init(struct wined3d_shader *shader, struct wined3d_device *device, diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c -index 3b2f845..6d243a4 100644 +index 2dd6ac2a63..a2e95a4a56 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -533,12 +533,14 @@ static void state_blend(struct wined3d_context *context, const struct wined3d_st @@ -188,7 +188,7 @@ index 3b2f845..6d243a4 100644 state->render_states[WINED3D_RS_SRCBLEND], state->render_states[WINED3D_RS_DESTBLEND], rt_format); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index a25c296..b41d65c 100644 +index 368b817950..c3a3c16aa0 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -190,6 +190,7 @@ struct wined3d_d3d_info @@ -209,17 +209,17 @@ index a25c296..b41d65c 100644 }; enum fog_src_type -@@ -1911,7 +1913,8 @@ struct wined3d_context - DWORD transform_feedback_paused : 1; +@@ -1913,7 +1915,8 @@ struct wined3d_context DWORD shader_update_mask : 6; /* WINED3D_SHADER_TYPE_COUNT, 6 */ DWORD clip_distance_mask : 8; /* MAX_CLIP_DISTANCES, 8 */ -- DWORD padding : 9; + DWORD num_untracked_materials : 2; /* Max value 2 */ +- DWORD padding : 7; + DWORD last_was_dual_blend : 1; -+ DWORD padding : 8; ++ DWORD padding : 6; DWORD constant_update_mask; DWORD numbered_array_mask; -@@ -2536,6 +2539,7 @@ struct wined3d_fbo_ops +@@ -2540,6 +2543,7 @@ struct wined3d_fbo_ops struct wined3d_gl_limits { UINT buffers; @@ -227,7 +227,7 @@ index a25c296..b41d65c 100644 UINT lights; UINT textures; UINT texture_coords; -@@ -2877,6 +2881,22 @@ struct wined3d_state +@@ -2881,6 +2885,22 @@ struct wined3d_state struct wined3d_rasterizer_state *rasterizer_state; }; @@ -251,5 +251,5 @@ index a25c296..b41d65c 100644 { GLuint tex_1d; -- -2.7.4 +2.18.0 diff --git a/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch b/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch index ba6af1ef..a437dbb4 100644 --- a/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch +++ b/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch @@ -1,26 +1,18 @@ -From feccefdad49772bbc87502daca1a78bbfbaaf85e Mon Sep 17 00:00:00 2001 +From 63321a59b4769c96ad2a1e852c363e7a5cd2b1c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 31 Aug 2017 00:23:43 +0200 -Subject: d3d9/tests: Test normal calculation when indexed vertex blending is - enabled. +Subject: [PATCH] d3d9/tests: Test normal calculation when indexed vertex + blending is enabled. --- - dlls/d3d9/tests/visual.c | 115 ++++++++++++++++++++++++++++++++++++++--------- + dlls/d3d9/tests/visual.c | 115 +++++++++++++++++++++++++++++++-------- 1 file changed, 93 insertions(+), 22 deletions(-) diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index 6d05d68..052327c 100644 +index dbf2a22d94..5af2c23769 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c -@@ -20265,6 +20265,7 @@ done: - - static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char *test_id_str) - { -+ IDirect3DPixelShader9 *ps; - D3DCAPS9 caps; - D3DCOLOR color; - HRESULT hr; -@@ -20281,31 +20282,49 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char +@@ -20203,28 +20203,28 @@ static void test_vertex_blending(void) {{{ 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, @@ -51,6 +43,20 @@ index 6d05d68..052327c 100644 - 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 2.0f, 0.0f, 4.0f, -4.0f, 0.0f, 1.0f + }}}; + +@@ -20446,6 +20446,7 @@ done: + + static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char *test_id_str) + { ++ IDirect3DPixelShader9 *ps; + D3DCAPS9 caps; + D3DCOLOR color; + HRESULT hr; +@@ -20485,8 +20486,26 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 4.0f, -4.0f, 0.0f, 1.0f + }}}, + identity = + {{{ @@ -74,7 +80,7 @@ index 6d05d68..052327c 100644 static const POINT quad_upper_right_points[] = { {576, 48}, {-1, -1}, -@@ -20346,6 +20365,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char +@@ -20527,6 +20546,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char struct vec3 position; struct vec3 blendweights; DWORD matrixIndices; @@ -82,7 +88,7 @@ index 6d05d68..052327c 100644 } vertex_data[4]; const POINT *quad_points; -@@ -20355,34 +20375,34 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char +@@ -20536,34 +20556,34 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char { /* upper right */ { @@ -133,7 +139,7 @@ index 6d05d68..052327c 100644 quad_fullscreen_points, quad_fullscreen_empty_points } }; -@@ -20417,21 +20437,32 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char +@@ -20598,21 +20618,32 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char ok(hr == D3D_OK, "(%s) IDirect3DDevice9_SetRenderState D3DRS_INDEXEDVERTEXBLENDENABLE failed %08x.\n", test_id_str, hr); @@ -168,7 +174,7 @@ index 6d05d68..052327c 100644 ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr); hr = IDirect3DDevice9_EndScene(device); -@@ -20455,7 +20486,47 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char +@@ -20636,7 +20667,47 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL); ok(SUCCEEDED(hr), "Failed to present, hr %#x.\n", hr); @@ -217,5 +223,5 @@ index 6d05d68..052327c 100644 static void test_indexed_vertex_blending(void) -- -2.7.4 +2.18.0 diff --git a/patches/wined3d-texture-blt-device/0001-wined3d-Dont-blt-textures-on-different-devices.patch b/patches/wined3d-texture-blt-device/0001-wined3d-Dont-blt-textures-on-different-devices.patch deleted file mode 100644 index 0c3584eb..00000000 --- a/patches/wined3d-texture-blt-device/0001-wined3d-Dont-blt-textures-on-different-devices.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e6e3c84e63ad7e10d76fef20d7526bcc7b29586c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B3zef=20Kucia?= -Date: Thu, 28 Jun 2018 14:03:41 +1000 -Subject: [PATCH] wined3d: Dont blt textures on different devices - -Fixes: https://bugs.winehq.org/show_bug.cgi?id=45382 ---- - dlls/wined3d/texture.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index c316906..d54a648 100644 ---- a/dlls/wined3d/texture.c -+++ b/dlls/wined3d/texture.c -@@ -3097,6 +3097,12 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned - return WINED3DERR_INVALIDCALL; - } - -+ if (dst_texture->resource.device != src_texture->resource.device) -+ { -+ ERR("Rejecting blit.\n"); -+ return WINED3DERR_INVALIDCALL; -+ } -+ - wined3d_cs_emit_blt_sub_resource(dst_texture->resource.device->cs, &dst_texture->resource, dst_sub_resource_idx, - &dst_box, &src_texture->resource, src_sub_resource_idx, &src_box, flags, fx, filter); - --- -1.9.1 - diff --git a/patches/wined3d-texture-blt-device/definition b/patches/wined3d-texture-blt-device/definition deleted file mode 100644 index 908df2ce..00000000 --- a/patches/wined3d-texture-blt-device/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: [45382] Stop the Sting demo crashing - diff --git a/patches/winepulse-PulseAudio_Support/0001-winepulse.drv-Use-a-separate-mainloop-and-ctx-for-pu.patch b/patches/winepulse-PulseAudio_Support/0001-winepulse.drv-Use-a-separate-mainloop-and-ctx-for-pu.patch index 405709da..12fd5e67 100644 --- a/patches/winepulse-PulseAudio_Support/0001-winepulse.drv-Use-a-separate-mainloop-and-ctx-for-pu.patch +++ b/patches/winepulse-PulseAudio_Support/0001-winepulse.drv-Use-a-separate-mainloop-and-ctx-for-pu.patch @@ -1,15 +1,15 @@ -From 8f8bc662fcb84375077636896f724fb6b1e7a7c3 Mon Sep 17 00:00:00 2001 +From a652b6aef0055d851b630b195181f152472f18ed Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 4 Nov 2015 02:57:56 +0100 -Subject: [PATCH 1/7] winepulse.drv: Use a separate mainloop and ctx for +Subject: [PATCH] winepulse.drv: Use a separate mainloop and ctx for pulse_test_connect. --- - dlls/winepulse.drv/mmdevdrv.c | 59 ++++++++++++++++++++----------------------- + dlls/winepulse.drv/mmdevdrv.c | 59 ++++++++++++++++------------------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 32f7acb..f192b1d 100644 +index 8d57f1a45a..f6466c3602 100644 --- a/dlls/winepulse.drv/mmdevdrv.c +++ b/dlls/winepulse.drv/mmdevdrv.c @@ -369,7 +369,7 @@ static DWORD pulse_channel_map_to_channel_mask(const pa_channel_map *map) { @@ -61,7 +61,7 @@ index 32f7acb..f192b1d 100644 - pa_mainloop_set_poll_func(pulse_ml, pulse_poll_func, NULL); + pa_mainloop_set_poll_func(ml, pulse_poll_func, NULL); - GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); + GetModuleFileNameW(NULL, path, ARRAY_SIZE(path)); name = strrchrW(path, '\\'); @@ -547,24 +549,23 @@ static HRESULT pulse_test_connect(void) str = pa_xmalloc(len); @@ -147,5 +147,5 @@ index 32f7acb..f192b1d 100644 } -- -1.9.1 +2.18.0 diff --git a/patches/winepulse-PulseAudio_Support/0006-winepulse-fetch-actual-program-name-if-possible.patch b/patches/winepulse-PulseAudio_Support/0006-winepulse-fetch-actual-program-name-if-possible.patch index 5e668a71..c77524a5 100644 --- a/patches/winepulse-PulseAudio_Support/0006-winepulse-fetch-actual-program-name-if-possible.patch +++ b/patches/winepulse-PulseAudio_Support/0006-winepulse-fetch-actual-program-name-if-possible.patch @@ -1,7 +1,7 @@ -From 96f3c707d891d972a57d5879b55813c063c392f9 Mon Sep 17 00:00:00 2001 +From 0fb0fcc51b4b9e167289ad92d01cc5179bef2f50 Mon Sep 17 00:00:00 2001 From: Mark Harmstone Date: Sun, 21 Dec 2014 23:49:41 +0000 -Subject: [PATCH 6/7] winepulse: fetch actual program name if possible +Subject: [PATCH] winepulse: fetch actual program name if possible Changes by Sebastian Lackner : * Improved error handling, fix memory leak @@ -10,11 +10,11 @@ Changes by Sebastian Lackner : * Simplify algorithm to choose best translation. --- dlls/winepulse.drv/Makefile.in | 2 +- - dlls/winepulse.drv/mmdevdrv.c | 123 ++++++++++++++++++++++++++++++++++++++--- - 2 files changed, 116 insertions(+), 9 deletions(-) + dlls/winepulse.drv/mmdevdrv.c | 124 ++++++++++++++++++++++++++++++--- + 2 files changed, 117 insertions(+), 9 deletions(-) diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in -index d660063..2448789 100644 +index d660063236..2448789ded 100644 --- a/dlls/winepulse.drv/Makefile.in +++ b/dlls/winepulse.drv/Makefile.in @@ -1,5 +1,5 @@ @@ -25,7 +25,7 @@ index d660063..2448789 100644 EXTRAINCL = $(PULSE_CFLAGS) diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c -index 8311cbd..becf6a3 100644 +index 32e32cefbe..089d5b9c2f 100644 --- a/dlls/winepulse.drv/mmdevdrv.c +++ b/dlls/winepulse.drv/mmdevdrv.c @@ -43,6 +43,7 @@ @@ -146,10 +146,10 @@ index 8311cbd..becf6a3 100644 static HRESULT pulse_connect(void) { int len; -@@ -494,14 +598,17 @@ static HRESULT pulse_connect(void) +@@ -494,14 +598,18 @@ static HRESULT pulse_connect(void) pa_context_unref(pulse_ctx); - GetModuleFileNameW(NULL, path, sizeof(path)/sizeof(*path)); + GetModuleFileNameW(NULL, path, ARRAY_SIZE(path)); - name = strrchrW(path, '\\'); - if (!name) - name = path; @@ -169,9 +169,10 @@ index 8311cbd..becf6a3 100644 + str = pa_xmalloc(len); + WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL); + } ++ TRACE("Name: %s\n", str); pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str); pa_xfree(str); -- -1.9.1 +2.18.0 diff --git a/patches/winex11-compile-vulkan/0001-winex11.drv-Correct-bBuild-fail-with-GCC-4.5.patch b/patches/winex11-compile-vulkan/0001-winex11.drv-Correct-bBuild-fail-with-GCC-4.5.patch deleted file mode 100644 index 762440a8..00000000 --- a/patches/winex11-compile-vulkan/0001-winex11.drv-Correct-bBuild-fail-with-GCC-4.5.patch +++ /dev/null @@ -1,24 +0,0 @@ -From d4ca594567b19b44dfa64fc9fc64fd82b097fad2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B3zef=20Kucia?= -Date: Fri, 3 Aug 2018 08:35:47 +1000 -Subject: [PATCH] winex11.drv: Correct bBuild fail with GCC 4.5 - ---- - dlls/winex11.drv/vulkan.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c -index f9eea74..5de8557 100644 ---- a/dlls/winex11.drv/vulkan.c -+++ b/dlls/winex11.drv/vulkan.c -@@ -55,7 +55,6 @@ static CRITICAL_SECTION context_section = { &critsect_debug, -1, 0, 0, 0, 0 }; - - static XContext vulkan_hwnd_context; - --typedef VkFlags VkXlibSurfaceCreateFlagsKHR; - #define VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR 1000004000 - - struct wine_vk_surface --- -1.9.1 - diff --git a/patches/winex11-compile-vulkan/definition b/patches/winex11-compile-vulkan/definition deleted file mode 100644 index 1fe7649e..00000000 --- a/patches/winex11-compile-vulkan/definition +++ /dev/null @@ -1,2 +0,0 @@ -Fixes: [45554] - Correct compile error with gcc 4.5 -