Compare commits

...

36 Commits

Author SHA1 Message Date
Sebastian Lackner
f3609f5452 Release 1.9.0. 2015-12-28 07:53:50 +01:00
Sebastian Lackner
480c7249b5 Updated patch for x86_64 set_cpu_context implementation and add tests. 2015-12-28 03:26:17 +01:00
Sebastian Lackner
dcdcf18047 Added patch to workaround installation bug of IE7 caused by version bump. 2015-12-27 22:30:49 +01:00
Sebastian Lackner
26ef94413d Added patch to pass MOUSEHOOKSTRUCTEX struct to mouse hook callback. 2015-12-27 19:57:46 +01:00
Sebastian Lackner
25493b94b1 Added patch to check IsWoW64Process before calling Wow64 functions in UNIXFS_get_unix_path. 2015-12-27 18:53:48 +01:00
Sebastian Lackner
b9c5736515 Added patch to avoid setting error when NULL is passed to SHMapHandle. 2015-12-27 18:46:56 +01:00
Sebastian Lackner
f291e6b294 Added patch to avoid corruption of caret when SetCaretPos() is called. 2015-12-27 18:34:09 +01:00
Sebastian Lackner
5d94a2566b Added patch to align terminating null WCHAR in SysAllocStringByteLen. 2015-12-27 18:19:20 +01:00
Sebastian Lackner
58890792b7 Rebase against 6767ac4bb79ad774f0c850a8c4753a2e6fdea75f. 2015-12-24 22:38:03 +01:00
Sebastian Lackner
e3c64796cd Rebase against 35eebeef0fe0b3f03f44731f805c447b2342acfd. 2015-12-23 03:12:48 +01:00
Sebastian Lackner
81ee7ad18a Rebase against a0b8f178df8ed704fc732f5aef3b2e1f623512fc. 2015-12-22 03:07:15 +01:00
Sebastian Lackner
8a378ee8e7 Release 1.8. 2015-12-21 18:34:18 +01:00
Sebastian Lackner
fd5fd19bb9 wusa-MSU_Package_Installer: Improve tracing and warn if cabinet contains compressed files. 2015-12-21 04:45:30 +01:00
Sebastian Lackner
d14e078ed7 Added patch to implement of wusa.exe (MSU package installer). 2015-12-21 03:16:54 +01:00
Sebastian Lackner
47e0b460b4 nvencodeapi-Video_Encoder: Update patchset to version 6.0 and fix Debian compatibility. 2015-12-20 22:55:59 +01:00
Sebastian Lackner
0c1324b8de Release 1.8-rc4. 2015-12-15 00:56:47 +01:00
Sebastian Lackner
e9f445ed37 server-Parent_Process: Add tests and some minor improvements. 2015-12-13 01:53:38 +01:00
Sebastian Lackner
84730be30e Rebase against ca9001d6bda3084ab9bc80baa7d6e5533252c797. 2015-12-13 00:19:03 +01:00
Sebastian Lackner
42da4b38cc Rebase against 97ac9d410fdd612db863fdccc538d8dd8d94d91a. 2015-12-10 16:57:56 +01:00
Sebastian Lackner
7dac88ab13 Added patch to fix memory corruption wineserver (token_duplicate should not reference the original token). 2015-12-10 16:49:38 +01:00
Sebastian Lackner
c3f580b642 opengl32-Revert_Disable_Ext: Update patch and definition file. 2015-12-10 06:08:16 +01:00
Sebastian Lackner
ffa55dcc00 Added patch to avoid holding reference on parent process in wineserver. 2015-12-10 06:03:53 +01:00
Sebastian Lackner
cde035a721 Rebase against 571dc0faa502b63880e905c35d3e3da6d87c5599. 2015-12-08 18:33:36 +01:00
Sebastian Lackner
c094720578 Release 1.8-rc3. 2015-12-07 17:11:09 +01:00
Sebastian Lackner
2e17709095 ws2_32-WSACleanup: Fix compatibility with server-Desktop_Refcount patchset. 2015-12-05 23:56:38 +01:00
Sebastian Lackner
dea2594156 Added patch to fix implementation of NtQueryInformationProcess for ProcessDebugFlags. 2015-12-05 22:48:34 +01:00
Sebastian Lackner
af4ac5433d Updated patch for d3dx9_36 DrawText implementation and fixed multiple bugs. 2015-12-05 21:43:45 +01:00
Sebastian Lackner
ce6a5b015d Added patch to properly implement GetLargestConsoleWindowSize. 2015-12-05 19:38:43 +01:00
Sebastian Lackner
07a42a496d Added patch to set LastError to 0 in GetSidIdentifierAuthority. 2015-12-05 04:06:58 +01:00
Sebastian Lackner
78db8b7950 Added patch to fix possible leak of explorer.exe processes and implement proper desktop refcounting. 2015-12-04 20:06:24 +01:00
Sebastian Lackner
78ed3fc7e9 Rebase against ffee96a80c0585fb5fcb041382540e2014d2f77b. 2015-12-04 18:59:12 +01:00
Sebastian Lackner
a605ae9359 msidb-Implementation: Pass correct size argument to snprintfW (Thanks Amine Khaldi). 2015-12-04 11:02:13 +01:00
Sebastian Lackner
ebf9db37d5 Rebase against 71bbd8da87109161448c7c6d7f6fcfa721b6c746. 2015-12-03 17:52:40 +01:00
Sebastian Lackner
2d713a931d comctl32-PROPSHEET_InsertPage: Third argument of SendMessage is WPARAM. 2015-12-03 01:26:00 +01:00
Sebastian Lackner
9dcb352d8d Rebase against e69d9ec3c4e8829c5c18cea7d8348171d51dcd76. 2015-12-02 22:46:56 +01:00
Sebastian Lackner
3d3effd8b3 Rebase against 66d8e38ba4c5d67ae6e287cac557acfeae8b5bcd. 2015-12-01 02:36:42 +01:00
107 changed files with 6162 additions and 2057 deletions

View File

@@ -34,7 +34,7 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features in Wine Staging 1.8-rc2 [270]:**
**Bug fixes and features in Wine Staging 1.9.0 [269]:**
*Note: The following list only contains features and bug fixes which are not
yet available in vanilla Wine. They are removed from the list as soon as they
@@ -46,15 +46,12 @@ for more details.*
* Add IDragSourceHelper stub interface ([Wine Bug #24699](https://bugs.winehq.org/show_bug.cgi?id=24699))
* Add IHTMLLocation::hash property's getter implementation ([Wine Bug #32967](https://bugs.winehq.org/show_bug.cgi?id=32967))
* Add a ProfileList\<UserSID> registry subkey ([Wine Bug #15670](https://bugs.winehq.org/show_bug.cgi?id=15670))
* Add a stub driver for tdi.sys ([Wine Bug #35693](https://bugs.winehq.org/show_bug.cgi?id=35693))
* Add implementation for comctl32.PROPSHEET_InsertPage. ([Wine Bug #25625](https://bugs.winehq.org/show_bug.cgi?id=25625))
* Add implementation for mfplat.MFTEnum ([Wine Bug #39309](https://bugs.winehq.org/show_bug.cgi?id=39309))
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
* Add implementation for msidb commandline tool
* Add implementation for shlwapi.AssocGetPerceivedType
* Add information for delayed end of DST in Europe/Istanbul
* Add nvapi stubs required for GPU PhysX support
* Add partial implementation of ITfThreadMgrEx_ActivateEx ([Wine Bug #39564](https://bugs.winehq.org/show_bug.cgi?id=39564))
* Add performance library registry keys needed by MS SQL Server Management Studio Express 2008 R2 ([Wine Bug #33661](https://bugs.winehq.org/show_bug.cgi?id=33661))
* Add semi-stub for FileFsVolumeInformation information class ([Wine Bug #21466](https://bugs.winehq.org/show_bug.cgi?id=21466))
* Add shell32 placeholder icons to match offsets with Windows ([Wine Bug #30185](https://bugs.winehq.org/show_bug.cgi?id=30185))
@@ -69,7 +66,6 @@ for more details.*
* Add stub for ntoskrnl.KeWaitForMultipleObjects ([Wine Bug #32186](https://bugs.winehq.org/show_bug.cgi?id=32186))
* Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
* Add stub for ntoskrnl.PsRemoveLoadImageNotifyRoutine
* Add stub for setupapi.SetupDiSelectBestCompatDrv ([Wine Bug #32088](https://bugs.winehq.org/show_bug.cgi?id=32088))
* Add stub for wininet.ParseX509EncodedCertificateForListBoxEntry ([Wine Bug #29842](https://bugs.winehq.org/show_bug.cgi?id=29842))
* Add stub for winscard.SCardListReadersA/W ([Wine Bug #26978](https://bugs.winehq.org/show_bug.cgi?id=26978))
* Add stub for winspool.SetPrinterW level 8 ([Wine Bug #24645](https://bugs.winehq.org/show_bug.cgi?id=24645))
@@ -78,7 +74,6 @@ for more details.*
* Add stubbed ISWbemSecurity interfaces in wbemdisp
* Add stubs for D3DXCreateAnimationController interface
* Add stubs for additional wininet options in InternetSetOption
* Add stubs for advapi32.RegCreateKeyTransacted[A/W]
* Add support for CopyFileEx progress callback ([Wine Bug #22692](https://bugs.winehq.org/show_bug.cgi?id=22692))
* Add support for GTK3 theming
* Add support for GetPropValue to PulseAudio backend
@@ -101,6 +96,7 @@ for more details.*
* Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW ([Wine Bug #37916](https://bugs.winehq.org/show_bug.cgi?id=37916))
* Assign a drive serial number during prefix creation/update ([Wine Bug #17823](https://bugs.winehq.org/show_bug.cgi?id=17823))
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](https://bugs.winehq.org/show_bug.cgi?id=30639))
* Avoid corruption of caret when SetCaretPos() is called
* Avoid crashing when broken app tries to release surface although refcount is zero ([Wine Bug #18477](https://bugs.winehq.org/show_bug.cgi?id=18477))
* Avoid race-conditions in NtReadFile() operations with write watches.
* Avoid race-conditions of async WSARecv() operations with write watches.
@@ -111,6 +107,7 @@ for more details.*
* CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))
* Catch invalid memory accesses in imagehlp.CheckSumMappedFile
* Check IsWoW64Process before calling Wow64 functions in UNIXFS_get_unix_path
* Check architecture before trying to load libraries ([Wine Bug #38021](https://bugs.winehq.org/show_bug.cgi?id=38021))
* Check handle type for HSPFILEQ handles ([Wine Bug #12332](https://bugs.winehq.org/show_bug.cgi?id=12332))
* Codepage conversion should fail when destination length is < 0
@@ -122,6 +119,7 @@ for more details.*
* Do not allow interruption of system APC in server_select ([Wine Bug #14697](https://bugs.winehq.org/show_bug.cgi?id=14697))
* Do not allow to deallocate thread stack for current thread
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
* Do not hold reference on parent process in wineserver ([Wine Bug #37087](https://bugs.winehq.org/show_bug.cgi?id=37087))
* Do not signal threads until they are really gone
* Do not use unixfs for devices without mountpoint
* Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403))
@@ -134,7 +132,6 @@ for more details.*
* Fake success in kernel32.SetFileCompletionNotificationModes ([Wine Bug #38960](https://bugs.winehq.org/show_bug.cgi?id=38960))
* Fallback to default comspec when %COMSPEC% is not set
* Fallback to system ping command when CAP_NET_RAW is not available ([Wine Bug #8332](https://bugs.winehq.org/show_bug.cgi?id=8332))
* Fix access violation in MSYS2 git when cloning repository
* Fix broken textures in XIII Century: Death or Glory ([Wine Bug #25419](https://bugs.winehq.org/show_bug.cgi?id=25419))
* Fix calculation of listbox size when horizontal scrollbar is present ([Wine Bug #38142](https://bugs.winehq.org/show_bug.cgi?id=38142))
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
@@ -157,9 +154,9 @@ for more details.*
* Fix issue causing applications to report magic loopback address instead of real IP ([Wine Bug #37271](https://bugs.winehq.org/show_bug.cgi?id=37271))
* Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
* Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
* Fix possible leak of explorer.exe processes and implement proper desktop refcounting
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
* Fix race-condition when threads are killed during shutdown
* Fix regression caused by blacklisting supported OpenGL extensions ([Wine Bug #38480](https://bugs.winehq.org/show_bug.cgi?id=38480))
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
* Fix scaling behaviour of images and mipmap levels in IDirect3DTexture2_Load (needed for example by Prezzie Hunt)
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
@@ -220,6 +217,7 @@ for more details.*
* Improve stubs for AEV_{Get,Set}Mute
* Improve stubs for dxgi MakeWindowAssociation and GetWindowAssociation
* Improvement for heap allocation performance
* Initial implementation of wusa.exe (MSU package installer) ([Wine Bug #26757](https://bugs.winehq.org/show_bug.cgi?id=26757))
* Initialize *lpcDevices in RasEnumDevicesA ([Wine Bug #30378](https://bugs.winehq.org/show_bug.cgi?id=30378))
* Initialize System\CurrentControlSet\Control\TimeZoneInformation registry keys
* Jedi Knight: Dark Forces II crashes with winmm set to native ([Wine Bug #37983](https://bugs.winehq.org/show_bug.cgi?id=37983))
@@ -233,11 +231,13 @@ for more details.*
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](https://bugs.winehq.org/show_bug.cgi?id=7115))
* Only set SFGAO_HASSUBFOLDER when there are really subfolders ([Wine Bug #24851](https://bugs.winehq.org/show_bug.cgi?id=24851))
* Other Pipelight-specific enhancements
* Pass MOUSEHOOKSTRUCTEX struct to mouse hook callback ([Wine Bug #38314](https://bugs.winehq.org/show_bug.cgi?id=38314))
* Port Royale doesn't display ocean correctly ([Wine Bug #17913](https://bugs.winehq.org/show_bug.cgi?id=17913))
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](https://bugs.winehq.org/show_bug.cgi?id=32699))
* Process APC calls before starting process
* Properly close sockets when WSACleanup is called ([Wine Bug #18670](https://bugs.winehq.org/show_bug.cgi?id=18670))
* Properly handle multiple registry notifications per key
* Properly implement GetLargestConsoleWindowSize ([Wine Bug #10919](https://bugs.winehq.org/show_bug.cgi?id=10919))
* Properly implement imagehlp.ImageLoad and ImageUnload ([Wine Bug #23455](https://bugs.winehq.org/show_bug.cgi?id=23455))
* Properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps ([Wine Bug #27002](https://bugs.winehq.org/show_bug.cgi?id=27002))
* Properly render themed buttons when they are pressed ([Wine Bug #37584](https://bugs.winehq.org/show_bug.cgi?id=37584))
@@ -247,23 +247,21 @@ for more details.*
* Return STATUS_INVALID_DEVICE_REQUEST when trying to call NtReadFile on directory
* Return WN_NOT_CONNECTED from WNetGetUniversalName REMOTE_NAME_INFO_LEVEL stub ([Wine Bug #39452](https://bugs.winehq.org/show_bug.cgi?id=39452))
* Return a valid mesh in D3DXCreateTeapot ([Wine Bug #36884](https://bugs.winehq.org/show_bug.cgi?id=36884))
* Return an error when trying to open a terminated process ([Wine Bug #37087](https://bugs.winehq.org/show_bug.cgi?id=37087))
* Return correct IMediaSeeking stream positions in quartz
* Return correct values for GetThreadTimes function ([Wine Bug #20230](https://bugs.winehq.org/show_bug.cgi?id=20230))
* Return dummy ID3DXSkinInfo interface when skinning info not present ([Wine Bug #33904](https://bugs.winehq.org/show_bug.cgi?id=33904))
* Return fake device type when systemroot is located on virtual disk ([Wine Bug #36546](https://bugs.winehq.org/show_bug.cgi?id=36546))
* Return proper status codes when NtReadFile/NtWriteFile is called on closed (but not disconnected) pipe
* SHFileOperation with FO_MOVE should create new directory on Vista+ ([Wine Bug #25207](https://bugs.winehq.org/show_bug.cgi?id=25207))
* SHMapHandle should not set error when NULL is passed as hShared
* SO_CONNECT_TIME returns the appropriate time
* Send WM_PAINT event during dialog creation ([Wine Bug #35652](https://bugs.winehq.org/show_bug.cgi?id=35652))
* Set EOF on file which has a memory mapping should fail
* Set NamedPipeState to FILE_PIPE_CLOSING_STATE on broken pipe in NtQueryInformationFile
* Share source of d3dx9_36 with d3dx9_33 to avoid Wine DLL forwards ([Wine Bug #21817](https://bugs.winehq.org/show_bug.cgi?id=21817))
* Show unmounted devices in winecfg and allow changing the unix path
* Show windows version when collecting system info in winedbg
* Silence repeated FIXME message in surface_cpu_blt
* Silence repeated LocaleNameToLCID/LCIDToLocaleName unsupported flags FIXMEs ([Wine Bug #30076](https://bugs.winehq.org/show_bug.cgi?id=30076))
* Skip invalid entries in GetPrivateProfileString16 ([Wine Bug #9919](https://bugs.winehq.org/show_bug.cgi?id=9919))
* Skip unknown item when decoding a CMS certificate ([Wine Bug #34388](https://bugs.winehq.org/show_bug.cgi?id=34388))
* Software support for Environmental Audio Extensions (EAX)
* Start SERVICE_FILE_SYSTEM_DRIVER services with winedevice ([Wine Bug #35824](https://bugs.winehq.org/show_bug.cgi?id=35824))
@@ -297,7 +295,7 @@ for more details.*
* Support for setcap on wine-preloader ([Wine Bug #26256](https://bugs.winehq.org/show_bug.cgi?id=26256))
* Support for shell32 file operation progress dialog
* Support for stored file ACLs ([Wine Bug #33576](https://bugs.winehq.org/show_bug.cgi?id=33576))
* Support for ws2_32.dll.WSAPoll ([Wine Bug #38601](https://bugs.winehq.org/show_bug.cgi?id=38601))
* SysAllocStringByteLen should align terminating null WCHAR
* Tumblebugs 2 requires DXTn software encoding support ([Wine Bug #29586](https://bugs.winehq.org/show_bug.cgi?id=29586))
* Update a XIM candidate position when cursor location changes ([Wine Bug #30938](https://bugs.winehq.org/show_bug.cgi?id=30938))
* Use GLX_MESA_query_renderer extension to get more exact GPU infos
@@ -310,6 +308,7 @@ for more details.*
* Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](https://bugs.winehq.org/show_bug.cgi?id=29384))
* Wine ignores IDF_CHECKFIRST flag in SetupPromptForDisk ([Wine Bug #20465](https://bugs.winehq.org/show_bug.cgi?id=20465))
* Workaround for shlwapi URLs with relative paths
* Workaround installation bug of IE7 caused by version bump
* XEMBED support for embedding Wine windows inside Linux applications
* eRacer Demo doesn't correctly display text ([Wine Bug #29598](https://bugs.winehq.org/show_bug.cgi?id=29598))
* ntdll is missing WinSqm[Start|End]Session implementation ([Wine Bug #31971](https://bugs.winehq.org/show_bug.cgi?id=31971))

View File

@@ -1,64 +0,0 @@
From a5cf87f611909a601fe00cbdd5235add43652c54 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 14 Nov 2015 17:29:43 +0100
Subject: advapi32: Add stubs for RegCreateKeyTransacted[A/W] functions.
---
dlls/advapi32/advapi32.spec | 4 ++--
dlls/advapi32/registry.c | 25 +++++++++++++++++++++++++
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index ff2b0de..36f176b 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -581,8 +581,8 @@
@ stdcall RegCreateKeyExA(long str long ptr long long ptr ptr ptr)
@ stdcall RegCreateKeyExW(long wstr long ptr long long ptr ptr ptr)
@ stdcall RegCreateKeyW(long wstr ptr)
-# @ stub RegCreateKeyTransactedA
-# @ stub RegCreateKeyTransactedW
+@ stdcall RegCreateKeyTransactedA(long str long ptr long long ptr ptr ptr long ptr)
+@ stdcall RegCreateKeyTransactedW(long wstr long ptr long long ptr ptr ptr long ptr)
@ stdcall RegDeleteKeyA(long str)
@ stdcall RegDeleteKeyExA(long str long long)
@ stdcall RegDeleteKeyExW(long wstr long long)
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
index 798f93d..6b4c873 100644
--- a/dlls/advapi32/registry.c
+++ b/dlls/advapi32/registry.c
@@ -473,6 +473,31 @@ LSTATUS WINAPI RegCreateKeyA( HKEY hkey, LPCSTR lpSubKey, PHKEY phkResult )
}
+/******************************************************************************
+ * RegCreateKeyTransactedW [ADVAPI32.@]
+ */
+LSTATUS WINAPI RegCreateKeyTransactedW( HKEY hkey, LPCWSTR name, DWORD reserved, LPWSTR class,
+ DWORD options, REGSAM access, SECURITY_ATTRIBUTES *sa,
+ PHKEY retkey, LPDWORD dispos, HANDLE transaction, PVOID reserved2 )
+{
+ FIXME( "(%p,%s,%u,%s,%u,%u,%p,%p,%p,%p,%p): stub\n", hkey, debugstr_w(name), reserved,
+ debugstr_w(class), options, access, sa, retkey, dispos, transaction, reserved2 );
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/******************************************************************************
+ * RegCreateKeyTransactedA [ADVAPI32.@]
+ */
+LSTATUS WINAPI RegCreateKeyTransactedA( HKEY hkey, LPCSTR name, DWORD reserved, LPSTR class,
+ DWORD options, REGSAM access, SECURITY_ATTRIBUTES *sa,
+ PHKEY retkey, LPDWORD dispos, HANDLE transaction, PVOID reserved2 )
+{
+ FIXME( "(%p,%s,%u,%s,%u,%u,%p,%p,%p,%p,%p): stub\n", hkey, debugstr_a(name), reserved,
+ debugstr_a(class), options, access, sa, retkey, dispos, transaction, reserved2 );
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
/******************************************************************************
* RegOpenKeyExW [ADVAPI32.@]
--
2.6.2

View File

@@ -1 +0,0 @@
Fixes: Add stubs for advapi32.RegCreateKeyTransacted[A/W]

View File

@@ -1,4 +1,4 @@
From 5bd9830f145a29823b4a44b079c70171e55fb5db Mon Sep 17 00:00:00 2001
From 1b05fa6764dc8eb220ef9dd349801fa2e76914bd Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 17 Oct 2015 15:38:13 +0200
Subject: comctl32/tests: Add tests for PROPSHEET_InsertPage.
@@ -8,7 +8,7 @@ Subject: comctl32/tests: Add tests for PROPSHEET_InsertPage.
1 file changed, 96 insertions(+), 1 deletion(-)
diff --git a/dlls/comctl32/tests/propsheet.c b/dlls/comctl32/tests/propsheet.c
index 6594298..cdbbca8 100644
index 6594298..8fdbae8 100644
--- a/dlls/comctl32/tests/propsheet.c
+++ b/dlls/comctl32/tests/propsheet.c
@@ -806,7 +806,7 @@ static void test_PSM_ADDPAGE(void)
@@ -78,7 +78,7 @@ index 6594298..cdbbca8 100644
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, 0, (LPARAM)INVALID_HANDLE_VALUE);
+}
+
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, (LPARAM)INVALID_HANDLE_VALUE, (LPARAM)hpsp[2]);
+ ret = SendMessageA(hdlg, PSM_INSERTPAGE, (WPARAM)INVALID_HANDLE_VALUE, (LPARAM)hpsp[2]);
+ ok(ret == FALSE, "got %d\n", ret);
+
+ /* check item count */
@@ -128,5 +128,5 @@ index 6594298..cdbbca8 100644
+ test_PSM_INSERTPAGE();
}
--
2.6.1
2.6.2

View File

@@ -0,0 +1,117 @@
From f28e6a98185ce7dd1137f2f04861c097e75e72a9 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 4 Dec 2015 09:22:35 +1100
Subject: d3dx9_36: Support NULL terminated strings in ID3DXFont_DrawText
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/d3dx9_36/font.c | 10 ++++++++--
dlls/d3dx9_36/tests/core.c | 46 +++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 53 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dx9_36/font.c b/dlls/d3dx9_36/font.c
index d6dcd6c..63aa828 100644
--- a/dlls/d3dx9_36/font.c
+++ b/dlls/d3dx9_36/font.c
@@ -214,9 +214,12 @@ static INT WINAPI ID3DXFontImpl_DrawTextA(ID3DXFont *iface, ID3DXSprite *sprite,
TRACE("iface %p, sprite %p, string %s, count %d, rect %s, format %#x, color 0x%08x\n",
iface, sprite, debugstr_a(string), count, wine_dbgstr_rect(rect), format, color);
- if (!string || count <= 0)
+ if (!string || count == 0)
return 0;
+ if (count < 0)
+ count = -1;
+
countW = MultiByteToWideChar(CP_ACP, 0, string, count, NULL, 0);
stringW = HeapAlloc(GetProcessHeap(), 0, countW * sizeof(WCHAR));
if (stringW)
@@ -239,9 +242,12 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite,
TRACE("iface %p, sprite %p, string %s, count %d, rect %s, format %#x, color 0x%08x\n",
iface, sprite, debugstr_w(string), count, wine_dbgstr_rect(rect), format, color);
- if (!string || count <= 0)
+ if (!string || count == 0)
return 0;
+ if (count < 0)
+ count = lstrlenW(string);
+
/* Strip terminating NULL characters */
while (count > 0 && !string[count-1])
count--;
diff --git a/dlls/d3dx9_36/tests/core.c b/dlls/d3dx9_36/tests/core.c
index 1c379fb..c931260 100644
--- a/dlls/d3dx9_36/tests/core.c
+++ b/dlls/d3dx9_36/tests/core.c
@@ -321,6 +321,8 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
{ 12, 256, 5 },
{ 72, 256, 8 }
};
+ static const WCHAR testW[] = {'t','e','s','t',0};
+ static const char testA[] = "test";
/* D3DXCreateFont */
@@ -463,7 +465,6 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
/* ID3DXFont_PreloadText */
hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", &font);
if(SUCCEEDED(hr)) {
- const WCHAR testW[] = {'t','e','s','t',0};
todo_wine {
hr = ID3DXFont_PreloadTextA(font, NULL, -1);
@@ -591,6 +592,49 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
}
ID3DXFont_Release(font);
}
+
+ /* ID3DXFont_DrawTextA, ID3DXFont_DrawTextW */
+ hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", &font);
+ if (SUCCEEDED(hr)) {
+ RECT rect;
+ int height;
+
+ SetRect(&rect, 10, 10, 200, 200);
+
+ height = ID3DXFont_DrawTextA(font, NULL, testA, -2, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextA(font, NULL, testA, -1, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextA(font, NULL, testA, 0, &rect, 0, 0xFF00FF);
+ ok(height == 0, "DrawTextA returned %d, expected 0.\n", height);
+
+ height = ID3DXFont_DrawTextA(font, NULL, testA, 1, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextA(font, NULL, testA, 2, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+if (0) { /* Causes a lockup on windows 7. */
+ height = ID3DXFont_DrawTextW(font, NULL, testW, -2, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextW returned %d, expected 12.\n", height);
+}
+
+ height = ID3DXFont_DrawTextW(font, NULL, testW, -1, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextW returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextW(font, NULL, testW, 0, &rect, 0, 0xFF00FF);
+ ok(height == 0, "DrawTextW returned %d, expected 0.\n", height);
+
+ height = ID3DXFont_DrawTextW(font, NULL, testW, 1, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextW returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextW(font, NULL, testW, 2, &rect, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextW returned %d, expected 12.\n", height);
+
+ ID3DXFont_Release(font);
+ }
}
static void test_D3DXCreateRenderToSurface(IDirect3DDevice9 *device)
--
2.6.2

View File

@@ -0,0 +1,80 @@
From 5b46372b7cc36f07d61bce63d5e3ae8aa766aa5a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 5 Dec 2015 15:31:06 +1100
Subject: d3dx9_36: ID3DXFont_DrawText calc_rect can be null
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/d3dx9_36/font.c | 8 ++++++--
dlls/d3dx9_36/tests/core.c | 18 ++++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/d3dx9_36/font.c b/dlls/d3dx9_36/font.c
index 63aa828..2262db9 100644
--- a/dlls/d3dx9_36/font.c
+++ b/dlls/d3dx9_36/font.c
@@ -236,7 +236,7 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite,
const WCHAR *string, INT count, RECT *rect, DWORD format, D3DCOLOR color)
{
struct d3dx_font *This = impl_from_ID3DXFont(iface);
- RECT calc_rect = *rect;
+ RECT calc_rect;
INT height;
TRACE("iface %p, sprite %p, string %s, count %d, rect %s, format %#x, color 0x%08x\n",
@@ -252,11 +252,15 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite,
while (count > 0 && !string[count-1])
count--;
+ if (rect)
+ calc_rect = *rect;
+
height = DrawTextW(This->hdc, string, count, &calc_rect, format | DT_CALCRECT);
if (format & DT_CALCRECT)
{
- *rect = calc_rect;
+ if (rect)
+ *rect = calc_rect;
return height;
}
diff --git a/dlls/d3dx9_36/tests/core.c b/dlls/d3dx9_36/tests/core.c
index c931260..1cf0db6 100644
--- a/dlls/d3dx9_36/tests/core.c
+++ b/dlls/d3dx9_36/tests/core.c
@@ -616,6 +616,15 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
height = ID3DXFont_DrawTextA(font, NULL, testA, 2, &rect, 0, 0xFF00FF);
ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+ height = ID3DXFont_DrawTextA(font, NULL, testA, -1, NULL, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextA(font, NULL, testA, -1, NULL, DT_CALCRECT, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextA(font, NULL, NULL, -1, NULL, 0, 0xFF00FF);
+ ok(height == 0, "DrawTextA returned %d, expected 0.\n", height);
+
if (0) { /* Causes a lockup on windows 7. */
height = ID3DXFont_DrawTextW(font, NULL, testW, -2, &rect, 0, 0xFF00FF);
ok(height == 12, "DrawTextW returned %d, expected 12.\n", height);
@@ -633,6 +642,15 @@ if (0) { /* Causes a lockup on windows 7. */
height = ID3DXFont_DrawTextW(font, NULL, testW, 2, &rect, 0, 0xFF00FF);
ok(height == 12, "DrawTextW returned %d, expected 12.\n", height);
+ height = ID3DXFont_DrawTextW(font, NULL, testW, -1, NULL, 0, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextW(font, NULL, testW, -1, NULL, DT_CALCRECT, 0xFF00FF);
+ ok(height == 12, "DrawTextA returned %d, expected 12.\n", height);
+
+ height = ID3DXFont_DrawTextW(font, NULL, NULL, -1, NULL, 0, 0xFF00FF);
+ ok(height == 0, "DrawTextA returned %d, expected 0.\n", height);
+
ID3DXFont_Release(font);
}
}
--
2.6.2

View File

@@ -1,2 +1,3 @@
Fixes: Software support for Environmental Audio Extensions (EAX)
Depends: dsound-Fast_Mixer
Depends: dsound-Revert_Cleanup

View File

@@ -0,0 +1,106 @@
From 462599cf79d964c6add1a7250f654d2e3110c4d2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 23 Dec 2015 00:58:57 +0100
Subject: Revert "dsound: Use a better name for
IDirectSoundBufferImpl_Create()."
This reverts commit bb72548f3870b1df03ad9fe7ad2e543a69d5d574.
---
dlls/dsound/buffer.c | 24 +++++++++++++++---------
dlls/dsound/dsound.c | 7 +++++--
dlls/dsound/dsound_private.h | 6 ++++--
3 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index 2a80c3f..d7717fd 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -983,15 +983,19 @@ static const IDirectSoundBuffer8Vtbl dsbvt =
IDirectSoundBufferImpl_GetObjectInPath
};
-HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *dsbd,
- IDirectSoundBuffer **buffer)
+HRESULT IDirectSoundBufferImpl_Create(
+ DirectSoundDevice * device,
+ IDirectSoundBufferImpl **pdsb,
+ LPCDSBUFFERDESC dsbd)
{
IDirectSoundBufferImpl *dsb;
LPWAVEFORMATEX wfex = dsbd->lpwfxFormat;
HRESULT err = DS_OK;
DWORD capf = 0;
- TRACE("(%p,%p,%p)\n", device, dsbd, buffer);
+ TRACE("(%p,%p,%p)\n",device,pdsb,dsbd);
+
+ *pdsb = NULL;
if (dsbd->dwBufferBytes < DSBSIZE_MIN || dsbd->dwBufferBytes > DSBSIZE_MAX) {
WARN("invalid parameter: dsbd->dwBufferBytes = %d\n", dsbd->dwBufferBytes);
@@ -1103,12 +1107,14 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
RtlInitializeResource(&dsb->lock);
- /* register buffer */
- err = DirectSoundDevice_AddBuffer(device, dsb);
- if (err == DS_OK)
- *buffer = (IDirectSoundBuffer*)&dsb->IDirectSoundBuffer8_iface;
- else
- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface);
+ /* register buffer if not primary */
+ if (!(dsbd->dwFlags & DSBCAPS_PRIMARYBUFFER)) {
+ err = DirectSoundDevice_AddBuffer(device, dsb);
+ if (err == DS_OK)
+ *pdsb = dsb;
+ else
+ IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface);
+ }
return err;
}
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c
index ccefd1f..e50ef58 100644
--- a/dlls/dsound/dsound.c
+++ b/dlls/dsound/dsound.c
@@ -469,6 +469,8 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer(
WARN("primarybuffer_create() failed\n");
}
} else {
+ IDirectSoundBufferImpl * dsb;
+
if (dsbd->lpwfxFormat == NULL) {
WARN("invalid parameter: dsbd->lpwfxFormat can't be NULL for "
"secondary buffer\n");
@@ -545,8 +547,9 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer(
return DSERR_INVALIDPARAM;
}
- hres = secondarybuffer_create(device, dsbd, ppdsb);
- if (SUCCEEDED(hres)) {
+ hres = IDirectSoundBufferImpl_Create(device, &dsb, dsbd);
+ if (dsb) {
+ *ppdsb = (IDirectSoundBuffer*)&dsb->IDirectSoundBuffer8_iface;
if (dsbd->dwFlags & DSBCAPS_LOCHARDWARE)
device->drvcaps.dwFreeHwMixingAllBuffers--;
} else
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 07bda48..9c001ed 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -182,8 +182,10 @@ void put_stereo2quad(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel
void put_mono2surround51(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN;
void put_stereo2surround51(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN;
-HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *dsbd,
- IDirectSoundBuffer **buffer) DECLSPEC_HIDDEN;
+HRESULT IDirectSoundBufferImpl_Create(
+ DirectSoundDevice *device,
+ IDirectSoundBufferImpl **ppdsb,
+ LPCDSBUFFERDESC dsbd) DECLSPEC_HIDDEN;
HRESULT IDirectSoundBufferImpl_Duplicate(
DirectSoundDevice *device,
IDirectSoundBufferImpl **ppdsb,
--
2.6.4

View File

@@ -0,0 +1,116 @@
From 974a901f92d5197d3db6356df454bdd47dea39da Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 23 Dec 2015 00:59:07 +0100
Subject: Revert "dsound: Simplify error handling when creating a sound
buffer."
This reverts commit d51d55bab8995f94dcc78ce8418a4149836c27b0.
---
dlls/dsound/buffer.c | 46 ++++++++++++++++++++++++++++++----------------
1 file changed, 30 insertions(+), 16 deletions(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index d7717fd..5aa2834 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -992,28 +992,29 @@ HRESULT IDirectSoundBufferImpl_Create(
LPWAVEFORMATEX wfex = dsbd->lpwfxFormat;
HRESULT err = DS_OK;
DWORD capf = 0;
-
TRACE("(%p,%p,%p)\n",device,pdsb,dsbd);
- *pdsb = NULL;
-
if (dsbd->dwBufferBytes < DSBSIZE_MIN || dsbd->dwBufferBytes > DSBSIZE_MAX) {
WARN("invalid parameter: dsbd->dwBufferBytes = %d\n", dsbd->dwBufferBytes);
+ *pdsb = NULL;
return DSERR_INVALIDPARAM; /* FIXME: which error? */
}
dsb = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(*dsb));
- if (!dsb)
+ if (dsb == 0) {
+ WARN("out of memory\n");
+ *pdsb = NULL;
return DSERR_OUTOFMEMORY;
+ }
TRACE("Created buffer at %p\n", dsb);
- dsb->ref = 1;
+ dsb->ref = 0;
dsb->refn = 0;
dsb->ref3D = 0;
dsb->refiks = 0;
- dsb->numIfaces = 1;
+ dsb->numIfaces = 0;
dsb->device = device;
dsb->IDirectSoundBuffer8_iface.lpVtbl = &dsbvt;
dsb->IDirectSoundNotify_iface.lpVtbl = &dsnvt;
@@ -1024,8 +1025,9 @@ HRESULT IDirectSoundBufferImpl_Create(
CopyMemory(&dsb->dsbd, dsbd, dsbd->dwSize);
dsb->pwfx = DSOUND_CopyFormat(wfex);
- if (!dsb->pwfx) {
- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface);
+ if (dsb->pwfx == NULL) {
+ HeapFree(GetProcessHeap(),0,dsb);
+ *pdsb = NULL;
return DSERR_OUTOFMEMORY;
}
@@ -1050,16 +1052,22 @@ HRESULT IDirectSoundBufferImpl_Create(
/* Allocate an empty buffer */
dsb->buffer = HeapAlloc(GetProcessHeap(),0,sizeof(*(dsb->buffer)));
- if (!dsb->buffer) {
- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface);
+ if (dsb->buffer == NULL) {
+ WARN("out of memory\n");
+ HeapFree(GetProcessHeap(),0,dsb->pwfx);
+ HeapFree(GetProcessHeap(),0,dsb);
+ *pdsb = NULL;
return DSERR_OUTOFMEMORY;
}
/* Allocate system memory for buffer */
dsb->buffer->memory = HeapAlloc(GetProcessHeap(),0,dsb->buflen);
- if (!dsb->buffer->memory) {
+ if (dsb->buffer->memory == NULL) {
WARN("out of memory\n");
- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface);
+ HeapFree(GetProcessHeap(),0,dsb->pwfx);
+ HeapFree(GetProcessHeap(),0,dsb->buffer);
+ HeapFree(GetProcessHeap(),0,dsb);
+ *pdsb = NULL;
return DSERR_OUTOFMEMORY;
}
@@ -1110,12 +1118,18 @@ HRESULT IDirectSoundBufferImpl_Create(
/* register buffer if not primary */
if (!(dsbd->dwFlags & DSBCAPS_PRIMARYBUFFER)) {
err = DirectSoundDevice_AddBuffer(device, dsb);
- if (err == DS_OK)
- *pdsb = dsb;
- else
- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface);
+ if (err != DS_OK) {
+ HeapFree(GetProcessHeap(),0,dsb->buffer->memory);
+ HeapFree(GetProcessHeap(),0,dsb->buffer);
+ RtlDeleteResource(&dsb->lock);
+ HeapFree(GetProcessHeap(),0,dsb->pwfx);
+ HeapFree(GetProcessHeap(),0,dsb);
+ dsb = NULL;
+ }
}
+ IDirectSoundBuffer8_AddRef(&dsb->IDirectSoundBuffer8_iface);
+ *pdsb = dsb;
return err;
}
--
2.6.4

View File

@@ -1,4 +1,4 @@
From 6ae55e62a81e4f4ded0ea14926f014b6d6a4b633 Mon Sep 17 00:00:00 2001
From 29ed0b32254cac13e07daea09b4288ce774688cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 28 Oct 2015 22:36:01 +0100
Subject: hal: Implement KeQueryPerformanceCounter.
@@ -9,11 +9,11 @@ Subject: hal: Implement KeQueryPerformanceCounter.
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/dlls/hal/hal.c b/dlls/hal/hal.c
index 96bc895..145869d 100644
index bca688e..84942ca 100644
--- a/dlls/hal/hal.c
+++ b/dlls/hal/hal.c
@@ -155,3 +155,13 @@ KIRQL WINAPI KeGetCurrentIrql(VOID)
FIXME( " stub!\n");
@@ -161,3 +161,13 @@ ULONG WINAPI READ_PORT_ULONG(ULONG *port)
FIXME("(%p) stub!\n", port);
return 0;
}
+
@@ -27,7 +27,7 @@ index 96bc895..145869d 100644
+ return counter.QuadPart;
+}
diff --git a/dlls/hal/hal.spec b/dlls/hal/hal.spec
index 3046c65..dc908dd 100644
index 02f778c..821084d 100644
--- a/dlls/hal/hal.spec
+++ b/dlls/hal/hal.spec
@@ -72,7 +72,7 @@
@@ -40,5 +40,5 @@ index 3046c65..dc908dd 100644
@ stub KeRaiseIrqlToDpcLevel
@ stub KeRaiseIrqlToSynchLevel
--
2.6.2
2.6.4

View File

@@ -0,0 +1,32 @@
From 0c1c8f2879629c0e698c23373e699742f34b2bd1 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 27 Dec 2015 22:25:31 +0100
Subject: Revert "iexplore: Sync registry and program resource values."
This reverts commit bda46cc6fd5fa0f3c9db947108b685533662037a.
---
programs/iexplore/iexplore.rc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/programs/iexplore/iexplore.rc b/programs/iexplore/iexplore.rc
index 3d6d50f..cd75781 100644
--- a/programs/iexplore/iexplore.rc
+++ b/programs/iexplore/iexplore.rc
@@ -18,10 +18,10 @@
#define WINE_FILEDESCRIPTION_STR "Wine Internet Explorer"
#define WINE_FILENAME_STR "iexplore.exe"
-#define WINE_FILEVERSION 9,0,8112,16421
-#define WINE_FILEVERSION_STR "9.0.8112.16421"
-#define WINE_PRODUCTVERSION 9,0,8112,16421
-#define WINE_PRODUCTVERSION_STR "9.0.8112.16421"
+#define WINE_FILEVERSION 6,0,2900,2180
+#define WINE_FILEVERSION_STR "6.0.2900.2180"
+#define WINE_PRODUCTVERSION 6,0,2900,2180
+#define WINE_PRODUCTVERSION_STR "6.0.2900.2180"
#define WINE_EXTRAVALUES VALUE "OLESelfRegister",""
#include "wine/wine_common_ver.rc"
--
2.6.4

View File

@@ -0,0 +1 @@
Fixes: Workaround installation bug of IE7 caused by version bump

View File

@@ -1,50 +0,0 @@
From 33fa174b6404cfea673d510457d21d784a23efbd Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 May 2014 00:18:11 +0200
Subject: kernel32: Silence repeated CompareStringEx FIXME.
---
dlls/kernel32/locale.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c
index eca0e39..55ef3d6 100644
--- a/dlls/kernel32/locale.c
+++ b/dlls/kernel32/locale.c
@@ -2985,9 +2985,10 @@ INT WINAPI CompareStringW(LCID lcid, DWORD flags,
INT WINAPI CompareStringEx(LPCWSTR locale, DWORD flags, LPCWSTR str1, INT len1,
LPCWSTR str2, INT len2, LPNLSVERSIONINFO version, LPVOID reserved, LPARAM lParam)
{
- DWORD supported_flags = NORM_IGNORECASE|NORM_IGNORENONSPACE|NORM_IGNORESYMBOLS|SORT_STRINGSORT
- |NORM_IGNOREKANATYPE|NORM_IGNOREWIDTH|LOCALE_USE_CP_ACP;
- DWORD semistub_flags = NORM_LINGUISTIC_CASING|LINGUISTIC_IGNORECASE|0x10000000;
+ static const DWORD supported_flags = NORM_IGNORECASE|NORM_IGNORENONSPACE|NORM_IGNORESYMBOLS|SORT_STRINGSORT
+ |NORM_IGNOREKANATYPE|NORM_IGNOREWIDTH|LOCALE_USE_CP_ACP
+ |NORM_LINGUISTIC_CASING|LINGUISTIC_IGNORECASE|0x10000000;
+ static DWORD semistub_flags = NORM_LINGUISTIC_CASING|LINGUISTIC_IGNORECASE|0x10000000;
/* 0x10000000 is related to diacritics in Arabic, Japanese, and Hebrew */
INT ret;
@@ -3001,14 +3002,17 @@ INT WINAPI CompareStringEx(LPCWSTR locale, DWORD flags, LPCWSTR str1, INT len1,
return 0;
}
- if (flags & ~(supported_flags|semistub_flags))
+ if (flags & ~supported_flags)
{
SetLastError(ERROR_INVALID_FLAGS);
return 0;
}
if (flags & semistub_flags)
- FIXME("semi-stub behavor for flag(s) 0x%x\n", flags & semistub_flags);
+ {
+ FIXME("semi-stub behavior for flag(s) 0x%x\n", flags & semistub_flags);
+ semistub_flags &= ~flags;
+ }
if (len1 < 0) len1 = strlenW(str1);
if (len2 < 0) len2 = strlenW(str2);
--
1.7.9.5

View File

@@ -1 +0,0 @@
Category: stable

View File

@@ -0,0 +1,54 @@
From 621d31b627bd14ab424e20f76c9dc2d786e5ec9e Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Fri, 4 Dec 2015 15:47:42 +1100
Subject: wineconsole: Send the largest console window size information to the
server
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
programs/wineconsole/wineconsole.c | 6 +++++-
server/console.c | 7 -------
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c
index 7a89eeb..729416f 100644
--- a/programs/wineconsole/wineconsole.c
+++ b/programs/wineconsole/wineconsole.c
@@ -424,11 +424,15 @@ void WINECON_SetConfig(struct inner_data* data, const struct config_data* cf
if (strcmpiW(data->curcfg.face_name, cfg->face_name) || data->curcfg.cell_width != cfg->cell_width ||
data->curcfg.cell_height != cfg->cell_height || data->curcfg.font_weight != cfg->font_weight)
{
+ RECT r;
data->fnSetFont(data, cfg->face_name, cfg->cell_height, cfg->font_weight);
+ SystemParametersInfoW(SPI_GETWORKAREA, 0, &r, 0);
SERVER_START_REQ(set_console_output_info)
{
req->handle = wine_server_obj_handle( data->hConOut );
- req->mask = SET_CONSOLE_OUTPUT_INFO_FONT;
+ req->mask = SET_CONSOLE_OUTPUT_INFO_MAX_SIZE | SET_CONSOLE_OUTPUT_INFO_FONT;
+ req->max_width = (r.right - r.left) / cfg->cell_width;
+ req->max_height = (r.bottom - r.top - GetSystemMetrics(SM_CYCAPTION)) / cfg->cell_height;
req->font_width = cfg->cell_width;
req->font_height = cfg->cell_height;
wine_server_call( req );
diff --git a/server/console.c b/server/console.c
index a57b2fe..9b01614 100644
--- a/server/console.c
+++ b/server/console.c
@@ -1018,13 +1018,6 @@ static int set_console_output_info( struct screen_buffer *screen_buffer,
}
if (req->mask & SET_CONSOLE_OUTPUT_INFO_MAX_SIZE)
{
- /* can only be done by renderer */
- if (current->process->console != screen_buffer->input)
- {
- set_error( STATUS_INVALID_PARAMETER );
- return 0;
- }
-
screen_buffer->max_width = req->max_width;
screen_buffer->max_height = req->max_height;
}
--
2.6.2

View File

@@ -0,0 +1,65 @@
From 56d5cc64d9047dc5f9866ff2542eb0f07f9ad75d Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Fri, 4 Dec 2015 15:48:12 +1100
Subject: kernel32: Implement GetLargestConsoleWindowSize
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
dlls/kernel32/console.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index 51d6e60..f48bca7 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -1360,6 +1360,22 @@ DWORD WINAPI GetConsoleTitleW(LPWSTR title, DWORD size)
return ret;
}
+static COORD get_largest_console_window_size(HANDLE hConsole)
+{
+ COORD c = {0,0};
+
+ SERVER_START_REQ(get_console_output_info)
+ {
+ req->handle = console_handle_unmap(hConsole);
+ if (!wine_server_call_err(req))
+ {
+ c.X = reply->max_width;
+ c.Y = reply->max_height;
+ }
+ }
+ SERVER_END_REQ;
+ return c;
+}
/***********************************************************************
* GetLargestConsoleWindowSize (KERNEL32.@)
@@ -1378,8 +1394,7 @@ DWORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
COORD c;
DWORD w;
} x;
- x.c.X = 80;
- x.c.Y = 24;
+ x.c = get_largest_console_window_size(hConsoleOutput);
TRACE("(%p), returning %dx%d (%x)\n", hConsoleOutput, x.c.X, x.c.Y, x.w);
return x.w;
}
@@ -1399,12 +1414,11 @@ DWORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
COORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
{
COORD c;
- c.X = 80;
- c.Y = 24;
+ c = get_largest_console_window_size(hConsoleOutput);
TRACE("(%p), returning %dx%d\n", hConsoleOutput, c.X, c.Y);
return c;
}
-#endif /* defined(__i386__) */
+#endif /* !defined(__i386__) */
static WCHAR* S_EditString /* = NULL */;
static unsigned S_EditStrPos /* = 0 */;
--
2.6.2

View File

@@ -0,0 +1,44 @@
From 0042b3a28cc7fbe462850eb600df0424a8dfb1e5 Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Fri, 4 Dec 2015 16:00:27 +1100
Subject: kernel32: Add a stub for SetConsoleFont
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
dlls/kernel32/console.c | 6 ++++++
dlls/kernel32/kernel32.spec | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index f48bca7..3c53b52 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -3256,6 +3256,12 @@ DWORD WINAPI GetNumberOfConsoleFonts(void)
return 1;
}
+BOOL WINAPI SetConsoleFont(HANDLE hConsole, DWORD index)
+{
+ FIXME("(%p, %u): stub!\n", hConsole, index);
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
BOOL WINAPI SetConsoleKeyShortcuts(BOOL set, BYTE keys, VOID *a, DWORD b)
{
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index ff67e54..d10e6bb 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -1345,7 +1345,7 @@
@ stub SetConsoleCursorMode
@ stdcall SetConsoleCursorPosition(long long)
@ stdcall SetConsoleDisplayMode(long long ptr)
-@ stub SetConsoleFont
+@ stdcall SetConsoleFont(long long)
@ stub SetConsoleHardwareState
@ stdcall SetConsoleIcon(ptr)
@ stdcall SetConsoleInputExeNameA(ptr)
--
2.6.2

View File

@@ -0,0 +1,38 @@
From 3935a3728751863c959f1f45e8e1866ed98c3ce4 Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Fri, 4 Dec 2015 16:02:38 +1100
Subject: kernel32/tests: Refresh the console to clear the console font table
The testScreenBuffer function unintentionally causes the console
font table to duplicate. This patch clears the font table.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
dlls/kernel32/tests/console.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index 240d9d8..3ba1da5 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -2787,6 +2787,17 @@ START_TEST(console)
testScroll(hConOut, sbi.dwSize);
/* will test sb creation / modification / codepage handling */
testScreenBuffer(hConOut);
+
+ /* clear duplicated console font table */
+ CloseHandle(hConIn);
+ CloseHandle(hConOut);
+ FreeConsole();
+ ok(AllocConsole(), "Couldn't alloc console\n");
+ hConIn = CreateFileA("CONIN$", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
+ hConOut = CreateFileA("CONOUT$", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
+ ok(hConIn != INVALID_HANDLE_VALUE, "Opening ConIn\n");
+ ok(hConOut != INVALID_HANDLE_VALUE, "Opening ConOut\n");
+
testCtrlHandler();
/* still to be done: access rights & access on objects */
--
2.6.2

View File

@@ -0,0 +1,93 @@
From cea4e680a6e23edcbbba8d0457834ee15c2f7c3a Mon Sep 17 00:00:00 2001
From: Hugh McMaster <hugh.mcmaster@outlook.com>
Date: Fri, 4 Dec 2015 16:07:24 +1100
Subject: kernel32/tests: Add tests for GetLargestConsoleWindowSize
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
---
dlls/kernel32/tests/console.c | 64 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index 3ba1da5..f362415 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -2681,6 +2681,69 @@ static void test_GetConsoleFontSize(HANDLE std_output)
ok(!c.Y, "got %d, expected 0\n", c.Y);
}
+static void test_GetLargestConsoleWindowSize(HANDLE std_output)
+{
+ COORD c, font;
+ RECT r;
+ LONG workarea_w, workarea_h, maxcon_w, maxcon_h;
+ CONSOLE_FONT_INFO cfi;
+ DWORD index, i;
+ HMODULE hmod;
+ DWORD (WINAPI *pGetNumberOfConsoleFonts)(void);
+ BOOL (WINAPI *pSetConsoleFont)(HANDLE, DWORD);
+
+ memset(&c, 10, sizeof(COORD));
+ SetLastError(0xdeadbeef);
+ c = GetLargestConsoleWindowSize(NULL);
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "got %u, expected 6\n", GetLastError());
+ ok(!c.X, "got %d, expected 0\n", c.X);
+ ok(!c.Y, "got %d, expected 0\n", c.Y);
+
+ memset(&c, 10, sizeof(COORD));
+ SetLastError(0xdeadbeef);
+ c = GetLargestConsoleWindowSize(GetStdHandle(STD_INPUT_HANDLE));
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "got %u, expected 6\n", GetLastError());
+ ok(!c.X, "got %d, expected 0\n", c.X);
+ ok(!c.Y, "got %d, expected 0\n", c.Y);
+
+ SystemParametersInfoW(SPI_GETWORKAREA, 0, &r, 0);
+ workarea_w = r.right - r.left;
+ workarea_h = r.bottom - r.top - GetSystemMetrics(SM_CYCAPTION);
+
+ GetCurrentConsoleFont(std_output, FALSE, &cfi);
+ index = cfi.nFont; /* save current font index */
+
+ hmod = GetModuleHandleA("kernel32.dll");
+ pGetNumberOfConsoleFonts = (void *)GetProcAddress(hmod, "GetNumberOfConsoleFonts");
+ if (!pGetNumberOfConsoleFonts)
+ {
+ win_skip("GetNumberOfConsoleFonts is not available\n");
+ return;
+ }
+ pSetConsoleFont = (void *)GetProcAddress(hmod, "SetConsoleFont");
+ if (!pSetConsoleFont)
+ {
+ win_skip("SetConsoleFont is not available\n");
+ return;
+ }
+
+ for (i = 0; i < pGetNumberOfConsoleFonts(); i++)
+ {
+ pSetConsoleFont(std_output, i);
+ memset(&c, 10, sizeof(COORD));
+ SetLastError(0xdeadbeef);
+ c = GetLargestConsoleWindowSize(std_output);
+ ok(GetLastError() == 0xdeadbeef, "got %u, expected 0xdeadbeef\n", GetLastError());
+ GetCurrentConsoleFont(std_output, FALSE, &cfi);
+ font = GetConsoleFontSize(std_output, cfi.nFont);
+ maxcon_w = workarea_w / font.X;
+ maxcon_h = workarea_h / font.Y;
+ ok(c.X == maxcon_w || c.X == maxcon_w - 1 /* Win10 */, "got %d, expected %d\n", c.X, maxcon_w);
+ ok(c.Y == maxcon_h || c.Y == maxcon_h - 1 /* Win10 */, "got %d, expected %d\n", c.Y, maxcon_h);
+ }
+ pSetConsoleFont(std_output, index); /* restore original font size */
+}
+
START_TEST(console)
{
static const char font_name[] = "Lucida Console";
@@ -2826,4 +2889,5 @@ START_TEST(console)
test_ReadConsoleOutputAttribute(hConOut);
test_GetCurrentConsoleFont(hConOut);
test_GetConsoleFontSize(hConOut);
+ test_GetLargestConsoleWindowSize(hConOut);
}
--
2.6.2

View File

@@ -0,0 +1,58 @@
From d3a6fb5dc0a0494627c0980ca8d5e5ee89df4fbc Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 5 Dec 2015 19:36:20 +0100
Subject: kernel32: Clamp maximum window size to screen buffer size.
---
dlls/kernel32/console.c | 4 ++--
dlls/kernel32/tests/console.c | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index 3c53b52..85e4ba8 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -2160,8 +2160,8 @@ BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput, LPCONSOLE_SCREEN_B
csbi->srWindow.Right = reply->win_right;
csbi->srWindow.Top = reply->win_top;
csbi->srWindow.Bottom = reply->win_bottom;
- csbi->dwMaximumWindowSize.X = reply->max_width;
- csbi->dwMaximumWindowSize.Y = reply->max_height;
+ csbi->dwMaximumWindowSize.X = min(reply->width, reply->max_width);
+ csbi->dwMaximumWindowSize.Y = min(reply->height, reply->max_height);
}
}
SERVER_END_REQ;
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index f362415..43a4b75 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -2686,9 +2686,11 @@ static void test_GetLargestConsoleWindowSize(HANDLE std_output)
COORD c, font;
RECT r;
LONG workarea_w, workarea_h, maxcon_w, maxcon_h;
+ CONSOLE_SCREEN_BUFFER_INFO sbi;
CONSOLE_FONT_INFO cfi;
DWORD index, i;
HMODULE hmod;
+ BOOL ret;
DWORD (WINAPI *pGetNumberOfConsoleFonts)(void);
BOOL (WINAPI *pSetConsoleFont)(HANDLE, DWORD);
@@ -2740,6 +2742,13 @@ static void test_GetLargestConsoleWindowSize(HANDLE std_output)
maxcon_h = workarea_h / font.Y;
ok(c.X == maxcon_w || c.X == maxcon_w - 1 /* Win10 */, "got %d, expected %d\n", c.X, maxcon_w);
ok(c.Y == maxcon_h || c.Y == maxcon_h - 1 /* Win10 */, "got %d, expected %d\n", c.Y, maxcon_h);
+
+ ret = GetConsoleScreenBufferInfo(std_output, &sbi);
+ ok(ret, "GetConsoleScreenBufferInfo failed %u\n", GetLastError());
+ ok(sbi.dwMaximumWindowSize.X == min(c.X, sbi.dwSize.X), "got %d, expected %d\n",
+ sbi.dwMaximumWindowSize.X, min(c.X, sbi.dwSize.X));
+ ok(sbi.dwMaximumWindowSize.Y == min(c.Y, sbi.dwSize.Y), "got %d, expected %d\n",
+ sbi.dwMaximumWindowSize.Y, min(c.Y, sbi.dwSize.Y));
}
pSetConsoleFont(std_output, index); /* restore original font size */
}
--
2.6.2

Some files were not shown because too many files have changed in this diff Show More