From ca8ffcd619a71184ed6b842be35e0a8af492ad2c Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 21 May 2015 18:47:14 +0200 Subject: [PATCH] Rebase against 9586d3b2567e6b4a2270caeacf39796c168351c0. --- README.md | 6 +- debian/changelog | 3 + ...d-stub-for-ImpersonateAnonymousToken.patch | 75 ------- .../definition | 1 - ...lar-code-in-NtReadFile-and-FILE_Asyn.patch | 20 +- ...a-couple-more-file-information-class.patch | 44 +--- .../0001-null.sys-Added-stub-dll.patch | 109 ---------- ...nt-device-ioctl-read-write-functions.patch | 200 ------------------ patches/null-Null_Device/definition | 1 - .../0001-nvapi-First-implementation.patch | 4 +- .../0002-nvcuda-Add-stub-dll.patch | 4 +- .../0003-nvcuda-First-implementation.patch | 2 +- patches/nvcuda-CUDA_Support/definition | 1 - patches/patchinstall.sh | 75 ++----- ...nt-IText-Selection-Range-Set-Start-E.patch | 16 +- ...r-ITextFont-interface-and-implement-.patch | 133 +++++------- ...iched20-Implement-ITextRange-GetText.patch | 20 +- patches/riched20-IText_Interface/definition | 2 +- ...-support-for-global-and-local-shared.patch | 18 +- .../wined3d-CSMT_Main/9999-IfDefined.patch | 2 +- 20 files changed, 127 insertions(+), 609 deletions(-) delete mode 100644 patches/advapi32-ImpersonateAnonymousToken/0001-advapi32-Add-stub-for-ImpersonateAnonymousToken.patch delete mode 100644 patches/advapi32-ImpersonateAnonymousToken/definition delete mode 100644 patches/null-Null_Device/0001-null.sys-Added-stub-dll.patch delete mode 100644 patches/null-Null_Device/0002-null.sys-Implement-device-ioctl-read-write-functions.patch delete mode 100644 patches/null-Null_Device/definition diff --git a/README.md b/README.md index db79a74d..6242b0ee 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ for more details.* * Add stub for D3DXFrameFind ([Wine Bug #38334](https://bugs.winehq.org/show_bug.cgi?id=38334)) * Add stub for D3DXIntersect * Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268)) -* Add stub for advapi32.ImpersonateAnonymousToken +* ~~Add stub for advapi32.ImpersonateAnonymousToken~~ * Add stub for atl80.AtlIPersistPropertyBag_Save ([Wine Bug #33888](https://bugs.winehq.org/show_bug.cgi?id=33888)) * Add stub for d3d11.D3D11CreateDeviceAndSwapChain ([Wine Bug #33153](https://bugs.winehq.org/show_bug.cgi?id=33153)) * Add stub for fltlib.FilterLoad ([Wine Bug #38435](https://bugs.winehq.org/show_bug.cgi?id=38435)) @@ -181,7 +181,7 @@ for more details.* * Implement mscoree._CorValidateImage for mono runtime * Implement ntoskrnl driver testing framework. * Implement ntoskrnl.KeInitializeMutex -* Implement null.sys to provide \Device\Null ([Wine Bug #38107](https://bugs.winehq.org/show_bug.cgi?id=38107)) +* ~~Implement null.sys to provide \Device\Null~~ ([Wine Bug #38107](https://bugs.winehq.org/show_bug.cgi?id=38107)) * Implement proper handling of CLI .NET images in Wine library loader * Implement stub for ntoskrnl.IoGetAttachedDeviceReference * Implement stub for ntoskrnl.KeDelayExecutionThread. @@ -245,7 +245,7 @@ for more details.* * Support for ID3DXFont::DrawTextA/W ([Wine Bug #24754](https://bugs.winehq.org/show_bug.cgi?id=24754)) * Support for ID3DXSkinInfoImpl_UpdateSkinnedMesh ([Wine Bug #32572](https://bugs.winehq.org/show_bug.cgi?id=32572)) * ~~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 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 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)) diff --git a/debian/changelog b/debian/changelog index 8214cdcd..64860258 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,9 @@ wine-staging (1.7.44) UNRELEASED; urgency=low * Removed patch to implement kernel32.GetSystemTimePreciseAsFileTime (accepted upstream). * Removed various patches containing tests (accepted upstream). + * Removed patches for advapi32.ImpersonateAnonymousToken (accepted upstream). + * Removed patches for \Device\Null driver (fixed upstream with alternative + solution). * Partially removed patches for ITextFont/ITextPara implementation (fixed upstream). -- Sebastian Lackner Wed, 20 May 2015 05:55:09 +0200 diff --git a/patches/advapi32-ImpersonateAnonymousToken/0001-advapi32-Add-stub-for-ImpersonateAnonymousToken.patch b/patches/advapi32-ImpersonateAnonymousToken/0001-advapi32-Add-stub-for-ImpersonateAnonymousToken.patch deleted file mode 100644 index e8b9ca52..00000000 --- a/patches/advapi32-ImpersonateAnonymousToken/0001-advapi32-Add-stub-for-ImpersonateAnonymousToken.patch +++ /dev/null @@ -1,75 +0,0 @@ -From a996ccc06eebf03b706e28c3af277901b5074e37 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 30 Apr 2015 01:37:44 +0200 -Subject: advapi32: Add stub for ImpersonateAnonymousToken. - ---- - dlls/advapi32/advapi32.spec | 2 +- - dlls/advapi32/security.c | 10 ++++++++++ - .../api-ms-win-security-base-l1-1-0.spec | 2 +- - .../api-ms-win-security-base-l1-2-0.spec | 2 +- - 4 files changed, 13 insertions(+), 3 deletions(-) - -diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec -index e7b7cf7..9fdd266 100644 ---- a/dlls/advapi32/advapi32.spec -+++ b/dlls/advapi32/advapi32.spec -@@ -375,7 +375,7 @@ - @ stub I_ScSetServiceBitsA - # @ stub I_ScSetServiceBitsW - # @ stub IdentifyCodeAuthzLevelW --# @ stub ImpersonateAnonymousToken -+@ stdcall ImpersonateAnonymousToken(long) - @ stdcall ImpersonateLoggedOnUser(long) - @ stdcall ImpersonateNamedPipeClient(long) - @ stdcall ImpersonateSelf(long) -diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c -index d27b2e7..de3c82e 100644 ---- a/dlls/advapi32/security.c -+++ b/dlls/advapi32/security.c -@@ -2501,6 +2501,16 @@ BOOL WINAPI ImpersonateLoggedOnUser(HANDLE hToken) - } - - /****************************************************************************** -+ * ImpersonateAnonymousToken [ADVAPI32.@] -+ */ -+BOOL WINAPI ImpersonateAnonymousToken(HANDLE hThread) -+{ -+ FIXME("(%p)\n", hThread); -+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); -+ return FALSE; -+} -+ -+/****************************************************************************** - * AccessCheck [ADVAPI32.@] - */ - BOOL WINAPI -diff --git a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec -index 548ae83..4277706 100644 ---- a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec -+++ b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec -@@ -58,7 +58,7 @@ - @ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount - @ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation - @ stub GetWindowsAccountDomainSid --@ stub ImpersonateAnonymousToken -+@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken - @ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser - @ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf - @ stdcall InitializeAcl(ptr long long) advapi32.InitializeAcl -diff --git a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec -index d268183..3adef23 100644 ---- a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec -+++ b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec -@@ -64,7 +64,7 @@ - @ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount - @ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation - @ stub GetWindowsAccountDomainSid --@ stub ImpersonateAnonymousToken -+@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken - @ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser - @ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf - @ stdcall InitializeAcl(ptr long long) advapi32.InitializeAcl --- -2.4.0 - diff --git a/patches/advapi32-ImpersonateAnonymousToken/definition b/patches/advapi32-ImpersonateAnonymousToken/definition deleted file mode 100644 index 9f08508a..00000000 --- a/patches/advapi32-ImpersonateAnonymousToken/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Add stub for advapi32.ImpersonateAnonymousToken diff --git a/patches/kernel32-Named_Pipe/0006-ntdll-Unify-similar-code-in-NtReadFile-and-FILE_Asyn.patch b/patches/kernel32-Named_Pipe/0006-ntdll-Unify-similar-code-in-NtReadFile-and-FILE_Asyn.patch index e8281f71..b475b63a 100644 --- a/patches/kernel32-Named_Pipe/0006-ntdll-Unify-similar-code-in-NtReadFile-and-FILE_Asyn.patch +++ b/patches/kernel32-Named_Pipe/0006-ntdll-Unify-similar-code-in-NtReadFile-and-FILE_Asyn.patch @@ -1,4 +1,4 @@ -From 1b7cdebf9ee746d71dee0f69d5fa4da63a3ef5f0 Mon Sep 17 00:00:00 2001 +From 8ad4ff3e0ed7e3065a1f408873a69d51cb6b3b51 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 15 Aug 2014 22:23:08 +0200 Subject: ntdll: Unify similar code in NtReadFile and FILE_AsyncReadService. @@ -15,14 +15,14 @@ Changes in FILE_AsyncReadService: whereas NtReadFile uses different behaviour based on the fd type. Now both implementations match, and behave the same way. --- - dlls/ntdll/file.c | 106 +++++++++++++++++++++++------------------------------- - 1 file changed, 45 insertions(+), 61 deletions(-) + dlls/ntdll/file.c | 108 +++++++++++++++++++++++------------------------------- + 1 file changed, 46 insertions(+), 62 deletions(-) diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 7995738..bc3c894 100644 +index 79daec5..fd88777 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c -@@ -437,6 +437,44 @@ NTSTATUS FILE_GetNtStatus(void) +@@ -471,6 +471,45 @@ NTSTATUS FILE_GetNtStatus(void) } } @@ -45,6 +45,7 @@ index 7995738..bc3c894 100644 + { + case FD_TYPE_FILE: + case FD_TYPE_CHAR: ++ case FD_TYPE_DEVICE: + return length ? STATUS_END_OF_FILE : STATUS_SUCCESS; + case FD_TYPE_SERIAL: + return STATUS_PENDING; @@ -67,7 +68,7 @@ index 7995738..bc3c894 100644 /*********************************************************************** * FILE_AsyncReadService (INTERNAL) */ -@@ -444,44 +482,19 @@ static NTSTATUS FILE_AsyncReadService( void *user, IO_STATUS_BLOCK *iosb, +@@ -478,44 +517,19 @@ static NTSTATUS FILE_AsyncReadService( void *user, IO_STATUS_BLOCK *iosb, NTSTATUS status, void **apc, void **arg ) { struct async_fileio_read *fileio = user; @@ -117,7 +118,7 @@ index 7995738..bc3c894 100644 break; case STATUS_TIMEOUT: -@@ -632,7 +645,6 @@ static NTSTATUS get_io_avail_mode( HANDLE handle, enum server_fd_type type, BOOL +@@ -762,7 +776,6 @@ static NTSTATUS get_io_avail_mode( HANDLE handle, enum server_fd_type type, BOOL return status; } @@ -125,7 +126,7 @@ index 7995738..bc3c894 100644 /****************************************************************************** * NtReadFile [NTDLL.@] * ZwReadFile [NTDLL.@] -@@ -725,37 +737,9 @@ NTSTATUS WINAPI NtReadFile(HANDLE hFile, HANDLE hEvent, +@@ -858,38 +871,9 @@ NTSTATUS WINAPI NtReadFile(HANDLE hFile, HANDLE hEvent, for (;;) { @@ -143,6 +144,7 @@ index 7995738..bc3c894 100644 - { - case FD_TYPE_FILE: - case FD_TYPE_CHAR: +- case FD_TYPE_DEVICE: - status = length ? STATUS_END_OF_FILE : STATUS_SUCCESS; - goto done; - case FD_TYPE_SERIAL: @@ -166,5 +168,5 @@ index 7995738..bc3c894 100644 if (async_read) { -- -2.3.0 +2.4.0 diff --git a/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch b/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch index 70974b01..8461931d 100644 --- a/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch +++ b/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch @@ -1,41 +1,20 @@ -From 92a522e2fd22e78a8aec27e6121aa261e5bf0777 Mon Sep 17 00:00:00 2001 +From 40983a8c7b9a83a931ac274e3ce5cdd18e9753d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 26 Feb 2015 05:28:23 +0100 Subject: include: Declare a couple more file information class structures. --- - include/winbase.h | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 88 insertions(+) + include/winbase.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 67 insertions(+) diff --git a/include/winbase.h b/include/winbase.h -index 1eb49b3..2b6df8d 100644 +index b3066ca..12fe2b0 100644 --- a/include/winbase.h +++ b/include/winbase.h -@@ -796,6 +796,68 @@ typedef enum _FILE_INFO_BY_HANDLE_CLASS { - MaximumFileInfoByHandlesClass - } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS; +@@ -844,6 +844,73 @@ typedef struct _FILE_NAME_INFO { + WCHAR FileName[1]; + } FILE_NAME_INFO, *PFILE_NAME_INFO; -+typedef struct _FILE_BASIC_INFO { -+ LARGE_INTEGER CreationTime; -+ LARGE_INTEGER LastAccessTime; -+ LARGE_INTEGER LastWriteTime; -+ LARGE_INTEGER ChangeTime; -+ DWORD FileAttributes; -+} FILE_BASIC_INFO, *PFILE_BASIC_INFO; -+ -+typedef struct _FILE_STANDARD_INFO { -+ LARGE_INTEGER AllocationSize; -+ LARGE_INTEGER EndOfFile; -+ DWORD NumberOfLinks; -+ BOOLEAN DeletePending; -+ BOOLEAN Directory; -+} FILE_STANDARD_INFO, *PFILE_STANDARD_INFO; -+ -+typedef struct _FILE_NAME_INFO { -+ DWORD FileNameLength; -+ WCHAR FileName[1]; -+} FILE_NAME_INFO, *PFILE_NAME_INFO; -+ +typedef struct _FILE_RENAME_INFO { + BOOLEAN ReplaceIfExists; + HANDLE RootDirectory; @@ -77,13 +56,6 @@ index 1eb49b3..2b6df8d 100644 + DWORD ReparseTag; +} FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO; + - typedef struct _FILE_ID_BOTH_DIR_INFO { - DWORD NextEntryOffset; - DWORD FileIndex; -@@ -814,6 +876,32 @@ typedef struct _FILE_ID_BOTH_DIR_INFO { - WCHAR FileName[1]; - } FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO; - +typedef struct _FILE_FULL_DIR_INFO { + ULONG NextEntryOffset; + ULONG FileIndex; @@ -114,5 +86,5 @@ index 1eb49b3..2b6df8d 100644 #define PIPE_ACCESS_OUTBOUND 2 #define PIPE_ACCESS_DUPLEX 3 -- -2.3.0 +2.4.0 diff --git a/patches/null-Null_Device/0001-null.sys-Added-stub-dll.patch b/patches/null-Null_Device/0001-null.sys-Added-stub-dll.patch deleted file mode 100644 index 8429ac03..00000000 --- a/patches/null-Null_Device/0001-null.sys-Added-stub-dll.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 0a3f771a48590503f8e8b951939e905bde132744 Mon Sep 17 00:00:00 2001 -From: Qian Hong -Date: Thu, 12 Mar 2015 06:43:03 +0800 -Subject: null.sys: Added stub dll. - -Changes by Sebastian Lackner : - * Install driver to system32/drivers directory. ---- - configure.ac | 1 + - dlls/null.sys/Makefile.in | 5 +++++ - dlls/null.sys/main.c | 38 ++++++++++++++++++++++++++++++++++++++ - dlls/null.sys/null.sys.spec | 1 + - loader/wine.inf.in | 2 ++ - 5 files changed, 47 insertions(+) - create mode 100644 dlls/null.sys/Makefile.in - create mode 100644 dlls/null.sys/main.c - create mode 100644 dlls/null.sys/null.sys.spec - -diff --git a/configure.ac b/configure.ac -index a9a7bcf..32b2e16 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3157,4 +3157,5 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib]) - WINE_CONFIG_DLL(ntprint) - WINE_CONFIG_TEST(dlls/ntprint/tests) -+WINE_CONFIG_DLL(null.sys) - WINE_CONFIG_DLL(objsel,,[clean]) - WINE_CONFIG_DLL(odbc32,,[implib]) -diff --git a/dlls/null.sys/Makefile.in b/dlls/null.sys/Makefile.in -new file mode 100644 -index 0000000..4ea3b55 ---- /dev/null -+++ b/dlls/null.sys/Makefile.in -@@ -0,0 +1,5 @@ -+MODULE = null.sys -+EXTRADLLFLAGS = -Wb,--subsystem,native -+ -+C_SRCS = \ -+ main.c -diff --git a/dlls/null.sys/main.c b/dlls/null.sys/main.c -new file mode 100644 -index 0000000..141c218 ---- /dev/null -+++ b/dlls/null.sys/main.c -@@ -0,0 +1,38 @@ -+/* -+ * null.sys -+ * -+ * Copyright 2015 Qian Hong for CodeWeavers -+ * -+ * 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 -+ */ -+ -+#include -+ -+#include "ntstatus.h" -+#define WIN32_NO_STATUS -+#include "windef.h" -+#include "winbase.h" -+#include "winternl.h" -+#include "ddk/wdm.h" -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(null); -+ -+NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, UNICODE_STRING *path) -+{ -+ TRACE("(%p, %s)\n", driver, debugstr_w(path->Buffer)); -+ -+ return STATUS_SUCCESS; -+} -diff --git a/dlls/null.sys/null.sys.spec b/dlls/null.sys/null.sys.spec -new file mode 100644 -index 0000000..76421d7 ---- /dev/null -+++ b/dlls/null.sys/null.sys.spec -@@ -0,0 +1 @@ -+# nothing to export -diff --git a/loader/wine.inf.in b/loader/wine.inf.in -index fcd2e49..8a6c767 100644 ---- a/loader/wine.inf.in -+++ b/loader/wine.inf.in -@@ -2498,4 +2498,5 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G" - 12,,mountmgr.sys,- - 12,,ndis.sys,- -+12,,null.sys,- - ; skip .NET fake dlls in Wine Mono package - 11,,aspnet_regiis.exe,- -@@ -2536,4 +2537,5 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G" - 12,,mountmgr.sys - 12,,ndis.sys -+12,,null.sys - ; skip .NET fake dlls in Wine Mono package - 11,,aspnet_regiis.exe,- --- -2.4.0 - diff --git a/patches/null-Null_Device/0002-null.sys-Implement-device-ioctl-read-write-functions.patch b/patches/null-Null_Device/0002-null.sys-Implement-device-ioctl-read-write-functions.patch deleted file mode 100644 index 4429706b..00000000 --- a/patches/null-Null_Device/0002-null.sys-Implement-device-ioctl-read-write-functions.patch +++ /dev/null @@ -1,200 +0,0 @@ -From f5ebb97d978d8418e1034ea58af16e6a0aa0216d Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 15 May 2015 22:23:52 +0200 -Subject: null.sys: Implement device ioctl/read/write functions. - -Based on a patch by Qian Hong. ---- - dlls/ntdll/tests/om.c | 12 +++------ - dlls/null.sys/Makefile.in | 1 + - dlls/null.sys/main.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++ - loader/wine.inf.in | 11 +++++++++ - 4 files changed, 79 insertions(+), 8 deletions(-) - -diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c -index 71380a7..ca32577 100644 ---- a/dlls/ntdll/tests/om.c -+++ b/dlls/ntdll/tests/om.c -@@ -1053,30 +1053,27 @@ static void test_null_device(void) - pRtlCreateUnicodeStringFromAsciiz(&str, "\\Device\\Null"); - InitializeObjectAttributes(&attr, &str, OBJ_CASE_INSENSITIVE, 0, NULL); - status = pNtOpenSymbolicLinkObject(&null, SYMBOLIC_LINK_QUERY, &attr); -- todo_wine - ok(status == STATUS_OBJECT_TYPE_MISMATCH, - "expected STATUS_OBJECT_TYPE_MISMATCH, got %08x\n", status); - - status = pNtOpenFile(&null, GENERIC_READ | GENERIC_WRITE, &attr, &iosb, - FILE_SHARE_READ | FILE_SHARE_WRITE, 0); -- todo_wine - ok(status == STATUS_SUCCESS, - "expected STATUS_SUCCESS, got %08x\n", status); -- if (status != STATUS_SUCCESS) -- { -- skip("opening \\Device\\Null failed, skipping read/write tests\n"); -- goto out; -- } - - SetLastError(0xdeadbeef); - ret = WriteFile(null, buf, sizeof(buf), &num_bytes, NULL); -+ todo_wine - ok(!ret, "WriteFile unexpectedly succeeded\n"); -+ todo_wine - ok(GetLastError() == ERROR_INVALID_PARAMETER, - "expected ERROR_INVALID_PARAMETER, got %u\n", GetLastError()); - - SetLastError(0xdeadbeef); - ret = ReadFile(null, buf, sizeof(buf), &num_bytes, NULL); -+ todo_wine - ok(!ret, "ReadFile unexpectedly succeeded\n"); -+ todo_wine - ok(GetLastError() == ERROR_INVALID_PARAMETER, - "expected ERROR_INVALID_PARAMETER, got %u\n", GetLastError()); - -@@ -1114,7 +1111,6 @@ static void test_null_device(void) - - pNtClose(null); - --out: - null = CreateFileA("\\\\.\\Null", GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); -diff --git a/dlls/null.sys/Makefile.in b/dlls/null.sys/Makefile.in -index 4ea3b55..95c249d 100644 ---- a/dlls/null.sys/Makefile.in -+++ b/dlls/null.sys/Makefile.in -@@ -1,4 +1,5 @@ - MODULE = null.sys -+IMPORTS = ntoskrnl.exe - EXTRADLLFLAGS = -Wb,--subsystem,native - - C_SRCS = \ -diff --git a/dlls/null.sys/main.c b/dlls/null.sys/main.c -index 141c218..ecbb7cf 100644 ---- a/dlls/null.sys/main.c -+++ b/dlls/null.sys/main.c -@@ -20,6 +20,7 @@ - - #include - -+#define NONAMELESSUNION - #include "ntstatus.h" - #define WIN32_NO_STATUS - #include "windef.h" -@@ -30,9 +31,71 @@ - - WINE_DEFAULT_DEBUG_CHANNEL(null); - -+static NTSTATUS WINAPI null_ioctl( DEVICE_OBJECT *device, IRP *irp ) -+{ -+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp ); -+ ULONG code = irpsp->Parameters.DeviceIoControl.IoControlCode; -+ -+ FIXME("Unsupported ioctl %x (device=%x access=%x func=%x method=%x)\n", -+ code, code >> 16, (code >> 14) & 3, (code >> 2) & 0xfff, code & 3); -+ irp->IoStatus.u.Status = STATUS_NOT_SUPPORTED; -+ -+ IoCompleteRequest( irp, IO_NO_INCREMENT ); -+ return STATUS_SUCCESS; -+} -+ -+static NTSTATUS WINAPI null_read( DEVICE_OBJECT *device, IRP *irp ) -+{ -+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp ); -+ -+ TRACE( "length %u key %u byteoffset %u\n", -+ irpsp->Parameters.Read.Length, -+ irpsp->Parameters.Read.Key, -+ irpsp->Parameters.Read.ByteOffset.u.LowPart); -+ -+ irp->IoStatus.u.Status = STATUS_END_OF_FILE; -+ -+ IoCompleteRequest( irp, IO_NO_INCREMENT ); -+ return STATUS_END_OF_FILE; -+} -+ -+static NTSTATUS WINAPI null_write( DEVICE_OBJECT *device, IRP *irp ) -+{ -+ IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp ); -+ -+ TRACE( "length %u key %u byteoffset %u\n", -+ irpsp->Parameters.Read.Length, -+ irpsp->Parameters.Read.Key, -+ irpsp->Parameters.Read.ByteOffset.u.LowPart); -+ -+ irp->IoStatus.Information = irpsp->Parameters.Read.Length; -+ irp->IoStatus.u.Status = STATUS_SUCCESS; -+ -+ IoCompleteRequest( irp, IO_NO_INCREMENT ); -+ return STATUS_SUCCESS; -+} -+ - NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, UNICODE_STRING *path) - { -+ static const WCHAR device_nullW[] = {'\\','D','e','v','i','c','e','\\','N','u','l','l',0}; -+ UNICODE_STRING nameW; -+ DEVICE_OBJECT *device; -+ NTSTATUS status; -+ - TRACE("(%p, %s)\n", driver, debugstr_w(path->Buffer)); - -+ driver->MajorFunction[IRP_MJ_DEVICE_CONTROL] = null_ioctl; -+ driver->MajorFunction[IRP_MJ_READ] = null_read; -+ driver->MajorFunction[IRP_MJ_WRITE] = null_write; -+ -+ RtlInitUnicodeString( &nameW, device_nullW ); -+ -+ status = IoCreateDevice( driver, 0, &nameW, 0, 0, FALSE, &device ); -+ if (status) -+ { -+ FIXME( "failed to create device error %x\n", status ); -+ return status; -+ } -+ - return STATUS_SUCCESS; - } -diff --git a/loader/wine.inf.in b/loader/wine.inf.in -index 8a6c767..057d047 100644 ---- a/loader/wine.inf.in -+++ b/loader/wine.inf.in -@@ -121,6 +121,7 @@ AddReg=\ - AddService=BITS,0,BITSService - AddService=MSIServer,0,MSIService - AddService=MountMgr,0x800,MountMgrService -+AddService=Null,0x800,NullService - AddService=Spooler,0,SpoolerService - AddService=StiSvc,0,StiService - AddService=TermService,0,TerminalServices -@@ -134,6 +135,7 @@ AddService=Schedule,0,TaskSchedulerService - AddService=BITS,0,BITSService - AddService=MSIServer,0,MSIService - AddService=MountMgr,0x800,MountMgrService -+AddService=Null,0x800,NullService - AddService=Spooler,0,SpoolerService - AddService=StiSvc,0,StiService - AddService=TermService,0,TerminalServices -@@ -147,6 +149,7 @@ AddService=Schedule,0,TaskSchedulerService - AddService=BITS,0,BITSService - AddService=MSIServer,0,MSIService - AddService=MountMgr,0x800,MountMgrService -+AddService=Null,0x800,NullService - AddService=Spooler,0,SpoolerService - AddService=StiSvc,0,StiService - AddService=TermService,0,TerminalServices -@@ -3128,6 +3131,14 @@ ServiceType=1 - StartType=2 - ErrorControl=1 - -+[NullService] -+Description="Null service" -+DisplayName="Null" -+ServiceBinary="%12%\null.sys" -+ServiceType=1 -+StartType=2 -+ErrorControl=1 -+ - [SpoolerService] - Description="Loads files to memory for later printing" - DisplayName="Print Spooler" --- -2.4.0 - diff --git a/patches/null-Null_Device/definition b/patches/null-Null_Device/definition deleted file mode 100644 index 52eceb11..00000000 --- a/patches/null-Null_Device/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [38107] Implement null.sys to provide \Device\Null diff --git a/patches/nvapi-Stub_DLL/0001-nvapi-First-implementation.patch b/patches/nvapi-Stub_DLL/0001-nvapi-First-implementation.patch index cc2e7592..fce065db 100644 --- a/patches/nvapi-Stub_DLL/0001-nvapi-First-implementation.patch +++ b/patches/nvapi-Stub_DLL/0001-nvapi-First-implementation.patch @@ -41,16 +41,14 @@ index 8a98996..efe32af 100644 dnl Disable winetest too if tests are disabled enable_winetest=${enable_winetest:-$enable_tests} -@@ -3157,6 +3163,9 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib]) +@@ -3159,4 +3165,7 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib]) WINE_CONFIG_DLL(ntprint) WINE_CONFIG_TEST(dlls/ntprint/tests) - WINE_CONFIG_DLL(null.sys) +WINE_CONFIG_DLL(nvapi,enable_win32) +WINE_CONFIG_TEST(dlls/nvapi/tests) +WINE_CONFIG_DLL(nvapi64,enable_win64) WINE_CONFIG_DLL(nvcuda) WINE_CONFIG_TEST(dlls/nvcuda/tests) - WINE_CONFIG_DLL(objsel,,[clean]) diff --git a/dlls/nvapi/Makefile.in b/dlls/nvapi/Makefile.in new file mode 100644 index 0000000..606177f diff --git a/patches/nvcuda-CUDA_Support/0002-nvcuda-Add-stub-dll.patch b/patches/nvcuda-CUDA_Support/0002-nvcuda-Add-stub-dll.patch index 3d2a0e71..1653a001 100644 --- a/patches/nvcuda-CUDA_Support/0002-nvcuda-Add-stub-dll.patch +++ b/patches/nvcuda-CUDA_Support/0002-nvcuda-Add-stub-dll.patch @@ -19,14 +19,12 @@ diff --git a/configure.ac b/configure.ac index 32b2e16..1e38434 100644 --- a/configure.ac +++ b/configure.ac -@@ -3157,6 +3157,7 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib]) +@@ -3159,4 +3159,5 @@ WINE_CONFIG_DLL(ntoskrnl.exe,,[implib]) WINE_CONFIG_DLL(ntprint) WINE_CONFIG_TEST(dlls/ntprint/tests) - WINE_CONFIG_DLL(null.sys) +WINE_CONFIG_DLL(nvcuda) WINE_CONFIG_DLL(objsel,,[clean]) WINE_CONFIG_DLL(odbc32,,[implib]) - WINE_CONFIG_DLL(odbccp32,,[implib]) diff --git a/dlls/nvcuda/Makefile.in b/dlls/nvcuda/Makefile.in new file mode 100644 index 0000000..4b33278 diff --git a/patches/nvcuda-CUDA_Support/0003-nvcuda-First-implementation.patch b/patches/nvcuda-CUDA_Support/0003-nvcuda-First-implementation.patch index 133f572b..7c4c5b9a 100644 --- a/patches/nvcuda-CUDA_Support/0003-nvcuda-First-implementation.patch +++ b/patches/nvcuda-CUDA_Support/0003-nvcuda-First-implementation.patch @@ -27,8 +27,8 @@ index 1e38434..8a98996 100644 --- a/configure.ac +++ b/configure.ac @@ -3158,6 +3158,7 @@ WINE_CONFIG_DLL(ntprint) + WINE_CONFIG_DLL(ntprint) WINE_CONFIG_TEST(dlls/ntprint/tests) - WINE_CONFIG_DLL(null.sys) WINE_CONFIG_DLL(nvcuda) +WINE_CONFIG_TEST(dlls/nvcuda/tests) WINE_CONFIG_DLL(objsel,,[clean]) diff --git a/patches/nvcuda-CUDA_Support/definition b/patches/nvcuda-CUDA_Support/definition index 87441112..05247b37 100644 --- a/patches/nvcuda-CUDA_Support/definition +++ b/patches/nvcuda-CUDA_Support/definition @@ -1,3 +1,2 @@ Fixes: Basic support for CUDA Fixes: [37664] MediaCoder needs CUDA for video encoding -Depends: null-Null_Device diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 0a35788e..2bbb8b4d 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -55,7 +55,7 @@ version() echo "Copyright (C) 2014-2015 the Wine Staging project authors." echo "" echo "Patchset to be applied on upstream Wine:" - echo " commit 1e8759805e3c5dfe00a31bb5f13f1c1da28d2826" + echo " commit 9586d3b2567e6b4a2270caeacf39796c168351c0" echo "" } @@ -79,7 +79,6 @@ patch_enable_all () enable_Exagear="$1" enable_Pipelight="$1" enable_Staging="$1" - enable_advapi32_ImpersonateAnonymousToken="$1" enable_advapi32_LsaLookupSids="$1" enable_advapi32_OpenSCManagerW="$1" enable_atl_AtlIPersistPropertyBag_Save="$1" @@ -185,7 +184,6 @@ patch_enable_all () enable_ntoskrnl_DriverTest="$1" enable_ntoskrnl_Emulator="$1" enable_ntoskrnl_Stubs="$1" - enable_null_Null_Device="$1" enable_nvapi_Stub_DLL="$1" enable_nvcuda_CUDA_Support="$1" enable_nvcuvid_CUDA_Video_Support="$1" @@ -299,9 +297,6 @@ patch_enable () Staging) enable_Staging="$2" ;; - advapi32-ImpersonateAnonymousToken) - enable_advapi32_ImpersonateAnonymousToken="$2" - ;; advapi32-LsaLookupSids) enable_advapi32_LsaLookupSids="$2" ;; @@ -617,9 +612,6 @@ patch_enable () ntoskrnl-Stubs) enable_ntoskrnl_Stubs="$2" ;; - null-Null_Device) - enable_null_Null_Device="$2" - ;; nvapi-Stub_DLL) enable_nvapi_Stub_DLL="$2" ;; @@ -1719,13 +1711,6 @@ if test "$enable_nvapi_Stub_DLL" -eq 1; then enable_nvcuda_CUDA_Support=1 fi -if test "$enable_nvcuda_CUDA_Support" -eq 1; then - if test "$enable_null_Null_Device" -gt 1; then - abort "Patchset null-Null_Device disabled, but nvcuda-CUDA_Support depends on that." - fi - enable_null_Null_Device=1 -fi - if test "$enable_ntoskrnl_Emulator" -eq 1; then if test "$enable_ntdll_User_Shared_Data" -gt 1; then abort "Patchset ntdll-User_Shared_Data disabled, but ntoskrnl-Emulator depends on that." @@ -2016,19 +2001,6 @@ if test "$enable_Staging" -eq 1; then ) >> "$patchlist" fi -# Patchset advapi32-ImpersonateAnonymousToken -# | -# | Modified files: -# | * dlls/advapi32/advapi32.spec, dlls/advapi32/security.c, dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security- -# | base-l1-1-0.spec, dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec -# | -if test "$enable_advapi32_ImpersonateAnonymousToken" -eq 1; then - patch_apply advapi32-ImpersonateAnonymousToken/0001-advapi32-Add-stub-for-ImpersonateAnonymousToken.patch - ( - echo '+ { "Sebastian Lackner", "advapi32: Add stub for ImpersonateAnonymousToken.", 1 },'; - ) >> "$patchlist" -fi - # Patchset server-Misc_ACL # | # | This patchset fixes the following Wine bugs: @@ -2682,6 +2654,18 @@ if test "$enable_dxgi_GetDesc" -eq 1; then ) >> "$patchlist" fi +# Patchset makedep-PARENTSPEC +# | +# | Modified files: +# | * tools/makedep.c +# | +if test "$enable_makedep_PARENTSPEC" -eq 1; then + patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch + ( + echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },'; + ) >> "$patchlist" +fi + # Patchset ntdll-DllRedirects # | # | Modified files: @@ -2702,18 +2686,6 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then ) >> "$patchlist" fi -# Patchset makedep-PARENTSPEC -# | -# | Modified files: -# | * tools/makedep.c -# | -if test "$enable_makedep_PARENTSPEC" -eq 1; then - patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch - ( - echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-CSMT_Helper # | # | Modified files: @@ -4347,24 +4319,6 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then ) >> "$patchlist" fi -# Patchset null-Null_Device -# | -# | This patchset fixes the following Wine bugs: -# | * [#38107] Implement null.sys to provide \Device\Null -# | -# | Modified files: -# | * configure.ac, dlls/ntdll/tests/om.c, dlls/null.sys/Makefile.in, dlls/null.sys/main.c, dlls/null.sys/null.sys.spec, -# | loader/wine.inf.in -# | -if test "$enable_null_Null_Device" -eq 1; then - patch_apply null-Null_Device/0001-null.sys-Added-stub-dll.patch - patch_apply null-Null_Device/0002-null.sys-Implement-device-ioctl-read-write-functions.patch - ( - echo '+ { "Qian Hong", "null.sys: Added stub dll.", 1 },'; - echo '+ { "Sebastian Lackner", "null.sys: Implement device ioctl/read/write functions.", 1 },'; - ) >> "$patchlist" -fi - # Patchset nvcuda-CUDA_Support # | # | This patchset fixes the following Wine bugs: @@ -4522,9 +4476,6 @@ fi # Patchset riched20-IText_Interface # | -# | This patchset fixes the following Wine bugs: -# | * [#18303] Support for ITextRange, ITextFont and ITextPara -# | # | Modified files: # | * dlls/riched20/richole.c, dlls/riched20/run.c, dlls/riched20/tests/richole.c # | diff --git a/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch b/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch index 914a6a65..3bf24dd0 100644 --- a/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch +++ b/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch @@ -1,4 +1,4 @@ -From 5dac9e4ab5b7df2ab94e2338b425b83249515169 Mon Sep 17 00:00:00 2001 +From 366724a8595982b9d1159509188899afb227ecf5 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Fri, 8 Aug 2014 21:32:57 +0800 Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}. @@ -9,10 +9,10 @@ Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}. 2 files changed, 177 insertions(+), 4 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index c9c75b8..64579a6 100644 +index 3a4eb3b..f93f086 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -3233,14 +3233,33 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir +@@ -3270,14 +3270,33 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir return S_OK; } @@ -48,7 +48,7 @@ index c9c75b8..64579a6 100644 } static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim) -@@ -3257,14 +3276,33 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim) +@@ -3294,14 +3313,33 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim) return S_OK; } @@ -85,11 +85,11 @@ index c9c75b8..64579a6 100644 static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **font) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index a47d31f..a553519 100644 +index 5472ce1..e654653 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1415,6 +1415,137 @@ todo_wine { - release_interfaces(&hwnd, &reOle, &doc, NULL); +@@ -1570,6 +1570,137 @@ static void test_ITextFont(void) + ITextFont_Release(font); } +static void test_ITextRange_SetStart(void) @@ -226,7 +226,7 @@ index a47d31f..a553519 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1427,12 +1558,16 @@ START_TEST(richole) +@@ -1582,12 +1713,16 @@ START_TEST(richole) test_ITextSelection_GetText(); test_ITextSelection_GetChar(); test_ITextSelection_GetStart_GetEnd(); diff --git a/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch b/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch index 9565d05a..b3b80e16 100644 --- a/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch +++ b/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch @@ -1,19 +1,19 @@ -From cc36959dd99ee77266b9b93d759934124457abc3 Mon Sep 17 00:00:00 2001 +From 815bce1478d691786f20e5f1e432e492e866464f Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Mon, 11 Aug 2014 13:51:55 +0800 Subject: riched20: Stub for ITextFont interface and implement ITextRange::GetFont and ITextSelection::GetFont. --- - dlls/riched20/richole.c | 220 +++++++++++++++++++++++++++++++++++++++++- - dlls/riched20/tests/richole.c | 93 ++++++++++++++++++ - 2 files changed, 312 insertions(+), 1 deletion(-) + dlls/riched20/richole.c | 207 ++++++++++++++++++++++++++++++++++++++++++ + dlls/riched20/tests/richole.c | 93 +++++++++++++++++++ + 2 files changed, 300 insertions(+) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 64579a6..71fb311 100644 +index f93f086..b304fb3 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -1749,9 +1749,21 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface) +@@ -1761,9 +1761,21 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface) return ref; } @@ -35,7 +35,7 @@ index 64579a6..71fb311 100644 *pctinfo = 0; return E_NOTIMPL; } -@@ -1759,14 +1771,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo) +@@ -1771,14 +1783,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo) static HRESULT WINAPI TextFont_GetTypeInfo(ITextFont *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { @@ -60,7 +60,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1781,7 +1803,12 @@ static HRESULT WINAPI TextFont_Invoke( +@@ -1793,7 +1815,12 @@ static HRESULT WINAPI TextFont_Invoke( EXCEPINFO *pExcepInfo, UINT *puArgErr) { @@ -73,7 +73,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1789,6 +1816,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret) +@@ -1801,6 +1828,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, ret); @@ -84,7 +84,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1796,6 +1827,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont) +@@ -1808,6 +1839,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, pFont); @@ -95,7 +95,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1803,6 +1838,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret) +@@ -1815,6 +1850,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, ret); @@ -106,7 +106,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1810,6 +1849,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG * +@@ -1822,6 +1861,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG * { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, ret); @@ -117,7 +117,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1817,6 +1860,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value) +@@ -1829,6 +1872,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p): stub\n", This); @@ -128,7 +128,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1824,6 +1871,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value) +@@ -1836,6 +1883,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -139,7 +139,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1831,6 +1882,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value) +@@ -1843,6 +1894,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -150,7 +150,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1838,6 +1893,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value) +@@ -1850,6 +1905,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -161,7 +161,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1845,6 +1904,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value) +@@ -1857,6 +1916,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -172,7 +172,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1852,6 +1915,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value) +@@ -1864,6 +1927,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -183,7 +183,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1859,6 +1926,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value) +@@ -1871,6 +1938,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -194,7 +194,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1866,6 +1937,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value) +@@ -1878,6 +1949,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -205,7 +205,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1873,6 +1948,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value) +@@ -1885,6 +1960,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -216,7 +216,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1887,6 +1966,10 @@ static HRESULT WINAPI TextFont_SetBold(ITextFont *iface, LONG value) +@@ -1899,6 +1978,10 @@ static HRESULT WINAPI TextFont_SetBold(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -227,7 +227,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1894,6 +1977,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value) +@@ -1906,6 +1989,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -238,7 +238,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1901,6 +1988,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value) +@@ -1913,6 +2000,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -249,7 +249,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1915,6 +2006,10 @@ static HRESULT WINAPI TextFont_SetForeColor(ITextFont *iface, LONG value) +@@ -1927,6 +2018,10 @@ static HRESULT WINAPI TextFont_SetForeColor(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -260,7 +260,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1922,6 +2017,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value) +@@ -1934,6 +2029,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -271,7 +271,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1929,6 +2028,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value) +@@ -1941,6 +2040,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -282,7 +282,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1936,6 +2039,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value) +@@ -1948,6 +2051,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -293,7 +293,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1943,6 +2050,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value) +@@ -1955,6 +2062,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -304,7 +304,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1957,6 +2068,10 @@ static HRESULT WINAPI TextFont_SetItalic(ITextFont *iface, LONG value) +@@ -1969,6 +2080,10 @@ static HRESULT WINAPI TextFont_SetItalic(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -315,7 +315,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1964,6 +2079,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value) +@@ -1976,6 +2091,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -326,7 +326,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1971,6 +2090,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value) +@@ -1983,6 +2102,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%.2f): stub\n", This, value); @@ -337,7 +337,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -1985,20 +2108,39 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value) +@@ -1997,6 +2120,10 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -348,26 +348,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } - static HRESULT WINAPI TextFont_GetName(ITextFont *iface, BSTR *value) - { - ITextFontImpl *This = impl_from_ITextFont(iface); -+ static const WCHAR font[] = {'S', 'y', 's', 't', 'e', 'm', 0}; - FIXME("(%p)->(%p): stub\n", This, value); -- return E_NOTIMPL; -+ -+ if (!value) -+ return E_INVALIDARG; -+ -+ *value = NULL; -+ -+ if (!font_get_reole(This)) -+ return CO_E_RELEASED; -+ -+ *value = SysAllocString(font); -+ return S_OK; - } - - static HRESULT WINAPI TextFont_SetName(ITextFont *iface, BSTR value) +@@ -2034,6 +2161,10 @@ static HRESULT WINAPI TextFont_SetName(ITextFont *iface, BSTR value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%s): stub\n", This, debugstr_w(value)); @@ -378,7 +359,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2006,6 +2148,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value) +@@ -2041,6 +2172,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -389,7 +370,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2013,6 +2159,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value) +@@ -2048,6 +2183,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -400,7 +381,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2020,6 +2170,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value) +@@ -2055,6 +2194,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -411,7 +392,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2027,6 +2181,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value) +@@ -2062,6 +2205,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%.2f): stub\n", This, value); @@ -422,7 +403,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2034,6 +2192,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value) +@@ -2069,6 +2216,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -433,7 +414,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2041,6 +2203,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value) +@@ -2076,6 +2227,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -444,7 +425,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2048,6 +2214,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value) +@@ -2083,6 +2238,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -455,7 +436,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2055,6 +2225,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value) +@@ -2090,6 +2249,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -466,7 +447,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2069,6 +2243,10 @@ static HRESULT WINAPI TextFont_SetSize(ITextFont *iface, FLOAT value) +@@ -2104,6 +2267,10 @@ static HRESULT WINAPI TextFont_SetSize(ITextFont *iface, FLOAT value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%.2f): stub\n", This, value); @@ -477,7 +458,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2076,6 +2254,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value) +@@ -2111,6 +2278,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -488,7 +469,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2083,6 +2265,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value) +@@ -2118,6 +2289,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -499,7 +480,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2090,6 +2276,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value) +@@ -2125,6 +2300,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -510,7 +491,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2097,6 +2287,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value) +@@ -2132,6 +2311,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%.2f): stub\n", This, value); @@ -521,7 +502,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2111,6 +2305,10 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value) +@@ -2146,6 +2329,10 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -532,7 +513,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2125,6 +2323,10 @@ static HRESULT WINAPI TextFont_SetSubscript(ITextFont *iface, LONG value) +@@ -2160,6 +2347,10 @@ static HRESULT WINAPI TextFont_SetSubscript(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -543,7 +524,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2139,6 +2341,10 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value) +@@ -2174,6 +2365,10 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -554,7 +535,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2153,6 +2359,10 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value) +@@ -2188,6 +2383,10 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -565,7 +546,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2160,6 +2370,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value) +@@ -2195,6 +2394,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -576,7 +557,7 @@ index 64579a6..71fb311 100644 return E_NOTIMPL; } -@@ -2167,6 +2381,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value) +@@ -2202,6 +2405,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -588,10 +569,10 @@ index 64579a6..71fb311 100644 } diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index a553519..40577b3 100644 +index e654653..6bd3790 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1546,6 +1546,97 @@ static void test_ITextSelection_SetEnd(void) +@@ -1701,6 +1701,97 @@ static void test_ITextSelection_SetEnd(void) release_interfaces(&w, &reOle, &txtDoc, &txtSel); } @@ -689,7 +670,7 @@ index a553519..40577b3 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1561,6 +1652,7 @@ START_TEST(richole) +@@ -1716,6 +1807,7 @@ START_TEST(richole) test_ITextSelection_SetStart(); test_ITextSelection_SetEnd(); test_ITextSelection_Collapse(); @@ -697,7 +678,7 @@ index a553519..40577b3 100644 test_ITextDocument_Range(); test_ITextRange_GetChar(); test_ITextRange_GetStart_GetEnd(); -@@ -1568,6 +1660,7 @@ START_TEST(richole) +@@ -1723,6 +1815,7 @@ START_TEST(richole) test_ITextRange_Collapse(); test_ITextRange_SetStart(); test_ITextRange_SetEnd(); diff --git a/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch b/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch index f9e7f44e..a1bfe049 100644 --- a/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch +++ b/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch @@ -1,4 +1,4 @@ -From b124ce2417572b6e7147bbfd8c931885886d37cb Mon Sep 17 00:00:00 2001 +From 94fce2253318d11cb2cdc7681d639c795b816b27 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Wed, 13 Aug 2014 15:40:11 +0800 Subject: riched20: Implement ITextRange::GetText. @@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::GetText. 2 files changed, 67 insertions(+), 21 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index f664616..4aee91f 100644 +index ee9f75c..3813c4f 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -1033,14 +1033,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R +@@ -1045,14 +1045,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R return E_NOTIMPL; } @@ -55,16 +55,16 @@ index f664616..4aee91f 100644 } static HRESULT WINAPI ITextRange_fnSetText(ITextRange *me, BSTR bstr) -@@ -3565,8 +3591,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) +@@ -3589,8 +3615,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) { ITextSelectionImpl *This = impl_from_ITextSelection(me); ME_Cursor *start = NULL, *end = NULL; - int nChars, endOfs; - BOOL bEOP; - if (!This->reOle) - return CO_E_RELEASED; -@@ -3575,23 +3599,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) + TRACE("(%p)->(%p)\n", This, pbstr); + +@@ -3601,23 +3625,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) return E_INVALIDARG; ME_GetSelection(This->reOle->editor, &start, &end); @@ -90,10 +90,10 @@ index f664616..4aee91f 100644 static HRESULT WINAPI ITextSelection_fnSetText(ITextSelection *me, BSTR bstr) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 065c86c..44b1f4c 100644 +index 44e6051..583b195 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1683,6 +1683,43 @@ static void test_ITextRange_GetPara(void) +@@ -1838,6 +1838,43 @@ static void test_ITextRange_GetPara(void) ITextPara_Release(txtPara); } @@ -137,7 +137,7 @@ index 065c86c..44b1f4c 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1708,6 +1745,7 @@ START_TEST(richole) +@@ -1863,6 +1900,7 @@ START_TEST(richole) test_ITextRange_SetEnd(); test_ITextRange_GetFont(); test_ITextRange_GetPara(); diff --git a/patches/riched20-IText_Interface/definition b/patches/riched20-IText_Interface/definition index f30720d7..dfe6d8c0 100644 --- a/patches/riched20-IText_Interface/definition +++ b/patches/riched20-IText_Interface/definition @@ -1,3 +1,3 @@ # Fixes: [12458] Support for ITextDocument_fnRange function -Fixes: [18303] Support for ITextRange, ITextFont and ITextPara +# Fixes: [18303] Support for ITextRange, ITextFont and ITextPara Fixes: Adobe Reader needs ITextSelection_fnGetDuplicate implementation diff --git a/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch b/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch index c6ea79f5..e1a4b564 100644 --- a/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch +++ b/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch @@ -1,4 +1,4 @@ -From d85bdf641474a9d1bc01fc6d5262077ba3186c59 Mon Sep 17 00:00:00 2001 +From e56e42a0193c98b3550855edf9f0015e1efc29ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 19 Mar 2015 01:22:34 +0100 Subject: server: Implement support for global and local shared memory blocks @@ -158,10 +158,10 @@ index d573d1f..695389a 100644 /* macros for server requests */ diff --git a/include/winternl.h b/include/winternl.h -index 9231468..3ecaef7 100644 +index a84c6d4..9128ffd 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -353,7 +353,7 @@ typedef struct _TEB +@@ -366,7 +366,7 @@ typedef struct _TEB PVOID Spare4; /* f7c/1750 */ PVOID ReservedForOle; /* f80/1758 */ ULONG WaitingOnLoaderLock; /* f84/1760 */ @@ -171,10 +171,10 @@ index 9231468..3ecaef7 100644 ULONG ImpersonationLocale; /* f98/1788 */ ULONG IsImpersonating; /* f9c/178c */ diff --git a/server/fd.c b/server/fd.c -index 1253b3d..08c052d 100644 +index f0a52ad..791a36f 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -2328,6 +2328,33 @@ DECL_HANDLER(write) +@@ -2323,6 +2323,33 @@ DECL_HANDLER(write) } } @@ -209,12 +209,12 @@ index 1253b3d..08c052d 100644 DECL_HANDLER(ioctl) { diff --git a/server/file.h b/server/file.h -index 603b686..c0debbd 100644 +index b5e0ca7..7ffef6f 100644 --- a/server/file.h +++ b/server/file.h -@@ -138,6 +138,14 @@ extern obj_handle_t open_mapping_file( struct process *process, struct mapping * - extern struct mapping *grab_mapping_unless_removable( struct mapping *mapping ); - extern int get_page_size(void); +@@ -145,6 +145,14 @@ extern void create_mailslot_device( struct directory *root, const struct unicode + extern struct device *create_unix_device( struct directory *root, const struct unicode_str *name, + const char *unix_path ); +/* shared memory functions */ + diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 16cc605b..ef46d323 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -9605,7 +9605,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c -@@ -5323,9 +5323,15 @@ +@@ -5325,9 +5325,15 @@ DebugBreak(); }