You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
89 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
be377f28ee | ||
|
6604238b3c | ||
|
58cd8f2507 | ||
|
3aa9934386 | ||
|
4a6afc96cb | ||
|
6539aec608 | ||
|
0c787e6a09 | ||
|
8b28977596 | ||
|
b0a0836e95 | ||
|
03fc84498f | ||
|
cfc2f08f0a | ||
|
7c7da8183e | ||
|
68a4753dbf | ||
|
dbce23ab3b | ||
|
19d466a729 | ||
|
5da8bc54a5 | ||
|
e5bff1feaf | ||
|
2c3f70b42b | ||
|
75dc81b7d3 | ||
|
3faa0f1212 | ||
|
42b1edd98d | ||
|
97d07afaf9 | ||
|
eb20574d3e | ||
|
6a3ea0e976 | ||
|
0696c2c351 | ||
|
f98e04ebc1 | ||
|
9d447d1e4b | ||
|
f09a38e62f | ||
|
f673b561d0 | ||
|
425fb96870 | ||
|
9afe850d99 | ||
|
4205b76407 | ||
|
f6e27c19e1 | ||
|
3f08cafe30 | ||
|
a51602d5df | ||
|
ec61f717d5 | ||
|
00b4488edc | ||
|
91a3fcc513 | ||
|
637b89cefa | ||
|
1d24dc8141 | ||
|
d5a263093f | ||
|
8c4e21ef46 | ||
|
123214c032 | ||
|
15733c4eb8 | ||
|
dc86f5c543 | ||
|
d2e9fa96e2 | ||
|
d9bb5a1e45 | ||
|
d4e3581847 | ||
|
4be7c872c3 | ||
|
896b3398f1 | ||
|
9ad85e9d6f | ||
|
a2714839b3 | ||
|
85d50ecc2a | ||
|
2e4d11137f | ||
|
b03c54797e | ||
|
5ad2c41098 | ||
|
0488823205 | ||
|
fd66b3bced | ||
|
d2f012b3d1 | ||
|
7e1bf8aca0 | ||
|
f8627a6f02 | ||
|
693e189c24 | ||
|
5acbd17da2 | ||
|
d014e899bc | ||
|
397a31ae04 | ||
|
2668c19b7f | ||
|
2c0e907a4a | ||
|
fb56e8d212 | ||
|
22c57980db | ||
|
4c11394828 | ||
|
f151e1f36f | ||
|
1c6124cc6e | ||
|
e51ebcc301 | ||
|
bff92e3d44 | ||
|
1e79306b13 | ||
|
8cd8abd51f | ||
|
8adf60dc8e | ||
|
e64c3bff30 | ||
|
8d0e6ea5c8 | ||
|
4f051ce511 | ||
|
bd89770641 | ||
|
7cf357b20c | ||
|
91f812ed1b | ||
|
8e8654d76e | ||
|
d7013c255f | ||
|
9638ce9ec6 | ||
|
e1d5975f34 | ||
|
f597f5b898 | ||
|
63426eaa59 |
39
README.md
39
README.md
@@ -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.7.53 [262]:**
|
||||
**Bug fixes and features in Wine Staging 1.7.55 [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
|
||||
@@ -53,6 +53,7 @@ for more details.*
|
||||
* 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))
|
||||
@@ -60,10 +61,11 @@ for more details.*
|
||||
* Add stub for D3DXComputeNormalMap
|
||||
* Add stub for D3DXFrameFind ([Wine Bug #38334](https://bugs.winehq.org/show_bug.cgi?id=38334))
|
||||
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
|
||||
* Add stub for SetCoalescableTimer ([Wine Bug #39509](https://bugs.winehq.org/show_bug.cgi?id=39509))
|
||||
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
|
||||
* Add stub for ntoskrnl.ExDeleteResourceLite
|
||||
* Add stub for ntoskrnl.ExReleaseResourceForThread
|
||||
* Add stub for ntoskrnl.KeWaitForMultipleObjects
|
||||
* 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))
|
||||
@@ -71,9 +73,11 @@ for more details.*
|
||||
* 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))
|
||||
* Add stub for winsta.WinStationEnumerateW ([Wine Bug #38102](https://bugs.winehq.org/show_bug.cgi?id=38102))
|
||||
* Add stub kernel32.FreeUserPhysicalPages ([Wine Bug #39543](https://bugs.winehq.org/show_bug.cgi?id=39543))
|
||||
* 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
|
||||
@@ -81,6 +85,7 @@ for more details.*
|
||||
* Add support for process specific debug channels
|
||||
* Add wined3d detection for GeForce GT 425M ([Wine Bug #35054](https://bugs.winehq.org/show_bug.cgi?id=35054))
|
||||
* Adobe Reader needs ITextSelection_fnGetDuplicate implementation
|
||||
* Allow dinput EnumDevices callback with broken calling convention ([Wine Bug #27664](https://bugs.winehq.org/show_bug.cgi?id=27664))
|
||||
* Allow non-nullterminated string as working directory in kernel32.create_startup_info
|
||||
* Allow selection of audio device for PulseAudio backend
|
||||
* Allow special characters in pipe names ([Wine Bug #28995](https://bugs.winehq.org/show_bug.cgi?id=28995))
|
||||
@@ -89,6 +94,7 @@ for more details.*
|
||||
* 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 pixel format for desktop window
|
||||
* Allow to specify default display frequency in registry
|
||||
* 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))
|
||||
@@ -106,19 +112,20 @@ for more details.*
|
||||
* 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))
|
||||
* 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))
|
||||
* Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} ([Wine Bug #12076](https://bugs.winehq.org/show_bug.cgi?id=12076))
|
||||
* CreateProcess does not prioritize the working directory over the system search path ([Wine Bug #23934](https://bugs.winehq.org/show_bug.cgi?id=23934))
|
||||
* D3DCompileShader should filter specific warning messages ([Wine Bug #33770](https://bugs.winehq.org/show_bug.cgi?id=33770))
|
||||
* 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 check if object was signaled after user APC in server_select
|
||||
* 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 require SeBackupPrivilege in load_registry and unload_registry ([Wine Bug #28729](https://bugs.winehq.org/show_bug.cgi?id=28729))
|
||||
* 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 X11 input events are handled even without explicit message loop ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854))
|
||||
* 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
|
||||
@@ -127,7 +134,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 NULL dereference in ICSeqCompressFrameStart ([Wine Bug #27595](https://bugs.winehq.org/show_bug.cgi?id=27595))
|
||||
* Fix access violation in MSYS2 git when cloning repository
|
||||
* 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))
|
||||
@@ -135,7 +141,6 @@ for more details.*
|
||||
* Fix condition mask handling in RtlVerifyVersionInfo ([Wine Bug #36143](https://bugs.winehq.org/show_bug.cgi?id=36143))
|
||||
* Fix crash in Space Rangers2 caused by missing DXTn support ([Wine Bug #24983](https://bugs.winehq.org/show_bug.cgi?id=24983))
|
||||
* Fix crash of winedevice when relocation entry crosses page boundary ([Wine Bug #28254](https://bugs.winehq.org/show_bug.cgi?id=28254))
|
||||
* Fix cursor clip regression / broken raw input in multiple games ([Wine Bug #33479](https://bugs.winehq.org/show_bug.cgi?id=33479))
|
||||
* 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
|
||||
@@ -148,7 +153,6 @@ for more details.*
|
||||
* 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 opening read-only files for FILE_DELETE_ON_CLOSE ([Wine Bug #38417](https://bugs.winehq.org/show_bug.cgi?id=38417))
|
||||
* 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 msvcrt.close when stdout == stderr
|
||||
* Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
|
||||
@@ -175,31 +179,38 @@ for more details.*
|
||||
* 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))
|
||||
* Implement a Times New Roman replacement font ([Wine Bug #32342](https://bugs.winehq.org/show_bug.cgi?id=32342))
|
||||
* 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 combase.WindowsSubstring function
|
||||
* Implement default homepage button in inetcpl.cpl
|
||||
* 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
|
||||
* Implement kernel32.GetPhysicallyInstalledSystemMemory ([Wine Bug #39395](https://bugs.winehq.org/show_bug.cgi?id=39395))
|
||||
* Implement hal.KeQueryPerformanceCounter ([Wine Bug #39500](https://bugs.winehq.org/show_bug.cgi?id=39500))
|
||||
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
|
||||
* Implement marshalling for TKIND_COCLASS ([Wine Bug #19016](https://bugs.winehq.org/show_bug.cgi?id=19016))
|
||||
* Implement mscoree._CorValidateImage for mono runtime ([Wine Bug #38662](https://bugs.winehq.org/show_bug.cgi?id=38662))
|
||||
* Implement ntoskrnl driver testing framework.
|
||||
* Implement ntoskrnl.KeInitializeMutex
|
||||
* Implement proper handling of CLI .NET images in Wine library loader ([Wine Bug #38661](https://bugs.winehq.org/show_bug.cgi?id=38661))
|
||||
* Implement shell32 NewMenu class with new folder item ([Wine Bug #24812](https://bugs.winehq.org/show_bug.cgi?id=24812))
|
||||
* Implement special handling for calling GetChildContainer with an empty string ([Wine Bug #38014](https://bugs.winehq.org/show_bug.cgi?id=38014))
|
||||
* Implement stub for ProcessQuotaLimits info class
|
||||
* Implement stub for hid.HidP_TranslateUsagesToI8042ScanCodes ([Wine Bug #39447](https://bugs.winehq.org/show_bug.cgi?id=39447))
|
||||
* Implement stub for ntoskrnl.IoGetAttachedDeviceReference
|
||||
* Implement stub for ntoskrnl.KeDelayExecutionThread.
|
||||
* Implement stubless proxies on x86_64 ([Wine Bug #26768](https://bugs.winehq.org/show_bug.cgi?id=26768))
|
||||
* Implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe
|
||||
* Implement stubs for ntoskrnl.ObReferenceObjectByPointer and ntoskrnl.ObDereferenceObject
|
||||
* Implement support for "Purist Mode" (override for all dlls)
|
||||
* Improve INetFwAuthorizedApplication::get_ProcessImageFileName stub
|
||||
* Improve ReadDataAvailable handling in FilePipeLocalInformation class
|
||||
* Improve startup performance by delaying font initialization
|
||||
* Improve stub for AEV_GetVolumeRange ([Wine Bug #35658](https://bugs.winehq.org/show_bug.cgi?id=35658))
|
||||
@@ -214,7 +225,7 @@ for more details.*
|
||||
* Jedi Knight: Dark Forces II crashes with winmm set to native ([Wine Bug #37983](https://bugs.winehq.org/show_bug.cgi?id=37983))
|
||||
* Lego Stunt Rally requires DXTn software de/encoding support ([Wine Bug #25486](https://bugs.winehq.org/show_bug.cgi?id=25486))
|
||||
* MSYS2 expects correct handling of WRITECOPY memory protection ([Wine Bug #35561](https://bugs.winehq.org/show_bug.cgi?id=35561))
|
||||
* Make ddraw1 and ddraw_surface1 vtable as writable
|
||||
* Make ddraw1 and ddraw_surface1 vtable as writable ([Wine Bug #39534](https://bugs.winehq.org/show_bug.cgi?id=39534))
|
||||
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](https://bugs.winehq.org/show_bug.cgi?id=18732))
|
||||
* Map EXDEV error code to STATUS_NOT_SAME_DEVICE
|
||||
* MediaCoder needs CUDA for video encoding ([Wine Bug #37664](https://bugs.winehq.org/show_bug.cgi?id=37664))
|
||||
@@ -225,12 +236,11 @@ for more details.*
|
||||
* 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
|
||||
* Process Hacker 2.x needs ntoskrnl.ProbeForRead ([Wine Bug #38103](https://bugs.winehq.org/show_bug.cgi?id=38103))
|
||||
* 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 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))
|
||||
* Protect TVM_GETITEM from invalid item pointers ([Wine Bug #33001](https://bugs.winehq.org/show_bug.cgi?id=33001))
|
||||
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
|
||||
* Refresh MDI menus when DefMDIChildProc(WM_SETTEXT) is called ([Wine Bug #21855](https://bugs.winehq.org/show_bug.cgi?id=21855))
|
||||
* Report correct ObjectName for NamedPipe wineserver objects
|
||||
@@ -240,13 +250,12 @@ for more details.*
|
||||
* 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 default palette entries from GetSystemPaletteEntries for non-palette-based devices ([Wine Bug #36895](https://bugs.winehq.org/show_bug.cgi?id=36895))
|
||||
* 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
|
||||
* Scrolling causes mouse and screen to lock in Call to Power II ([Wine Bug #34559](https://bugs.winehq.org/show_bug.cgi?id=34559))
|
||||
* 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
|
||||
@@ -274,9 +283,7 @@ for more details.*
|
||||
* Support for MPEG2 DXVA2 GPU video decoding through vaapi
|
||||
* Support for NVIDIA video encoder library (nvencodeapi)
|
||||
* Support for NtQuerySection ([Wine Bug #37338](https://bugs.winehq.org/show_bug.cgi?id=37338))
|
||||
* Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495))
|
||||
* Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
|
||||
* Support for TransmitFile ([Wine Bug #5048](https://bugs.winehq.org/show_bug.cgi?id=5048))
|
||||
* Support for WTSEnumerateProcessesW ([Wine Bug #29903](https://bugs.winehq.org/show_bug.cgi?id=29903))
|
||||
* Support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](https://bugs.winehq.org/show_bug.cgi?id=24721))
|
||||
* Support for inherited file ACLs
|
||||
|
91
debian/changelog
vendored
91
debian/changelog
vendored
@@ -1,3 +1,94 @@
|
||||
wine-staging (1.7.55) unstable; urgency=low
|
||||
* Added patch to revert "Prepare GL resources before calling
|
||||
context_apply_fbo_state".
|
||||
* Added patch to implement support for "Purist Mode" (override for all dlls).
|
||||
* Added patch for partial implementation of ITfThreadMgrEx_ActivateEx.
|
||||
* Added patch for stub of hid.HidP_TranslateUsagesToI8042ScanCodes.
|
||||
* Added patch to properly handle multiple registry notifications per key.
|
||||
* Added patch for stub of kernel32.FreeUserPhysicalPages.
|
||||
* Added patch for stubs of advapi32.RegCreateKeyTransacted[A/W].
|
||||
* Added patch to fix required privileges for load_registry and unload_registry
|
||||
wineserver call.
|
||||
* Added patch to make sure CompareString immediately aborts on first non-
|
||||
matching character.
|
||||
* Added patch to implement marshalling for TKIND_COCLASS.
|
||||
* Added patch to implement stubless proxies on x86_64.
|
||||
* Added patch to allow dinput EnumDevices callback with broken calling
|
||||
convention.
|
||||
* Added patch to allow to set default display frequency in registry (fixes
|
||||
Wine Staging Bug #609).
|
||||
* Remove disabled shell32-Quoted_ShellExecute patchset (bug already fixed and
|
||||
all tests pass).
|
||||
* Remove disabled reg-Cleanup patchset (only cleanup and not actively
|
||||
maintained).
|
||||
* Remove disabled ntdll-FD_Cache patchset (only for PowerPC, no longer
|
||||
necessary because Wine uses inline cmpxchg64 now when compiling with gcc).
|
||||
* Removed patch to implement kernel32.GetConsoleFontSize (accepted upstream).
|
||||
* Removed patch to zero out returned stats when IEnumSTATSTG::Next reaches end
|
||||
of enumeration (accepted upstream).
|
||||
* Removed patch for SfcGetNextProtectedFile stub function (accepted upstream).
|
||||
* Removed patch for SetConsoleKeyShortcuts stub function (accepted upstream).
|
||||
* Removed various PulseAudio driver patches (accepted upstream).
|
||||
* Removed patch to protect TVM_GETITEM from invalid item pointers (accepted
|
||||
upstream).
|
||||
* Removed patch to ensure that X11 input events handled even without explicit
|
||||
message loop (accepted upstream).
|
||||
* Removed patches to fix multiple issues in widl typelib generator (accepted
|
||||
upstream).
|
||||
* Removed patch to fix handling of opening read-only files for
|
||||
FILE_DELETE_ON_CLOSE (accepted upstream).
|
||||
* Removed patch to fix cursor clip regression / broken raw input in multiple
|
||||
games (accepted upstream).
|
||||
* Removed patch for ntoskrnl.ProbeForRead stub (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 15 Nov 2015 18:40:25 +0100
|
||||
|
||||
wine-staging (1.7.54) unstable; urgency=low
|
||||
* Updated server-FileEndOfFileInformation patchset, growing a memory mapped
|
||||
file should still work.
|
||||
* Added patch to use wrapper function for consolidation callback during
|
||||
unwinding.
|
||||
* Added patch to implement stub for ProcessQuotaLimits info class.
|
||||
* Added patch to release capture before sending WM_COMMAND.
|
||||
* Added patch to block interruption of system APC in server_select.
|
||||
* Added patch to implement FileNamesInformation class support for
|
||||
NtQueryDirectoryFile.
|
||||
* Added patch for implementation of additional HSTRING functions.
|
||||
* Added patches for memory allocation cleanup in gdiplus functions.
|
||||
* Added patch to implement hal.KeQueryPerformanceCounter.
|
||||
* Added patch to fix build failure (introduced by makefile rewrite).
|
||||
* Added patch to pass '-read_only_relocs suppress' to the linker on OSX and
|
||||
enable patchset to use Nt* function wrappers.
|
||||
* Added patch to use close_handle instead of NtClose for internal memory
|
||||
management functions.
|
||||
* Added patch to improve INetFwAuthorizedApplication::get_ProcessImageFileName
|
||||
stub.
|
||||
* Added patch for SetCoalescableTimer stub function.
|
||||
* Added patch for SfcGetNextProtectedFile stub function.
|
||||
* Added patch to zero out returned stats when IEnumSTATSTG::Next reaches end
|
||||
of enumeration.
|
||||
* Added patch to fix multiple issues in widl typelib generation.
|
||||
* Added patch for SetConsoleKeyShortcuts stub function.
|
||||
* Added patch to implement kernel32.GetConsoleFontSize.
|
||||
* Added patch to implement SystemHandleInformation info class.
|
||||
* Removed patch to implement kernel32.GetPhysicallyInstalledSystemMemory
|
||||
(accepted upstream).
|
||||
* Partially removed patches for ws2_32 TransmitFile (accepted upstream).
|
||||
* Removed patch to fix NULL dereference in ICSeqCompressFrameStart (fixed
|
||||
upstream).
|
||||
* Removed patch to return default palette entries from GetSystemPaletteEntries
|
||||
for non-palette-based devices (accepted upstream).
|
||||
* Removed patch to use wrapper function for consolidate callback during
|
||||
unwinding on x86_64 (accepted upstream).
|
||||
* Removed patch to release capture before sending WM_COMMAND (accepted
|
||||
upstream).
|
||||
* Removed patch to avoid check for signaled object after user APC in
|
||||
server_select (accepted upstream).
|
||||
* Removed patch to implement combase.WindowsSubstring function (accepted
|
||||
upstream).
|
||||
* Removed patch to fix build failure (identical patch committed upstream).
|
||||
* Removed patch for vcruntime120 dll (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 01 Nov 2015 00:14:59 +0100
|
||||
|
||||
wine-staging (1.7.53) unstable; urgency=low
|
||||
* Added patch to implement support for msiexec /passive command line option.
|
||||
* Added patch to implement stub for DSPROPSETID_EAX20_ListenerProperties.
|
||||
|
26
debian/tools/patchupdate.py
vendored
26
debian/tools/patchupdate.py
vendored
@@ -295,17 +295,13 @@ def read_patchset(revision = None):
|
||||
patch.categories.append(val)
|
||||
|
||||
elif key == "fixes":
|
||||
r = re.match("^[0-9]+$", val)
|
||||
r = re.match("^\\[ *(!)? *([0-9]+) *\\](.*)$", val)
|
||||
if r:
|
||||
bugid = int(val)
|
||||
patch.fixes.append((bugid, None))
|
||||
sync = (r.group(1) != "!")
|
||||
bugid = int(r.group(2))
|
||||
patch.fixes.append((sync, bugid, r.group(3).strip()))
|
||||
continue
|
||||
r = re.match("^\\[ *([0-9]+) *\\](.*)$", val)
|
||||
if r:
|
||||
bugid = int(r.group(1))
|
||||
patch.fixes.append((bugid, r.group(2).strip()))
|
||||
continue
|
||||
patch.fixes.append((None, val))
|
||||
patch.fixes.append((False, None, val))
|
||||
|
||||
elif key == "disabled":
|
||||
patch.disabled = _parse_int(val)
|
||||
@@ -476,8 +472,8 @@ def check_bug_status(all_patches, sync_bugs=False):
|
||||
|
||||
for _, patch in all_patches.iteritems():
|
||||
url = "%s/tree/master/%s" % (config.github_url, patch.directory)
|
||||
for bugid, bugname in patch.fixes:
|
||||
if bugid is not None:
|
||||
for sync, bugid, bugname in patch.fixes:
|
||||
if sync and bugid is not None:
|
||||
url_map[bugid] = url
|
||||
all_bugids.add(bugid)
|
||||
|
||||
@@ -767,9 +763,9 @@ def generate_script(all_patches, skip_checks=False):
|
||||
lines.append("# |\n")
|
||||
|
||||
# List all bugs fixed by this patchset
|
||||
if any([bugid is not None for bugid, bugname in patch.fixes]):
|
||||
if any([bugid is not None for sync, bugid, bugname in patch.fixes]):
|
||||
lines.append("# | This patchset fixes the following Wine bugs:\n")
|
||||
for bugid, bugname in patch.fixes:
|
||||
for sync, bugid, bugname in patch.fixes:
|
||||
if bugid is not None:
|
||||
lines.append("# | *\t%s\n" % "\n# | \t".join(textwrap.wrap("[#%d] %s" % (bugid, bugname), 120)))
|
||||
lines.append("# |\n")
|
||||
@@ -815,13 +811,13 @@ def generate_markdown(all_patches, release_patches):
|
||||
|
||||
# Get fixes for current version
|
||||
for _, patch in all_patches.iteritems():
|
||||
for bugid, bugname in patch.fixes:
|
||||
for sync, bugid, bugname in patch.fixes:
|
||||
key = bugid if bugid is not None else bugname
|
||||
all_fixes[key] = [1, bugid, bugname]
|
||||
|
||||
# Compare with fixes for last release
|
||||
for _, patch in release_patches.iteritems():
|
||||
for bugid, bugname in patch.fixes:
|
||||
for sync, bugid, bugname in patch.fixes:
|
||||
if bugid is not None and all_fixes.has_key(bugid):
|
||||
all_fixes[bugid][0] = 0
|
||||
elif all_fixes.has_key(bugname):
|
||||
|
2
debian/tools/patchutils.py
vendored
2
debian/tools/patchutils.py
vendored
@@ -328,6 +328,8 @@ def read_patch(filename):
|
||||
assert fp.read() == line
|
||||
subject, revision = _parse_subject(subject)
|
||||
if not subject.endswith("."): subject += "."
|
||||
subject = re.sub('^([^:]*: *)([a-z])', lambda x: "%s%s" %
|
||||
(x.group(1), x.group(2).upper()), subject, 1)
|
||||
header['subject'], header['revision'] = subject, revision
|
||||
|
||||
elif line.startswith("Signed-off-by: "):
|
||||
|
4
debian/wine-staging-i386.install
vendored
4
debian/wine-staging-i386.install
vendored
@@ -2,3 +2,7 @@
|
||||
/opt/wine-staging/lib/wine
|
||||
/opt/wine-staging/bin/wine
|
||||
/opt/wine-staging/bin/wine-preloader
|
||||
/opt/wine-staging/share/man/man?/wine.?*
|
||||
/opt/wine-staging/share/man/de.UTF-8/man?/wine.?*
|
||||
/opt/wine-staging/share/man/fr.UTF-8/man?/wine.?*
|
||||
/opt/wine-staging/share/man/pl.UTF-8/man?/wine.?*
|
||||
|
28
debian/wine-staging.install
vendored
28
debian/wine-staging.install
vendored
@@ -1,2 +1,28 @@
|
||||
/opt/wine-staging/bin
|
||||
/opt/wine-staging/share
|
||||
/opt/wine-staging/share/applications
|
||||
/opt/wine-staging/share/wine
|
||||
/opt/wine-staging/share/man/de.UTF-8/man?/winemaker.?*
|
||||
/opt/wine-staging/share/man/de.UTF-8/man?/wineserver.?*
|
||||
/opt/wine-staging/share/man/fr.UTF-8/man?/winemaker.?*
|
||||
/opt/wine-staging/share/man/fr.UTF-8/man?/wineserver.?*
|
||||
/opt/wine-staging/share/man/man?/msiexec.?*
|
||||
/opt/wine-staging/share/man/man?/notepad.?*
|
||||
/opt/wine-staging/share/man/man?/regedit.?*
|
||||
/opt/wine-staging/share/man/man?/regsvr32.?*
|
||||
/opt/wine-staging/share/man/man?/widl.?*
|
||||
/opt/wine-staging/share/man/man?/wineboot.?*
|
||||
/opt/wine-staging/share/man/man?/winebuild.?*
|
||||
/opt/wine-staging/share/man/man?/winecfg.?*
|
||||
/opt/wine-staging/share/man/man?/wineconsole.?*
|
||||
/opt/wine-staging/share/man/man?/winecpp.?*
|
||||
/opt/wine-staging/share/man/man?/winedbg.?*
|
||||
/opt/wine-staging/share/man/man?/winedump.?*
|
||||
/opt/wine-staging/share/man/man?/winefile.?*
|
||||
/opt/wine-staging/share/man/man?/wineg++.?*
|
||||
/opt/wine-staging/share/man/man?/winegcc.?*
|
||||
/opt/wine-staging/share/man/man?/winemaker.?*
|
||||
/opt/wine-staging/share/man/man?/winemine.?*
|
||||
/opt/wine-staging/share/man/man?/winepath.?*
|
||||
/opt/wine-staging/share/man/man?/wineserver.?*
|
||||
/opt/wine-staging/share/man/man?/wmc.?*
|
||||
/opt/wine-staging/share/man/man?/wrc.?*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 267583000e05b5ed8da1122df0830556fe7e69f6 Mon Sep 17 00:00:00 2001
|
||||
From 35e7be609df3c37eded9a3fd117ba0cef02f24c7 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Fri, 8 Aug 2014 19:33:14 -0600
|
||||
Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled.
|
||||
@@ -12,10 +12,10 @@ Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled.
|
||||
5 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index f9cb71c..81f6131 100644
|
||||
index 55140c6..2facbfb 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -11967,7 +11967,7 @@ static void yuv_layout_test(void)
|
||||
@@ -12034,7 +12034,7 @@ static void yuv_layout_test(void)
|
||||
IDirect3D9 *d3d;
|
||||
D3DCOLOR color;
|
||||
DWORD ref_color;
|
||||
@@ -25,10 +25,10 @@ index f9cb71c..81f6131 100644
|
||||
IDirect3DDevice9 *device;
|
||||
ULONG refcount;
|
||||
diff --git a/dlls/netapi32/netapi32.c b/dlls/netapi32/netapi32.c
|
||||
index 7a1d408..649c866 100644
|
||||
index bb61e7f..cf4c466 100644
|
||||
--- a/dlls/netapi32/netapi32.c
|
||||
+++ b/dlls/netapi32/netapi32.c
|
||||
@@ -779,7 +779,7 @@ static NET_API_STATUS share_info_to_samba( DWORD level, const BYTE *buf, unsigne
|
||||
@@ -780,7 +780,7 @@ static NET_API_STATUS share_info_to_samba( DWORD level, const BYTE *buf, unsigne
|
||||
static NET_API_STATUS share_add( LMSTR servername, DWORD level, LPBYTE buf, LPDWORD parm_err )
|
||||
{
|
||||
char *server = NULL;
|
||||
@@ -51,10 +51,10 @@ index 14eac39..ebff9f1 100644
|
||||
static const WCHAR dashW[] = {' ','-',' ',0};
|
||||
static const size_t dashW_len = (sizeof(dashW) / sizeof(*dashW)) - 1;
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index f69a2ce..00232a5 100644
|
||||
index 44e7090..429ae90 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -6706,7 +6706,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
|
||||
@@ -6893,7 +6893,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
|
||||
GLuint vs_id = 0;
|
||||
GLuint gs_id = 0;
|
||||
GLuint ps_id = 0;
|
||||
@@ -64,18 +64,18 @@ index f69a2ce..00232a5 100644
|
||||
struct wined3d_string_buffer *tmp_name;
|
||||
|
||||
diff --git a/tools/makedep.c b/tools/makedep.c
|
||||
index 54aab45..103422e 100644
|
||||
index d8cf2f5..280f62f 100644
|
||||
--- a/tools/makedep.c
|
||||
+++ b/tools/makedep.c
|
||||
@@ -1480,7 +1480,7 @@ static char *get_make_variable( struct makefile *make, const char *name )
|
||||
*/
|
||||
static char *get_expanded_make_variable( struct makefile *make, const char *name )
|
||||
@@ -1559,7 +1559,7 @@ static const char *get_make_variable( const struct makefile *make, const char *n
|
||||
static char *get_expanded_make_variable( const struct makefile *make, const char *name )
|
||||
{
|
||||
- char *p, *end, *var, *expand, *tmp;
|
||||
+ char *p, *end, *var, *expand, *tmp = NULL;
|
||||
const char *var;
|
||||
- char *p, *end, *expand, *tmp;
|
||||
+ char *p, *end, *expand, *tmp = NULL;
|
||||
|
||||
expand = get_make_variable( make, name );
|
||||
if (!expand) return NULL;
|
||||
var = get_make_variable( make, name );
|
||||
if (!var) return NULL;
|
||||
--
|
||||
2.4.2
|
||||
2.6.2
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 0e76401ae2de47285c66ee0b59bdf7449136d060 Mon Sep 17 00:00:00 2001
|
||||
From 2e1a505fedd43f0f03ba36e1a8413bf04f8afa83 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:53:46 +0200
|
||||
Subject: winelib: Append '(Staging)' at the end of the version string.
|
||||
@@ -8,18 +8,18 @@ Subject: winelib: Append '(Staging)' at the end of the version string.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
|
||||
index c961ba5..776168c 100644
|
||||
index 1b7fea8..780be10 100644
|
||||
--- a/libs/wine/Makefile.in
|
||||
+++ b/libs/wine/Makefile.in
|
||||
@@ -105,7 +105,7 @@ config_EXTRADEFS = \
|
||||
-DBIN_TO_DATADIR=\"`$(MAKEDEP) -R ${bindir} ${datadir}/wine`\"
|
||||
@@ -112,7 +112,7 @@ libwine_LDFLAGS = $(LIBWINE_LDFLAGS)
|
||||
libwine_DEPS = $(LIBWINE_DEPENDS)
|
||||
|
||||
version.c: dummy
|
||||
- version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-@PACKAGE_VERSION@") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
+ version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-@PACKAGE_VERSION@") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
- version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
+ version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
|
||||
# Make sure that make_makefiles sees the generated rules
|
||||
.PHONY: install install-lib install-dev uninstall
|
||||
dummy:
|
||||
.PHONY: dummy
|
||||
--
|
||||
2.1.1
|
||||
2.6.2
|
||||
|
||||
|
@@ -0,0 +1,64 @@
|
||||
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
|
||||
|
1
patches/advapi32-RegCreateKeyTransacted/definition
Normal file
1
patches/advapi32-RegCreateKeyTransacted/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: Add stubs for advapi32.RegCreateKeyTransacted[A/W]
|
@@ -1,163 +0,0 @@
|
||||
From f81b1feadca76ec41c834915fd5c5ce43f66f7b1 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Storsjo <martin@martin.st>
|
||||
Date: Mon, 3 Aug 2015 22:26:02 +0300
|
||||
Subject: vcruntime140: Add the new MSVC 2015 compiler specific DLL.
|
||||
|
||||
Since MSVC 2015/Windows 10, the C runtime has now been split into two
|
||||
parts, ucrtbase, which is the generic C runtime which is now considered
|
||||
a system component, and vcruntimeX which is specific to the compiler
|
||||
version.
|
||||
|
||||
Even if this DLL only has a fraction of the functions of the full
|
||||
msvcrt/ucrtbase, it still requires almost all the object files from
|
||||
msvcrt.
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/vcruntime140/Makefile.in | 33 +++++++++++++++
|
||||
dlls/vcruntime140/vcruntime140.spec | 82 +++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 116 insertions(+)
|
||||
create mode 100644 dlls/vcruntime140/Makefile.in
|
||||
create mode 100644 dlls/vcruntime140/vcruntime140.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e22b0ef..498470f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3363,6 +3363,7 @@ WINE_CONFIG_DLL(vcomp100)
|
||||
WINE_CONFIG_DLL(vcomp110)
|
||||
WINE_CONFIG_DLL(vcomp120)
|
||||
WINE_CONFIG_DLL(vcomp90)
|
||||
+WINE_CONFIG_DLL(vcruntime140,,[implib])
|
||||
WINE_CONFIG_DLL(vdhcp.vxd,enable_win16)
|
||||
WINE_CONFIG_DLL(vdmdbg,,[implib])
|
||||
WINE_CONFIG_DLL(ver.dll16,enable_win16)
|
||||
diff --git a/dlls/vcruntime140/Makefile.in b/dlls/vcruntime140/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..92f99c4
|
||||
--- /dev/null
|
||||
+++ b/dlls/vcruntime140/Makefile.in
|
||||
@@ -0,0 +1,33 @@
|
||||
+EXTRADEFS = -D_MT -D_MSVCR_VER=140
|
||||
+MODULE = vcruntime140.dll
|
||||
+IMPORTLIB = vcruntime140
|
||||
+DELAYIMPORTS = advapi32 user32
|
||||
+PARENTSRC = ../msvcrt
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ console.c \
|
||||
+ cpp.c \
|
||||
+ ctype.c \
|
||||
+ data.c \
|
||||
+ dir.c \
|
||||
+ environ.c \
|
||||
+ errno.c \
|
||||
+ except.c \
|
||||
+ except_arm.c \
|
||||
+ except_i386.c \
|
||||
+ except_x86_64.c \
|
||||
+ exit.c \
|
||||
+ file.c \
|
||||
+ heap.c \
|
||||
+ locale.c \
|
||||
+ lock.c \
|
||||
+ main.c \
|
||||
+ math.c \
|
||||
+ mbcs.c \
|
||||
+ misc.c \
|
||||
+ process.c \
|
||||
+ string.c \
|
||||
+ thread.c \
|
||||
+ time.c \
|
||||
+ undname.c \
|
||||
+ wcs.c
|
||||
diff --git a/dlls/vcruntime140/vcruntime140.spec b/dlls/vcruntime140/vcruntime140.spec
|
||||
new file mode 100644
|
||||
index 0000000..9027955
|
||||
--- /dev/null
|
||||
+++ b/dlls/vcruntime140/vcruntime140.spec
|
||||
@@ -0,0 +1,82 @@
|
||||
+@ stub _CreateFrameInfo
|
||||
+@ stdcall _CxxThrowException(long long)
|
||||
+@ cdecl -arch=i386 -norelay _EH_prolog()
|
||||
+@ stub _FindAndUnlinkFrame
|
||||
+@ stub _IsExceptionObjectToBeDestroyed
|
||||
+@ stub _NLG_Dispatch2
|
||||
+@ stub _NLG_Return
|
||||
+@ stub _NLG_Return2
|
||||
+@ stub _SetWinRTOutOfMemoryExceptionCallback
|
||||
+@ cdecl __AdjustPointer(ptr ptr)
|
||||
+@ stub __BuildCatchObject
|
||||
+@ stub __BuildCatchObjectHelper
|
||||
+@ cdecl -arch=i386,x86_64,arm __CxxDetectRethrow(ptr)
|
||||
+@ stub __CxxExceptionFilter
|
||||
+@ cdecl -arch=i386,x86_64,arm -norelay __CxxFrameHandler(ptr ptr ptr ptr)
|
||||
+@ cdecl -arch=i386,x86_64,arm -norelay __CxxFrameHandler2(ptr ptr ptr ptr) __CxxFrameHandler
|
||||
+@ cdecl -arch=i386,x86_64,arm -norelay __CxxFrameHandler3(ptr ptr ptr ptr) __CxxFrameHandler
|
||||
+@ stdcall -arch=i386 __CxxLongjmpUnwind(ptr)
|
||||
+@ cdecl -arch=i386,x86_64,arm __CxxQueryExceptionSize()
|
||||
+@ stub __CxxRegisterExceptionObject
|
||||
+@ stub __CxxUnregisterExceptionObject
|
||||
+@ stub __DestructExceptionObject
|
||||
+@ stub __FrameUnwindFilter
|
||||
+@ stub __GetPlatformExceptionInfo
|
||||
+@ cdecl __RTCastToVoid(ptr) MSVCRT___RTCastToVoid
|
||||
+@ cdecl __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast
|
||||
+@ cdecl __RTtypeid(ptr) MSVCRT___RTtypeid
|
||||
+@ stub __TypeMatch
|
||||
+@ stub __current_exception
|
||||
+@ stub __current_exception_context
|
||||
+@ stub __intrinsic_setjmp
|
||||
+@ stub __processing_throw
|
||||
+@ stub __report_gsfailure
|
||||
+@ stub __std_exception_copy
|
||||
+@ stub __std_exception_destroy
|
||||
+@ stub __std_terminate
|
||||
+@ stub __std_type_info_compare
|
||||
+@ stub __std_type_info_destroy_list
|
||||
+@ stub __std_type_info_hash
|
||||
+@ stub __std_type_info_name
|
||||
+@ stub __telemetry_main_invoke_trigger
|
||||
+@ stub __telemetry_main_return_trigger
|
||||
+@ cdecl __unDName(ptr str long ptr ptr long)
|
||||
+@ cdecl __unDNameEx(ptr str long ptr ptr ptr long)
|
||||
+@ cdecl __uncaught_exception() MSVCRT___uncaught_exception
|
||||
+@ stub __uncaught_exceptions
|
||||
+@ stub __vcrt_GetModuleFileNameW
|
||||
+@ stub __vcrt_GetModuleHandleW
|
||||
+@ stub __vcrt_InitializeCriticalSectionEx
|
||||
+@ stub __vcrt_LoadLibraryExW
|
||||
+@ cdecl -arch=i386 -norelay _chkesp()
|
||||
+@ cdecl -arch=i386 _except_handler2(ptr ptr ptr ptr)
|
||||
+@ cdecl -arch=i386 _except_handler3(ptr ptr ptr ptr)
|
||||
+@ cdecl -arch=i386 _except_handler4_common(ptr ptr ptr ptr ptr ptr)
|
||||
+@ stub _get_purecall_handler
|
||||
+@ cdecl _get_unexpected() MSVCRT__get_unexpected
|
||||
+@ cdecl -arch=i386 _global_unwind2(ptr)
|
||||
+@ stub _is_exception_typeof
|
||||
+@ cdecl -arch=i386 _local_unwind2(ptr long)
|
||||
+@ cdecl -arch=i386 _local_unwind4(ptr ptr long)
|
||||
+@ cdecl -arch=i386 _longjmpex(ptr long) MSVCRT_longjmp
|
||||
+@ cdecl _purecall()
|
||||
+@ stdcall -arch=i386 _seh_longjmp_unwind4(ptr)
|
||||
+@ stdcall -arch=i386 _seh_longjmp_unwind(ptr)
|
||||
+@ cdecl _set_purecall_handler(ptr)
|
||||
+@ stub -arch=win32 ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z # void(__cdecl*__cdecl _set_se_translator(int))(unsigned int,struct _EXCEPTION_POINTERS *)
|
||||
+@ stub -arch=win64 ?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZH@Z # void(__cdecl*__cdecl _set_se_translator(int))(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)
|
||||
+@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
|
||||
+@ cdecl -arch=i386,x86_64,arm longjmp(ptr long) MSVCRT_longjmp
|
||||
+@ cdecl memchr(ptr long long) MSVCRT_memchr
|
||||
+@ cdecl memcmp(ptr ptr long) MSVCRT_memcmp
|
||||
+@ cdecl memcpy(ptr ptr long) MSVCRT_memcpy
|
||||
+@ cdecl memmove(ptr ptr long) MSVCRT_memmove
|
||||
+@ cdecl memset(ptr long long) MSVCRT_memset
|
||||
+@ stub set_unexpected
|
||||
+@ cdecl strchr(str long) MSVCRT_strchr
|
||||
+@ cdecl strrchr(str long) MSVCRT_strrchr
|
||||
+@ cdecl strstr(str str) MSVCRT_strstr
|
||||
+@ stub unexpected
|
||||
+@ cdecl wcschr(wstr long) MSVCRT_wcschr
|
||||
+@ cdecl wcsrchr(wstr long) ntdll.wcsrchr
|
||||
+@ cdecl wcsstr(wstr wstr) MSVCRT_wcsstr
|
||||
--
|
||||
2.6.0
|
||||
|
@@ -1,26 +0,0 @@
|
||||
From 3d3dd8491369119ee0dea8ec571b917f8613910a Mon Sep 17 00:00:00 2001
|
||||
From: Martin Storsjo <martin@martin.st>
|
||||
Date: Mon, 3 Aug 2015 22:26:03 +0300
|
||||
Subject: vcruntime140: Hook up a function with a new name to the existing
|
||||
implementation
|
||||
|
||||
---
|
||||
dlls/vcruntime140/vcruntime140.spec | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/vcruntime140/vcruntime140.spec b/dlls/vcruntime140/vcruntime140.spec
|
||||
index 9027955..adfb0f0 100644
|
||||
--- a/dlls/vcruntime140/vcruntime140.spec
|
||||
+++ b/dlls/vcruntime140/vcruntime140.spec
|
||||
@@ -46,7 +46,7 @@
|
||||
@ stub __uncaught_exceptions
|
||||
@ stub __vcrt_GetModuleFileNameW
|
||||
@ stub __vcrt_GetModuleHandleW
|
||||
-@ stub __vcrt_InitializeCriticalSectionEx
|
||||
+@ cdecl -arch=i386,win64 __vcrt_InitializeCriticalSectionEx(ptr long long) MSVCR110__crtInitializeCriticalSectionEx
|
||||
@ stub __vcrt_LoadLibraryExW
|
||||
@ cdecl -arch=i386 -norelay _chkesp()
|
||||
@ cdecl -arch=i386 _except_handler2(ptr ptr ptr ptr)
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -1,54 +0,0 @@
|
||||
From 00e2e0a38d5ef81502d35a5aa3f62cb4ed834488 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Storsjo <martin@martin.st>
|
||||
Date: Mon, 3 Aug 2015 22:26:05 +0300
|
||||
Subject: vcruntime140: Add stubs for telemetry functions
|
||||
|
||||
These are required for a plain empty exe built with MSVC 2015 with
|
||||
dynamic C runtime to start up with the builtin vcruntime140.dll.
|
||||
---
|
||||
dlls/msvcrt/misc.c | 16 ++++++++++++++++
|
||||
dlls/vcruntime140/vcruntime140.spec | 4 ++--
|
||||
2 files changed, 18 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/msvcrt/misc.c b/dlls/msvcrt/misc.c
|
||||
index 4e9f288..556ca62 100644
|
||||
--- a/dlls/msvcrt/misc.c
|
||||
+++ b/dlls/msvcrt/misc.c
|
||||
@@ -498,3 +498,19 @@ void CDECL MSVCR120__vacopy(__ms_va_list *dest, __ms_va_list src)
|
||||
{
|
||||
__ms_va_copy(*dest, src);
|
||||
}
|
||||
+
|
||||
+/*********************************************************************
|
||||
+ * __telemetry_main_invoke_trigger (MSVCRT.@)
|
||||
+ */
|
||||
+void CDECL __telemetry_main_invoke_trigger(const HINSTANCE hinst)
|
||||
+{
|
||||
+ TRACE("(%p)\n", hinst);
|
||||
+}
|
||||
+
|
||||
+/*********************************************************************
|
||||
+ * __telemetry_main_return_trigger (MSVCRT.@)
|
||||
+ */
|
||||
+void CDECL __telemetry_main_return_trigger(const HINSTANCE hinst)
|
||||
+{
|
||||
+ TRACE("(%p)\n", hinst);
|
||||
+}
|
||||
diff --git a/dlls/vcruntime140/vcruntime140.spec b/dlls/vcruntime140/vcruntime140.spec
|
||||
index adfb0f0..efd967f 100644
|
||||
--- a/dlls/vcruntime140/vcruntime140.spec
|
||||
+++ b/dlls/vcruntime140/vcruntime140.spec
|
||||
@@ -38,8 +38,8 @@
|
||||
@ stub __std_type_info_destroy_list
|
||||
@ stub __std_type_info_hash
|
||||
@ stub __std_type_info_name
|
||||
-@ stub __telemetry_main_invoke_trigger
|
||||
-@ stub __telemetry_main_return_trigger
|
||||
+@ cdecl __telemetry_main_invoke_trigger(ptr)
|
||||
+@ cdecl __telemetry_main_return_trigger(ptr)
|
||||
@ cdecl __unDName(ptr str long ptr ptr long)
|
||||
@ cdecl __unDNameEx(ptr str long ptr ptr ptr long)
|
||||
@ cdecl __uncaught_exception() MSVCRT___uncaught_exception
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -1,181 +0,0 @@
|
||||
From 397611b845973e2418118ffcb4aee305b671d533 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Pointhuber <thomas.pointhuber@gmx.at>
|
||||
Date: Mon, 16 Mar 2015 09:45:21 +0100
|
||||
Subject: combase: implement WindowsSubstring (try 2)
|
||||
|
||||
---
|
||||
.../api-ms-win-core-winrt-string-l1-1-0.spec | 2 +-
|
||||
dlls/combase/combase.spec | 2 +-
|
||||
dlls/combase/string.c | 19 +++++++
|
||||
dlls/combase/tests/string.c | 60 ++++++++++++++++++++++
|
||||
include/winerror.h | 1 +
|
||||
5 files changed, 82 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/api-ms-win-core-winrt-string-l1-1-0/api-ms-win-core-winrt-string-l1-1-0.spec b/dlls/api-ms-win-core-winrt-string-l1-1-0/api-ms-win-core-winrt-string-l1-1-0.spec
|
||||
index 2361a1d..825980d 100644
|
||||
--- a/dlls/api-ms-win-core-winrt-string-l1-1-0/api-ms-win-core-winrt-string-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-core-winrt-string-l1-1-0/api-ms-win-core-winrt-string-l1-1-0.spec
|
||||
@@ -21,7 +21,7 @@
|
||||
@ stdcall WindowsPromoteStringBuffer(ptr ptr) combase.WindowsPromoteStringBuffer
|
||||
@ stub WindowsReplaceString
|
||||
@ stdcall WindowsStringHasEmbeddedNull(ptr ptr) combase.WindowsStringHasEmbeddedNull
|
||||
-@ stub WindowsSubstring
|
||||
+@ stdcall WindowsSubstring(ptr long ptr) combase.WindowsSubstring
|
||||
@ stub WindowsSubstringWithSpecifiedLength
|
||||
@ stub WindowsTrimStringEnd
|
||||
@ stub WindowsTrimStringStart
|
||||
diff --git a/dlls/combase/combase.spec b/dlls/combase/combase.spec
|
||||
index ac095ce..48c3a7e 100644
|
||||
--- a/dlls/combase/combase.spec
|
||||
+++ b/dlls/combase/combase.spec
|
||||
@@ -302,7 +302,7 @@
|
||||
@ stdcall WindowsPromoteStringBuffer(ptr ptr)
|
||||
@ stub WindowsReplaceString
|
||||
@ stdcall WindowsStringHasEmbeddedNull(ptr ptr)
|
||||
-@ stub WindowsSubstring
|
||||
+@ stdcall WindowsSubstring(ptr long ptr)
|
||||
@ stub WindowsSubstringWithSpecifiedLength
|
||||
@ stub WindowsTrimStringEnd
|
||||
@ stub WindowsTrimStringStart
|
||||
diff --git a/dlls/combase/string.c b/dlls/combase/string.c
|
||||
index 7054af6..33e5100 100644
|
||||
--- a/dlls/combase/string.c
|
||||
+++ b/dlls/combase/string.c
|
||||
@@ -255,6 +255,25 @@ HRESULT WINAPI WindowsStringHasEmbeddedNull(HSTRING str, BOOL *out)
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
+ * WindowsSubstring (combase.@)
|
||||
+ */
|
||||
+HRESULT WINAPI WindowsSubstring(HSTRING str, UINT32 start, HSTRING *out)
|
||||
+{
|
||||
+ struct hstring_private *priv = impl_from_HSTRING(str);
|
||||
+ UINT32 len = WindowsGetStringLen(str);
|
||||
+ if (out == NULL)
|
||||
+ return E_INVALIDARG;
|
||||
+ if (start > len)
|
||||
+ return E_BOUNDS;
|
||||
+ if (start == len)
|
||||
+ {
|
||||
+ *out = NULL;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+ return WindowsCreateString(&priv->buffer[start], len - start, out);
|
||||
+}
|
||||
+
|
||||
+/***********************************************************************
|
||||
* WindowsIsStringEmpty (combase.@)
|
||||
*/
|
||||
BOOL WINAPI WindowsIsStringEmpty(HSTRING str)
|
||||
diff --git a/dlls/combase/tests/string.c b/dlls/combase/tests/string.c
|
||||
index 72eaa84..c46d04e 100644
|
||||
--- a/dlls/combase/tests/string.c
|
||||
+++ b/dlls/combase/tests/string.c
|
||||
@@ -38,6 +38,7 @@ static BOOL (WINAPI *pWindowsIsStringEmpty)(HSTRING);
|
||||
static HRESULT (WINAPI *pWindowsPreallocateStringBuffer)(UINT32, WCHAR **, HSTRING_BUFFER *);
|
||||
static HRESULT (WINAPI *pWindowsPromoteStringBuffer)(HSTRING_BUFFER, HSTRING *);
|
||||
static HRESULT (WINAPI *pWindowsStringHasEmbeddedNull)(HSTRING, BOOL *);
|
||||
+static HRESULT (WINAPI *pWindowsSubstring)(HSTRING, UINT32, HSTRING *);
|
||||
|
||||
#define SET(x) p##x = (void*)GetProcAddress(hmod, #x)
|
||||
|
||||
@@ -60,6 +61,7 @@ static BOOL init_functions(void)
|
||||
SET(WindowsPreallocateStringBuffer);
|
||||
SET(WindowsPromoteStringBuffer);
|
||||
SET(WindowsStringHasEmbeddedNull);
|
||||
+ SET(WindowsSubstring);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -92,6 +94,7 @@ static void _check_string(int line, HSTRING str, LPCWSTR content, UINT32 length,
|
||||
static const WCHAR input_string[] = { 'a', 'b', 'c', 'd', 'e', 'f', '\0', '\0' };
|
||||
static const WCHAR input_empty_string[] = { '\0' };
|
||||
static const WCHAR input_embed_null[] = { 'a', '\0', 'c', '\0', 'e', 'f', '\0' };
|
||||
+static const WCHAR output_substring[] = { 'c', 'd', 'e', 'f', '\0' };
|
||||
|
||||
static void test_create_delete(void)
|
||||
{
|
||||
@@ -236,6 +239,62 @@ static void test_string_buffer(void)
|
||||
ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string\n");
|
||||
}
|
||||
|
||||
+static void test_substring(void)
|
||||
+{
|
||||
+ HSTRING str, substr;
|
||||
+ HSTRING_HEADER header;
|
||||
+
|
||||
+ /* Test substring of string buffers */
|
||||
+ ok(pWindowsCreateString(input_string, 6, &str) == S_OK, "Failed to create string\n");
|
||||
+ ok(pWindowsSubstring(str, 2, &substr) == S_OK, "Failed to create substring!\n");
|
||||
+ check_string(substr, output_substring, 4, FALSE);
|
||||
+ ok(pWindowsDeleteString(substr) == S_OK, "Failed to delete string\n");
|
||||
+ ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string\n");
|
||||
+
|
||||
+ /* Test duplication of string using substring */
|
||||
+ ok(pWindowsCreateString(input_string, 6, &str) == S_OK, "Failed to create string\n");
|
||||
+ ok(pWindowsSubstring(str, 0, &substr) == S_OK, "Failed to create substring!\n");
|
||||
+ ok(str != substr, "Duplicated string didn't create new string\n");
|
||||
+ check_string(substr, input_string, 6, FALSE);
|
||||
+ ok(pWindowsDeleteString(substr) == S_OK, "Failed to delete string\n");
|
||||
+ ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string\n");
|
||||
+
|
||||
+ /* Test substring of string reference */
|
||||
+ ok(pWindowsCreateStringReference(input_string, 6, &header, &str) == S_OK, "Failed to create string ref\n");
|
||||
+ ok(pWindowsSubstring(str, 2, &substr) == S_OK, "Failed to create substring of string ref!\n");
|
||||
+ check_string(substr, output_substring, 4, FALSE);
|
||||
+ ok(pWindowsDeleteString(substr) == S_OK, "Failed to delete string\n");
|
||||
+ ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string ref\n");
|
||||
+
|
||||
+ /* Test duplication of string reference using substring */
|
||||
+ ok(pWindowsCreateStringReference(input_string, 6, &header, &str) == S_OK, "Failed to create string ref\n");
|
||||
+ ok(pWindowsSubstring(str, 0, &substr) == S_OK, "Failed to create substring of string ref!\n");
|
||||
+ ok(str != substr, "Duplicated string ref didn't create new string\n");
|
||||
+ check_string(substr, input_string, 6, FALSE);
|
||||
+ ok(pWindowsDeleteString(substr) == S_OK, "Failed to delete string\n");
|
||||
+ ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string\n");
|
||||
+
|
||||
+ /* Test get Substring of empty string */
|
||||
+ ok(pWindowsSubstring(NULL, 0, &substr) == S_OK, "Failed to duplicate NULL string\n");
|
||||
+ ok(substr == NULL, "Substring created new string\n");
|
||||
+
|
||||
+ /* Test get empty Substring of string */
|
||||
+ ok(pWindowsCreateString(input_string, 6, &str) == S_OK, "Failed to create string\n");
|
||||
+ ok(pWindowsSubstring(str, 6, &substr) == S_OK, "Failed to create substring!\n");
|
||||
+ ok(substr == NULL, "Substring created new string\n");
|
||||
+ ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string\n");
|
||||
+
|
||||
+ /* Test handling of using to high startIndex */
|
||||
+ ok(pWindowsCreateString(input_string, 6, &str) == S_OK, "Failed to create string\n");
|
||||
+ ok(pWindowsSubstring(str, 7, &substr) == E_BOUNDS, "Incorrect error handling\n");
|
||||
+ ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string\n");
|
||||
+
|
||||
+ /* Test handling of a NULL string */
|
||||
+ ok(pWindowsCreateString(input_string, 6, &str) == S_OK, "Failed to create string\n");
|
||||
+ ok(pWindowsSubstring(str, 7, NULL) == E_INVALIDARG, "Incorrect error handling\n");
|
||||
+ ok(pWindowsDeleteString(str) == S_OK, "Failed to delete string\n");
|
||||
+}
|
||||
+
|
||||
START_TEST(string)
|
||||
{
|
||||
if (!init_functions())
|
||||
@@ -244,4 +303,5 @@ START_TEST(string)
|
||||
test_duplicate();
|
||||
test_access();
|
||||
test_string_buffer();
|
||||
+ test_substring();
|
||||
}
|
||||
diff --git a/include/winerror.h b/include/winerror.h
|
||||
index 2958cbd..9b9fb72 100644
|
||||
--- a/include/winerror.h
|
||||
+++ b/include/winerror.h
|
||||
@@ -2090,6 +2090,7 @@ static inline HRESULT HRESULT_FROM_WIN32(unsigned int x)
|
||||
#define S_FALSE _HRESULT_TYPEDEF_(1)
|
||||
|
||||
#define E_PENDING _HRESULT_TYPEDEF_(0x8000000A)
|
||||
+#define E_BOUNDS _HRESULT_TYPEDEF_(0x8000000B)
|
||||
|
||||
|
||||
#define E_NOTIMPL _HRESULT_TYPEDEF_(0x80004001)
|
||||
--
|
||||
2.3.2
|
||||
|
@@ -1,2 +0,0 @@
|
||||
Fixes: Implement combase.WindowsSubstring function
|
||||
Category: stable
|
@@ -1,71 +0,0 @@
|
||||
From 1b058c627bdd31c151110e8f554ab6210248e105 Mon Sep 17 00:00:00 2001
|
||||
From: Nikolay Sivov <nsivov@codeweavers.com>
|
||||
Date: Fri, 22 Feb 2013 11:38:12 +0400
|
||||
Subject: comctl32: Protect TVM_GETITEM from invalid item pointers
|
||||
|
||||
Changes by Sebastian Lackner <sebastian@fds-team.de>:
|
||||
* Avoid return in __TRY block.
|
||||
---
|
||||
dlls/comctl32/tests/treeview.c | 9 +++++++++
|
||||
dlls/comctl32/treeview.c | 16 +++++++++++++---
|
||||
2 files changed, 22 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
|
||||
index 5003dfa..933a8b0 100644
|
||||
--- a/dlls/comctl32/tests/treeview.c
|
||||
+++ b/dlls/comctl32/tests/treeview.c
|
||||
@@ -905,6 +905,15 @@ static void test_get_set_item(void)
|
||||
expect(TRUE, ret);
|
||||
ok(tviRoot.state == TVIS_FOCUSED, "got state 0x%0x\n", tviRoot.state);
|
||||
|
||||
+if (0)
|
||||
+{
|
||||
+ /* invalid item pointer, nt4 crashes here but later versions just return 0 */
|
||||
+ tviRoot.hItem = (HTREEITEM)0xdeadbeef;
|
||||
+ tviRoot.mask = TVIF_STATE;
|
||||
+ tviRoot.state = 0;
|
||||
+ ret = SendMessageA(hTree2, TVM_GETITEMA, 0, (LPARAM)&tviRoot);
|
||||
+ expect(FALSE, ret);
|
||||
+}
|
||||
DestroyWindow(hTree);
|
||||
DestroyWindow(hTree2);
|
||||
}
|
||||
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
|
||||
index 812bd35..6adafc4 100644
|
||||
--- a/dlls/comctl32/treeview.c
|
||||
+++ b/dlls/comctl32/treeview.c
|
||||
@@ -63,6 +63,7 @@
|
||||
#include "vssym32.h"
|
||||
#include "wine/unicode.h"
|
||||
#include "wine/debug.h"
|
||||
+#include "wine/exception.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(treeview);
|
||||
|
||||
@@ -2068,11 +2069,20 @@ TREEVIEW_GetItemT(const TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem, BOOL isW)
|
||||
|
||||
if (!TREEVIEW_ValidItem(infoPtr, item))
|
||||
{
|
||||
+ BOOL valid_item = FALSE;
|
||||
if (!item) return FALSE;
|
||||
|
||||
- TRACE("got item from different tree %p, called from %p\n", item->infoPtr, infoPtr);
|
||||
- infoPtr = item->infoPtr;
|
||||
- if (!TREEVIEW_ValidItem(infoPtr, item)) return FALSE;
|
||||
+ __TRY
|
||||
+ {
|
||||
+ infoPtr = item->infoPtr;
|
||||
+ TRACE("got item from different tree %p, called from %p\n", item->infoPtr, infoPtr);
|
||||
+ valid_item = TREEVIEW_ValidItem(infoPtr, item);
|
||||
+ }
|
||||
+ __EXCEPT_PAGE_FAULT
|
||||
+ {
|
||||
+ }
|
||||
+ __ENDTRY
|
||||
+ if (!valid_item) return FALSE;
|
||||
}
|
||||
|
||||
TREEVIEW_UpdateDispInfo(infoPtr, item, tvItem->mask);
|
||||
--
|
||||
2.5.1
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [33001] Protect TVM_GETITEM from invalid item pointers
|
@@ -1,29 +1,29 @@
|
||||
From d39d120e7b69873b864286ec574c7b5c9eb1de0d Mon Sep 17 00:00:00 2001
|
||||
From 53bf52b313245d965619802729ef59ada1806660 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 27 Aug 2014 00:31:23 +0200
|
||||
Subject: configure: Also add the absolute RPATH when linking against libwine.
|
||||
|
||||
---
|
||||
configure.ac | 4 ++--
|
||||
configure.ac | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c4066f6..1c5f156 100644
|
||||
index ff74f8d..529c209 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -970,10 +970,10 @@ wine-installed: main.o
|
||||
@@ -966,10 +966,10 @@ ${wine_binary}_LDFLAGS = $LDEXECFLAGS -lwine \$(PTHREAD_LIBS)
|
||||
[LDEXECFLAGS="-Wl,--export-dynamic"])
|
||||
|
||||
WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
|
||||
- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`"
|
||||
+ [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`:\$(DESTDIR)\$(libdir)"
|
||||
- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
|
||||
+ [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`:\$(DESTDIR)\${libdir}"
|
||||
LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"],
|
||||
[WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib],
|
||||
- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`"
|
||||
+ [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`:\$(DESTDIR)\$(libdir)"
|
||||
- [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
|
||||
+ [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`:\$(DESTDIR)\${libdir}"
|
||||
LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])])
|
||||
|
||||
WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
|
||||
--
|
||||
1.7.9.5
|
||||
2.6.1
|
||||
|
||||
|
@@ -0,0 +1,74 @@
|
||||
From 68efe5449591b9b1366d66d87fff1a8c9f8002e5 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 16 Oct 2015 14:06:30 +1100
|
||||
Subject: d3dx9_36/tests: Add D3DXSaveSurfaceToFileInMemory D3DXIFF_DDS tests
|
||||
|
||||
Also updates the structure dds_header to be the same as d3dx9_36/surface.c.
|
||||
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
dlls/d3dx9_36/tests/surface.c | 34 +++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 33 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c
|
||||
index 1697a03..77bd142 100644
|
||||
--- a/dlls/d3dx9_36/tests/surface.c
|
||||
+++ b/dlls/d3dx9_36/tests/surface.c
|
||||
@@ -211,7 +211,9 @@ struct dds_header
|
||||
struct dds_pixel_format pixel_format;
|
||||
DWORD caps;
|
||||
DWORD caps2;
|
||||
- DWORD reserved2[3];
|
||||
+ DWORD caps3;
|
||||
+ DWORD caps4;
|
||||
+ DWORD reserved2;
|
||||
};
|
||||
|
||||
/* fills dds_header with reasonable default values */
|
||||
@@ -1231,6 +1233,7 @@ static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device)
|
||||
RECT rect;
|
||||
ID3DXBuffer *buffer;
|
||||
IDirect3DSurface9 *surface;
|
||||
+ struct dds_header *header;
|
||||
|
||||
hr = IDirect3DDevice9_CreateOffscreenPlainSurface(device, 4, 4, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &surface, NULL);
|
||||
if (FAILED(hr)) {
|
||||
@@ -1248,6 +1251,35 @@ static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device)
|
||||
ID3DXBuffer_Release(buffer);
|
||||
}
|
||||
|
||||
+ SetRect(&rect, 0, 0, 0, 0);
|
||||
+ hr = D3DXSaveSurfaceToFileInMemory(&buffer, D3DXIFF_DDS, surface, NULL, &rect);
|
||||
+ todo_wine ok(hr == D3D_OK || broken(hr == D3DERR_INVALIDCALL), "D3DXSaveSurfaceToFileInMemory returned %#x, expected %#x\n", hr, D3D_OK);
|
||||
+ if (SUCCEEDED(hr)) {
|
||||
+ header = ID3DXBuffer_GetBufferPointer(buffer);
|
||||
+
|
||||
+ ok(header->magic == MAKEFOURCC('D','D','S',' '), "Invalid DDS signature\n");
|
||||
+ todo_wine ok(header->size == 124, "Invalid DDS size %d\n", header->size);
|
||||
+ ok(header->height == 0, "Wrong height %d\n", header->height);
|
||||
+ ok(header->width == 0, "Wrong width %d\n", header->width);
|
||||
+ ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT),
|
||||
+ "Wrong flags %x\n", header->flags);
|
||||
+ ID3DXBuffer_Release(buffer);
|
||||
+ }
|
||||
+
|
||||
+ hr = D3DXSaveSurfaceToFileInMemory(&buffer, D3DXIFF_DDS, surface, NULL, NULL);
|
||||
+ ok(hr == D3D_OK || broken(hr == D3DERR_INVALIDCALL), "D3DXSaveSurfaceToFileInMemory returned %#x, expected %#x\n", hr, D3D_OK);
|
||||
+ if (SUCCEEDED(hr)) {
|
||||
+ header = ID3DXBuffer_GetBufferPointer(buffer);
|
||||
+
|
||||
+ ok(header->magic == MAKEFOURCC('D','D','S',' '), "Invalid DDS signature\n");
|
||||
+ todo_wine ok(header->size == 124, "Invalid DDS size %d\n", header->size);
|
||||
+ ok(header->height == 4, "Wrong height %d\n", header->height);
|
||||
+ ok(header->width == 4, "Wrong width %d\n", header->width);
|
||||
+ todo_wine ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT),
|
||||
+ "Wrong flags %x\n", header->flags);
|
||||
+ ID3DXBuffer_Release(buffer);
|
||||
+ }
|
||||
+
|
||||
IDirect3DSurface9_Release(surface);
|
||||
}
|
||||
|
||||
--
|
||||
2.6.2
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 226f9f6bd5622c18ec4ab78f3b71ef205a550d16 Mon Sep 17 00:00:00 2001
|
||||
From 88f02c608de86c125cbddd543c34ea2bfce30993 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Sun, 11 Jan 2015 16:09:43 +0100
|
||||
Subject: d3dx9_36: Fix several issues in save_dds_surface_to_memory.
|
||||
@@ -9,8 +9,9 @@ The different fixes are:
|
||||
- Fix DDS_WIDTH define to correct value 4
|
||||
- Do not set depth and miplevels fields as their flags are not set (to match native)
|
||||
---
|
||||
dlls/d3dx9_36/surface.c | 7 +++----
|
||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||
dlls/d3dx9_36/surface.c | 7 +++----
|
||||
dlls/d3dx9_36/tests/surface.c | 2 +-
|
||||
2 files changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
|
||||
index b8bb710..6f6132c 100644
|
||||
@@ -33,6 +34,19 @@ index b8bb710..6f6132c 100644
|
||||
header->caps = DDS_CAPS_TEXTURE;
|
||||
hr = d3dformat_to_dds_pixel_format(&header->pixel_format, src_desc.Format);
|
||||
if (FAILED(hr))
|
||||
diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c
|
||||
index 77bd142..f04fa67 100644
|
||||
--- a/dlls/d3dx9_36/tests/surface.c
|
||||
+++ b/dlls/d3dx9_36/tests/surface.c
|
||||
@@ -1272,7 +1272,7 @@ static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device)
|
||||
header = ID3DXBuffer_GetBufferPointer(buffer);
|
||||
|
||||
ok(header->magic == MAKEFOURCC('D','D','S',' '), "Invalid DDS signature\n");
|
||||
- todo_wine ok(header->size == 124, "Invalid DDS size %d\n", header->size);
|
||||
+ ok(header->size == 124, "Invalid DDS size %d\n", header->size);
|
||||
ok(header->height == 4, "Wrong height %d\n", header->height);
|
||||
ok(header->width == 4, "Wrong width %d\n", header->width);
|
||||
todo_wine ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT),
|
||||
--
|
||||
2.5.0
|
||||
2.6.2
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user