diff --git a/README.md b/README.md index 6f43f7fc..9e22c6c6 100644 --- a/README.md +++ b/README.md @@ -37,10 +37,9 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [2]:** +**Bugfixes and features included in the next upcoming release [1]:** * Fix handling of subdirectory in FtpFindFirstFile ([Wine Bug #16526](https://bugs.winehq.org/show_bug.cgi?id=16526)) -* Return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK ([Wine Bug #32169](https://bugs.winehq.org/show_bug.cgi?id=32169)) **Bugs fixed in Wine Staging 1.7.33 [119]:** @@ -93,7 +92,7 @@ Included bug fixes and improvements * Implement a Microsoft Yahei replacement font ([Wine Bug #13829](https://bugs.winehq.org/show_bug.cgi?id=13829)) * Implement an Arial replacement font ([Wine Bug #32323](https://bugs.winehq.org/show_bug.cgi?id=32323)) * Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042)) -* Implement stubs for mfplat.MFStartup and MFShutdown ([Wine Bug #37701](https://bugs.winehq.org/show_bug.cgi?id=37701)) +* ~~Implement stubs for mfplat.MFStartup and MFShutdown~~ ([Wine Bug #37701](https://bugs.winehq.org/show_bug.cgi?id=37701)) * Improvement for heap allocation performance * Initialize irp.Tail.Overlay.OriginalFileObject with stub file object ([Wine Bug #37537](https://bugs.winehq.org/show_bug.cgi?id=37537)) * Lego Stunt Rally requires DXTn software de/encoding support ([Wine Bug #25486](https://bugs.winehq.org/show_bug.cgi?id=25486)) @@ -129,7 +128,7 @@ Included bug fixes and improvements * Support for ITextDocument_fnRange function ([Wine Bug #12458](https://bugs.winehq.org/show_bug.cgi?id=12458)) * Support for ITextRange, ITextFont and ITextPara ([Wine Bug #18303](https://bugs.winehq.org/show_bug.cgi?id=18303)) * Support for Junction Points ([Wine Bug #12401](https://bugs.winehq.org/show_bug.cgi?id=12401)) -* Support for K32EnumProcessModulesEx ([Wine Bug #34864](https://bugs.winehq.org/show_bug.cgi?id=34864)) +* ~~Support for K32EnumProcessModulesEx~~ ([Wine Bug #34864](https://bugs.winehq.org/show_bug.cgi?id=34864)) * Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](https://bugs.winehq.org/show_bug.cgi?id=30385)) * Support for LoadIconMetric ([Wine Bug #35375](https://bugs.winehq.org/show_bug.cgi?id=35375)) * Support for NtQuerySection ([Wine Bug #37338](https://bugs.winehq.org/show_bug.cgi?id=37338)) @@ -137,7 +136,7 @@ Included bug fixes and improvements * Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495)) * Support for RtlDecompressBuffer ([Wine Bug #37449](https://bugs.winehq.org/show_bug.cgi?id=37449)) * Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630)) -* Support for StrCatChainW +* ~~Support for StrCatChainW~~ * Support for TOOLTIPS_GetTipText edge cases ([Wine Bug #30648](https://bugs.winehq.org/show_bug.cgi?id=30648)) * Support for TransmitFile ([Wine Bug #5048](https://bugs.winehq.org/show_bug.cgi?id=5048)) * Support for UTF7 encoding/decoding ([Wine Bug #27388](https://bugs.winehq.org/show_bug.cgi?id=27388)) diff --git a/debian/changelog b/debian/changelog index c886fc08..cb7096d9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,10 @@ wine-compholio (1.7.34) UNRELEASED; urgency=low * Added patch to return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK. * Removed patch to implement combase HSTRING objects (accepted upstream). * Removed patch to add fake ProductId to registry (accepted upstream). + * Removed patch to implement stubs for MFStartup and MFShutdown (accepted upstream). + * Removed patch to implement shlwapi.StrCatChainW (accepted upstream). + * Removed patch to implement semi-stub for psapi/kernel32 K32EnumProcessModulesEx. + * Removed patch to return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK. -- Sebastian Lackner Mon, 15 Dec 2014 22:42:09 +0100 wine-compholio (1.7.33) unstable; urgency=low diff --git a/patches/Makefile b/patches/Makefile index 76367a49..efaad4d3 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -53,10 +53,8 @@ PATCHLIST := \ kernel32-Profile.ok \ kernel32-UTF7_Support.ok \ kernel32-VerifyVersionInfo.ok \ - kernel32-get_registry_locale_info.ok \ libs-Unicode_Collation.ok \ libwine-BSD_mmap_fixed.ok \ - mfplat-Stubs.ok \ msvcp90-basic_string_wchar_dtor.ok \ msvcrt-atof_strtod.ok \ ntdll-DOS_Attributes.ok \ @@ -83,7 +81,6 @@ PATCHLIST := \ ntoskrnl-Stub_FileObject.ok \ ntoskrnl-Write_CR4.ok \ ole32-CoWaitForMultipleHandles.ok \ - psapi-K32EnumProcessModulesEx.ok \ quartz-MediaSeeking_Positions.ok \ riched20-IText_Interface.ok \ secur32-Schannel_ContextAttr.ok \ @@ -105,7 +102,6 @@ PATCHLIST := \ shell32-SHFileOperation.ok \ shell32-SHILCreateFromPath.ok \ shlwapi-PathIsDirectoryEmptyW.ok \ - shlwapi-StrCatChainW.ok \ shlwapi-UrlCombine.ok \ urlmon-CoInternetSetFeatureEnabled.ok \ user32-Dialog_Paint_Event.ok \ @@ -741,21 +737,6 @@ kernel32-VerifyVersionInfo.ok: echo '+ { "Sebastian Lackner", "ntdll: Fix condition mask handling in RtlVerifyVersionInfo.", 1 },'; \ ) > kernel32-VerifyVersionInfo.ok -# Patchset kernel32-get_registry_locale_info -# | -# | This patchset fixes the following Wine bugs: -# | * [#32169] Return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK -# | -# | Modified files: -# | * dlls/kernel32/locale.c -# | -.INTERMEDIATE: kernel32-get_registry_locale_info.ok -kernel32-get_registry_locale_info.ok: - $(call APPLY_FILE,kernel32-get_registry_locale_info/0001-kernel32-Return-proper-char-count-in-get_registry_lo.patch) - @( \ - echo '+ { "Sebastian Lackner", "kernel32: Return proper char count in get_registry_locale_info.", 1 },'; \ - ) > kernel32-get_registry_locale_info.ok - # Patchset libs-Unicode_Collation # | # | This patchset fixes the following Wine bugs: @@ -786,23 +767,6 @@ libwine-BSD_mmap_fixed.ok: echo '+ { "André Hentschel", "libwine: Use try_mmap_fixed for wine64 on FreeBSD.", 1 },'; \ ) > libwine-BSD_mmap_fixed.ok -# Patchset mfplat-Stubs -# | -# | This patchset fixes the following Wine bugs: -# | * [#37701] Implement stubs for mfplat.MFStartup and MFShutdown -# | -# | Modified files: -# | * dlls/mfplat/main.c, dlls/mfplat/mfplat.spec, include/Makefile.in, include/mferror.h -# | -.INTERMEDIATE: mfplat-Stubs.ok -mfplat-Stubs.ok: - $(call APPLY_FILE,mfplat-Stubs/0001-include-Add-mferror.h-header.patch) - $(call APPLY_FILE,mfplat-Stubs/0002-mfplat-Implement-stubs-for-MFStartup-and-MFShutdown.patch) - @( \ - echo '+ { "Sebastian Lackner", "include: Add mferror.h header.", 1 },'; \ - echo '+ { "Sebastian Lackner", "mfplat: Implement stubs for MFStartup and MFShutdown.", 1 },'; \ - ) > mfplat-Stubs.ok - # Patchset mshtml-sessionStorage # | # | Modified files: @@ -1260,21 +1224,6 @@ ole32-CoWaitForMultipleHandles.ok: echo '+ { "Sebastian Lackner", "ole32/tests: Add additional tests for CoWaitForMultipleHandles and WM_QUIT.", 1 },'; \ ) > ole32-CoWaitForMultipleHandles.ok -# Patchset psapi-K32EnumProcessModulesEx -# | -# | This patchset fixes the following Wine bugs: -# | * [#34864] Support for K32EnumProcessModulesEx -# | -# | Modified files: -# | * dlls/kernel32/kernel32.spec, dlls/kernel32/module.c, dlls/psapi/psapi.spec, include/psapi.h -# | -.INTERMEDIATE: psapi-K32EnumProcessModulesEx.ok -psapi-K32EnumProcessModulesEx.ok: - $(call APPLY_FILE,psapi-K32EnumProcessModulesEx/0001-psapi-Implement-semi-stub-for-K32EnumProcessModulesE.patch) - @( \ - echo '+ { "Sebastian Lackner", "psapi: Implement semi-stub for K32EnumProcessModulesEx.", 1 },'; \ - ) > psapi-K32EnumProcessModulesEx.ok - # Patchset quartz-MediaSeeking_Positions # | # | This patchset fixes the following Wine bugs: @@ -1632,18 +1581,6 @@ shlwapi-PathIsDirectoryEmptyW.ok: echo '+ { "Michael Müller", "shlwapi: Correctly treat '\''.'\'' when enumerating files in PathIsDirectoryEmptyW.", 1 },'; \ ) > shlwapi-PathIsDirectoryEmptyW.ok -# Patchset shlwapi-StrCatChainW -# | -# | Modified files: -# | * dlls/shlwapi/shlwapi.spec, dlls/shlwapi/string.c, dlls/shlwapi/tests/string.c -# | -.INTERMEDIATE: shlwapi-StrCatChainW.ok -shlwapi-StrCatChainW.ok: - $(call APPLY_FILE,shlwapi-StrCatChainW/0001-shlwapi-Add-implementation-for-StrCatChainW.patch) - @( \ - echo '+ { "Sebastian Lackner", "shlwapi: Add implementation for StrCatChainW.", 1 },'; \ - ) > shlwapi-StrCatChainW.ok - # Patchset shlwapi-UrlCombine # | # | Modified files: diff --git a/patches/kernel32-get_registry_locale_info/0001-kernel32-Return-proper-char-count-in-get_registry_lo.patch b/patches/kernel32-get_registry_locale_info/0001-kernel32-Return-proper-char-count-in-get_registry_lo.patch deleted file mode 100644 index b76ee18a..00000000 --- a/patches/kernel32-get_registry_locale_info/0001-kernel32-Return-proper-char-count-in-get_registry_lo.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0dc9223ea631649d09fb6e94c4c01032150c155c Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Tue, 16 Dec 2014 04:10:34 +0100 -Subject: kernel32: Return proper char count in get_registry_locale_info. - ---- - dlls/kernel32/locale.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c -index 5fee723..1460f7a 100644 ---- a/dlls/kernel32/locale.c -+++ b/dlls/kernel32/locale.c -@@ -1206,7 +1206,9 @@ static INT get_registry_locale_info( struct registry_value *registry_value, LPWS - { - if (status == STATUS_BUFFER_OVERFLOW && !buffer) - { -- ret = (size - info_size) / sizeof(WCHAR) + 1; -+ ret = (size - info_size) / sizeof(WCHAR); -+ if (!ret || ((WCHAR *)&info->Data)[ret-1]) -+ ret++; - } - else if (status == STATUS_OBJECT_NAME_NOT_FOUND) - { --- -2.1.3 - diff --git a/patches/kernel32-get_registry_locale_info/definition b/patches/kernel32-get_registry_locale_info/definition deleted file mode 100644 index 0ca7890a..00000000 --- a/patches/kernel32-get_registry_locale_info/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [32169] Return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK diff --git a/patches/mfplat-Stubs/0001-include-Add-mferror.h-header.patch b/patches/mfplat-Stubs/0001-include-Add-mferror.h-header.patch deleted file mode 100644 index f48b33ab..00000000 --- a/patches/mfplat-Stubs/0001-include-Add-mferror.h-header.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 76e1bf51109fcade8d12a828c501f86d42ba1c5f Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 12 Dec 2014 00:56:28 +0100 -Subject: include: Add mferror.h header. - ---- - include/Makefile.in | 1 + - include/mferror.h | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 83 insertions(+) - create mode 100644 include/mferror.h - -diff --git a/include/Makefile.in b/include/Makefile.in -index 3cf9ba6..ef65df5 100644 ---- a/include/Makefile.in -+++ b/include/Makefile.in -@@ -397,6 +397,7 @@ SRCDIR_INCLUDES = \ - mciavi.h \ - mcx.h \ - mediaerr.h \ -+ mferror.h \ - midles.h \ - minmax.h \ - mmddk.h \ -diff --git a/include/mferror.h b/include/mferror.h -new file mode 100644 -index 0000000..42c472f ---- /dev/null -+++ b/include/mferror.h -@@ -0,0 +1,82 @@ -+/* -+ * Copyright (C) 2014 Sebastian Lackner -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#ifndef __WINE_MFERROR_H -+#define __WINE_MFERROR_H -+ -+#define MF_E_PLATFORM_NOT_INITIALIZED _HRESULT_TYPEDEF_(0xc00d36b0) -+#define MF_E_BUFFERTOOSMALL _HRESULT_TYPEDEF_(0xc00d36b1) -+#define MF_E_INVALIDREQUEST _HRESULT_TYPEDEF_(0xc00d36b2) -+#define MF_E_INVALIDSTREAMNUMBER _HRESULT_TYPEDEF_(0xc00d36b3) -+#define MF_E_INVALIDMEDIATYPE _HRESULT_TYPEDEF_(0xc00d36b4) -+#define MF_E_NOTACCEPTING _HRESULT_TYPEDEF_(0xc00d36b5) -+#define MF_E_NOT_INITIALIZED _HRESULT_TYPEDEF_(0xc00d36b6) -+#define MF_E_UNSUPPORTED_REPRESENTATION _HRESULT_TYPEDEF_(0xc00d36b7) -+#define MF_E_NO_MORE_TYPES _HRESULT_TYPEDEF_(0xc00d36b9) -+#define MF_E_UNSUPPORTED_SERVICE _HRESULT_TYPEDEF_(0xc00d36ba) -+#define MF_E_UNEXPECTED _HRESULT_TYPEDEF_(0xc00d36bb) -+#define MF_E_INVALIDNAME _HRESULT_TYPEDEF_(0xc00d36bc) -+#define MF_E_INVALIDTYPE _HRESULT_TYPEDEF_(0xc00d36bd) -+#define MF_E_INVALID_FILE_FORMAT _HRESULT_TYPEDEF_(0xc00d36be) -+#define MF_E_INVALIDINDEX _HRESULT_TYPEDEF_(0xc00d36bf) -+#define MF_E_INVALID_TIMESTAMP _HRESULT_TYPEDEF_(0xc00d36c0) -+#define MF_E_UNSUPPORTED_SCHEME _HRESULT_TYPEDEF_(0xc00d36c3) -+#define MF_E_UNSUPPORTED_BYTESTREAM_TYPE _HRESULT_TYPEDEF_(0xc00d36c4) -+#define MF_E_UNSUPPORTED_TIME_FORMAT _HRESULT_TYPEDEF_(0xc00d36c5) -+#define MF_E_NO_SAMPLE_TIMESTAMP _HRESULT_TYPEDEF_(0xc00d36c8) -+#define MF_E_NO_SAMPLE_DURATION _HRESULT_TYPEDEF_(0xc00d36c9) -+#define MF_E_INVALID_STREAM_DATA _HRESULT_TYPEDEF_(0xc00d36cb) -+#define MF_E_RT_UNAVAILABLE _HRESULT_TYPEDEF_(0xc00d36cf) -+#define MF_E_UNSUPPORTED_RATE _HRESULT_TYPEDEF_(0xc00d36d0) -+#define MF_E_THINNING_UNSUPPORTED _HRESULT_TYPEDEF_(0xc00d36d1) -+#define MF_E_REVERSE_UNSUPPORTED _HRESULT_TYPEDEF_(0xc00d36d2) -+#define MF_E_UNSUPPORTED_RATE_TRANSITION _HRESULT_TYPEDEF_(0xc00d36d3) -+#define MF_E_RATE_CHANGE_PREEMPTED _HRESULT_TYPEDEF_(0xc00d36d4) -+#define MF_E_NOT_FOUND _HRESULT_TYPEDEF_(0xc00d36d5) -+#define MF_E_NOT_AVAILABLE _HRESULT_TYPEDEF_(0xc00d36d6) -+#define MF_E_NO_CLOCK _HRESULT_TYPEDEF_(0xc00d36d7) -+#define MF_S_MULTIPLE_BEGIN _HRESULT_TYPEDEF_(0x000d36d8) -+#define MF_E_MULTIPLE_BEGIN _HRESULT_TYPEDEF_(0xc00d36d9) -+#define MF_E_MULTIPLE_SUBSCRIBERS _HRESULT_TYPEDEF_(0xc00d36da) -+#define MF_E_TIMER_ORPHANED _HRESULT_TYPEDEF_(0xc00d36db) -+#define MF_E_STATE_TRANSITION_PENDING _HRESULT_TYPEDEF_(0xc00d36dc) -+#define MF_E_UNSUPPORTED_STATE_TRANSITION _HRESULT_TYPEDEF_(0xc00d36dd) -+#define MF_E_UNRECOVERABLE_ERROR_OCCURRED _HRESULT_TYPEDEF_(0xc00d36de) -+#define MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS _HRESULT_TYPEDEF_(0xc00d36df) -+#define MF_E_SAMPLE_NOT_WRITABLE _HRESULT_TYPEDEF_(0xc00d36e0) -+#define MF_E_INVALID_KEY _HRESULT_TYPEDEF_(0xc00d36e2) -+#define MF_E_BAD_STARTUP_VERSION _HRESULT_TYPEDEF_(0xc00d36e3) -+#define MF_E_UNSUPPORTED_CAPTION _HRESULT_TYPEDEF_(0xc00d36e4) -+#define MF_E_INVALID_POSITION _HRESULT_TYPEDEF_(0xc00d36e5) -+#define MF_E_ATTRIBUTENOTFOUND _HRESULT_TYPEDEF_(0xc00d36e6) -+#define MF_E_PROPERTY_TYPE_NOT_ALLOWED _HRESULT_TYPEDEF_(0xc00d36e7) -+ -+#define MF_E_TOPO_INVALID_OPTIONAL_NODE _HRESULT_TYPEDEF_(0xc00d520e) -+#define MF_E_TOPO_CANNOT_FIND_DECRYPTOR _HRESULT_TYPEDEF_(0xc00d5211) -+#define MF_E_TOPO_CODEC_NOT_FOUND _HRESULT_TYPEDEF_(0xc00d5212) -+#define MF_E_TOPO_CANNOT_CONNECT _HRESULT_TYPEDEF_(0xc00d5213) -+#define MF_E_TOPO_UNSUPPORTED _HRESULT_TYPEDEF_(0xc00d5214) -+#define MF_E_TOPO_INVALID_TIME_ATTRIBUTES _HRESULT_TYPEDEF_(0xc00d5215) -+#define MF_E_TOPO_LOOPS_IN_TOPOLOGY _HRESULT_TYPEDEF_(0xC00d5216) -+#define MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR _HRESULT_TYPEDEF_(0xc00d5217) -+#define MF_E_TOPO_MISSING_STREAM_DESCRIPTOR _HRESULT_TYPEDEF_(0xc00d5218) -+#define MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED _HRESULT_TYPEDEF_(0xc00d5219) -+#define MF_E_TOPO_MISSING_SOURCE _HRESULT_TYPEDEF_(0xc00d521a) -+#define MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED _HRESULT_TYPEDEF_(0xc00d521b) -+ -+#endif /* __WINE_MFERROR_H */ -\ No newline at end of file --- -2.1.3 - diff --git a/patches/mfplat-Stubs/0002-mfplat-Implement-stubs-for-MFStartup-and-MFShutdown.patch b/patches/mfplat-Stubs/0002-mfplat-Implement-stubs-for-MFStartup-and-MFShutdown.patch deleted file mode 100644 index d9c4e03c..00000000 --- a/patches/mfplat-Stubs/0002-mfplat-Implement-stubs-for-MFStartup-and-MFShutdown.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 1070c32921c59adc3c410f8e5bfaea49d7426630 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 12 Dec 2014 00:56:54 +0100 -Subject: mfplat: Implement stubs for MFStartup and MFShutdown. - ---- - dlls/mfplat/main.c | 23 +++++++++++++++++++++++ - dlls/mfplat/mfplat.spec | 4 ++-- - 2 files changed, 25 insertions(+), 2 deletions(-) - -diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c -index a72f634..d86df7d 100644 ---- a/dlls/mfplat/main.c -+++ b/dlls/mfplat/main.c -@@ -22,6 +22,11 @@ - - #include "windef.h" - #include "winbase.h" -+#include "mferror.h" -+ -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(mfplat); - - BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) - { -@@ -36,3 +41,21 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) - - return TRUE; - } -+ -+/*********************************************************************** -+ * MFStartup (mfplat.@) -+ */ -+HRESULT WINAPI MFStartup(ULONG version, DWORD flags) -+{ -+ FIXME("(%u, %u): stub\n", version, flags); -+ return MF_E_BAD_STARTUP_VERSION; -+} -+ -+/*********************************************************************** -+ * MFShutdown (mfplat.@) -+ */ -+HRESULT WINAPI MFShutdown(void) -+{ -+ FIXME("(): stub\n"); -+ return S_OK; -+} -\ No newline at end of file -diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec -index 98a7147..7100dfd 100644 ---- a/dlls/mfplat/mfplat.spec -+++ b/dlls/mfplat/mfplat.spec -@@ -131,8 +131,8 @@ - @ stub MFSerializeMediaTypeToStream - @ stub MFSerializePresentationDescriptor - @ stub MFSetSockaddrAny --@ stub MFShutdown --@ stub MFStartup -+@ stdcall MFShutdown() -+@ stdcall MFStartup(long long) - @ stub MFStreamDescriptorProtectMediaType - @ stub MFTEnum - @ stub MFTEnumEx --- -2.1.3 - diff --git a/patches/mfplat-Stubs/definition b/patches/mfplat-Stubs/definition deleted file mode 100644 index 59492983..00000000 --- a/patches/mfplat-Stubs/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [37701] Implement stubs for mfplat.MFStartup and MFShutdown diff --git a/patches/psapi-K32EnumProcessModulesEx/0001-psapi-Implement-semi-stub-for-K32EnumProcessModulesE.patch b/patches/psapi-K32EnumProcessModulesEx/0001-psapi-Implement-semi-stub-for-K32EnumProcessModulesE.patch deleted file mode 100644 index 45e01240..00000000 --- a/patches/psapi-K32EnumProcessModulesEx/0001-psapi-Implement-semi-stub-for-K32EnumProcessModulesE.patch +++ /dev/null @@ -1,76 +0,0 @@ -From a9d202e6e62edb97ddc5d3723faf27ff47cea82d Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sat, 29 Nov 2014 23:00:53 +0100 -Subject: psapi: Implement semi-stub for K32EnumProcessModulesEx. - ---- - dlls/kernel32/kernel32.spec | 1 + - dlls/kernel32/module.c | 14 ++++++++++++++ - dlls/psapi/psapi.spec | 1 + - include/psapi.h | 1 + - 4 files changed, 17 insertions(+) - -diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec -index c072780..e7e3492 100644 ---- a/dlls/kernel32/kernel32.spec -+++ b/dlls/kernel32/kernel32.spec -@@ -800,6 +800,7 @@ - @ stdcall K32EnumPageFilesA(ptr ptr) - @ stdcall K32EnumPageFilesW(ptr ptr) - @ stdcall K32EnumProcessModules(long ptr long ptr) -+@ stdcall K32EnumProcessModulesEx(long ptr long ptr long) - @ stdcall K32EnumProcesses(ptr long ptr) - @ stdcall K32GetDeviceDriverBaseNameA(ptr ptr long) - @ stdcall K32GetDeviceDriverBaseNameW(ptr ptr long) -diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c -index ca4cf41..2a87e66 100644 ---- a/dlls/kernel32/module.c -+++ b/dlls/kernel32/module.c -@@ -1247,6 +1247,20 @@ BOOL WINAPI K32EnumProcessModules(HANDLE process, HMODULE *lphModule, - } - - /*********************************************************************** -+ * K32EnumProcessModulesEx (KERNEL32.@) -+ * -+ * NOTES -+ * Returned list is in load order. -+ */ -+BOOL WINAPI K32EnumProcessModulesEx(HANDLE process, HMODULE *lphModule, -+ DWORD cb, DWORD *needed, DWORD filter) -+{ -+ FIXME("(%p, %p, %d, %p, %d) semi-stub\n", -+ process, lphModule, cb, needed, filter); -+ return K32EnumProcessModules(process, lphModule, cb, needed); -+} -+ -+/*********************************************************************** - * K32GetModuleBaseNameW (KERNEL32.@) - */ - DWORD WINAPI K32GetModuleBaseNameW(HANDLE process, HMODULE module, -diff --git a/dlls/psapi/psapi.spec b/dlls/psapi/psapi.spec -index 45a1325..d6116f8 100644 ---- a/dlls/psapi/psapi.spec -+++ b/dlls/psapi/psapi.spec -@@ -3,6 +3,7 @@ - @ stdcall EnumPageFilesA(ptr ptr) kernel32.K32EnumPageFilesA - @ stdcall EnumPageFilesW(ptr ptr) kernel32.K32EnumPageFilesW - @ stdcall EnumProcessModules(long ptr long ptr) kernel32.K32EnumProcessModules -+@ stdcall EnumProcessModulesEx(long ptr long ptr long) kernel32.K32EnumProcessModulesEx - @ stdcall EnumProcesses(ptr long ptr) kernel32.K32EnumProcesses - @ stdcall GetDeviceDriverBaseNameA(ptr ptr long) kernel32.K32GetDeviceDriverBaseNameA - @ stdcall GetDeviceDriverBaseNameW(ptr ptr long) kernel32.K32GetDeviceDriverBaseNameW -diff --git a/include/psapi.h b/include/psapi.h -index f031724..fbdd903 100644 ---- a/include/psapi.h -+++ b/include/psapi.h -@@ -81,6 +81,7 @@ extern "C" { - - BOOL WINAPI EnumProcesses(DWORD*, DWORD, DWORD*); - BOOL WINAPI EnumProcessModules(HANDLE, HMODULE*, DWORD, LPDWORD); -+BOOL WINAPI EnumProcessModulesEx(HANDLE, HMODULE*, DWORD, LPDWORD, DWORD); - DWORD WINAPI GetModuleBaseNameA(HANDLE, HMODULE, LPSTR, DWORD); - DWORD WINAPI GetModuleBaseNameW(HANDLE, HMODULE, LPWSTR, DWORD); - #define GetModuleBaseName WINELIB_NAME_AW(GetModuleBaseName) --- -2.1.3 - diff --git a/patches/psapi-K32EnumProcessModulesEx/definition b/patches/psapi-K32EnumProcessModulesEx/definition deleted file mode 100644 index 3e4e3853..00000000 --- a/patches/psapi-K32EnumProcessModulesEx/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [34864] Support for K32EnumProcessModulesEx diff --git a/patches/shlwapi-StrCatChainW/0001-shlwapi-Add-implementation-for-StrCatChainW.patch b/patches/shlwapi-StrCatChainW/0001-shlwapi-Add-implementation-for-StrCatChainW.patch deleted file mode 100644 index 5fce64cf..00000000 --- a/patches/shlwapi-StrCatChainW/0001-shlwapi-Add-implementation-for-StrCatChainW.patch +++ /dev/null @@ -1,233 +0,0 @@ -From a850bb89ae8c415c8d7f04ba1c77b8933ca66d64 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sun, 7 Dec 2014 22:55:31 +0100 -Subject: shlwapi: Add implementation for StrCatChainW. - -Based on a patch by Huw Campbell. ---- - dlls/shlwapi/shlwapi.spec | 1 + - dlls/shlwapi/string.c | 41 +++++++++++++++ - dlls/shlwapi/tests/string.c | 122 ++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 164 insertions(+) - -diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec -index b7aac08..6b6ead2 100644 ---- a/dlls/shlwapi/shlwapi.spec -+++ b/dlls/shlwapi/shlwapi.spec -@@ -759,6 +759,7 @@ - @ stdcall StrCSpnW (wstr wstr) - @ stdcall StrCatBuffA (str str long) - @ stdcall StrCatBuffW (wstr wstr long) -+@ stdcall StrCatChainW (ptr long long wstr) - @ stdcall StrCatW (ptr wstr) - @ stdcall StrChrA (str long) - @ stdcall StrChrIA (str long) -diff --git a/dlls/shlwapi/string.c b/dlls/shlwapi/string.c -index 9ba6038..dfa383e 100644 ---- a/dlls/shlwapi/string.c -+++ b/dlls/shlwapi/string.c -@@ -459,6 +459,47 @@ LPWSTR WINAPI StrCatW(LPWSTR lpszStr, LPCWSTR lpszSrc) - } - - /************************************************************************* -+ * StrCatChainW [SHLWAPI.@] -+ * -+ * Concatenates two unicode strings. -+ * -+ * PARAMS -+ * lpszStr [O] Initial string -+ * cchMax [I] Length of destination buffer -+ * ichAt [I] Offset from the destination buffer to begin concatenation -+ * lpszCat [I] String to concatenate -+ * -+ * RETURNS -+ * The offset from the beginning of pszDst to the terminating NULL. -+ */ -+DWORD WINAPI StrCatChainW(LPWSTR lpszStr, DWORD cchMax, DWORD ichAt, LPCWSTR lpszCat) -+{ -+ TRACE("(%s,%i,%i,%s)\n", debugstr_w(lpszStr), cchMax, ichAt, debugstr_w(lpszCat)); -+ -+ if (ichAt == -1) -+ ichAt = strlenW(lpszStr); -+ -+ if (!cchMax) -+ return ichAt; -+ -+ if (ichAt == cchMax) -+ ichAt--; -+ -+ if (lpszCat && ichAt <= cchMax) -+ { -+ lpszStr += ichAt; -+ while (ichAt < cchMax - 1 && *lpszCat) -+ { -+ *lpszStr++ = *lpszCat++; -+ ichAt++; -+ } -+ *lpszStr = 0; -+ } -+ -+ return ichAt; -+} -+ -+/************************************************************************* - * StrCpyW [SHLWAPI.@] - * - * Copy a string to another string. -diff --git a/dlls/shlwapi/tests/string.c b/dlls/shlwapi/tests/string.c -index c72b774..ac14db0 100644 ---- a/dlls/shlwapi/tests/string.c -+++ b/dlls/shlwapi/tests/string.c -@@ -48,6 +48,7 @@ static DWORD (WINAPI *pSHAnsiToAnsi)(LPCSTR,LPSTR,int); - static DWORD (WINAPI *pSHUnicodeToUnicode)(LPCWSTR,LPWSTR,int); - static LPSTR (WINAPI *pStrCatBuffA)(LPSTR,LPCSTR,INT); - static LPWSTR (WINAPI *pStrCatBuffW)(LPWSTR,LPCWSTR,INT); -+static DWORD (WINAPI *pStrCatChainW)(LPWSTR,DWORD,DWORD,LPCWSTR); - static LPSTR (WINAPI *pStrCpyNXA)(LPSTR,LPCSTR,int); - static LPWSTR (WINAPI *pStrCpyNXW)(LPWSTR,LPCWSTR,int); - static LPSTR (WINAPI *pStrFormatByteSize64A)(LONGLONG,LPSTR,UINT); -@@ -1481,6 +1482,125 @@ static void test_StrStrNIW(void) - } - } - -+static void test_StrCatChainW(void) -+{ -+ static const WCHAR deadbeefW[] = {'D','e','A','d','B','e','E','f',0}; -+ static const WCHAR deadW[] = {'D','e','A','d',0}; -+ static const WCHAR beefW[] = {'B','e','E','f',0}; -+ -+ WCHAR buf[32 + 1]; -+ DWORD ret; -+ -+ if (!pStrCatChainW) -+ { -+ win_skip("StrCatChainW is not available\n"); -+ return; -+ } -+ -+ /* Test with NULL buffer */ -+ ret = pStrCatChainW(NULL, 0, 0, beefW); -+ ok(ret == 0, "Expected StrCatChainW to return 0, got %u\n", ret); -+ -+ /* Test with empty buffer */ -+ memset(buf, 0x11, sizeof(buf)); -+ ret = pStrCatChainW(buf, 0, 0, beefW); -+ ok(ret == 0, "Expected StrCatChainW to return 0, got %u\n", ret); -+ ok(buf[0] == 0x1111, "Expected buf[0] = 0x1111, got %x\n", buf[0]); -+ -+ memcpy(buf, deadbeefW, sizeof(deadbeefW)); -+ ret = pStrCatChainW(buf, 0, -1, beefW); -+ ok(ret == 8, "Expected StrCatChainW to return 8, got %u\n", ret); -+ ok(!memcmp(buf, deadbeefW, sizeof(deadbeefW)), "Buffer contains wrong data\n"); -+ -+ /* Append data to existing string with offset = -1 */ -+ memset(buf, 0x11, sizeof(buf)); -+ ret = pStrCatChainW(buf, 32, 0, deadW); -+ ok(ret == 4, "Expected StrCatChainW to return 4, got %u\n", ret); -+ ok(!memcmp(buf, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ -+ ret = pStrCatChainW(buf, 32, -1, beefW); -+ ok(ret == 8, "Expected StrCatChainW to return 8, got %u\n", ret); -+ ok(!memcmp(buf, deadbeefW, sizeof(deadbeefW)), "Buffer contains wrong data\n"); -+ -+ /* Append data at a fixed offset */ -+ memset(buf, 0x11, sizeof(buf)); -+ ret = pStrCatChainW(buf, 32, 0, deadW); -+ ok(ret == 4, "Expected StrCatChainW to return 4, got %u\n", ret); -+ ok(!memcmp(buf, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ -+ ret = pStrCatChainW(buf, 32, 4, beefW); -+ ok(ret == 8, "Expected StrCatChainW to return 8, got %u\n", ret); -+ ok(!memcmp(buf, deadbeefW, sizeof(deadbeefW)), "Buffer contains wrong data\n"); -+ -+ /* Buffer exactly sufficient for string + terminating null */ -+ memset(buf, 0x11, sizeof(buf)); -+ ret = pStrCatChainW(buf, 5, 0, deadW); -+ ok(ret == 4, "Expected StrCatChainW to return 4, got %u\n", ret); -+ ok(!memcmp(buf, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ -+ /* Buffer too small, string will be truncated */ -+ memset(buf, 0x11, sizeof(buf)); -+ ret = pStrCatChainW(buf, 4, 0, deadW); -+ if (ret == 4) -+ { -+ /* Windows 2000 and XP uses a slightly different implementation -+ * for StrCatChainW, which doesn't ensure that strings are null- -+ * terminated. Skip test if we detect such an implementation. */ -+ win_skip("Windows2000/XP behaviour detected for StrCatChainW, skipping tests\n"); -+ return; -+ } -+ ok(ret == 3, "Expected StrCatChainW to return 3, got %u\n", ret); -+ ok(!memcmp(buf, deadW, 3 * sizeof(WCHAR)), "Buffer contains wrong data\n"); -+ ok(!buf[3], "String is not nullterminated\n"); -+ ok(buf[4] == 0x1111, "Expected buf[4] = 0x1111, got %x\n", buf[4]); -+ -+ /* Overwrite part of an existing string */ -+ ret = pStrCatChainW(buf, 4, 1, beefW); -+ ok(ret == 3, "Expected StrCatChainW to return 3, got %u\n", ret); -+ ok(buf[0] == 'D', "Expected buf[0] = 'D', got %x\n", buf[0]); -+ ok(buf[1] == 'B', "Expected buf[1] = 'B', got %x\n", buf[1]); -+ ok(buf[2] == 'e', "Expected buf[2] = 'e', got %x\n", buf[2]); -+ ok(!buf[3], "String is not nullterminated\n"); -+ ok(buf[4] == 0x1111, "Expected buf[4] = 0x1111, got %x\n", buf[4]); -+ -+ /* Test appending to full buffer */ -+ memset(buf, 0x11, sizeof(buf)); -+ memcpy(buf, deadbeefW, sizeof(deadbeefW)); -+ memcpy(buf + 9, deadW, sizeof(deadW)); -+ ret = pStrCatChainW(buf, 9, 8, beefW); -+ ok(ret == 8, "Expected StrCatChainW to return 8, got %u\n", ret); -+ ok(!memcmp(buf, deadbeefW, sizeof(deadbeefW)), "Buffer contains wrong data\n"); -+ ok(!memcmp(buf + 9, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ -+ /* Offset points at the end of the buffer */ -+ ret = pStrCatChainW(buf, 9, 9, beefW); -+ ok(ret == 8, "Expected StrCatChainW to return 8, got %u\n", ret); -+ ok(!memcmp(buf, deadbeefW, sizeof(deadbeefW)), "Buffer contains wrong data\n"); -+ ok(!memcmp(buf + 9, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ -+ /* Offset points outside of the buffer */ -+ ret = pStrCatChainW(buf, 9, 10, beefW); -+ ok(ret == 10, "Expected StrCatChainW to return 10, got %u\n", ret); -+ ok(!memcmp(buf, deadbeefW, sizeof(deadbeefW)), "Buffer contains wrong data\n"); -+ ok(!memcmp(buf + 9, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ -+ /* The same but without nullterminated string */ -+ memcpy(buf, deadbeefW, sizeof(deadbeefW)); -+ ret = pStrCatChainW(buf, 5, -1, deadW); -+ ok(ret == 8, "Expected StrCatChainW to return 8, got %u\n", ret); -+ ok(!memcmp(buf, deadbeefW, sizeof(deadbeefW)), "Buffer contains wrong data\n"); -+ -+ ret = pStrCatChainW(buf, 5, 5, deadW); -+ ok(ret == 4, "Expected StrCatChainW to return 4, got %u\n", ret); -+ ok(!memcmp(buf, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ ok(buf[5] == 'e', "Expected buf[5] = 'e', got %x\n", buf[5]); -+ -+ ret = pStrCatChainW(buf, 5, 6, deadW); -+ ok(ret == 6, "Expected StrCatChainW to return 6, got %u\n", ret); -+ ok(!memcmp(buf, deadW, sizeof(deadW)), "Buffer contains wrong data\n"); -+ ok(buf[5] == 'e', "Expected buf[5] = 'e', got %x\n", buf[5]); -+} -+ - START_TEST(string) - { - HMODULE hShlwapi; -@@ -1500,6 +1620,7 @@ START_TEST(string) - pSHUnicodeToUnicode = (void *)GetProcAddress(hShlwapi, (LPSTR)346); - pStrCatBuffA = (void *)GetProcAddress(hShlwapi, "StrCatBuffA"); - pStrCatBuffW = (void *)GetProcAddress(hShlwapi, "StrCatBuffW"); -+ pStrCatChainW = (void *)GetProcAddress(hShlwapi, "StrCatChainW"); - pStrCpyNXA = (void *)GetProcAddress(hShlwapi, (LPSTR)399); - pStrCpyNXW = (void *)GetProcAddress(hShlwapi, (LPSTR)400); - pStrChrNW = (void *)GetProcAddress(hShlwapi, "StrChrNW"); -@@ -1565,6 +1686,7 @@ START_TEST(string) - test_StrStrIW(); - test_StrStrNW(); - test_StrStrNIW(); -+ test_StrCatChainW(); - - CoUninitialize(); - } --- -2.1.3 - diff --git a/patches/shlwapi-StrCatChainW/definition b/patches/shlwapi-StrCatChainW/definition deleted file mode 100644 index b8f07da0..00000000 --- a/patches/shlwapi-StrCatChainW/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Support for StrCatChainW