Rebase against 1e8759805e3c5dfe00a31bb5f13f1c1da28d2826.

This commit is contained in:
Sebastian Lackner 2015-05-21 06:24:11 +02:00
parent f09433417e
commit b2297b41c3
24 changed files with 255 additions and 908 deletions

View File

@ -85,7 +85,7 @@ for more details.*
* Add support for process specific debug channels
* Add support for wbemprox Win32_SystemEnclosure table ([Wine Bug #34517](https://bugs.winehq.org/show_bug.cgi?id=34517))
* Adobe Reader needs ITextSelection_fnGetDuplicate implementation
* Allocate fake hWnd for wineconsole curses backend ([Wine Bug #34930](https://bugs.winehq.org/show_bug.cgi?id=34930))
* ~~Allocate fake hWnd for wineconsole curses backend~~ ([Wine Bug #34930](https://bugs.winehq.org/show_bug.cgi?id=34930))
* Allow selection of audio device for PulseAudio backend
* Allow special characters in pipe names ([Wine Bug #28995](https://bugs.winehq.org/show_bug.cgi?id=28995))
* Allow to cancel a file operation via progress callback ([Wine Bug #22690](https://bugs.winehq.org/show_bug.cgi?id=22690))
@ -108,8 +108,8 @@ for more details.*
* Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} ([Wine Bug #12076](https://bugs.winehq.org/show_bug.cgi?id=12076))
* CreateProcess does not prioritize the working directory over the system search path ([Wine Bug #23934](https://bugs.winehq.org/show_bug.cgi?id=23934))
* D3DCompileShader should filter specific warning messages ([Wine Bug #33770](https://bugs.winehq.org/show_bug.cgi?id=33770))
* Dirtify vertex shader on transformed update to fix graphical corruption ([Wine Bug #38539](https://bugs.winehq.org/show_bug.cgi?id=38539))
* Do not append duplicate NULL characters when importing keys with regedit ([Wine Bug #37575](https://bugs.winehq.org/show_bug.cgi?id=37575))
* ~~Dirtify vertex shader on transformed update to fix graphical corruption~~ ([Wine Bug #38539](https://bugs.winehq.org/show_bug.cgi?id=38539))
* ~~Do not append duplicate NULL characters when importing keys with regedit~~ ([Wine Bug #37575](https://bugs.winehq.org/show_bug.cgi?id=37575))
* ~~Do not create foreign thread queues for attach_thread_input requests~~ ([Wine Bug #38562](https://bugs.winehq.org/show_bug.cgi?id=38562))
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
* Emulate access to KI_USER_SHARED_DATA kernel page on x86_64 ([Wine Bug #33849](https://bugs.winehq.org/show_bug.cgi?id=33849))
@ -176,7 +176,7 @@ for more details.*
* Implement combase.WindowsSubstring function
* Implement empty enumerator for IWiaDevMgr::EnumDeviceInfo ([Wine Bug #27775](https://bugs.winehq.org/show_bug.cgi?id=27775))
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
* Implement kernel32.GetSystemTimePreciseAsFileTime ([Wine Bug #38513](https://bugs.winehq.org/show_bug.cgi?id=38513))
* ~~Implement kernel32.GetSystemTimePreciseAsFileTime~~ ([Wine Bug #38513](https://bugs.winehq.org/show_bug.cgi?id=38513))
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
* Implement mscoree._CorValidateImage for mono runtime
* Implement ntoskrnl driver testing framework.

8
debian/changelog vendored
View File

@ -9,6 +9,14 @@ wine-staging (1.7.44) UNRELEASED; urgency=low
(accepted upstream).
* Removed patch to fix memory leak in wininet cookie handling (accepted
upstream).
* Removed patch to allocate fake hWnd for wineconsole curses backend (accepted
upstream).
* Removed patch to dirtify vertex shader on transformed update (accepted
upstream).
* Removed patch to avoid appending duplicate NULL characters when importing
keys with regedit (accepted upstream).
* Removed patch to implement kernel32.GetSystemTimePreciseAsFileTime (accepted
upstream).
* Removed various patches containing tests (accepted upstream).
* Partially removed patches for ITextFont/ITextPara implementation (fixed
upstream).

View File

@ -1,93 +0,0 @@
From 59136b0d18daced5dcfc77744cbd20425273a2a0 Mon Sep 17 00:00:00 2001
From: Martin Storsjo <martin@martin.st>
Date: Thu, 7 May 2015 23:02:34 +0300
Subject: kernel32: Implement GetSystemTimePreciseAsFileTime
This just falls back to doing the same as GetSystemTimeAsFileTime.
---
.../api-ms-win-core-sysinfo-l1-2-0.spec | 2 +-
.../api-ms-win-core-sysinfo-l1-2-1.spec | 2 +-
dlls/kernel32/kernel32.spec | 1 +
dlls/kernel32/time.c | 15 +++++++++++++++
include/winbase.h | 1 +
5 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec b/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec
index d3df6bd..9b05674 100644
--- a/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec
+++ b/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec
@@ -14,7 +14,7 @@
@ stdcall GetSystemTime(ptr) kernel32.GetSystemTime
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
@ stdcall GetSystemTimeAsFileTime(ptr) kernel32.GetSystemTimeAsFileTime
-@ stub GetSystemTimePreciseAsFileTime
+@ stdcall GetSystemTimePreciseAsFileTime(ptr) kernel32.GetSystemTimePreciseAsFileTime
@ stdcall GetSystemWindowsDirectoryA(ptr long) kernel32.GetSystemWindowsDirectoryA
@ stdcall GetSystemWindowsDirectoryW(ptr long) kernel32.GetSystemWindowsDirectoryW
@ stdcall GetTickCount() kernel32.GetTickCount
diff --git a/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec b/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec
index 29262c5..018ab05 100644
--- a/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec
+++ b/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec
@@ -16,7 +16,7 @@
@ stdcall GetSystemTime(ptr) kernel32.GetSystemTime
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
@ stdcall GetSystemTimeAsFileTime(ptr) kernel32.GetSystemTimeAsFileTime
-@ stub GetSystemTimePreciseAsFileTime
+@ stdcall GetSystemTimePreciseAsFileTime(ptr) kernel32.GetSystemTimePreciseAsFileTime
@ stdcall GetSystemWindowsDirectoryA(ptr long) kernel32.GetSystemWindowsDirectoryA
@ stdcall GetSystemWindowsDirectoryW(ptr long) kernel32.GetSystemWindowsDirectoryW
@ stdcall -ret64 GetTickCount64() kernel32.GetTickCount64
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 1261738..8f6a13e 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -829,6 +829,7 @@
@ stdcall GetSystemTime(ptr)
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr)
@ stdcall GetSystemTimeAsFileTime(ptr)
+@ stdcall GetSystemTimePreciseAsFileTime(ptr)
@ stdcall GetSystemTimes(ptr ptr ptr)
@ stdcall GetSystemWindowsDirectoryA(ptr long)
@ stdcall GetSystemWindowsDirectoryW(ptr long)
diff --git a/dlls/kernel32/time.c b/dlls/kernel32/time.c
index 2b8e1d9..daafc7f 100644
--- a/dlls/kernel32/time.c
+++ b/dlls/kernel32/time.c
@@ -548,6 +548,21 @@ VOID WINAPI GetSystemTimeAsFileTime(
}
+/***********************************************************************
+ * GetSystemTimePreciseAsFileTime (KERNEL32.@)
+ *
+ * Get the current time in utc format, with <1 us precision.
+ *
+ * RETURNS
+ * Nothing.
+ */
+VOID WINAPI GetSystemTimePreciseAsFileTime(
+ LPFILETIME time) /* [out] Destination for the current utc time */
+{
+ GetSystemTimeAsFileTime(time);
+}
+
+
/*********************************************************************
* TIME_ClockTimeToFileTime (olorin@fandra.org, 20-Sep-1998)
*
diff --git a/include/winbase.h b/include/winbase.h
index a8f3fb6..7540e6d 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2040,6 +2040,7 @@ WINBASEAPI BOOL WINAPI GetSystemRegistryQuota(PDWORD,PDWORD);
WINBASEAPI VOID WINAPI GetSystemTime(LPSYSTEMTIME);
WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME);
+WINBASEAPI VOID WINAPI GetSystemTimePreciseAsFileTime(LPFILETIME);
WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT);
WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT);
#define GetSystemWindowsDirectory WINELIB_NAME_AW(GetSystemWindowsDirectory)
--
2.4.0

View File

@ -1,2 +0,0 @@
Fixes: [38513] Implement kernel32.GetSystemTimePreciseAsFileTime
Category: stable

View File

@ -1,14 +1,14 @@
From 599947d1aaf88c78ed5affe2609c431db14bccd4 Mon Sep 17 00:00:00 2001
From 25af9ecd4fb4120ca415afd27079b749a11b6537 Mon Sep 17 00:00:00 2001
From: Louis Lenders <xerox_xerox2000@yahoo.co.uk>
Date: Sun, 27 Jul 2014 11:42:28 -0600
Subject: kernel32: Add tests for GetSystemTimes.
---
dlls/kernel32/tests/time.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
dlls/kernel32/tests/time.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/dlls/kernel32/tests/time.c b/dlls/kernel32/tests/time.c
index 378941d..1937e65 100644
index d205174..5b0bf69 100644
--- a/dlls/kernel32/tests/time.c
+++ b/dlls/kernel32/tests/time.c
@@ -22,9 +22,11 @@
@ -23,10 +23,10 @@ index 378941d..1937e65 100644
static int (WINAPI *pGetCalendarInfoA)(LCID,CALID,CALTYPE,LPSTR,int,LPDWORD);
static int (WINAPI *pGetCalendarInfoW)(LCID,CALID,CALTYPE,LPWSTR,int,LPDWORD);
static DWORD (WINAPI *pGetDynamicTimeZoneInformation)(DYNAMIC_TIME_ZONE_INFORMATION*);
@@ -760,12 +762,85 @@ static void test_GetDynamicTimeZoneInformation(void)
ok(dyninfo.TimeZoneKeyName[0] != 0, "got empty tz keyname\n");
trace("Dyn TimeZoneKeyName %s\n", wine_dbgstr_w(dyninfo.TimeZoneKeyName));
@@ -801,11 +803,85 @@ static void test_GetSystemTimePreciseAsFileTime(void)
ok(diff < 10000 && diff > 0, "GetSystemTimePreciseAsFileTime incremented by more than 1 ms\n");
}
+static void test_GetSystemTimes(void)
+{
+
@ -99,7 +99,7 @@ index 378941d..1937e65 100644
+
+ HeapFree(GetProcessHeap(), 0, sppi);
+}
+
START_TEST(time)
{
HMODULE hKernel = GetModuleHandleA("kernel32");
@ -109,7 +109,7 @@ index 378941d..1937e65 100644
pGetCalendarInfoA = (void *)GetProcAddress(hKernel, "GetCalendarInfoA");
pGetCalendarInfoW = (void *)GetProcAddress(hKernel, "GetCalendarInfoW");
pGetDynamicTimeZoneInformation = (void *)GetProcAddress(hKernel, "GetDynamicTimeZoneInformation");
@@ -776,6 +851,7 @@ START_TEST(time)
@@ -817,6 +893,7 @@ START_TEST(time)
test_FileTimeToSystemTime();
test_FileTimeToLocalFileTime();
test_TzSpecificLocalTimeToSystemTime();

View File

@ -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 f4790714fe69df7701cff666d6b5ab4be049cbf6"
echo " commit 1e8759805e3c5dfe00a31bb5f13f1c1da28d2826"
echo ""
}
@ -135,7 +135,6 @@ patch_enable_all ()
enable_kernel32_GetFinalPathNameByHandle="$1"
enable_kernel32_GetLogicalProcessorInformationEx="$1"
enable_kernel32_GetNumaProcessorNode="$1"
enable_kernel32_GetSystemTimePreciseAsFileTime="$1"
enable_kernel32_GetSystemTimes="$1"
enable_kernel32_GetVolumePathName="$1"
enable_kernel32_Named_Pipe="$1"
@ -194,7 +193,6 @@ patch_enable_all ()
enable_ole32_CoWaitForMultipleHandles="$1"
enable_opengl32_Revert_Disable_Ext="$1"
enable_quartz_MediaSeeking_Positions="$1"
enable_regedit_String_Termination="$1"
enable_riched20_IText_Interface="$1"
enable_rpcrt4_Use_After_Free="$1"
enable_secur32_ANSI_NTLM_Credentials="$1"
@ -254,11 +252,9 @@ patch_enable_all ()
enable_winecfg_Libraries="$1"
enable_winecfg_Staging="$1"
enable_winecfg_Unmounted_Devices="$1"
enable_wineconsole_Curses_Fake_Wnd="$1"
enable_wined3d_CSMT_Helper="$1"
enable_wined3d_CSMT_Main="$1"
enable_wined3d_DXTn="$1"
enable_wined3d_Dirtify_Vertex_Shader="$1"
enable_wined3d_Multisampling="$1"
enable_wined3d_Revert_PixelFormat="$1"
enable_wined3d_UnhandledBlendFactor="$1"
@ -471,9 +467,6 @@ patch_enable ()
kernel32-GetNumaProcessorNode)
enable_kernel32_GetNumaProcessorNode="$2"
;;
kernel32-GetSystemTimePreciseAsFileTime)
enable_kernel32_GetSystemTimePreciseAsFileTime="$2"
;;
kernel32-GetSystemTimes)
enable_kernel32_GetSystemTimes="$2"
;;
@ -648,9 +641,6 @@ patch_enable ()
quartz-MediaSeeking_Positions)
enable_quartz_MediaSeeking_Positions="$2"
;;
regedit-String_Termination)
enable_regedit_String_Termination="$2"
;;
riched20-IText_Interface)
enable_riched20_IText_Interface="$2"
;;
@ -828,9 +818,6 @@ patch_enable ()
winecfg-Unmounted_Devices)
enable_winecfg_Unmounted_Devices="$2"
;;
wineconsole-Curses_Fake_Wnd)
enable_wineconsole_Curses_Fake_Wnd="$2"
;;
wined3d-CSMT_Helper)
enable_wined3d_CSMT_Helper="$2"
;;
@ -840,9 +827,6 @@ patch_enable ()
wined3d-DXTn)
enable_wined3d_DXTn="$2"
;;
wined3d-Dirtify_Vertex_Shader)
enable_wined3d_Dirtify_Vertex_Shader="$2"
;;
wined3d-Multisampling)
enable_wined3d_Multisampling="$2"
;;
@ -1361,9 +1345,6 @@ if test "$enable_category_stable" -eq 1; then
if test "$enable_kernel32_CompareStringEx" -gt 1; then
abort "Patchset kernel32-CompareStringEx disabled, but category-stable depends on that."
fi
if test "$enable_kernel32_GetSystemTimePreciseAsFileTime" -gt 1; then
abort "Patchset kernel32-GetSystemTimePreciseAsFileTime disabled, but category-stable depends on that."
fi
if test "$enable_kernel32_Named_Pipe" -gt 1; then
abort "Patchset kernel32-Named_Pipe disabled, but category-stable depends on that."
fi
@ -1439,9 +1420,6 @@ if test "$enable_category_stable" -eq 1; then
if test "$enable_opengl32_Revert_Disable_Ext" -gt 1; then
abort "Patchset opengl32-Revert_Disable_Ext disabled, but category-stable depends on that."
fi
if test "$enable_regedit_String_Termination" -gt 1; then
abort "Patchset regedit-String_Termination disabled, but category-stable depends on that."
fi
if test "$enable_server_Address_List_Change" -gt 1; then
abort "Patchset server-Address_List_Change disabled, but category-stable depends on that."
fi
@ -1505,9 +1483,6 @@ if test "$enable_category_stable" -eq 1; then
if test "$enable_winecfg_Libraries" -gt 1; then
abort "Patchset winecfg-Libraries disabled, but category-stable depends on that."
fi
if test "$enable_wined3d_Dirtify_Vertex_Shader" -gt 1; then
abort "Patchset wined3d-Dirtify_Vertex_Shader disabled, but category-stable depends on that."
fi
if test "$enable_wined3d_Multisampling" -gt 1; then
abort "Patchset wined3d-Multisampling disabled, but category-stable depends on that."
fi
@ -1586,7 +1561,6 @@ if test "$enable_category_stable" -eq 1; then
enable_gdi32_MaxPixelFormats=1
enable_gdiplus_GdipCreateEffect=1
enable_kernel32_CompareStringEx=1
enable_kernel32_GetSystemTimePreciseAsFileTime=1
enable_kernel32_Named_Pipe=1
enable_libs_Debug_Channel=1
enable_libs_Unicode_Collation=1
@ -1612,7 +1586,6 @@ if test "$enable_category_stable" -eq 1; then
enable_ntdll_WriteWatches=1
enable_ntoskrnl_Emulator=1
enable_opengl32_Revert_Disable_Ext=1
enable_regedit_String_Termination=1
enable_server_Address_List_Change=1
enable_server_ClipCursor=1
enable_server_CreateProcess_ACLs=1
@ -1634,7 +1607,6 @@ if test "$enable_category_stable" -eq 1; then
enable_wineboot_MachineGuid=1
enable_winebuild_LinkerVersion=1
enable_winecfg_Libraries=1
enable_wined3d_Dirtify_Vertex_Shader=1
enable_wined3d_Multisampling=1
enable_wined3d_Revert_PixelFormat=1
enable_wined3d_UnhandledBlendFactor=1
@ -1811,13 +1783,6 @@ if test "$enable_kernel32_CopyFileEx" -eq 1; then
enable_ntdll_FileDispositionInformation=1
fi
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
if test "$enable_kernel32_SetFileCompletionNotificationMode" -gt 1; then
abort "Patchset kernel32-SetFileCompletionNotificationMode disabled, but kernel32-SetFileInformationByHandle depends on that."
fi
enable_kernel32_SetFileCompletionNotificationMode=1
fi
if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
if test "$enable_server_File_Permissions" -gt 1; then
abort "Patchset server-File_Permissions disabled, but ntdll-FileDispositionInformation depends on that."
@ -1825,6 +1790,13 @@ if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
enable_server_File_Permissions=1
fi
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
if test "$enable_kernel32_SetFileCompletionNotificationMode" -gt 1; then
abort "Patchset kernel32-SetFileCompletionNotificationMode disabled, but kernel32-SetFileInformationByHandle depends on that."
fi
enable_kernel32_SetFileCompletionNotificationMode=1
fi
if test "$enable_dxva2_Video_Decoder" -eq 1; then
if test "$enable_winecfg_Staging" -gt 1; then
abort "Patchset winecfg-Staging disabled, but dxva2-Video_Decoder depends on that."
@ -2057,6 +2029,23 @@ if test "$enable_advapi32_ImpersonateAnonymousToken" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-Misc_ACL
# |
# | This patchset fixes the following Wine bugs:
# | * [#15980] GetSecurityInfo returns NULL DACL for process object
# |
# | Modified files:
# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c
# |
if test "$enable_server_Misc_ACL" -eq 1; then
patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch
patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch
(
echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },';
echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },';
) >> "$patchlist"
fi
# Patchset server-CreateProcess_ACLs
# |
# | This patchset fixes the following Wine bugs:
@ -2076,23 +2065,6 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-Misc_ACL
# |
# | This patchset fixes the following Wine bugs:
# | * [#15980] GetSecurityInfo returns NULL DACL for process object
# |
# | Modified files:
# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c
# |
if test "$enable_server_Misc_ACL" -eq 1; then
patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch
patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch
(
echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },';
echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },';
) >> "$patchlist"
fi
# Patchset advapi32-LsaLookupSids
# |
# | Modified files:
@ -2758,21 +2730,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-Dirtify_Vertex_Shader
# |
# | This patchset fixes the following Wine bugs:
# | * [#38539] Dirtify vertex shader on transformed update to fix graphical corruption
# |
# | Modified files:
# | * dlls/wined3d/glsl_shader.c
# |
if test "$enable_wined3d_Dirtify_Vertex_Shader" -eq 1; then
patch_apply wined3d-Dirtify_Vertex_Shader/0001-wined3d-Dirtify-vertex-shader-on-transformed-untrans.patch
(
echo '+ { "Matteo Bruni", "wined3d: Dirtify vertex shader on transformed <-> untransformed transition.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Multisampling
# |
# | This patchset fixes the following Wine bugs:
@ -3464,6 +3421,36 @@ if test "$enable_kernel32_CompareStringEx" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-SetFileCompletionNotificationMode
# |
# | This patchset fixes the following Wine bugs:
# | * [#38493] Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode)
# |
# | Modified files:
# | * dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec, dlls/kernel32/file.c,
# | dlls/kernel32/kernel32.spec, include/winbase.h
# |
if test "$enable_kernel32_SetFileCompletionNotificationMode" -eq 1; then
patch_apply kernel32-SetFileCompletionNotificationMode/0001-kernel32-Implement-SetFileCompletionNotificationMode.patch
(
echo '+ { "Olivier F. R. Dierick", "kernel32: Implement SetFileCompletionNotificationModes as a stub.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-SetFileInformationByHandle
# |
# | Modified files:
# | * dlls/kernel32/file.c, include/winbase.h
# |
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
patch_apply kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch
patch_apply kernel32-SetFileInformationByHandle/0002-kernel32-Implement-SetFileInformationByHandle.patch
(
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
) >> "$patchlist"
fi
# Patchset server-File_Permissions
# |
# | Modified files:
@ -3505,36 +3492,6 @@ if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-SetFileCompletionNotificationMode
# |
# | This patchset fixes the following Wine bugs:
# | * [#38493] Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode)
# |
# | Modified files:
# | * dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec, dlls/kernel32/file.c,
# | dlls/kernel32/kernel32.spec, include/winbase.h
# |
if test "$enable_kernel32_SetFileCompletionNotificationMode" -eq 1; then
patch_apply kernel32-SetFileCompletionNotificationMode/0001-kernel32-Implement-SetFileCompletionNotificationMode.patch
(
echo '+ { "Olivier F. R. Dierick", "kernel32: Implement SetFileCompletionNotificationModes as a stub.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-SetFileInformationByHandle
# |
# | Modified files:
# | * dlls/kernel32/file.c, include/winbase.h
# |
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
patch_apply kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch
patch_apply kernel32-SetFileInformationByHandle/0002-kernel32-Implement-SetFileInformationByHandle.patch
(
echo '+ { "Michael Müller", "include: Declare a couple more file information class structures.", 1 },';
echo '+ { "Michael Müller", "kernel32: Implement SetFileInformationByHandle.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-CopyFileEx
# |
# | This patchset fixes the following Wine bugs:
@ -3594,22 +3551,6 @@ if test "$enable_kernel32_GetNumaProcessorNode" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-GetSystemTimePreciseAsFileTime
# |
# | This patchset fixes the following Wine bugs:
# | * [#38513] Implement kernel32.GetSystemTimePreciseAsFileTime
# |
# | Modified files:
# | * dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec, dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-
# | core-sysinfo-l1-2-1.spec, dlls/kernel32/kernel32.spec, dlls/kernel32/time.c, include/winbase.h
# |
if test "$enable_kernel32_GetSystemTimePreciseAsFileTime" -eq 1; then
patch_apply kernel32-GetSystemTimePreciseAsFileTime/0001-kernel32-Implement-GetSystemTimePreciseAsFileTime.patch
(
echo '+ { "Martin Storsjo", "kernel32: Implement GetSystemTimePreciseAsFileTime.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-GetSystemTimes
# |
# | This patchset fixes the following Wine bugs:
@ -4579,21 +4520,6 @@ if test "$enable_quartz_MediaSeeking_Positions" -eq 1; then
) >> "$patchlist"
fi
# Patchset regedit-String_Termination
# |
# | This patchset fixes the following Wine bugs:
# | * [#37575] Do not append duplicate NULL characters when importing keys with regedit
# |
# | Modified files:
# | * programs/regedit/regproc.c
# |
if test "$enable_regedit_String_Termination" -eq 1; then
patch_apply regedit-String_Termination/0001-regedit-Avoid-appending-and-0-to-string-value-of-imp.patch
(
echo '+ { "Jiaxing Wang", "regedit: Avoid appending '\''\\\\0'\'' to string value of imported key.", 1 },';
) >> "$patchlist"
fi
# Patchset riched20-IText_Interface
# |
# | This patchset fixes the following Wine bugs:
@ -5472,21 +5398,6 @@ if test "$enable_winecfg_Unmounted_Devices" -eq 1; then
) >> "$patchlist"
fi
# Patchset wineconsole-Curses_Fake_Wnd
# |
# | This patchset fixes the following Wine bugs:
# | * [#34930] Allocate fake hWnd for wineconsole curses backend
# |
# | Modified files:
# | * programs/wineconsole/curses.c
# |
if test "$enable_wineconsole_Curses_Fake_Wnd" -eq 1; then
patch_apply wineconsole-Curses_Fake_Wnd/0001-wineconsole-Allocate-fake-hwnds-for-curses-backend.patch
(
echo '+ { "Sebastian Lackner", "wineconsole: Allocate fake hwnds for curses backend.", 1 },';
) >> "$patchlist"
fi
# Patchset winedevice-Fix_Relocation
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,38 +0,0 @@
From ec88679b1ecd54f40dccaf374ca21bb96441a18a Mon Sep 17 00:00:00 2001
From: Jiaxing Wang <hello.wjx@gmail.com>
Date: Thu, 20 Nov 2014 15:29:07 +0800
Subject: regedit: Avoid appending '\0' to string value of imported key.
After importing, string values are appended with '\0'.
For example, importing:
[HKEY_LOCAL_MACHINE\testkey]
"value"="abc"
gets
[HKEY_LOCAL_MACHINE\testkey]
"value"="abc\0"
This is because the null character after last quote is included
which is not needed as the last quote has been changed to '\0' and
dwLen already include the last quote.
---
programs/regedit/regproc.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 80beb21..643b559 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -376,7 +376,6 @@ static LONG setValue(WCHAR* val_name, WCHAR* val_data, BOOL is_unicode)
return ERROR_INVALID_DATA;
val_data[dwLen-1] = '\0'; /* remove last quotes */
lpbData = (BYTE*) val_data;
- dwLen++; /* include terminating null */
dwLen = dwLen * sizeof(WCHAR); /* size is in bytes */
}
else if (dwParseType == REG_DWORD) /* Convert the dword types */
--
2.2.1

View File

@ -1,2 +0,0 @@
Fixes: [37575] Do not append duplicate NULL characters when importing keys with regedit
Category: stable

View File

@ -1,4 +1,4 @@
From c75a9af77ea3cc0abea38a7c595b52093b4d166a Mon Sep 17 00:00:00 2001
From 5dac9e4ab5b7df2ab94e2338b425b83249515169 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
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 4f85325..55dda9b 100644
index c9c75b8..64579a6 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -2995,14 +2995,33 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir
@@ -3233,14 +3233,33 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir
return S_OK;
}
@ -48,7 +48,7 @@ index 4f85325..55dda9b 100644
}
static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
@@ -3019,14 +3038,33 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
@@ -3257,14 +3276,33 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
return S_OK;
}
@ -83,12 +83,12 @@ index 4f85325..55dda9b 100644
+ return hres;
}
static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **pFont)
static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **font)
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index d826298..9a52f78 100644
index a47d31f..a553519 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1347,6 +1347,137 @@ todo_wine {
@@ -1415,6 +1415,137 @@ todo_wine {
release_interfaces(&hwnd, &reOle, &doc, NULL);
}
@ -226,7 +226,7 @@ index d826298..9a52f78 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1359,12 +1490,16 @@ START_TEST(richole)
@@ -1427,12 +1558,16 @@ START_TEST(richole)
test_ITextSelection_GetText();
test_ITextSelection_GetChar();
test_ITextSelection_GetStart_GetEnd();

View File

@ -1,80 +1,27 @@
From 3dbb76ac15c52c9d190f7dc9c0ebf1aa9849d033 Mon Sep 17 00:00:00 2001
From cc36959dd99ee77266b9b93d759934124457abc3 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
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 | 361 ++++++++++++++++++++++++++++++++++++++++--
dlls/riched20/tests/richole.c | 93 +++++++++++
2 files changed, 438 insertions(+), 16 deletions(-)
dlls/riched20/richole.c | 220 +++++++++++++++++++++++++++++++++++++++++-
dlls/riched20/tests/richole.c | 93 ++++++++++++++++++
2 files changed, 312 insertions(+), 1 deletion(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index b3566e5..54448f5 100644
index 64579a6..71fb311 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -52,6 +52,7 @@ DEFINE_GUID(IID_ITextPara, 0x8cc497c4, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0
typedef struct ITextSelectionImpl ITextSelectionImpl;
typedef struct IOleClientSiteImpl IOleClientSiteImpl;
typedef struct ITextRangeImpl ITextRangeImpl;
+typedef struct ITextFontImpl ITextFontImpl;
typedef struct IRichEditOleImpl {
IUnknown IUnknown_inner;
@@ -87,6 +88,7 @@ typedef struct ITextFontImpl {
LONG ref;
ITextRange *range;
+ ITextSelection *selection;
} ITextFontImpl;
typedef struct ITextParaImpl {
@@ -150,7 +152,7 @@ static inline ITextParaImpl *impl_from_ITextPara(ITextPara *iface)
return CONTAINING_RECORD(iface, ITextParaImpl, ITextPara_iface);
}
-static HRESULT create_textfont(ITextRange*, ITextFont**);
+static HRESULT create_textfont(ITextRange*, ITextSelection*, ITextFont**);
static HRESULT create_textpara(ITextRange*, ITextPara**);
enum textfont_prop_id {
@@ -1108,7 +1110,7 @@ static HRESULT WINAPI ITextRange_fnGetFont(ITextRange *me, ITextFont **font)
if (!font)
return E_INVALIDARG;
- return create_textfont(me, font);
+ return create_textfont(me, NULL, font);
}
static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont)
@@ -1632,16 +1634,39 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
if (!ref)
{
- ITextRange_Release(This->range);
+ if (This->range)
+ ITextRange_Release(This->range);
+ if (This->selection)
+ ITextSelection_Release(This->selection);
heap_free(This);
}
@@ -1749,9 +1749,21 @@ static ULONG WINAPI TextFont_Release(ITextFont *iface)
return ref;
}
+static IRichEditOleImpl *font_get_reole(ITextFontImpl *This)
+{
+ if (This->range)
+ {
+ ITextRangeImpl *rng = impl_from_ITextRange(This->range);
+ return rng->reOle;
+ }
+ if (This->selection)
+ {
+ ITextSelectionImpl *sel = impl_from_ITextSelection(This->selection);
+ return sel->reOle;
+ }
+ return NULL;
+ IRichEditOleImpl *reole;
+ ITextRange_QueryInterface(This->range, &IID_Igetrichole, (void**)&reole);
+ return reole;
+}
+
static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
@ -88,7 +35,7 @@ index b3566e5..54448f5 100644
*pctinfo = 0;
return E_NOTIMPL;
}
@@ -1649,14 +1674,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
@@ -1759,14 +1771,24 @@ static HRESULT WINAPI TextFont_GetTypeInfoCount(ITextFont *iface, UINT *pctinfo)
static HRESULT WINAPI TextFont_GetTypeInfo(ITextFont *iface, UINT iTInfo, LCID lcid,
ITypeInfo **ppTInfo)
{
@ -113,7 +60,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1671,7 +1706,12 @@ static HRESULT WINAPI TextFont_Invoke(
@@ -1781,7 +1803,12 @@ static HRESULT WINAPI TextFont_Invoke(
EXCEPINFO *pExcepInfo,
UINT *puArgErr)
{
@ -126,7 +73,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1679,6 +1719,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret)
@@ -1789,6 +1816,10 @@ static HRESULT WINAPI TextFont_GetDuplicate(ITextFont *iface, ITextFont **ret)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, ret);
@ -137,7 +84,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1686,6 +1730,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont)
@@ -1796,6 +1827,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, pFont);
@ -148,7 +95,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1693,6 +1741,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret)
@@ -1803,6 +1838,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, ret);
@ -159,7 +106,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1700,6 +1752,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG *
@@ -1810,6 +1849,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG *
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, ret);
@ -170,7 +117,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1707,6 +1763,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value)
@@ -1817,6 +1860,10 @@ static HRESULT WINAPI TextFont_Reset(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p): stub\n", This);
@ -181,7 +128,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1714,6 +1774,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value)
@@ -1824,6 +1871,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -192,7 +139,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1721,6 +1785,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value)
@@ -1831,6 +1882,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -203,7 +150,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1728,6 +1796,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value)
@@ -1838,6 +1893,10 @@ static HRESULT WINAPI TextFont_GetAllCaps(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -214,7 +161,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1735,6 +1807,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value)
@@ -1845,6 +1904,10 @@ static HRESULT WINAPI TextFont_SetAllCaps(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -225,7 +172,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1742,6 +1818,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value)
@@ -1852,6 +1915,10 @@ static HRESULT WINAPI TextFont_GetAnimation(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -236,7 +183,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1749,6 +1829,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value)
@@ -1859,6 +1926,10 @@ static HRESULT WINAPI TextFont_SetAnimation(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -247,7 +194,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1756,6 +1840,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value)
@@ -1866,6 +1937,10 @@ static HRESULT WINAPI TextFont_GetBackColor(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -258,7 +205,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1763,6 +1851,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
@@ -1873,6 +1948,10 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -269,28 +216,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1770,13 +1862,30 @@ static HRESULT WINAPI TextFont_GetBold(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
TRACE("(%p)->(%p)\n", This, value);
- return get_textfont_prop(This->range, FONT_BOLD, value);
+
+ if (This->range)
+ return get_textfont_prop(This->range, FONT_BOLD, value);
+
+ if (!value)
+ return E_INVALIDARG;
+
+ *value = tomUndefined;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ FIXME("not implemented\n");
+ return E_NOTIMPL;
}
static HRESULT WINAPI TextFont_SetBold(ITextFont *iface, LONG value)
@@ -1887,6 +1966,10 @@ static HRESULT WINAPI TextFont_SetBold(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -301,7 +227,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1784,6 +1893,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value)
@@ -1894,6 +1977,10 @@ static HRESULT WINAPI TextFont_GetEmboss(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -312,7 +238,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1791,6 +1904,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
@@ -1901,6 +1988,10 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -323,25 +249,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1798,13 +1915,27 @@ static HRESULT WINAPI TextFont_GetForeColor(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
+
+ if (!value)
+ return E_INVALIDARG;
+
+ *value = tomUndefined;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ *value = tomAutoColor;
+ return S_OK;
}
static HRESULT WINAPI TextFont_SetForeColor(ITextFont *iface, LONG value)
@@ -1915,6 +2006,10 @@ static HRESULT WINAPI TextFont_SetForeColor(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -352,7 +260,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1812,6 +1943,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value)
@@ -1922,6 +2017,10 @@ static HRESULT WINAPI TextFont_GetHidden(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -363,7 +271,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1819,6 +1954,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value)
@@ -1929,6 +2028,10 @@ static HRESULT WINAPI TextFont_SetHidden(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -374,7 +282,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1826,6 +1965,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value)
@@ -1936,6 +2039,10 @@ static HRESULT WINAPI TextFont_GetEngrave(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -385,7 +293,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1833,6 +1976,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
@@ -1943,6 +2050,10 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -396,28 +304,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1840,13 +1987,30 @@ static HRESULT WINAPI TextFont_GetItalic(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
TRACE("(%p)->(%p)\n", This, value);
- return get_textfont_prop(This->range, FONT_ITALIC, value);
+
+ if (This->range)
+ return get_textfont_prop(This->range, FONT_ITALIC, value);
+
+ if (!value)
+ return E_INVALIDARG;
+
+ *value = tomUndefined;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ FIXME("not implemented\n");
+ return E_NOTIMPL;
}
static HRESULT WINAPI TextFont_SetItalic(ITextFont *iface, LONG value)
@@ -1957,6 +2068,10 @@ static HRESULT WINAPI TextFont_SetItalic(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -428,7 +315,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1854,6 +2018,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value)
@@ -1964,6 +2079,10 @@ static HRESULT WINAPI TextFont_GetKerning(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -439,7 +326,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1861,6 +2029,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
@@ -1971,6 +2090,10 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%.2f): stub\n", This, value);
@ -450,18 +337,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1868,6 +2040,10 @@ static HRESULT WINAPI TextFont_GetLanguageID(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
return E_NOTIMPL;
}
@@ -1875,20 +2051,40 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value)
@@ -1985,20 +2108,39 @@ static HRESULT WINAPI TextFont_SetLanguageID(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -476,7 +352,6 @@ index b3566e5..54448f5 100644
{
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;
+
@ -503,7 +378,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1896,6 +2092,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value)
@@ -2006,6 +2148,10 @@ static HRESULT WINAPI TextFont_GetOutline(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -514,7 +389,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1903,6 +2103,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value)
@@ -2013,6 +2159,10 @@ static HRESULT WINAPI TextFont_SetOutline(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -525,7 +400,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1910,6 +2114,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value)
@@ -2020,6 +2170,10 @@ static HRESULT WINAPI TextFont_GetPosition(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -536,7 +411,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1917,6 +2125,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value)
@@ -2027,6 +2181,10 @@ static HRESULT WINAPI TextFont_SetPosition(ITextFont *iface, FLOAT value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%.2f): stub\n", This, value);
@ -547,7 +422,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1924,6 +2136,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value)
@@ -2034,6 +2192,10 @@ static HRESULT WINAPI TextFont_GetProtected(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -558,7 +433,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1931,6 +2147,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value)
@@ -2041,6 +2203,10 @@ static HRESULT WINAPI TextFont_SetProtected(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -569,7 +444,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1938,6 +2158,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value)
@@ -2048,6 +2214,10 @@ static HRESULT WINAPI TextFont_GetShadow(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -580,7 +455,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1945,6 +2169,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
@@ -2055,6 +2225,10 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -591,25 +466,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1952,13 +2180,27 @@ static HRESULT WINAPI TextFont_GetSize(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
+
+ if (!value)
+ return E_INVALIDARG;
+
+ *value = 0.0;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ *value = 12.0;
+ return S_OK;
}
static HRESULT WINAPI TextFont_SetSize(ITextFont *iface, FLOAT value)
@@ -2069,6 +2243,10 @@ static HRESULT WINAPI TextFont_SetSize(ITextFont *iface, FLOAT value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%.2f): stub\n", This, value);
@ -620,7 +477,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1966,6 +2208,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value)
@@ -2076,6 +2254,10 @@ static HRESULT WINAPI TextFont_GetSmallCaps(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -631,7 +488,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1973,6 +2219,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value)
@@ -2083,6 +2265,10 @@ static HRESULT WINAPI TextFont_SetSmallCaps(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -642,7 +499,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1980,6 +2230,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value)
@@ -2090,6 +2276,10 @@ static HRESULT WINAPI TextFont_GetSpacing(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -653,7 +510,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1987,6 +2241,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
@@ -2097,6 +2287,10 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%.2f): stub\n", This, value);
@ -664,25 +521,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -1994,13 +2252,27 @@ static HRESULT WINAPI TextFont_GetStrikeThrough(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
+
+ if (!value)
+ return E_INVALIDARG;
+
+ *value = tomUndefined;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ *value = tomFalse;
+ return S_OK;
}
static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value)
@@ -2111,6 +2305,10 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -693,25 +532,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -2008,13 +2280,27 @@ static HRESULT WINAPI TextFont_GetSubscript(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
+
+ if (!value)
+ return E_INVALIDARG;
+
+ *value = tomUndefined;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ *value = tomFalse;
+ return S_OK;
}
static HRESULT WINAPI TextFont_SetSubscript(ITextFont *iface, LONG value)
@@ -2125,6 +2323,10 @@ static HRESULT WINAPI TextFont_SetSubscript(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -722,25 +543,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -2022,13 +2308,27 @@ static HRESULT WINAPI TextFont_GetSuperscript(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
+
+ if (value)
+ return E_INVALIDARG;
+
+ *value = tomUndefined;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ *value = tomFalse;
+ return S_OK;
}
static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value)
@@ -2139,6 +2341,10 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -751,25 +554,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -2036,13 +2336,27 @@ static HRESULT WINAPI TextFont_GetUnderline(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
- return E_NOTIMPL;
+
+ if (!value)
+ return E_INVALIDARG;
+
+ *value = tomUndefined;
+
+ if (!font_get_reole(This))
+ return CO_E_RELEASED;
+
+ *value = tomNone;
+ return S_OK;
}
static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
@@ -2153,6 +2359,10 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -780,7 +565,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -2050,6 +2364,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
@@ -2160,6 +2370,10 @@ static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%p): stub\n", This, value);
@ -791,7 +576,7 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -2057,6 +2375,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value)
@@ -2167,6 +2381,10 @@ static HRESULT WINAPI TextFont_SetWeight(ITextFont *iface, LONG value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
FIXME("(%p)->(%d): stub\n", This, value);
@ -802,50 +587,11 @@ index b3566e5..54448f5 100644
return E_NOTIMPL;
}
@@ -2125,7 +2447,7 @@ static ITextFontVtbl textfontvtbl = {
TextFont_SetWeight
};
-static HRESULT create_textfont(ITextRange *range, ITextFont **ret)
+static HRESULT create_textfont(ITextRange *range, ITextSelection *selection, ITextFont **ret)
{
ITextFontImpl *font;
@@ -2137,7 +2459,9 @@ static HRESULT create_textfont(ITextRange *range, ITextFont **ret)
font->ITextFont_iface.lpVtbl = &textfontvtbl;
font->ref = 1;
font->range = range;
- ITextRange_AddRef(range);
+ font->selection = selection;
+ if (range) ITextRange_AddRef(range);
+ if (selection) ITextSelection_AddRef(selection);
*ret = &font->ITextFont_iface;
return S_OK;
@@ -3191,11 +3515,16 @@ static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim)
static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **pFont)
{
ITextSelectionImpl *This = impl_from_ITextSelection(me);
+
+ TRACE("(%p)->(%p)\n", This, pFont);
+
if (!This->reOle)
return CO_E_RELEASED;
- FIXME("not implemented\n");
- return E_NOTIMPL;
+ if (!pFont)
+ return E_INVALIDARG;
+
+ return create_textfont(NULL, me, pFont);
}
static HRESULT WINAPI ITextSelection_fnSetFont(ITextSelection *me, ITextFont *pFont)
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index e9ae68b..070b05a 100644
index a553519..40577b3 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1506,6 +1506,97 @@ static void test_ITextSelection_SetEnd(void)
@@ -1546,6 +1546,97 @@ static void test_ITextSelection_SetEnd(void)
release_interfaces(&w, &reOle, &txtDoc, &txtSel);
}
@ -943,7 +689,7 @@ index e9ae68b..070b05a 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1521,6 +1612,7 @@ START_TEST(richole)
@@ -1561,6 +1652,7 @@ START_TEST(richole)
test_ITextSelection_SetStart();
test_ITextSelection_SetEnd();
test_ITextSelection_Collapse();
@ -951,7 +697,7 @@ index e9ae68b..070b05a 100644
test_ITextDocument_Range();
test_ITextRange_GetChar();
test_ITextRange_GetStart_GetEnd();
@@ -1528,6 +1620,7 @@ START_TEST(richole)
@@ -1568,6 +1660,7 @@ START_TEST(richole)
test_ITextRange_Collapse();
test_ITextRange_SetStart();
test_ITextRange_SetEnd();

View File

@ -1,27 +1,19 @@
From 41df8655376ce017e80ba6970a9400ff875f0ec5 Mon Sep 17 00:00:00 2001
From 4fb5a547a488fe7e1e1acfc090ae0e919f7f0e65 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
Date: Sun, 10 Aug 2014 22:17:57 +0800
Subject: riched20: Stub for ITextPara interface and implement
ITextRange::GetPara.
---
dlls/riched20/richole.c | 223 ++++++++++++++++++++++++++++++++++++++++++
dlls/riched20/richole.c | 222 ++++++++++++++++++++++++++++++++++++++++++
dlls/riched20/tests/richole.c | 47 +++++++++
2 files changed, 270 insertions(+)
2 files changed, 269 insertions(+)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 54448f5..6db9775 100644
index 71fb311..f664616 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -53,6 +53,7 @@ typedef struct ITextSelectionImpl ITextSelectionImpl;
typedef struct IOleClientSiteImpl IOleClientSiteImpl;
typedef struct ITextRangeImpl ITextRangeImpl;
typedef struct ITextFontImpl ITextFontImpl;
+typedef struct ITextParaImpl ITextParaImpl;
typedef struct IRichEditOleImpl {
IUnknown IUnknown_inner;
@@ -2511,9 +2512,24 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface)
@@ -2515,9 +2515,24 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface)
return ref;
}
@ -46,7 +38,7 @@ index 54448f5..6db9775 100644
*pctinfo = 0;
return E_NOTIMPL;
}
@@ -2521,14 +2537,24 @@ static HRESULT WINAPI TextPara_GetTypeInfoCount(ITextPara *iface, UINT *pctinfo)
@@ -2525,14 +2540,24 @@ static HRESULT WINAPI TextPara_GetTypeInfoCount(ITextPara *iface, UINT *pctinfo)
static HRESULT WINAPI TextPara_GetTypeInfo(ITextPara *iface, UINT iTInfo, LCID lcid,
ITypeInfo **ppTInfo)
{
@ -71,7 +63,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2543,7 +2569,12 @@ static HRESULT WINAPI TextPara_Invoke(
@@ -2547,7 +2572,12 @@ static HRESULT WINAPI TextPara_Invoke(
EXCEPINFO *pExcepInfo,
UINT *puArgErr)
{
@ -84,7 +76,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2551,6 +2582,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret)
@@ -2555,6 +2585,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, ret);
@ -95,7 +87,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2558,6 +2593,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para)
@@ -2562,6 +2596,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, para);
@ -106,7 +98,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2565,6 +2604,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret)
@@ -2569,6 +2607,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, ret);
@ -117,7 +109,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2572,6 +2615,10 @@ static HRESULT WINAPI TextPara_IsEqual(ITextPara *iface, ITextPara *para, LONG *
@@ -2576,6 +2618,10 @@ static HRESULT WINAPI TextPara_IsEqual(ITextPara *iface, ITextPara *para, LONG *
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p %p)\n", This, para, ret);
@ -128,7 +120,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2579,6 +2626,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value)
@@ -2583,6 +2629,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -139,7 +131,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2586,6 +2637,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value)
@@ -2590,6 +2640,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -150,7 +142,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2593,6 +2648,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value)
@@ -2597,6 +2651,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -161,7 +153,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2600,6 +2659,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value)
@@ -2604,6 +2662,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -172,7 +164,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2607,6 +2670,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value)
@@ -2611,6 +2673,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -183,7 +175,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2614,6 +2681,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value)
@@ -2618,6 +2684,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -194,7 +186,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2621,6 +2692,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value)
@@ -2625,6 +2695,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -205,7 +197,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2628,6 +2703,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value
@@ -2632,6 +2706,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -216,7 +208,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2635,6 +2714,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value)
@@ -2639,6 +2717,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -227,7 +219,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2642,6 +2725,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value)
@@ -2646,6 +2728,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -238,7 +230,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2649,6 +2736,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value)
@@ -2653,6 +2739,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -249,7 +241,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2656,6 +2747,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value)
@@ -2660,6 +2750,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -260,7 +252,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2663,6 +2758,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value)
@@ -2667,6 +2761,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -271,7 +263,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2670,6 +2769,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value)
@@ -2674,6 +2772,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -282,7 +274,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2677,6 +2780,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value)
@@ -2681,6 +2783,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -293,7 +285,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2684,6 +2791,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value)
@@ -2688,6 +2794,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -304,7 +296,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2691,6 +2802,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value)
@@ -2695,6 +2805,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -315,7 +307,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2698,6 +2813,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value)
@@ -2702,6 +2816,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -326,7 +318,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2705,6 +2824,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value)
@@ -2709,6 +2827,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -337,7 +329,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2712,6 +2835,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value)
@@ -2716,6 +2838,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -348,7 +340,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2719,6 +2846,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value)
@@ -2723,6 +2849,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -359,7 +351,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2726,6 +2857,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value)
@@ -2730,6 +2860,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -370,7 +362,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2733,6 +2868,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value)
@@ -2737,6 +2871,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -381,7 +373,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2740,6 +2879,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value)
@@ -2744,6 +2882,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -392,7 +384,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2747,6 +2890,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value)
@@ -2751,6 +2893,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -403,7 +395,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2754,6 +2901,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value)
@@ -2758,6 +2904,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -414,7 +406,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2761,6 +2912,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value)
@@ -2765,6 +2915,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -425,7 +417,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2768,6 +2923,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value)
@@ -2772,6 +2926,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -436,7 +428,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2775,6 +2934,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value)
@@ -2779,6 +2937,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -447,7 +439,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2782,6 +2945,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value)
@@ -2786,6 +2948,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -458,7 +450,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2789,6 +2956,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value)
@@ -2793,6 +2959,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -469,7 +461,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2796,6 +2967,10 @@ static HRESULT WINAPI TextPara_SetIndents(ITextPara *iface, FLOAT StartIndent, F
@@ -2800,6 +2970,10 @@ static HRESULT WINAPI TextPara_SetIndents(ITextPara *iface, FLOAT StartIndent, F
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f %.2f %.2f)\n", This, StartIndent, LeftIndent, RightIndent);
@ -480,7 +472,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2803,6 +2978,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing
@@ -2807,6 +2981,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d %.2f)\n", This, LineSpacingRule, LineSpacing);
@ -491,7 +483,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2810,6 +2989,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value)
@@ -2814,6 +2992,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -502,7 +494,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2817,6 +3000,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value)
@@ -2821,6 +3003,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -513,7 +505,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2824,6 +3011,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value)
@@ -2828,6 +3014,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -524,7 +516,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2831,6 +3022,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value)
@@ -2835,6 +3025,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, value);
@ -535,7 +527,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2838,6 +3033,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value)
@@ -2842,6 +3036,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -546,7 +538,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2845,6 +3044,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value)
@@ -2849,6 +3047,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d)\n", This, value);
@ -557,7 +549,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2852,6 +3055,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value)
@@ -2856,6 +3058,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%p)\n", This, value);
@ -568,7 +560,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2859,6 +3066,10 @@ static HRESULT WINAPI TextPara_AddTab(ITextPara *iface, FLOAT tbPos, LONG tbAlig
@@ -2863,6 +3069,10 @@ static HRESULT WINAPI TextPara_AddTab(ITextPara *iface, FLOAT tbPos, LONG tbAlig
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f %d %d)\n", This, tbPos, tbAlign, tbLeader);
@ -579,7 +571,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2866,6 +3077,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface)
@@ -2870,6 +3080,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)\n", This);
@ -590,7 +582,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2873,6 +3088,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos)
@@ -2877,6 +3091,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos)
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%.2f)\n", This, pos);
@ -601,7 +593,7 @@ index 54448f5..6db9775 100644
return E_NOTIMPL;
}
@@ -2880,6 +3099,10 @@ static HRESULT WINAPI TextPara_GetTab(ITextPara *iface, LONG iTab, FLOAT *ptbPos
@@ -2884,6 +3102,10 @@ static HRESULT WINAPI TextPara_GetTab(ITextPara *iface, LONG iTab, FLOAT *ptbPos
{
ITextParaImpl *This = impl_from_ITextPara(iface);
FIXME("(%p)->(%d %p %p %p)\n", This, iTab, ptbPos, ptbAlign, ptbLeader);
@ -613,10 +605,10 @@ index 54448f5..6db9775 100644
}
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index 070b05a..0fb5c98 100644
index 40577b3..065c86c 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1597,6 +1597,52 @@ static void test_ITextSelection_GetFont(void)
@@ -1637,6 +1637,52 @@ static void test_ITextSelection_GetFont(void)
ITextFont_Release(txtFont);
}
@ -669,7 +661,7 @@ index 070b05a..0fb5c98 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1621,6 +1667,7 @@ START_TEST(richole)
@@ -1661,6 +1707,7 @@ START_TEST(richole)
test_ITextRange_SetStart();
test_ITextRange_SetEnd();
test_ITextRange_GetFont();

View File

@ -1,4 +1,4 @@
From 49d6ee6879df42615d3b8c97bd320382fb580585 Mon Sep 17 00:00:00 2001
From 9e71184f8215f3693f9b1418225dfbc2c7b57d77 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
Date: Wed, 13 Aug 2014 14:57:52 +0800
Subject: riched20: Fix ME_RunOfsFromCharOfs() when nCharOfs > strlen().
@ -37,5 +37,5 @@ index 38d0270..ad08b82 100644
/******************************************************************************
--
2.3.2
2.4.0

View File

@ -1,4 +1,4 @@
From d0ddbc33e67637ac5ea3d73720d1260d37899bf8 Mon Sep 17 00:00:00 2001
From b124ce2417572b6e7147bbfd8c931885886d37cb Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
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 d815142..12146ff 100644
index f664616..4aee91f 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -2173,14 +2173,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R
@@ -1033,14 +1033,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R
return E_NOTIMPL;
}
@ -55,7 +55,7 @@ index d815142..12146ff 100644
}
static HRESULT WINAPI ITextRange_fnSetText(ITextRange *me, BSTR bstr)
@@ -3257,8 +3283,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
@@ -3565,8 +3591,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
{
ITextSelectionImpl *This = impl_from_ITextSelection(me);
ME_Cursor *start = NULL, *end = NULL;
@ -64,7 +64,7 @@ index d815142..12146ff 100644
if (!This->reOle)
return CO_E_RELEASED;
@@ -3267,23 +3291,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
@@ -3575,23 +3599,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 d815142..12146ff 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 89b3839..33b777b 100644
index 065c86c..44b1f4c 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1349,6 +1349,43 @@ static void test_ITextRange_GetPara(void)
@@ -1683,6 +1683,43 @@ static void test_ITextRange_GetPara(void)
ITextPara_Release(txtPara);
}
@ -137,7 +137,7 @@ index 89b3839..33b777b 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1374,6 +1411,7 @@ START_TEST(richole)
@@ -1708,6 +1745,7 @@ START_TEST(richole)
test_ITextRange_SetEnd();
test_ITextRange_GetFont();
test_ITextRange_GetPara();
@ -146,5 +146,5 @@ index 89b3839..33b777b 100644
test_IOleWindow_GetWindow();
test_IOleInPlaceSite_GetWindow();
--
2.3.2
2.4.0

View File

@ -1,4 +1,4 @@
From d0269eafaac5cf25dfa223e1d9a9edd2572b3755 Mon Sep 17 00:00:00 2001
From bf01cfc213a0430c1086fd70dd92bfe7a684bd5d Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
Date: Wed, 13 Aug 2014 17:17:14 +0800
Subject: riched20: Implement ITextRange::SetRange.
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::SetRange.
2 files changed, 60 insertions(+), 17 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 12146ff..cfe0138 100644
index 4aee91f..fc9875f 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -2529,14 +2529,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde
@@ -1354,14 +1354,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde
return E_NOTIMPL;
}
@ -51,7 +51,7 @@ index 12146ff..cfe0138 100644
}
static HRESULT WINAPI ITextRange_fnInRange(ITextRange *me, ITextRange *pRange, LONG *pb)
@@ -3131,26 +3153,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2,
@@ -3436,26 +3458,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2,
ITextRange** ppRange)
{
IRichEditOleImpl *This = impl_from_ITextDocument(me);
@ -80,10 +80,10 @@ index 12146ff..cfe0138 100644
}
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index 33b777b..a943393 100644
index 44b1f4c..1529c3c 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1386,6 +1386,40 @@ static void test_ITextRange_GetText(void)
@@ -1720,6 +1720,40 @@ static void test_ITextRange_GetText(void)
TEST_TXTRGE_GETTEXT(1, 1, NULL)
}
@ -124,7 +124,7 @@ index 33b777b..a943393 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1412,6 +1446,7 @@ START_TEST(richole)
@@ -1746,6 +1780,7 @@ START_TEST(richole)
test_ITextRange_GetFont();
test_ITextRange_GetPara();
test_ITextRange_GetText();
@ -133,5 +133,5 @@ index 33b777b..a943393 100644
test_IOleWindow_GetWindow();
test_IOleInPlaceSite_GetWindow();
--
2.3.2
2.4.0

View File

@ -1,4 +1,4 @@
From dd58c449f3fd930e7067f4910d82fc4a118cb585 Mon Sep 17 00:00:00 2001
From 02798a813a2f584e7e884531e4a89b6615d6ed4a Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
Date: Fri, 15 Aug 2014 14:27:21 +0800
Subject: riched20: Implement ITextRange::IsEqual.
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::IsEqual.
2 files changed, 64 insertions(+), 2 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index cfe0138..73e1916 100644
index fc9875f..0052448 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -2581,14 +2581,29 @@ static HRESULT WINAPI ITextRange_fnInStory(ITextRange *me, ITextRange *pRange, L
@@ -1406,14 +1406,29 @@ static HRESULT WINAPI ITextRange_fnInStory(ITextRange *me, ITextRange *pRange, L
return E_NOTIMPL;
}
@ -45,10 +45,10 @@ index cfe0138..73e1916 100644
static HRESULT WINAPI ITextRange_fnSelect(ITextRange *me)
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index a943393..6b1bada 100644
index 1529c3c..e158a61 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1420,6 +1420,52 @@ static void test_ITextRange_SetRange(void)
@@ -1754,6 +1754,52 @@ static void test_ITextRange_SetRange(void)
release_interfaces(&w, &reOle, &txtDoc, NULL);
}
@ -101,7 +101,7 @@ index a943393..6b1bada 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1447,6 +1493,7 @@ START_TEST(richole)
@@ -1781,6 +1827,7 @@ START_TEST(richole)
test_ITextRange_GetPara();
test_ITextRange_GetText();
test_ITextRange_SetRange();
@ -110,5 +110,5 @@ index a943393..6b1bada 100644
test_IOleWindow_GetWindow();
test_IOleInPlaceSite_GetWindow();
--
2.3.2
2.4.0

View File

@ -1,4 +1,4 @@
From 5606c81aa12ad51c3028d7e48a419e5000a0053a Mon Sep 17 00:00:00 2001
From d98c00a85b52d4d440b48ae7618cc9ec15bc1c82 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
Date: Mon, 18 Aug 2014 14:38:50 +0800
Subject: riched20: Implement ITextRange::GetStoryLength.
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::GetStoryLength.
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 73e1916..525c7c1 100644
index 0052448..4ec4513 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -2463,8 +2463,10 @@ static HRESULT WINAPI ITextRange_fnGetStoryLength(ITextRange *me, LONG *pcch)
@@ -1288,8 +1288,10 @@ static HRESULT WINAPI ITextRange_fnGetStoryLength(ITextRange *me, LONG *pcch)
if (!This->reOle)
return CO_E_RELEASED;
@ -26,10 +26,10 @@ index 73e1916..525c7c1 100644
static HRESULT WINAPI ITextRange_fnGetStoryType(ITextRange *me, LONG *pValue)
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index 6b1bada..4e1a5a6 100644
index e158a61..dd6cad4 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1466,6 +1466,37 @@ static void test_ITextRange_IsEqual(void)
@@ -1800,6 +1800,37 @@ static void test_ITextRange_IsEqual(void)
release_interfaces(&w, &reOle, &txtDoc, NULL);
}
@ -67,7 +67,7 @@ index 6b1bada..4e1a5a6 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1494,6 +1525,7 @@ START_TEST(richole)
@@ -1828,6 +1859,7 @@ START_TEST(richole)
test_ITextRange_GetText();
test_ITextRange_SetRange();
test_ITextRange_IsEqual();
@ -76,5 +76,5 @@ index 6b1bada..4e1a5a6 100644
test_IOleWindow_GetWindow();
test_IOleInPlaceSite_GetWindow();
--
2.3.2
2.4.0

View File

@ -1,4 +1,4 @@
From 58c621934c2fd7d20ebb3da783cfdcb8e28b1a10 Mon Sep 17 00:00:00 2001
From 218106498ce512c7879c15e2859901f67c9d6160 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <wine@jactry.com>
Date: Mon, 18 Aug 2014 14:47:14 +0800
Subject: riched20: Implement ITextSelection::GetStoryLength.
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextSelection::GetStoryLength.
2 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 0bc302b..e42df2b 100644
index 4ec4513..5d017e9 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -3298,8 +3298,10 @@ static HRESULT WINAPI ITextSelection_fnGetStoryLength(ITextSelection *me, LONG *
@@ -3829,8 +3829,10 @@ static HRESULT WINAPI ITextSelection_fnGetStoryLength(ITextSelection *me, LONG *
if (!This->reOle)
return CO_E_RELEASED;
@ -26,10 +26,10 @@ index 0bc302b..e42df2b 100644
static HRESULT WINAPI ITextSelection_fnGetStoryType(ITextSelection *me, LONG *pValue)
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
index 543f3ec..baed1f7 100644
index dd6cad4..cd9931b 100644
--- a/dlls/riched20/tests/richole.c
+++ b/dlls/riched20/tests/richole.c
@@ -1357,6 +1357,35 @@ static void test_ITextRange_GetStoryLength(void)
@@ -1831,6 +1831,35 @@ static void test_ITextRange_GetStoryLength(void)
release_interfaces(&w, &reOle, &txtDoc, NULL);
}
@ -65,7 +65,7 @@ index 543f3ec..baed1f7 100644
START_TEST(richole)
{
/* Must explicitly LoadLibrary(). The test has no references to functions in
@@ -1373,6 +1402,7 @@ START_TEST(richole)
@@ -1847,6 +1876,7 @@ START_TEST(richole)
test_ITextSelection_SetEnd();
test_ITextSelection_Collapse();
test_ITextSelection_GetFont();
@ -74,5 +74,5 @@ index 543f3ec..baed1f7 100644
test_ITextRange_GetChar();
test_ITextRange_GetStart_GetEnd();
--
2.1.2
2.4.0

View File

@ -1,18 +1,18 @@
From 85ae581146a9791fd45006b273c19f822f1ccf4f Mon Sep 17 00:00:00 2001
From 69ba6ab1953ff29538b3db3dcf87d02175c355ed Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 1 Nov 2014 22:51:34 +0100
Subject: riched20: Silence repeated FIXMEs triggered by Adobe Reader.
Adobe Reader calls these functions very often while scrolling through a document.
---
dlls/riched20/richole.c | 46 ++++++++++++++++++++++++++++++++++++----------
1 file changed, 36 insertions(+), 10 deletions(-)
dlls/riched20/richole.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index b9213f6..6676d9a 100644
index 5d017e9..b5c2b9b 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -294,6 +294,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R
@@ -394,6 +394,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R
IUnknown_AddRef((IUnknown *)*ppvObj);
return S_OK;
}
@ -27,107 +27,7 @@ index b9213f6..6676d9a 100644
FIXME("%p: unhandled interface %s\n", This, debugstr_guid(riid));
return E_NOINTERFACE;
@@ -1927,6 +1935,7 @@ static HRESULT WINAPI TextFont_SetBackColor(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetBold(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
+ static int once;
TRACE("(%p)->(%p)\n", This, value);
if (This->range)
@@ -1940,7 +1949,7 @@ static HRESULT WINAPI TextFont_GetBold(ITextFont *iface, LONG *value)
if (!font_get_reole(This))
return CO_E_RELEASED;
- FIXME("not implemented\n");
+ if (!once++) FIXME("not implemented\n");
return E_NOTIMPL;
}
@@ -1980,7 +1989,9 @@ static HRESULT WINAPI TextFont_SetEmboss(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetForeColor(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
if (!value)
return E_INVALIDARG;
@@ -2052,6 +2063,7 @@ static HRESULT WINAPI TextFont_SetEngrave(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetItalic(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
+ static int once;
TRACE("(%p)->(%p)\n", This, value);
if (This->range)
@@ -2065,7 +2077,7 @@ static HRESULT WINAPI TextFont_GetItalic(ITextFont *iface, LONG *value)
if (!font_get_reole(This))
return CO_E_RELEASED;
- FIXME("not implemented\n");
+ if (!once++) FIXME("not implemented\n");
return E_NOTIMPL;
}
@@ -2105,7 +2117,9 @@ static HRESULT WINAPI TextFont_SetKerning(ITextFont *iface, FLOAT value)
static HRESULT WINAPI TextFont_GetLanguageID(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
if (!font_get_reole(This))
return CO_E_RELEASED;
@@ -2245,7 +2259,9 @@ static HRESULT WINAPI TextFont_SetShadow(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetSize(ITextFont *iface, FLOAT *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
if (!value)
return E_INVALIDARG;
@@ -2317,7 +2333,9 @@ static HRESULT WINAPI TextFont_SetSpacing(ITextFont *iface, FLOAT value)
static HRESULT WINAPI TextFont_GetStrikeThrough(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
if (!value)
return E_INVALIDARG;
@@ -2345,7 +2363,9 @@ static HRESULT WINAPI TextFont_SetStrikeThrough(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetSubscript(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
if (!value)
return E_INVALIDARG;
@@ -2401,7 +2421,9 @@ static HRESULT WINAPI TextFont_SetSuperscript(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetUnderline(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
- FIXME("(%p)->(%p): stub\n", This, value);
+ static int once;
+
+ if (!once++) FIXME("(%p)->(%p): stub\n", This, value);
if (!value)
return E_INVALIDARG;
@@ -2429,7 +2451,9 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
@@ -2434,7 +2442,9 @@ static HRESULT WINAPI TextFont_SetUnderline(ITextFont *iface, LONG value)
static HRESULT WINAPI TextFont_GetWeight(ITextFont *iface, LONG *value)
{
ITextFontImpl *This = impl_from_ITextFont(iface);
@ -138,7 +38,7 @@ index b9213f6..6676d9a 100644
if (!font_get_reole(This))
return CO_E_RELEASED;
@@ -2723,7 +2747,9 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value)
@@ -2726,7 +2736,9 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value)
static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value)
{
ITextParaImpl *This = impl_from_ITextPara(iface);

View File

@ -1,4 +1,4 @@
From acafb0f9fc1775ba95c3f5dfba08c15fd6678904 Mon Sep 17 00:00:00 2001
From 83ab3bf176f9ad2a08586e3173ed9c61307dcb59 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 1 Nov 2014 23:07:09 +0100
Subject: riched20: Implement ITextSelection_fnGetDuplicate.
@ -9,10 +9,10 @@ Fixes a crash with Adobe Reader when entering a page number.
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
index 6676d9a..a7eb1d9 100644
index b5c2b9b..83b9ac3 100644
--- a/dlls/riched20/richole.c
+++ b/dlls/riched20/richole.c
@@ -3681,11 +3681,17 @@ static HRESULT WINAPI ITextSelection_fnSetChar(ITextSelection *me, LONG ch)
@@ -3677,11 +3677,17 @@ static HRESULT WINAPI ITextSelection_fnSetChar(ITextSelection *me, LONG ch)
static HRESULT WINAPI ITextSelection_fnGetDuplicate(ITextSelection *me, ITextRange **ppRange)
{
ITextSelectionImpl *This = impl_from_ITextSelection(me);

View File

@ -1,44 +0,0 @@
From ec8c72f2251bd35294f8ab396a18430b1c29b527 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 13 May 2015 19:06:23 +0200
Subject: wineconsole: Allocate fake hwnds for curses backend.
Based on a patch by Qian Hong.
---
programs/wineconsole/curses.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/programs/wineconsole/curses.c b/programs/wineconsole/curses.c
index 24aab88..8d1b01e 100644
--- a/programs/wineconsole/curses.c
+++ b/programs/wineconsole/curses.c
@@ -1001,6 +1001,7 @@ static void WCCURSES_DeleteBackend(struct inner_data* data)
#endif
endwin();
+ if (data->hWnd) DestroyWindow(data->hWnd);
HeapFree(GetProcessHeap(), 0, PRIVATE(data)->line);
HeapFree(GetProcessHeap(), 0, PRIVATE(data));
data->private = NULL;
@@ -1042,6 +1043,8 @@ static int WCCURSES_MainLoop(struct inner_data* data)
*/
enum init_return WCCURSES_InitBackend(struct inner_data* data)
{
+ static const WCHAR messageW[] = {'M','e','s','s','a','g','e',0};
+
if( !WCCURSES_bind_libcurses() )
return init_not_supported;
@@ -1058,7 +1061,8 @@ enum init_return WCCURSES_InitBackend(struct inner_data* data)
data->fnScroll = WCCURSES_Scroll;
data->fnSetFont = WCCURSES_SetFont;
data->fnDeleteBackend = WCCURSES_DeleteBackend;
- data->hWnd = NULL;
+ data->hWnd = CreateWindowW( messageW, NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, 0,
+ GetModuleHandleW(0), NULL );
/* FIXME: should find a good way to enable buffer scrolling
* For the time being, setting this to 1 will allow scrolling up/down
--
2.4.0

View File

@ -1 +0,0 @@
Fixes: [34930] Allocate fake hWnd for wineconsole curses backend

View File

@ -1199,7 +1199,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
/* Load DirectX 9 float constants for pixel shader */
priv->highest_dirty_ps_const = shader_arb_load_constantsF(pshader, gl_info, GL_FRAGMENT_PROGRAM_ARB,
@@ -4652,7 +4656,11 @@
@@ -4694,7 +4698,11 @@
}
else
{
@ -1211,7 +1211,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
shader_arb_ps_local_constants(compiled, context, state, rt_height);
}
@@ -7766,7 +7774,11 @@
@@ -7810,7 +7818,11 @@
/* Now load the surface */
if (wined3d_settings.offscreen_rendering_mode != ORM_FBO
@ -1223,7 +1223,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
== WINED3D_LOCATION_DRAWABLE
&& !wined3d_resource_is_offscreen(&src_surface->container->resource))
{
@@ -7796,6 +7808,7 @@
@@ -7840,6 +7852,7 @@
/* Leave the opengl state valid for blitting */
arbfp_blit_unset(context->gl_info);
@ -1231,7 +1231,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
if (wined3d_settings.cs_multithreaded)
context->gl_info->gl_ops.gl.p_glFinish();
else if (wined3d_settings.strict_draw_ordering
@@ -7807,6 +7820,17 @@
@@ -7851,6 +7864,17 @@
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding);

View File

@ -1,28 +0,0 @@
From e921966b9073171d4a76ef6a96ba93413023e029 Mon Sep 17 00:00:00 2001
From: Matteo Bruni <mbruni@codeweavers.com>
Date: Thu, 7 May 2015 16:07:53 +0200
Subject: wined3d: Dirtify vertex shader on transformed <-> untransformed
transition.
---
dlls/wined3d/glsl_shader.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 0a130e1..8e618e5 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -7682,6 +7682,10 @@ static void glsl_vertex_pipe_vdecl(struct wined3d_context *context,
context->last_was_rhw = transformed;
+ /* Transformed position forces FFP draws. */
+ if (transformed != wasrhw)
+ context->shader_update_mask |= 1 << WINED3D_SHADER_TYPE_VERTEX;
+
if (!use_vs(state))
{
if (context->last_was_vshader)
--
2.4.0

View File

@ -1,2 +0,0 @@
Fixes: [38539] Dirtify vertex shader on transformed update to fix graphical corruption
Category: stable