Compare commits

...

34 Commits

Author SHA1 Message Date
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
Sebastian Lackner
eb1820cd45 Release 1.8-rc2. 2015-11-29 21:23:59 +01:00
Sebastian Lackner
6655f3dc84 Added patch to ensure default route IP addresses are returned first in gethostbyname. 2015-11-29 18:54:40 +01:00
Sebastian Lackner
c28bcab311 Added patch to implement dinput device property DIPROP_USERNAME. 2015-11-29 18:33:00 +01:00
Sebastian Lackner
e60b8d144b Added patch to ignore socket type for protocol IPPROTO_IPV6 in getaddrinfo. 2015-11-29 18:10:07 +01:00
Sebastian Lackner
b14f029f04 Added patch to allow to set debug registers separately in NtSetContextThread. 2015-11-29 00:36:33 +01:00
Sebastian Lackner
cd0241f0e2 Added patch to start SERVICE_FILE_SYSTEM_DRIVER services with winedevice. 2015-11-28 23:31:47 +01:00
Sebastian Lackner
096164c275 Added patch to silence repeated FIXME message in surface_cpu_blt. 2015-11-28 23:23:06 +01:00
Sebastian Lackner
ef47e8db59 Added patch to send WM_CAPTURECHANGE also when capture has not changed. 2015-11-28 23:19:32 +01:00
Sebastian Lackner
632a8a163b Added patch to skip invalid entries in GetPrivateProfileString16. 2015-11-28 22:51:22 +01:00
Sebastian Lackner
8af8164874 Added patch for delayed end of DST in Europe/Istanbul. 2015-11-28 22:50:13 +01:00
Sebastian Lackner
69be96b093 ntdll-Stack_Fault: Updated patch to commit page when handling stack fault, and add tests. 2015-11-28 22:17:37 +01:00
Sebastian Lackner
d73096b63a Added patch to implement check for invalid handle type for HSPFILEQ handles. 2015-11-27 23:20:34 +01:00
Sebastian Lackner
d8b26a26c5 Rebase against e6c67c52757508ce92c3819bb14e87c2ab21fa20. 2015-11-27 23:06:06 +01:00
Sebastian Lackner
c873b7f422 libs-Unicode_Collation: Also enable sorting tests, they pass after this patch. 2015-11-27 10:52:08 +01:00
Sebastian Lackner
a85a3e8533 Rebase against 4a315cd78a3c97d76ae06e3185ab01a70eb9a1a2. 2015-11-26 19:30:18 +01:00
Sebastian Lackner
a7b8b87d73 gdi32-Symbol_Truetype_Font: Add a new reference to bug report. 2015-11-26 00:05:08 +01:00
Sebastian Lackner
208a1f6573 wined3d-Revert_PixelFormat: Remove reference to bugs marked as fixed. 2015-11-26 00:03:21 +01:00
Sebastian Lackner
6f9e2dae7d Rebase against 6790d825d1b2c41de73ffe5cb5df28c1d1cc8878. 2015-11-25 21:57:01 +01:00
Sebastian Lackner
67b1817720 Rebase against 3a6ac6055511b14a7e26ba0200f36da418f80723. 2015-11-25 20:59:04 +01:00
Sebastian Lackner
a990060062 Rebase against 1d19eb15d4abfdd14dccc5ac05b83c0ee1a1ace1. 2015-11-25 20:24:27 +01:00
Sebastian Lackner
be3e802c6f Rebase against a2c6a2beb68cae239d72e012aa8d4af113b8aaa7. 2015-11-23 18:22:33 +01:00
106 changed files with 3736 additions and 2463 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-rc1 [268]:**
**Bug fixes and features in Wine Staging 1.8-rc3 [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
@@ -47,14 +47,12 @@ for more details.*
* 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 IDXGIOutput::GetDesc ([Wine Bug #32006](https://bugs.winehq.org/show_bug.cgi?id=32006))
* 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 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))
@@ -93,8 +91,10 @@ for more details.*
* Allow to edit winecfg library override by double clicking
* Allow to open files/directories without any access rights in order to query attributes
* Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. ([Wine Bug #12652](https://bugs.winehq.org/show_bug.cgi?id=12652))
* Allow to set debug registers separately in NtSetContextThread ([Wine Bug #39454](https://bugs.winehq.org/show_bug.cgi?id=39454))
* Allow to set pixel format for desktop window
* Allow to specify default display frequency in registry
* Also send WM_CAPTURECHANGE when capture has not changed ([Wine Bug #13683](https://bugs.winehq.org/show_bug.cgi?id=13683))
* Always use 64-bit registry view on WOW64 setups
* 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))
@@ -103,7 +103,6 @@ for more details.*
* Avoid race-conditions in NtReadFile() operations with write watches.
* Avoid race-conditions of async WSARecv() operations with write watches.
* Avoid race-conditions with write watches in WS2_async_accept.
* Avseq crashes when multisampling is enabled ([Wine Bug #31998](https://bugs.winehq.org/show_bug.cgi?id=31998))
* Basic handling of write watches triggered while we're on the signal stack.
* Basic support for CUDA
* Black & White needs DXTn software decoding support ([Wine Bug #14939](https://bugs.winehq.org/show_bug.cgi?id=14939))
@@ -111,6 +110,7 @@ for more details.*
* 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 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
* CompareString should abort on first non-matching character ([Wine Bug #37556](https://bugs.winehq.org/show_bug.cgi?id=37556))
* Create Microsoft\Windows\Themes directory during Wineprefix creation ([Wine Bug #34910](https://bugs.winehq.org/show_bug.cgi?id=34910))
@@ -123,17 +123,15 @@ for more details.*
* 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))
* Enforce that surfaces are flushed after ReleaseDC ([Wine Bug #39465](https://bugs.winehq.org/show_bug.cgi?id=39465))
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](https://bugs.winehq.org/show_bug.cgi?id=33162))
* Ensure default route IP addresses are returned first in gethostbyname ([Wine Bug #22819](https://bugs.winehq.org/show_bug.cgi?id=22819))
* Exception during start of fr-043 caused by missing DXTn support ([Wine Bug #37391](https://bugs.winehq.org/show_bug.cgi?id=37391))
* Export additional OpenAL32 functions ([Wine Bug #38972](https://bugs.winehq.org/show_bug.cgi?id=38972))
* Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
* FEAR 1 installer expects basic_string_wchar_dtor to return NULL ([Wine Bug #37358](https://bugs.winehq.org/show_bug.cgi?id=37358))
* Fake success in IViewObject::Draw stub ([Wine Bug #30611](https://bugs.winehq.org/show_bug.cgi?id=30611))
* 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))
@@ -143,20 +141,21 @@ for more details.*
* Fix crash of winedevice when relocation entry crosses page boundary ([Wine Bug #28254](https://bugs.winehq.org/show_bug.cgi?id=28254))
* Fix detection of case-insensitive systems in MSYS2
* Fix device paths in HKLM\SYSTEM\MountedDevices ([Wine Bug #38235](https://bugs.winehq.org/show_bug.cgi?id=38235))
* Fix endless loop in regedit when importing files with very long lines
* Fix error handling in DeferWindowPos when passing an invalid HWND ([Wine Bug #23187](https://bugs.winehq.org/show_bug.cgi?id=23187))
* Fix font loading in Capella ([Wine Bug #12377](https://bugs.winehq.org/show_bug.cgi?id=12377))
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](https://bugs.winehq.org/show_bug.cgi?id=16550))
* Fix for programs leaking wndproc slots ([Wine Bug #32451](https://bugs.winehq.org/show_bug.cgi?id=32451))
* Fix graphical corruption in FarCry 3 with NVIDIA drivers ([Wine Bug #35062](https://bugs.winehq.org/show_bug.cgi?id=35062))
* Fix gray screen on startup introduced by pixelformat changes. ([Wine Bug #35975](https://bugs.winehq.org/show_bug.cgi?id=35975))
* Fix handling of ANSI NTLM credentials ([Wine Bug #37063](https://bugs.winehq.org/show_bug.cgi?id=37063))
* Fix handling of empty section and key name for profile files. ([Wine Bug #8036](https://bugs.winehq.org/show_bug.cgi?id=8036))
* Fix handling of invert_y in DrawTextExW ([Wine Bug #22109](https://bugs.winehq.org/show_bug.cgi?id=22109))
* Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED ([Wine Bug #37876](https://bugs.winehq.org/show_bug.cgi?id=37876))
* Fix implementation of NtQueryInformationProcess for ProcessDebugFlags
* Fix implementation of msvcrt.close when stdout == stderr
* 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 missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900))
* 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))
@@ -174,13 +173,13 @@ for more details.*
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](https://bugs.winehq.org/show_bug.cgi?id=15980))
* Globally invalidate key state on changes in other threads ([Wine Bug #29871](https://bugs.winehq.org/show_bug.cgi?id=29871))
* Graphical issues in Inquisitor ([Wine Bug #32490](https://bugs.winehq.org/show_bug.cgi?id=32490))
* Ignore socket type for protocol IPPROTO_IPV6 in getaddrinfo
* Implement AMStream GetMultiMediaStream functions ([Wine Bug #37090](https://bugs.winehq.org/show_bug.cgi?id=37090))
* Implement D3DXGetShaderOutputSemantics
* Implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces ([Wine Bug #17233](https://bugs.winehq.org/show_bug.cgi?id=17233))
* Implement FileNamesInformation class support for NtQueryDirectoryFile
* Implement FolderImpl_Items and stubbed FolderItems interface
* Implement ID3DXEffect::FindNextValidTechnique ([Wine Bug #34101](https://bugs.winehq.org/show_bug.cgi?id=34101))
* Implement IDXGIOutput::GetDesc
* Implement SystemHandleInformation info class
* Implement a Courier New replacement font ([Wine Bug #20456](https://bugs.winehq.org/show_bug.cgi?id=20456))
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](https://bugs.winehq.org/show_bug.cgi?id=13829))
@@ -188,6 +187,7 @@ for more details.*
* Implement additional stub functions in authz.dll
* Implement an Arial replacement font ([Wine Bug #32323](https://bugs.winehq.org/show_bug.cgi?id=32323))
* Implement default homepage button in inetcpl.cpl
* Implement dinput device property DIPROP_USERNAME ([Wine Bug #39667](https://bugs.winehq.org/show_bug.cgi?id=39667))
* Implement enumeration of sound devices and basic properties to dxdiagn ([Wine Bug #32613](https://bugs.winehq.org/show_bug.cgi?id=32613))
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
* Implement general tab for file property dialog
@@ -237,6 +237,7 @@ for more details.*
* 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))
@@ -252,18 +253,19 @@ for more details.*
* 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
* Revert patch to prepare GL resources before calling context_apply_fbo_state ([Wine Bug #39536](https://bugs.winehq.org/show_bug.cgi?id=39536))
* SHFileOperation with FO_MOVE should create new directory on Vista+ ([Wine Bug #25207](https://bugs.winehq.org/show_bug.cgi?id=25207))
* 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 LastError to 0 in GetSidIdentifierAuthority
* 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 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))
* Super Mario 3: Mario Forever fails to load keyboard mapping from profile files. ([Wine Bug #18099](https://bugs.winehq.org/show_bug.cgi?id=18099))
* Support for AllocateAndGetTcpExTableFromStack ([Wine Bug #34372](https://bugs.winehq.org/show_bug.cgi?id=34372))
* Support for BindImageEx ([Wine Bug #3591](https://bugs.winehq.org/show_bug.cgi?id=3591))
@@ -310,5 +312,4 @@ for more details.*
* 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))
* wglDescribePixelFormat should return max index for NULL descriptor ([Wine Bug #6176](https://bugs.winehq.org/show_bug.cgi?id=6176))

View File

@@ -0,0 +1,92 @@
From 86fe5438cdd5e3fbd3fd29c1240b6908ad70f2bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 4 Dec 2015 21:06:40 +0100
Subject: advapi32: Set LastError to 0 in GetSidIdentifierAuthority.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Michael MĂĽller <michael@fds-team.de>
---
dlls/advapi32/security.c | 3 ++-
dlls/advapi32/tests/security.c | 31 +++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index c64981e..08f88c0 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -1167,7 +1167,8 @@ GetEffectiveRightsFromAclW( PACL pacl, PTRUSTEEW pTrustee, PACCESS_MASK pAccessR
PSID_IDENTIFIER_AUTHORITY WINAPI
GetSidIdentifierAuthority( PSID pSid )
{
- return RtlIdentifierAuthoritySid(pSid);
+ SetLastError(ERROR_SUCCESS);
+ return RtlIdentifierAuthoritySid(pSid);
}
/******************************************************************************
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index b171a81..f62601f 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -132,6 +132,7 @@ static NTSTATUS (WINAPI *pRtlAnsiStringToUnicodeString)(PUNICODE_STRING,PCANSI_S
static BOOL (WINAPI *pGetWindowsAccountDomainSid)(PSID,PSID,DWORD*);
static void (WINAPI *pRtlInitAnsiString)(PANSI_STRING,PCSZ);
static NTSTATUS (WINAPI *pRtlFreeUnicodeString)(PUNICODE_STRING);
+static PSID_IDENTIFIER_AUTHORITY (WINAPI *pGetSidIdentifierAuthority)(PSID);
static HMODULE hmod;
static int myARGC;
@@ -196,6 +197,7 @@ static void init(void)
pGetAclInformation = (void *)GetProcAddress(hmod, "GetAclInformation");
pGetAce = (void *)GetProcAddress(hmod, "GetAce");
pGetWindowsAccountDomainSid = (void *)GetProcAddress(hmod, "GetWindowsAccountDomainSid");
+ pGetSidIdentifierAuthority = (void *)GetProcAddress(hmod, "GetSidIdentifierAuthority");
myARGC = winetest_get_mainargs( &myARGV );
}
@@ -6040,6 +6042,34 @@ static void test_GetWindowsAccountDomainSid(void)
HeapFree(GetProcessHeap(), 0, user);
}
+static void test_GetSidIdentifierAuthority(void)
+{
+ char buffer[SECURITY_MAX_SID_SIZE];
+ PSID authority_sid = (PSID *)&buffer;
+ PSID_IDENTIFIER_AUTHORITY id;
+ BOOL ret;
+
+ if (!pGetSidIdentifierAuthority)
+ {
+ win_skip("GetSidIdentifierAuthority not available\n");
+ return;
+ }
+
+ memset(buffer, 0xcc, sizeof(buffer));
+ ret = IsValidSid(authority_sid);
+ ok(!ret, "expected FALSE, got %u\n", ret);
+
+ SetLastError(0xdeadbeef);
+ id = GetSidIdentifierAuthority(authority_sid);
+ ok(id != NULL, "got NULL pointer as identifier authority\n");
+ ok(GetLastError() == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ id = GetSidIdentifierAuthority(NULL);
+ ok(id != NULL, "got NULL pointer as identifier authority\n");
+ ok(GetLastError() == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", GetLastError());
+}
+
START_TEST(security)
{
init();
@@ -6084,4 +6114,5 @@ START_TEST(security)
test_AdjustTokenPrivileges();
test_AddAce();
test_system_security_access();
+ test_GetSidIdentifierAuthority();
}
--
2.6.2

View File

@@ -0,0 +1 @@
Fixes: Set LastError to 0 in GetSidIdentifierAuthority

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

@@ -0,0 +1,177 @@
From 4eb926239cec9c6dfa489056bb30d698039926a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bernhard=20=C3=9Cbelacker?= <bernhardu@vr-web.de>
Date: Tue, 24 Nov 2015 21:13:50 +0100
Subject: dinput: Implement device property DIPROP_USERNAME.
https://bugs.winehq.org/show_bug.cgi?id=39667
Probably same issue as in https://bugs.winehq.org/show_bug.cgi?id=12432 .
(Attached backtrace seems equal.)
Steps to reproduce:
- start launcher
- "Configure Controller"
- leave dialog with "Cancel"
- crash
MotoGP 3 demo launcher uses ConfigureDevices for the key mapping.
This seems because the result of a GetProperty(DIPROP_USERNAME) is used
without checking.
---
dlls/dinput/device.c | 39 +++++++++++++++++++++++++++++++++++++++
dlls/dinput/device_private.h | 1 +
dlls/dinput8/tests/device.c | 29 +++++++++++++++++++++++++++--
3 files changed, 67 insertions(+), 2 deletions(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index e525f01..41fb2c4 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -778,11 +778,13 @@ HRESULT _build_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf,
HRESULT _set_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf, LPCWSTR lpszUserName, DWORD dwFlags, LPCDIDATAFORMAT df)
{
+ static const WCHAR emptyW[] = { 0 };
IDirectInputDeviceImpl *This = impl_from_IDirectInputDevice8W(iface);
DIDATAFORMAT data_format;
DIOBJECTDATAFORMAT *obj_df = NULL;
DIPROPDWORD dp;
DIPROPRANGE dpr;
+ DIPROPSTRING dps;
WCHAR username[MAX_PATH];
DWORD username_size = MAX_PATH;
int i, action = 0, num_actions = 0;
@@ -863,6 +865,13 @@ HRESULT _set_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf, L
else
lstrcpynW(username, lpszUserName, MAX_PATH);
+ dps.diph.dwSize = sizeof(dps);
+ dps.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+ dps.diph.dwObj = 0;
+ dps.diph.dwHow = DIPH_DEVICE;
+ lstrcpynW(dps.wsz, (dwFlags & DIDSAM_NOUSER) ? emptyW : username, sizeof(dps.wsz)/sizeof(WCHAR));
+ IDirectInputDevice8_SetProperty(iface, DIPROP_USERNAME, &dps.diph);
+
/* Save the settings to disk */
save_mapping_settings(iface, lpdiaf, username);
@@ -1100,6 +1109,9 @@ ULONG WINAPI IDirectInputDevice2WImpl_Release(LPDIRECTINPUTDEVICE8W iface)
/* Free action mapping */
HeapFree(GetProcessHeap(), 0, This->action_map);
+ /* Free username */
+ HeapFree(GetProcessHeap(), 0, This->username);
+
EnterCriticalSection( &This->dinput->crit );
list_remove( &This->entry );
LeaveCriticalSection( &This->dinput->crit );
@@ -1251,6 +1263,17 @@ HRESULT WINAPI IDirectInputDevice2WImpl_GetProperty(LPDIRECTINPUTDEVICE8W iface,
TRACE("buffersize = %d\n", pd->dwData);
break;
}
+ case (DWORD_PTR) DIPROP_USERNAME:
+ {
+ LPDIPROPSTRING ps = (LPDIPROPSTRING)pdiph;
+
+ if (pdiph->dwSize != sizeof(DIPROPSTRING)) return DIERR_INVALIDPARAM;
+
+ ps->wsz[0] = 0;
+ if (This->username)
+ lstrcpynW(ps->wsz, This->username, sizeof(ps->wsz)/sizeof(WCHAR));
+ break;
+ }
case (DWORD_PTR) DIPROP_VIDPID:
FIXME("DIPROP_VIDPID not implemented\n");
return DIERR_UNSUPPORTED;
@@ -1324,6 +1347,22 @@ HRESULT WINAPI IDirectInputDevice2WImpl_SetProperty(
LeaveCriticalSection(&This->crit);
break;
}
+ case (DWORD_PTR) DIPROP_USERNAME:
+ {
+ LPCDIPROPSTRING ps = (LPCDIPROPSTRING)pdiph;
+
+ if (pdiph->dwSize != sizeof(DIPROPSTRING)) return DIERR_INVALIDPARAM;
+
+ if (!This->username)
+ This->username = HeapAlloc(GetProcessHeap(), 0, sizeof(ps->wsz));
+ if (!This->username)
+ return DIERR_OUTOFMEMORY;
+
+ This->username[0] = 0;
+ if (ps->wsz)
+ lstrcpynW(This->username, ps->wsz, sizeof(ps->wsz)/sizeof(WCHAR));
+ break;
+ }
default:
WARN("Unknown property %s\n", debugstr_guid(rguid));
return DIERR_UNSUPPORTED;
diff --git a/dlls/dinput/device_private.h b/dlls/dinput/device_private.h
index 52bbec4..44fa46a 100644
--- a/dlls/dinput/device_private.h
+++ b/dlls/dinput/device_private.h
@@ -81,6 +81,7 @@ struct IDirectInputDeviceImpl
/* Action mapping */
int num_actions; /* number of actions mapped */
ActionMap *action_map; /* array of mappings */
+ WCHAR *username; /* set by 'SetActionMap' */
};
extern BOOL get_app_key(HKEY*, HKEY*) DECLSPEC_HIDDEN;
diff --git a/dlls/dinput8/tests/device.c b/dlls/dinput8/tests/device.c
index 6495559..b5e27ad 100644
--- a/dlls/dinput8/tests/device.c
+++ b/dlls/dinput8/tests/device.c
@@ -223,8 +223,8 @@ static BOOL CALLBACK enumeration_callback(const DIDEVICEINSTANCEA *lpddi, IDirec
dps.wsz[0] = '\0';
hr = IDirectInputDevice_GetProperty(lpdid, DIPROP_USERNAME, &dps.diph);
- todo_wine ok (SUCCEEDED(hr), "GetProperty failed hr=%08x\n", hr);
- todo_wine ok (!lstrcmpW(usernameW, dps.wsz), "Username not set correctly expected=%s, got=%s\n", wine_dbgstr_wn(usernameW, -1), wine_dbgstr_wn(dps.wsz, -1));
+ ok (SUCCEEDED(hr), "GetProperty failed hr=%08x\n", hr);
+ ok (!lstrcmpW(usernameW, dps.wsz), "Username not set correctly expected=%s, got=%s\n", wine_dbgstr_wn(usernameW, -1), wine_dbgstr_wn(dps.wsz, -1));
/* Test buffer size */
memset(&dp, 0, sizeof(dp));
@@ -275,6 +275,7 @@ static void test_action_mapping(void)
HINSTANCE hinst = GetModuleHandleA(NULL);
IDirectInput8A *pDI = NULL;
DIACTIONFORMATA af;
+ DIPROPSTRING dps;
struct enum_data data = {pDI, &af, NULL, NULL, NULL, 0};
HWND hwnd;
@@ -342,6 +343,30 @@ static void test_action_mapping(void)
af.dwDataSize = 4 * sizeof(actionMapping) / sizeof(actionMapping[0]);
af.dwNumActions = sizeof(actionMapping) / sizeof(actionMapping[0]);
+
+ /* test DIDSAM_NOUSER */
+ dps.diph.dwSize = sizeof(dps);
+ dps.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+ dps.diph.dwObj = 0;
+ dps.diph.dwHow = DIPH_DEVICE;
+ dps.wsz[0] = '\0';
+
+ hr = IDirectInputDevice_GetProperty(data.keyboard, DIPROP_USERNAME, &dps.diph);
+ ok (SUCCEEDED(hr), "GetProperty failed hr=%08x\n", hr);
+ ok (dps.wsz[0] != 0, "Expected any username, got=%s\n", wine_dbgstr_wn(dps.wsz, -1));
+
+ hr = IDirectInputDevice8_SetActionMap(data.keyboard, data.lpdiaf, NULL, DIDSAM_NOUSER);
+ ok (SUCCEEDED(hr), "SetActionMap failed hr=%08x\n", hr);
+
+ dps.diph.dwSize = sizeof(dps);
+ dps.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+ dps.diph.dwObj = 0;
+ dps.diph.dwHow = DIPH_DEVICE;
+ dps.wsz[0] = '\0';
+
+ hr = IDirectInputDevice_GetProperty(data.keyboard, DIPROP_USERNAME, &dps.diph);
+ ok (SUCCEEDED(hr), "GetProperty failed hr=%08x\n", hr);
+ ok (dps.wsz[0] == 0, "Expected empty username, got=%s\n", wine_dbgstr_wn(dps.wsz, -1));
}
if (data.mouse != NULL)
--
2.6.2

View File

@@ -0,0 +1 @@
Fixes: [39667] Implement dinput device property DIPROP_USERNAME

View File

@@ -1,53 +0,0 @@
From 297166d280007d0e4413ec5977497a848dda678b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 19 Dec 2014 21:20:21 +0100
Subject: dxgi: Implement IDXGIOutput::GetDesc.
---
dlls/dxgi/output.c | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/dlls/dxgi/output.c b/dlls/dxgi/output.c
index f4a5c29..158491e 100644
--- a/dlls/dxgi/output.c
+++ b/dlls/dxgi/output.c
@@ -114,9 +114,34 @@ static HRESULT STDMETHODCALLTYPE dxgi_output_GetParent(IDXGIOutput *iface,
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDesc(IDXGIOutput *iface, DXGI_OUTPUT_DESC *desc)
{
- FIXME("iface %p, desc %p stub!\n", iface, desc);
+ struct dxgi_output *This = impl_from_IDXGIOutput(iface);
+ struct wined3d *wined3d;
+ MONITORINFOEXW monitor_info;
- return E_NOTIMPL;
+ FIXME("iface %p, desc %p semi-stub!\n", iface, desc);
+
+ if (!desc)
+ return DXGI_ERROR_INVALID_CALL;
+
+ wined3d = This->adapter->parent->wined3d;
+
+ wined3d_mutex_lock();
+ desc->Monitor = wined3d_get_adapter_monitor(wined3d, This->adapter->ordinal);
+ wined3d_mutex_unlock();
+
+ if (!desc->Monitor)
+ return DXGI_ERROR_INVALID_CALL;
+
+ monitor_info.cbSize = sizeof(monitor_info);
+ if (!GetMonitorInfoW(desc->Monitor, (MONITORINFO *)&monitor_info))
+ return DXGI_ERROR_INVALID_CALL;
+
+ memcpy(&desc->DeviceName, &monitor_info.szDevice, sizeof(desc->DeviceName));
+ memcpy(&desc->DesktopCoordinates, &monitor_info.rcMonitor, sizeof(RECT));
+ desc->AttachedToDesktop = TRUE;
+ desc->Rotation = DXGI_MODE_ROTATION_IDENTITY;
+
+ return S_OK;
}
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDisplayModeList(IDXGIOutput *iface,
--
1.9.1

View File

@@ -1,4 +0,0 @@
Fixes: Implement IDXGIOutput::GetDesc
Fixes: [31998] Avseq crashes when multisampling is enabled
Fixes: [32006] Add implementation for IDXGIOutput::GetDesc
Category: stable

View File

@@ -1,27 +0,0 @@
From 69bb805398645531fbc224319ab99dab29129c68 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 8 Nov 2014 11:32:11 +0100
Subject: gdi32: Return maximum number of pixel formats when NULL pointer is
passed to wglDescribePixelFormat.
---
dlls/gdi32/dibdrv/opengl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/gdi32/dibdrv/opengl.c b/dlls/gdi32/dibdrv/opengl.c
index 28a03f4..edbd2e9 100644
--- a/dlls/gdi32/dibdrv/opengl.c
+++ b/dlls/gdi32/dibdrv/opengl.c
@@ -149,7 +149,8 @@ static int dibdrv_wglDescribePixelFormat( HDC hdc, int fmt, UINT size, PIXELFORM
{
int ret = sizeof(pixel_formats) / sizeof(pixel_formats[0]);
- if (fmt <= 0 || fmt > ret) return ret;
+ if (!descr) return ret;
+ if (fmt <= 0 || fmt > ret) return ret; /* FIXME: should this be 0? */
if (size < sizeof(*descr)) return 0;
memset( descr, 0, sizeof(*descr) );
--
2.1.3

View File

@@ -1,2 +0,0 @@
Fixes: [6176] wglDescribePixelFormat should return max index for NULL descriptor
Category: stable

View File

@@ -1 +1,2 @@
Fixes: [33117] Improve detection of symbol charset for old truetype fonts
Fixes: [12377] Fix font loading in Capella

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

View File

@@ -0,0 +1 @@
Fixes: [10919] Properly implement GetLargestConsoleWindowSize

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