You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Compare commits
33 Commits
v1.8-rc3
...
v1.8.1-uno
Author | SHA1 | Date | |
---|---|---|---|
|
24dcca66e3 | ||
|
9118e47cd3 | ||
|
8ae4e4601d | ||
|
21efb9c6f2 | ||
|
4c11d0c812 | ||
|
d7546964c7 | ||
|
766590c481 | ||
|
5ed04faa06 | ||
|
dbaf56b01c | ||
|
7145f11c99 | ||
|
819a64744e | ||
|
5bcbac4982 | ||
|
ed7fe13391 | ||
|
740b727a94 | ||
|
33c9d17dee | ||
|
5d4124c92b | ||
|
02d83cab14 | ||
|
7fc4595aaa | ||
|
364cd111e2 | ||
|
e9f11bd51b | ||
|
15f62469af | ||
|
8a378ee8e7 | ||
|
fd5fd19bb9 | ||
|
d14e078ed7 | ||
|
47e0b460b4 | ||
|
0c1324b8de | ||
|
e9f445ed37 | ||
|
84730be30e | ||
|
42da4b38cc | ||
|
7dac88ab13 | ||
|
c3f580b642 | ||
|
ffa55dcc00 | ||
|
cde035a721 |
@@ -7,7 +7,7 @@ are part of **Wine Staging** and are licensed under the terms of the
|
||||
[LGPLv2.1](#gnu-lgpl-version-21), to stay compatible with Wine:
|
||||
|
||||
```
|
||||
Copyright (C) 2014-2015 the Wine Staging project authors.
|
||||
Copyright (C) 2014-2016 the Wine Staging project authors.
|
||||
|
||||
Wine Staging is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
|
375
README.md
375
README.md
@@ -8,308 +8,93 @@ to give developers the possibility to discuss and improve their patches before
|
||||
they are integrated into the main branch. More information about Wine Staging
|
||||
can also be found on our website [wine-staging.com](http://wine-staging.com).
|
||||
|
||||
Although we are reviewing and testing all patches carefully before adding them,
|
||||
you may encounter additional bugs, which are not present in the development
|
||||
branch. Do not hesitate to report such issues at winehq.org, so they can be
|
||||
fixed before the feature gets integrated.
|
||||
Installation
|
||||
------------
|
||||
|
||||
Ready-to-use packages for Wine Staging are available for a variety of Linux
|
||||
distributions and for Mac OS X. Just follow the
|
||||
[installation instructions](https://github.com/wine-compholio/wine-staging/wiki/Installation)
|
||||
for your operating system.
|
||||
|
||||
How to install and use Wine Staging
|
||||
-----------------------------------
|
||||
On most distributions the `wine-staging` package is installed to
|
||||
`/opt/wine-staging`, such that multiple Wine versions can be installed in
|
||||
parallel. If this is the case for your distribution, you will have to type
|
||||
`/opt/wine-staging/bin/wine` instead of just `wine`. The same also applies for
|
||||
other wine-specific programs like `winecfg`. To learn more about how to use
|
||||
Wine Staging, please take a look at the
|
||||
[usage instructions](https://github.com/wine-compholio/wine-staging/wiki/Usage).
|
||||
|
||||
Ready-to-use packages for Wine Staging are available for a variety
|
||||
of different Linux distributions directly for download. Just follow the
|
||||
instructions available on the
|
||||
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Installation).
|
||||
Reporting bugs
|
||||
--------------
|
||||
|
||||
When using Wine Staging there are a few differences compared to regular
|
||||
Wine. The main difference is that it is not sufficient to type `wine` to
|
||||
run it, but instead you will have to type `/opt/wine-staging/bin/wine`.
|
||||
Besides that there are also some other differences, for example additional
|
||||
configuration options to tweak performance, which are not available in regular
|
||||
Wine. All those differences are also documented on the
|
||||
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Usage).
|
||||
Since WineConf 2015 Wine Staging is an official part of WineHQ, which means you
|
||||
can report problems directly at https://bugs.winehq.org/. Most of the time bugs
|
||||
found in Wine Staging also turn out to be present in the development branch, so
|
||||
its recommended to open your bug in the "Wine" product, unless you are sure its
|
||||
really "Wine Staging" specific. For problems with our binary packages, please
|
||||
also open a bug report there.
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
Wine Staging is maintained as a set of patches which has to be applied on top of
|
||||
the development branch. In order to build Wine Staging, the first step is to
|
||||
setup a build environment for Wine, including all required dependencies. A lot
|
||||
of information about that is collected in the
|
||||
[WineHQ Wiki](http://wiki.winehq.org/BuildingWine).
|
||||
|
||||
**Bug fixes and features in Wine Staging 1.8-rc3 [269]:**
|
||||
In order to apply all Wine Staging patches it is recommended to use the
|
||||
`patchinstall.sh` utility which takes care of applying all patches in the
|
||||
correct order. For reference, the possible commandline arguments are:
|
||||
|
||||
*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
|
||||
are included upstream. The list also includes features and fixes from previous
|
||||
releases, take a look at the
|
||||
[changelog](https://github.com/wine-compholio/wine-staging/blob/master/staging/changelog)
|
||||
for more details.*
|
||||
```
|
||||
Usage: ./patchinstall.sh [DESTDIR=path] [--all] [-W patchset] [patchset ...]
|
||||
|
||||
* Add IDragSourceHelper stub interface ([Wine Bug #24699](https://bugs.winehq.org/show_bug.cgi?id=24699))
|
||||
* Add IHTMLLocation::hash property's getter implementation ([Wine Bug #32967](https://bugs.winehq.org/show_bug.cgi?id=32967))
|
||||
* Add a ProfileList\<UserSID> registry subkey ([Wine Bug #15670](https://bugs.winehq.org/show_bug.cgi?id=15670))
|
||||
* Add a stub driver for tdi.sys ([Wine Bug #35693](https://bugs.winehq.org/show_bug.cgi?id=35693))
|
||||
* Add implementation for comctl32.PROPSHEET_InsertPage. ([Wine Bug #25625](https://bugs.winehq.org/show_bug.cgi?id=25625))
|
||||
* Add implementation for mfplat.MFTEnum ([Wine Bug #39309](https://bugs.winehq.org/show_bug.cgi?id=39309))
|
||||
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
|
||||
* Add implementation for msidb commandline tool
|
||||
* Add implementation for shlwapi.AssocGetPerceivedType
|
||||
* Add nvapi stubs required for GPU PhysX support
|
||||
* 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))
|
||||
* Add stub dlls required for MSVC 2015 runtime library (Windows 10)
|
||||
* 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 ([Wine Bug #32186](https://bugs.winehq.org/show_bug.cgi?id=32186))
|
||||
* Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
|
||||
* Add stub for ntoskrnl.PsRemoveLoadImageNotifyRoutine
|
||||
* Add stub for setupapi.SetupDiSelectBestCompatDrv ([Wine Bug #32088](https://bugs.winehq.org/show_bug.cgi?id=32088))
|
||||
* Add stub for wininet.ParseX509EncodedCertificateForListBoxEntry ([Wine Bug #29842](https://bugs.winehq.org/show_bug.cgi?id=29842))
|
||||
* Add stub for winscard.SCardListReadersA/W ([Wine Bug #26978](https://bugs.winehq.org/show_bug.cgi?id=26978))
|
||||
* Add stub for winspool.SetPrinterW level 8 ([Wine Bug #24645](https://bugs.winehq.org/show_bug.cgi?id=24645))
|
||||
* 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
|
||||
* Add support for hiding wine version information from applications ([Wine Bug #38656](https://bugs.winehq.org/show_bug.cgi?id=38656))
|
||||
* 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 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))
|
||||
* Allow to cancel a file operation via progress callback ([Wine Bug #22690](https://bugs.winehq.org/show_bug.cgi?id=22690))
|
||||
* 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))
|
||||
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](https://bugs.winehq.org/show_bug.cgi?id=30639))
|
||||
* Avoid crashing when broken app tries to release surface although refcount is zero ([Wine Bug #18477](https://bugs.winehq.org/show_bug.cgi?id=18477))
|
||||
* Avoid race-conditions in NtReadFile() operations with write watches.
|
||||
* Avoid race-conditions of async WSARecv() operations with write watches.
|
||||
* Avoid race-conditions with write watches in WS2_async_accept.
|
||||
* 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))
|
||||
* CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE
|
||||
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))
|
||||
* Catch invalid memory accesses in imagehlp.CheckSumMappedFile
|
||||
* Check 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))
|
||||
* 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 fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
|
||||
* 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))
|
||||
* 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
|
||||
* 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 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))
|
||||
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](https://bugs.winehq.org/show_bug.cgi?id=10767))
|
||||
* 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 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 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 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 multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
|
||||
* Fix possible leak of explorer.exe processes and implement proper desktop refcounting
|
||||
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
|
||||
* Fix race-condition when threads are killed during shutdown
|
||||
* Fix regression caused by blacklisting supported OpenGL extensions ([Wine Bug #38480](https://bugs.winehq.org/show_bug.cgi?id=38480))
|
||||
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
|
||||
* Fix scaling behaviour of images and mipmap levels in IDirect3DTexture2_Load (needed for example by Prezzie Hunt)
|
||||
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
|
||||
* Fix the initialization of combined DACLs when the new DACL is empty ([Wine Bug #38423](https://bugs.winehq.org/show_bug.cgi?id=38423))
|
||||
* Fix unintentional leaks with ntdll internals
|
||||
* Fix wrong colors in Wolfenstein (2009) ([Wine Bug #34692](https://bugs.winehq.org/show_bug.cgi?id=34692))
|
||||
* Fix wrong defition of ntoskrnl.IoReleaseCancelSpinLock function.
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_24
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_25 ([Wine Bug #25138](https://bugs.winehq.org/show_bug.cgi?id=25138))
|
||||
* GetMessage should remove already seen messages with higher priority ([Wine Bug #28884](https://bugs.winehq.org/show_bug.cgi?id=28884))
|
||||
* GetMonitorInfo returns the same name for all monitors ([Wine Bug #37709](https://bugs.winehq.org/show_bug.cgi?id=37709))
|
||||
* 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 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 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
|
||||
* 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 detection of symbol charset for old truetype fonts ([Wine Bug #33117](https://bugs.winehq.org/show_bug.cgi?id=33117))
|
||||
* Improve startup performance by delaying font initialization
|
||||
* Improve stub for AEV_GetVolumeRange ([Wine Bug #35658](https://bugs.winehq.org/show_bug.cgi?id=35658))
|
||||
* Improve stub for ID3DXEffectImpl_CloneEffect
|
||||
* Improve stub for NtQueryEaFile
|
||||
* Improve stubs for AEV_{Get,Set}MasterVolumeLevel
|
||||
* Improve stubs for AEV_{Get,Set}Mute
|
||||
* Improve stubs for dxgi MakeWindowAssociation and GetWindowAssociation
|
||||
* Improvement for heap allocation performance
|
||||
* Initialize *lpcDevices in RasEnumDevicesA ([Wine Bug #30378](https://bugs.winehq.org/show_bug.cgi?id=30378))
|
||||
* Initialize System\CurrentControlSet\Control\TimeZoneInformation registry keys
|
||||
* Jedi Knight: Dark Forces II crashes with winmm set to native ([Wine Bug #37983](https://bugs.winehq.org/show_bug.cgi?id=37983))
|
||||
* 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 ([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))
|
||||
* Multiple applications need EnumDisplayDevicesW implementation ([Wine Bug #34978](https://bugs.winehq.org/show_bug.cgi?id=34978))
|
||||
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](https://bugs.winehq.org/show_bug.cgi?id=7115))
|
||||
* Only set SFGAO_HASSUBFOLDER when there are really subfolders ([Wine Bug #24851](https://bugs.winehq.org/show_bug.cgi?id=24851))
|
||||
* Other Pipelight-specific enhancements
|
||||
* Port Royale doesn't display ocean correctly ([Wine Bug #17913](https://bugs.winehq.org/show_bug.cgi?id=17913))
|
||||
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](https://bugs.winehq.org/show_bug.cgi?id=32699))
|
||||
* Process APC calls before starting process
|
||||
* Properly close sockets when WSACleanup is called ([Wine Bug #18670](https://bugs.winehq.org/show_bug.cgi?id=18670))
|
||||
* Properly handle multiple registry notifications per key
|
||||
* Properly implement GetLargestConsoleWindowSize ([Wine Bug #10919](https://bugs.winehq.org/show_bug.cgi?id=10919))
|
||||
* Properly implement imagehlp.ImageLoad and ImageUnload ([Wine Bug #23455](https://bugs.winehq.org/show_bug.cgi?id=23455))
|
||||
* Properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps ([Wine Bug #27002](https://bugs.winehq.org/show_bug.cgi?id=27002))
|
||||
* Properly render themed buttons when they are pressed ([Wine Bug #37584](https://bugs.winehq.org/show_bug.cgi?id=37584))
|
||||
* 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
|
||||
* Return STATUS_INVALID_DEVICE_REQUEST when trying to call NtReadFile on directory
|
||||
* Return WN_NOT_CONNECTED from WNetGetUniversalName REMOTE_NAME_INFO_LEVEL stub ([Wine Bug #39452](https://bugs.winehq.org/show_bug.cgi?id=39452))
|
||||
* Return a valid mesh in D3DXCreateTeapot ([Wine Bug #36884](https://bugs.winehq.org/show_bug.cgi?id=36884))
|
||||
* Return an error when trying to open a terminated process ([Wine Bug #37087](https://bugs.winehq.org/show_bug.cgi?id=37087))
|
||||
* Return correct IMediaSeeking stream positions in quartz
|
||||
* Return correct values for GetThreadTimes function ([Wine Bug #20230](https://bugs.winehq.org/show_bug.cgi?id=20230))
|
||||
* Return dummy ID3DXSkinInfo interface when skinning info not present ([Wine Bug #33904](https://bugs.winehq.org/show_bug.cgi?id=33904))
|
||||
* Return fake device type when systemroot is located on virtual disk ([Wine Bug #36546](https://bugs.winehq.org/show_bug.cgi?id=36546))
|
||||
* Return proper status codes when NtReadFile/NtWriteFile is called on closed (but not disconnected) pipe
|
||||
* SHFileOperation with FO_MOVE should create new directory on Vista+ ([Wine Bug #25207](https://bugs.winehq.org/show_bug.cgi?id=25207))
|
||||
* 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
|
||||
* 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))
|
||||
* Support for CSMT (command stream) to increase graphic performance ([Wine Bug #11674](https://bugs.winehq.org/show_bug.cgi?id=11674))
|
||||
* Support for CUDA GPU video decoding
|
||||
* Support for D3DXGetShaderInputSemantics ([Wine Bug #22682](https://bugs.winehq.org/show_bug.cgi?id=22682))
|
||||
* Support for DDS file format in D3DXSaveTextureToFileInMemory ([Wine Bug #26898](https://bugs.winehq.org/show_bug.cgi?id=26898))
|
||||
* Support for DOS hidden/system file attributes ([Wine Bug #9158](https://bugs.winehq.org/show_bug.cgi?id=9158))
|
||||
* Support for FileFsFullSizeInformation information class
|
||||
* Support for GetFinalPathNameByHandle ([Wine Bug #34851](https://bugs.winehq.org/show_bug.cgi?id=34851))
|
||||
* Support for H264 DXVA2 GPU video decoding through vaapi
|
||||
* Support for ID3DXFont::DrawTextA/W ([Wine Bug #24754](https://bugs.winehq.org/show_bug.cgi?id=24754))
|
||||
* Support for ID3DXSkinInfoImpl_UpdateSkinnedMesh ([Wine Bug #32572](https://bugs.winehq.org/show_bug.cgi?id=32572))
|
||||
* Support for Junction Points ([Wine Bug #12401](https://bugs.winehq.org/show_bug.cgi?id=12401))
|
||||
* Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](https://bugs.winehq.org/show_bug.cgi?id=30385))
|
||||
* Support for 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 SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
|
||||
* 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
|
||||
* Support for linux priority levels for faster performance
|
||||
* Support for loader dll redirections
|
||||
* Support for named pipe message mode (Linux only) ([Wine Bug #17195](https://bugs.winehq.org/show_bug.cgi?id=17195))
|
||||
* Support for pasting HTML from Unix applications ([Wine Bug #7372](https://bugs.winehq.org/show_bug.cgi?id=7372))
|
||||
* Support for process ACLs ([Wine Bug #22006](https://bugs.winehq.org/show_bug.cgi?id=22006))
|
||||
* Support for setcap on wine-preloader ([Wine Bug #26256](https://bugs.winehq.org/show_bug.cgi?id=26256))
|
||||
* Support for shell32 file operation progress dialog
|
||||
* Support for stored file ACLs ([Wine Bug #33576](https://bugs.winehq.org/show_bug.cgi?id=33576))
|
||||
* Support for ws2_32.dll.WSAPoll ([Wine Bug #38601](https://bugs.winehq.org/show_bug.cgi?id=38601))
|
||||
* Tumblebugs 2 requires DXTn software encoding support ([Wine Bug #29586](https://bugs.winehq.org/show_bug.cgi?id=29586))
|
||||
* Update a XIM candidate position when cursor location changes ([Wine Bug #30938](https://bugs.winehq.org/show_bug.cgi?id=30938))
|
||||
* Use GLX_MESA_query_renderer extension to get more exact GPU infos
|
||||
* Use NVX_GPU_MEMORY_INFO extension for more exact video memory accounting on NVIDIA graphic cards
|
||||
* Use POSIX implementation to enumerate directory content on FreeBSD ([Wine Bug #35397](https://bugs.winehq.org/show_bug.cgi?id=35397))
|
||||
* Use actual program name if available to describe PulseAudio streams
|
||||
* Use manual relay for RunDLL_CallEntry16 in shell32 ([Wine Bug #23033](https://bugs.winehq.org/show_bug.cgi?id=23033))
|
||||
* Use video memory for rendering targets if possible ([Wine Bug #34906](https://bugs.winehq.org/show_bug.cgi?id=34906))
|
||||
* Use wrapper functions for syscalls to appease Chromium sandbox (32-bit) ([Wine Bug #39403](https://bugs.winehq.org/show_bug.cgi?id=39403))
|
||||
* Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](https://bugs.winehq.org/show_bug.cgi?id=29384))
|
||||
* Wine ignores IDF_CHECKFIRST flag in SetupPromptForDisk ([Wine Bug #20465](https://bugs.winehq.org/show_bug.cgi?id=20465))
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
* 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))
|
||||
Autogenerated script to apply all Wine Staging patches on your Wine
|
||||
source tree.
|
||||
|
||||
Configuration:
|
||||
DESTDIR=path Specify the path to the wine source tree
|
||||
--all Select all patches
|
||||
--force-autoconf Run autoreconf and tools/make_requests after each patch
|
||||
--help Display this help and exit
|
||||
--no-autoconf Do not run autoreconf and tools/make_requests
|
||||
--no-patchlist Do not apply patchlist (needed for 'wine --patches')
|
||||
--upstream-commit Print the upstream Wine commit SHA1 and exit
|
||||
--version Show version information and exit
|
||||
-W patchset Exclude a specific patchset
|
||||
|
||||
Backends:
|
||||
--backend=patch Use regular 'patch' utility to apply patches (default)
|
||||
--backend=epatch Use 'epatch' to apply patches (Gentoo only)
|
||||
--backend=git-am Use 'git am' to apply patches
|
||||
--backend=git-apply Use 'git apply' to apply patches
|
||||
--backend=stg Import the patches using stacked git
|
||||
```
|
||||
|
||||
If you want to apply *all* patches with the `patch` utility, the commandline
|
||||
should look similar to this:
|
||||
```
|
||||
./patches/patchinstall.sh DESTDIR="/path/to/wine" --all
|
||||
```
|
||||
|
||||
Before you proceed with the compilation, please make sure that you installed all
|
||||
additional build dependencies required for the Wine Staging features you are
|
||||
interested in (check output of `./configure`). More information about building
|
||||
Wine Staging, optional build dependencies, and hints for packagers are collected
|
||||
in our [Wiki](https://github.com/wine-compholio/wine-staging/wiki/Packaging).
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
Wine Staging mainly concentrates on experimental features and patches which are
|
||||
difficult to get into the development branch. If you have a very simple bug fix
|
||||
including tests, there is usually no need to send it to Wine Staging. You can
|
||||
directly contribute it to the
|
||||
[development branch](http://wiki.winehq.org/SubmittingPatches). However, if you
|
||||
already tried that without success, or are working on such a complex area that
|
||||
you do not really think its ready for inclusion, you might want to submit it to
|
||||
our Staging tree. Please open a patch submission request on
|
||||
[bugs.wine-staging.com](https://bugs.wine-staging.com/) including the patch.
|
||||
More information is also available in our
|
||||
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Contributing).
|
||||
|
@@ -29,7 +29,7 @@ index 758ba43..7ccd3a1 100644
|
||||
wined3d_wndproc_mutex_unlock();
|
||||
}
|
||||
|
||||
+void wined3d_strictdrawing_set(int value)
|
||||
+void CDECL wined3d_strictdrawing_set(int value)
|
||||
+{
|
||||
+ wined3d_settings.strict_draw_ordering = value;
|
||||
+}
|
||||
|
@@ -1,92 +0,0 @@
|
||||
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
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: Set LastError to 0 in GetSidIdentifierAuthority
|
@@ -918,7 +918,7 @@ index 6dbf8c0..9a9fe47 100644
|
||||
+
|
||||
+-----------------------------------------------------------------------
|
||||
+
|
||||
Copyright (c) 1993-2015 the Wine project authors (see the file AUTHORS
|
||||
Copyright (c) 1993-2016 the Wine project authors (see the file AUTHORS
|
||||
for a complete list)
|
||||
|
||||
Wine is free software; you can redistribute it and/or modify it under
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Wrapper to apply binary patches without git.
|
||||
#
|
||||
# Copyright (C) 2014-2015 Sebastian Lackner
|
||||
# Copyright (C) 2014-2016 Sebastian Lackner
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
@@ -237,7 +237,7 @@ awk_eof_header='
|
||||
BEGIN{
|
||||
ofs=1;
|
||||
}
|
||||
!/^(--- |\+\+\+ |old |new |copy |rename |similarity |index |GIT |literal |delta )/{
|
||||
!/^(--- |\+\+\+ |old |deleted |new |copy |rename |similarity |index |GIT |literal |delta )/{
|
||||
ofs=0; exit 0;
|
||||
}
|
||||
END{
|
||||
|
@@ -1,44 +1,72 @@
|
||||
From 8e2f184541d44755fa67a43e4d8cf8debeeafc82 Mon Sep 17 00:00:00 2001
|
||||
From f8acf44d20407c213dd1f48691b432c2e9f555df Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Fri, 13 Nov 2015 20:36:54 +0800
|
||||
Subject: kernel32: CompareStringW should abort on the first nonmatching
|
||||
character to avoid invalid memory access.
|
||||
character to avoid invalid memory access. (v2)
|
||||
|
||||
For bug 37556.
|
||||
|
||||
Changes in v2 (by Sebastian Lackner):
|
||||
* Use loop to handle strings ending with multiple \0 characters correctly.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
|
||||
---
|
||||
libs/wine/sortkey.c | 15 ++++++---------
|
||||
1 file changed, 6 insertions(+), 9 deletions(-)
|
||||
libs/wine/sortkey.c | 39 ++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 30 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/libs/wine/sortkey.c b/libs/wine/sortkey.c
|
||||
index 17b5537..c459cea 100644
|
||||
index 17b5537..7280501 100644
|
||||
--- a/libs/wine/sortkey.c
|
||||
+++ b/libs/wine/sortkey.c
|
||||
@@ -223,6 +223,8 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1
|
||||
@@ -223,6 +223,16 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1
|
||||
len1--;
|
||||
len2--;
|
||||
}
|
||||
+ if (len1 && !*str1) len1--;
|
||||
+ if (len2 && !*str2) len2--;
|
||||
+ while (len1 && !*str1)
|
||||
+ {
|
||||
+ str1++;
|
||||
+ len1--;
|
||||
+ }
|
||||
+ while (len2 && !*str2)
|
||||
+ {
|
||||
+ str2++;
|
||||
+ len2--;
|
||||
+ }
|
||||
return len1 - len2;
|
||||
}
|
||||
|
||||
@@ -272,6 +274,8 @@ static inline int compare_diacritic_weights(int flags, const WCHAR *str1, int le
|
||||
@@ -272,6 +282,16 @@ static inline int compare_diacritic_weights(int flags, const WCHAR *str1, int le
|
||||
len1--;
|
||||
len2--;
|
||||
}
|
||||
+ if (len1 && !*str1) len1--;
|
||||
+ if (len2 && !*str2) len2--;
|
||||
+ while (len1 && !*str1)
|
||||
+ {
|
||||
+ str1++;
|
||||
+ len1--;
|
||||
+ }
|
||||
+ while (len2 && !*str2)
|
||||
+ {
|
||||
+ str2++;
|
||||
+ len2--;
|
||||
+ }
|
||||
return len1 - len2;
|
||||
}
|
||||
|
||||
@@ -321,23 +325,16 @@ static inline int compare_case_weights(int flags, const WCHAR *str1, int len1,
|
||||
@@ -321,23 +341,24 @@ static inline int compare_case_weights(int flags, const WCHAR *str1, int len1,
|
||||
len1--;
|
||||
len2--;
|
||||
}
|
||||
+ if (len1 && !*str1) len1--;
|
||||
+ if (len2 && !*str2) len2--;
|
||||
+ while (len1 && !*str1)
|
||||
+ {
|
||||
+ str1++;
|
||||
+ len1--;
|
||||
+ }
|
||||
+ while (len2 && !*str2)
|
||||
+ {
|
||||
+ str2++;
|
||||
+ len2--;
|
||||
+ }
|
||||
return len1 - len2;
|
||||
}
|
||||
|
||||
@@ -60,5 +88,5 @@ index 17b5537..c459cea 100644
|
||||
if (!ret)
|
||||
{
|
||||
--
|
||||
2.6.2
|
||||
2.6.4
|
||||
|
||||
|
@@ -0,0 +1,32 @@
|
||||
From c855cfddc7853fa8aed1ce4aac9a85c7ff7cb1f1 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 22 Jan 2016 15:13:36 +0100
|
||||
Subject: kenrel32/tests: Add further tests for comparing strings ending with
|
||||
multiple \0 characters.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/locale.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
|
||||
index d531272..4a9e540 100644
|
||||
--- a/dlls/kernel32/tests/locale.c
|
||||
+++ b/dlls/kernel32/tests/locale.c
|
||||
@@ -1643,6 +1643,14 @@ static const struct comparestringa_entry comparestringa_data[] = {
|
||||
{ LOCALE_SYSTEM_DEFAULT, SORT_STRINGSORT, "a'", 3, "a\0", 3, CSTR_GREATER_THAN },
|
||||
{ LOCALE_SYSTEM_DEFAULT, NORM_IGNORESYMBOLS, "a.", 3, "a\0", 3, CSTR_EQUAL },
|
||||
{ LOCALE_SYSTEM_DEFAULT, NORM_IGNORESYMBOLS, "a ", 3, "a\0", 3, CSTR_EQUAL },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a", 1, "a\0\0", 4, CSTR_EQUAL },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a", 2, "a\0\0", 4, CSTR_EQUAL },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a\0\0", 4, "a", 1, CSTR_EQUAL },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a\0\0", 4, "a", 2, CSTR_EQUAL },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a", 1, "a\0x", 4, CSTR_LESS_THAN },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a", 2, "a\0x", 4, CSTR_LESS_THAN },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a\0x", 4, "a", 1, CSTR_GREATER_THAN },
|
||||
+ { LOCALE_SYSTEM_DEFAULT, 0, "a\0x", 4, "a", 2, CSTR_GREATER_THAN },
|
||||
};
|
||||
|
||||
static void test_CompareStringA(void)
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -0,0 +1,29 @@
|
||||
From c62a9b8f39fcdd2209959e831e3801162b41420c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 27 Jan 2016 06:56:09 +0100
|
||||
Subject: kernel32: Do not inherit QT_* environment variables to Windows
|
||||
environment.
|
||||
|
||||
If necessary, QT environment variables can still be set by adding a WINE
|
||||
prefix, for example: WINEQT_QPA_PLATFORM=...
|
||||
---
|
||||
dlls/kernel32/process.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
|
||||
index 6e7b23e..bb6c2dd 100644
|
||||
--- a/dlls/kernel32/process.c
|
||||
+++ b/dlls/kernel32/process.c
|
||||
@@ -135,7 +135,8 @@ static inline BOOL is_special_env_var( const char *var )
|
||||
!strncmp( var, "PWD=", sizeof("PWD=")-1 ) ||
|
||||
!strncmp( var, "HOME=", sizeof("HOME=")-1 ) ||
|
||||
!strncmp( var, "TEMP=", sizeof("TEMP=")-1 ) ||
|
||||
- !strncmp( var, "TMP=", sizeof("TMP=")-1 ));
|
||||
+ !strncmp( var, "TMP=", sizeof("TMP=")-1 ) ||
|
||||
+ !strncmp( var, "QT_", sizeof("QT_")-1 ));
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.6.4
|
||||
|
1
patches/kernel32-QT_Environment_Variables/definition
Normal file
1
patches/kernel32-QT_Environment_Variables/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: Do not inherit QT_* environment variables to Windows environment
|
@@ -1,20 +1,20 @@
|
||||
From ac9076b71ddda6d430fe80fcfe62a47c2dcc9dc9 Mon Sep 17 00:00:00 2001
|
||||
From 97c810889b2ffe7408c2f185a2e7e399ce13d014 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Wed, 20 Aug 2014 15:28:00 -0600
|
||||
Subject: ntdll: Implement storing DOS attributes in NtCreateFile.
|
||||
|
||||
---
|
||||
dlls/ntdll/file.c | 79 ++++++++++++++++++++++++++++----------------
|
||||
dlls/ntdll/tests/directory.c | 22 +++++-------
|
||||
dlls/ntdll/tests/directory.c | 24 +++++---------
|
||||
include/wine/port.h | 2 ++
|
||||
libs/port/xattr.c | 20 +++++++++++
|
||||
4 files changed, 80 insertions(+), 43 deletions(-)
|
||||
4 files changed, 81 insertions(+), 44 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index 521ab64..b4187d4 100644
|
||||
index 17ad605..2381e3c 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -205,6 +205,21 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr )
|
||||
@@ -223,6 +223,21 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr )
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ index 521ab64..b4187d4 100644
|
||||
/**************************************************************************
|
||||
* FILE_CreateFile (internal)
|
||||
* Open a file.
|
||||
@@ -216,6 +231,8 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -234,6 +249,8 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
ULONG attributes, ULONG sharing, ULONG disposition,
|
||||
ULONG options, PVOID ea_buffer, ULONG ea_length )
|
||||
{
|
||||
@@ -45,7 +45,7 @@ index 521ab64..b4187d4 100644
|
||||
ANSI_STRING unix_name;
|
||||
BOOL created = FALSE;
|
||||
|
||||
@@ -259,39 +276,37 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -287,39 +304,37 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
io->u.Status = STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ index 521ab64..b4187d4 100644
|
||||
|
||||
if (io->u.Status == STATUS_SUCCESS)
|
||||
{
|
||||
@@ -313,6 +328,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -341,6 +356,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
io->Information = FILE_OVERWRITTEN;
|
||||
break;
|
||||
}
|
||||
@@ -124,7 +124,7 @@ index 521ab64..b4187d4 100644
|
||||
}
|
||||
else if (io->u.Status == STATUS_TOO_MANY_OPENED_FILES)
|
||||
{
|
||||
@@ -320,6 +340,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -348,6 +368,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
if (!once++) ERR_(winediag)( "Too many open files, ulimit -n probably needs to be increased\n" );
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ index 521ab64..b4187d4 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/ntdll/tests/directory.c b/dlls/ntdll/tests/directory.c
|
||||
index f190ff4..68b5406 100644
|
||||
index 7b1002a..aa8e97f 100644
|
||||
--- a/dlls/ntdll/tests/directory.c
|
||||
+++ b/dlls/ntdll/tests/directory.c
|
||||
@@ -51,7 +51,6 @@ static NTSTATUS (WINAPI *pRtlWow64EnableFsRedirectionEx)( ULONG disable, ULONG *
|
||||
@@ -144,10 +144,11 @@ index f190ff4..68b5406 100644
|
||||
BOOL attr_done; /* set if attributes were tested for this file already */
|
||||
const DWORD attr; /* desired attribute */
|
||||
const char *name; /* filename to use */
|
||||
@@ -60,13 +59,13 @@ static struct testfile_s {
|
||||
@@ -60,14 +59,14 @@ static struct testfile_s {
|
||||
int nfound; /* How many were found (expect 1) */
|
||||
WCHAR nameW[20]; /* unicode version of name (filled in later) */
|
||||
} testfiles[] = {
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, "longfilename.tmp", NULL, "normal" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_NORMAL, "n.tmp", NULL, "normal" },
|
||||
- { 1, 0, FILE_ATTRIBUTE_HIDDEN, "h.tmp", NULL, "hidden" },
|
||||
- { 1, 0, FILE_ATTRIBUTE_SYSTEM, "s.tmp", NULL, "system" },
|
||||
@@ -155,6 +156,7 @@ index f190ff4..68b5406 100644
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, ".", NULL, ". directory" },
|
||||
- { 0, 0, FILE_ATTRIBUTE_DIRECTORY, "..", NULL, ".. directory" },
|
||||
- { 0, 0, 0, NULL }
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, "longfilename.tmp", NULL, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_NORMAL, "n.tmp", NULL, "normal" },
|
||||
+ { 0, FILE_ATTRIBUTE_HIDDEN, "h.tmp", NULL, "hidden" },
|
||||
+ { 0, FILE_ATTRIBUTE_SYSTEM, "s.tmp", NULL, "system" },
|
||||
@@ -165,7 +167,7 @@ index f190ff4..68b5406 100644
|
||||
};
|
||||
static const int max_test_dir_size = 20; /* size of above plus some for .. etc */
|
||||
|
||||
@@ -147,12 +146,7 @@ static void tally_test_file(FILE_BOTH_DIRECTORY_INFORMATION *dir_info)
|
||||
@@ -148,12 +147,7 @@ static void tally_test_file(FILE_BOTH_DIRECTORY_INFORMATION *dir_info)
|
||||
if (namelen != len || memcmp(nameW, testfiles[i].nameW, len*sizeof(WCHAR)))
|
||||
continue;
|
||||
if (!testfiles[i].attr_done) {
|
||||
@@ -180,7 +182,7 @@ index f190ff4..68b5406 100644
|
||||
}
|
||||
testfiles[i].nfound++;
|
||||
diff --git a/include/wine/port.h b/include/wine/port.h
|
||||
index cc572f3..9e2b8165 100644
|
||||
index 445a25e..04ae7a6 100644
|
||||
--- a/include/wine/port.h
|
||||
+++ b/include/wine/port.h
|
||||
@@ -373,6 +373,8 @@ extern int xattr_fget( int filedes, const char *name, void *value, size_t size )
|
||||
@@ -221,5 +223,5 @@ index 6918c99..683e7a6 100644
|
||||
+#endif
|
||||
+}
|
||||
--
|
||||
1.9.1
|
||||
2.7.1
|
||||
|
||||
|
@@ -0,0 +1,46 @@
|
||||
From 5a419298c1871c0d71a2892d6ac4b517288b3563 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 14 Jan 2016 23:09:19 +0100
|
||||
Subject: ntdll: Always store SAMBA_XATTR_DOS_ATTRIB when path could be
|
||||
interpreted as hidden.
|
||||
|
||||
---
|
||||
dlls/ntdll/file.c | 13 ++++++++-----
|
||||
1 file changed, 8 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index 50b0042..b38698f 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -213,12 +213,15 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr )
|
||||
if (S_ISDIR( st->st_mode )) *attr |= FILE_ATTRIBUTE_REPARSE_POINT;
|
||||
}
|
||||
*attr |= get_file_attributes( st );
|
||||
- /* convert Unix-style hidden files to a DOS hidden file attribute */
|
||||
- if (DIR_is_hidden_file( path ))
|
||||
- *attr |= FILE_ATTRIBUTE_HIDDEN;
|
||||
/* retrieve any stored DOS attributes */
|
||||
len = xattr_get( path, SAMBA_XATTR_DOS_ATTRIB, hexattr, sizeof(hexattr)-1 );
|
||||
- if (len == -1) return ret;
|
||||
+ if (len == -1)
|
||||
+ {
|
||||
+ /* convert Unix-style hidden files to a DOS hidden file attribute */
|
||||
+ if (DIR_is_hidden_file( path ))
|
||||
+ *attr |= FILE_ATTRIBUTE_HIDDEN;
|
||||
+ return ret;
|
||||
+ }
|
||||
*attr |= get_file_xattr( hexattr, len );
|
||||
return ret;
|
||||
}
|
||||
@@ -231,7 +234,7 @@ NTSTATUS set_file_info( const char *path, ULONG attr )
|
||||
/* Note: unix mode already set when called this way */
|
||||
attr &= ~FILE_ATTRIBUTE_NORMAL; /* do not store everything, but keep everything Samba can use */
|
||||
len = sprintf( hexattr, "0x%x", attr );
|
||||
- if (attr != 0)
|
||||
+ if (attr != 0 || DIR_is_hidden_file( path ))
|
||||
xattr_set( path, SAMBA_XATTR_DOS_ATTRIB, hexattr, len );
|
||||
else
|
||||
xattr_remove( path, SAMBA_XATTR_DOS_ATTRIB );
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -1,103 +0,0 @@
|
||||
From 20e3383c70146e8220f08ebc379895139c9eb496 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 5 Dec 2015 22:47:17 +0100
|
||||
Subject: ntdll: Fix implementation of NtQueryInformationProcess for
|
||||
ProcessDebugFlags.
|
||||
|
||||
---
|
||||
dlls/ntdll/process.c | 5 ++++-
|
||||
dlls/ntdll/tests/info.c | 12 ++++++++----
|
||||
server/process.c | 1 +
|
||||
server/protocol.def | 3 ++-
|
||||
4 files changed, 15 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
|
||||
index ca9462a..636c294 100644
|
||||
--- a/dlls/ntdll/process.c
|
||||
+++ b/dlls/ntdll/process.c
|
||||
@@ -339,7 +339,10 @@ NTSTATUS WINAPI NtQueryInformationProcess(
|
||||
req->handle = wine_server_obj_handle( ProcessHandle );
|
||||
if ((ret = wine_server_call( req )) == STATUS_SUCCESS)
|
||||
{
|
||||
- *(DWORD *)ProcessInformation = !reply->debugger_present;
|
||||
+ if (!reply->debugger_present)
|
||||
+ *(DWORD *)ProcessInformation = TRUE;
|
||||
+ else
|
||||
+ *(DWORD *)ProcessInformation = reply->debug_children;
|
||||
}
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
|
||||
index 21b2e6c..18a73ab 100644
|
||||
--- a/dlls/ntdll/tests/info.c
|
||||
+++ b/dlls/ntdll/tests/info.c
|
||||
@@ -1271,8 +1271,9 @@ static void test_query_process_debug_object_handle(int argc, char **argv)
|
||||
ok(ret, "CloseHandle failed with last error %u\n", GetLastError());
|
||||
}
|
||||
|
||||
-static void test_query_process_debug_flags(int argc, char **argv)
|
||||
+static void test_query_process_debug_flags(int argc, char **argv, DWORD flags)
|
||||
{
|
||||
+ DWORD expected_flags = !(flags & DEBUG_ONLY_THIS_PROCESS);
|
||||
DWORD debug_flags = 0xdeadbeef;
|
||||
char cmdline[MAX_PATH];
|
||||
PROCESS_INFORMATION pi;
|
||||
@@ -1283,7 +1284,7 @@ static void test_query_process_debug_flags(int argc, char **argv)
|
||||
sprintf(cmdline, "%s %s %s", argv[0], argv[1], "debuggee");
|
||||
|
||||
si.cb = sizeof(si);
|
||||
- ret = CreateProcessA(NULL, cmdline, NULL, NULL, FALSE, DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS, NULL, NULL, &si, &pi);
|
||||
+ ret = CreateProcessA(NULL, cmdline, NULL, NULL, FALSE, flags, NULL, NULL, &si, &pi);
|
||||
ok(ret, "CreateProcess failed, last error %#x.\n", GetLastError());
|
||||
if (!ret) return;
|
||||
|
||||
@@ -1320,7 +1321,8 @@ static void test_query_process_debug_flags(int argc, char **argv)
|
||||
status = pNtQueryInformationProcess(pi.hProcess, ProcessDebugFlags,
|
||||
&debug_flags, sizeof(debug_flags), NULL);
|
||||
ok(!status || broken(status == STATUS_INVALID_INFO_CLASS) /* NT4 */, "NtQueryInformationProcess failed, status %#x.\n", status);
|
||||
- ok(debug_flags == FALSE || broken(status == STATUS_INVALID_INFO_CLASS) /* NT4 */, "Expected flag FALSE, got %x.\n", debug_flags);
|
||||
+ ok(debug_flags == expected_flags || broken(status == STATUS_INVALID_INFO_CLASS) /* NT4 */,
|
||||
+ "Expected flag %u, got %x.\n", expected_flags, debug_flags);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
@@ -1871,7 +1873,9 @@ START_TEST(info)
|
||||
|
||||
/* 0x1F ProcessDebugFlags */
|
||||
trace("Starting test_process_debug_flags()\n");
|
||||
- test_query_process_debug_flags(argc, argv);
|
||||
+ test_query_process_debug_flags(argc, argv, DEBUG_PROCESS);
|
||||
+ test_query_process_debug_flags(argc, argv, DEBUG_ONLY_THIS_PROCESS);
|
||||
+ test_query_process_debug_flags(argc, argv, DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS);
|
||||
|
||||
/* belongs to its own file */
|
||||
trace("Starting test_readvirtualmemory()\n");
|
||||
diff --git a/server/process.c b/server/process.c
|
||||
index e00b429..c738de6 100644
|
||||
--- a/server/process.c
|
||||
+++ b/server/process.c
|
||||
@@ -1359,6 +1359,7 @@ DECL_HANDLER(get_process_info)
|
||||
reply->end_time = process->end_time;
|
||||
reply->cpu = process->cpu;
|
||||
reply->debugger_present = !!process->debugger;
|
||||
+ reply->debug_children = process->debug_children;
|
||||
release_object( process );
|
||||
}
|
||||
}
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 04814c9..b5f5457 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -818,7 +818,8 @@ struct rawinput_device
|
||||
int exit_code; /* process exit code */
|
||||
int priority; /* priority class */
|
||||
cpu_type_t cpu; /* CPU that this process is running on */
|
||||
- int debugger_present; /* process is being debugged */
|
||||
+ short int debugger_present; /* process is being debugged */
|
||||
+ short int debug_children; /* debug child processes */
|
||||
@END
|
||||
|
||||
|
||||
--
|
||||
2.6.2
|
||||
|
@@ -0,0 +1,125 @@
|
||||
From 682c8d52bbec194245ce03428ab1678a28d6acf5 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 10 Dec 2015 03:11:25 +0100
|
||||
Subject: ntdll: ProcessDebugFlags should return debug_children flag instead of
|
||||
!debugger_present.
|
||||
|
||||
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
|
||||
---
|
||||
dlls/ntdll/process.c | 2 +-
|
||||
dlls/ntdll/tests/info.c | 12 ++----------
|
||||
server/debugger.c | 2 +-
|
||||
server/process.c | 5 +++--
|
||||
server/protocol.def | 3 ++-
|
||||
5 files changed, 9 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
|
||||
index ca9462a..5a5c3ef 100644
|
||||
--- a/dlls/ntdll/process.c
|
||||
+++ b/dlls/ntdll/process.c
|
||||
@@ -339,7 +339,7 @@ NTSTATUS WINAPI NtQueryInformationProcess(
|
||||
req->handle = wine_server_obj_handle( ProcessHandle );
|
||||
if ((ret = wine_server_call( req )) == STATUS_SUCCESS)
|
||||
{
|
||||
- *(DWORD *)ProcessInformation = !reply->debugger_present;
|
||||
+ *(DWORD *)ProcessInformation = reply->debug_children;
|
||||
}
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
|
||||
index 88d0417..a521447 100644
|
||||
--- a/dlls/ntdll/tests/info.c
|
||||
+++ b/dlls/ntdll/tests/info.c
|
||||
@@ -1345,11 +1345,7 @@ static void test_query_process_debug_flags(int argc, char **argv)
|
||||
status = pNtQueryInformationProcess(pi.hProcess, ProcessDebugFlags,
|
||||
&debug_flags, sizeof(debug_flags), NULL);
|
||||
ok(!status, "NtQueryInformationProcess failed, status %#x.\n", status);
|
||||
- if (!expected_flags)
|
||||
- ok(debug_flags == expected_flags, "Expected flag %x, got %x.\n", expected_flags, debug_flags);
|
||||
- else
|
||||
- todo_wine
|
||||
- ok(debug_flags == expected_flags, "Expected flag %x, got %x.\n", expected_flags, debug_flags);
|
||||
+ ok(debug_flags == expected_flags, "Expected flag %x, got %x.\n", expected_flags, debug_flags);
|
||||
|
||||
if (!(test_flags[i] & CREATE_SUSPENDED))
|
||||
{
|
||||
@@ -1379,11 +1375,7 @@ static void test_query_process_debug_flags(int argc, char **argv)
|
||||
status = pNtQueryInformationProcess(pi.hProcess, ProcessDebugFlags,
|
||||
&debug_flags, sizeof(debug_flags), NULL);
|
||||
ok(!status, "NtQueryInformationProcess failed, status %#x.\n", status);
|
||||
- if (expected_flags)
|
||||
- ok(debug_flags == expected_flags, "Expected flag %x, got %x.\n", expected_flags, debug_flags);
|
||||
- else
|
||||
- todo_wine
|
||||
- ok(debug_flags == expected_flags, "Expected flag %x, got %x.\n", expected_flags, debug_flags);
|
||||
+ ok(debug_flags == expected_flags, "Expected flag %x, got %x.\n", expected_flags, debug_flags);
|
||||
|
||||
ret = DebugActiveProcess(pi.dwProcessId);
|
||||
ok(ret, "DebugActiveProcess failed, last error %#x.\n", GetLastError());
|
||||
diff --git a/server/debugger.c b/server/debugger.c
|
||||
index 374f2ad..810e8d3 100644
|
||||
--- a/server/debugger.c
|
||||
+++ b/server/debugger.c
|
||||
@@ -443,6 +443,7 @@ static int debugger_attach( struct process *process, struct thread *debugger )
|
||||
resume_process( process );
|
||||
return 0;
|
||||
}
|
||||
+ process->debug_children = 0;
|
||||
return 1;
|
||||
|
||||
error:
|
||||
@@ -483,7 +484,6 @@ int debugger_detach( struct process *process, struct thread *debugger )
|
||||
|
||||
/* remove relationships between process and its debugger */
|
||||
process->debugger = NULL;
|
||||
- process->debug_children = 0;
|
||||
if (!set_process_debug_flag( process, 0 )) clear_error(); /* ignore error */
|
||||
|
||||
/* from this function */
|
||||
diff --git a/server/process.c b/server/process.c
|
||||
index e00b429..8433002 100644
|
||||
--- a/server/process.c
|
||||
+++ b/server/process.c
|
||||
@@ -513,7 +513,7 @@ struct thread *create_process( int fd, struct thread *parent_thread, int inherit
|
||||
process->priority = PROCESS_PRIOCLASS_NORMAL;
|
||||
process->suspend = 0;
|
||||
process->is_system = 0;
|
||||
- process->debug_children = 0;
|
||||
+ process->debug_children = 1;
|
||||
process->is_terminating = 0;
|
||||
process->job = NULL;
|
||||
process->console = NULL;
|
||||
@@ -1228,7 +1228,7 @@ DECL_HANDLER(new_process)
|
||||
else if (parent->debugger && parent->debug_children)
|
||||
{
|
||||
set_process_debugger( process, parent->debugger );
|
||||
- process->debug_children = 1;
|
||||
+ /* debug_children is set to 1 by default */
|
||||
}
|
||||
|
||||
if (!(req->create_flags & CREATE_NEW_PROCESS_GROUP))
|
||||
@@ -1359,6 +1359,7 @@ DECL_HANDLER(get_process_info)
|
||||
reply->end_time = process->end_time;
|
||||
reply->cpu = process->cpu;
|
||||
reply->debugger_present = !!process->debugger;
|
||||
+ reply->debug_children = process->debug_children;
|
||||
release_object( process );
|
||||
}
|
||||
}
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 04814c9..bfb9089 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -818,7 +818,8 @@ struct rawinput_device
|
||||
int exit_code; /* process exit code */
|
||||
int priority; /* priority class */
|
||||
cpu_type_t cpu; /* CPU that this process is running on */
|
||||
- int debugger_present; /* process is being debugged */
|
||||
+ short int debugger_present; /* process is being debugged */
|
||||
+ short int debug_children; /* inherit debugger to child processes */
|
||||
@END
|
||||
|
||||
|
||||
--
|
||||
2.6.2
|
||||
|
@@ -1,61 +0,0 @@
|
||||
From f70ddf43d18cfeae70f0021005048c628b08c2b3 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 29 Nov 2015 00:34:04 +0100
|
||||
Subject: ntdll: Allow to set debug registers separately in NtSetContextThread.
|
||||
|
||||
---
|
||||
dlls/ntdll/signal_x86_64.c | 28 ++++++++++++++++++++++++++--
|
||||
1 file changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 524de68..abe2072 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -1800,11 +1800,12 @@ __ASM_GLOBAL_FUNC( RtlCaptureContext,
|
||||
"ret" );
|
||||
|
||||
/***********************************************************************
|
||||
- * set_cpu_context
|
||||
+ * __wine_restore_regs
|
||||
*
|
||||
* Set the new CPU context.
|
||||
*/
|
||||
-__ASM_GLOBAL_FUNC( set_cpu_context,
|
||||
+extern void __wine_restore_regs( const CONTEXT *context );
|
||||
+__ASM_GLOBAL_FUNC( __wine_restore_regs,
|
||||
"subq $40,%rsp\n\t"
|
||||
__ASM_CFI(".cfi_adjust_cfa_offset 40\n\t")
|
||||
"ldmxcsr 0x34(%rdi)\n\t" /* context->MxCsr */
|
||||
@@ -1852,6 +1853,29 @@ __ASM_GLOBAL_FUNC( set_cpu_context,
|
||||
"movq 0xb0(%rdi),%rdi\n\t" /* context->Rdi */
|
||||
"iretq" );
|
||||
|
||||
+
|
||||
+/***********************************************************************
|
||||
+ * set_cpu_context
|
||||
+ *
|
||||
+ * Set the new CPU context. Used by NtSetContextThread.
|
||||
+ */
|
||||
+void set_cpu_context( const CONTEXT *context )
|
||||
+{
|
||||
+ DWORD flags = context->ContextFlags & ~CONTEXT_AMD64;
|
||||
+
|
||||
+ if (flags & CONTEXT_DEBUG_REGISTERS)
|
||||
+ FIXME( "setting debug registers not supported\n" );
|
||||
+
|
||||
+ if (flags & CONTEXT_FULL)
|
||||
+ {
|
||||
+ if (!(flags & CONTEXT_CONTROL))
|
||||
+ FIXME( "setting partial context (%x) not supported\n", flags );
|
||||
+ else
|
||||
+ __wine_restore_regs( context );
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
/***********************************************************************
|
||||
* copy_context
|
||||
*
|
||||
--
|
||||
2.6.2
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [39454] Allow to set debug registers separately in NtSetContextThread
|
@@ -0,0 +1,41 @@
|
||||
From f9279651171338a8e147a4468e175c1b30861b32 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 20 Dec 2015 22:13:24 +0100
|
||||
Subject: nvencodeapi: Add debian specific paths to native library.
|
||||
|
||||
---
|
||||
dlls/nvencodeapi/nvencodeapi.c | 18 +++++++++++++++++-
|
||||
1 file changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/nvencodeapi/nvencodeapi.c b/dlls/nvencodeapi/nvencodeapi.c
|
||||
index 7a0f531..557c6ae 100644
|
||||
--- a/dlls/nvencodeapi/nvencodeapi.c
|
||||
+++ b/dlls/nvencodeapi/nvencodeapi.c
|
||||
@@ -324,7 +324,23 @@ NVENCSTATUS WINAPI NvEncodeAPICreateInstance(NV_ENCODE_API_FUNCTION_LIST *functi
|
||||
|
||||
static BOOL load_nvencode(void)
|
||||
{
|
||||
- libnvidia_encode_handle = wine_dlopen("libnvidia-encode.so", RTLD_NOW, NULL, 0);
|
||||
+ static const char *libname[] =
|
||||
+ {
|
||||
+ "libnvidia-encode.so",
|
||||
+ #ifdef __i386__
|
||||
+ "/usr/lib/i386-linux-gnu/nvidia/current/libnvidia-encode.so",
|
||||
+ #elif defined __x86_64__
|
||||
+ "/usr/lib/x86_64-linux-gnu/nvidia/current/libnvidia-encode.so",
|
||||
+ #endif
|
||||
+ };
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < sizeof(libname)/sizeof(libname[0]); i++)
|
||||
+ {
|
||||
+ libnvidia_encode_handle = wine_dlopen(libname[i], RTLD_NOW, NULL, 0);
|
||||
+ if (libnvidia_encode_handle) break;
|
||||
+ }
|
||||
+
|
||||
if (!libnvidia_encode_handle)
|
||||
{
|
||||
FIXME("Wine cannot find the libnvidia-encode.so library, NVIDIA video encoding support disabled.\n");
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -0,0 +1,153 @@
|
||||
From 279a1c527003811333646bcb827fda38618d8f21 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 20 Dec 2015 22:15:45 +0100
|
||||
Subject: nvencodeapi: Add support for version 6.0.
|
||||
|
||||
---
|
||||
dlls/nvencodeapi/nvencodeapi.c | 51 ++++++++++++++++++++++++++++++++----------
|
||||
include/nvencodeapi.h | 21 +++++++++++++++--
|
||||
2 files changed, 58 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/dlls/nvencodeapi/nvencodeapi.c b/dlls/nvencodeapi/nvencodeapi.c
|
||||
index 557c6ae..1a03a0b 100644
|
||||
--- a/dlls/nvencodeapi/nvencodeapi.c
|
||||
+++ b/dlls/nvencodeapi/nvencodeapi.c
|
||||
@@ -264,18 +264,50 @@ static NVENCSTATUS WINAPI NvEncReconfigureEncoder(void *encoder, NV_ENC_RECONFIG
|
||||
return origFunctions.nvEncReconfigureEncoder(encoder, reInitEncodeParams);
|
||||
}
|
||||
|
||||
+static NVENCSTATUS WINAPI NvEncCreateMVBuffer(void *encoder, NV_ENC_CREATE_MV_BUFFER *createMVBufferParams)
|
||||
+{
|
||||
+ TRACE("(%p, %p)\n", encoder, createMVBufferParams);
|
||||
+ return origFunctions.nvEncCreateMVBuffer(encoder, createMVBufferParams);
|
||||
+}
|
||||
+
|
||||
+static NVENCSTATUS WINAPI NvEncDestroyMVBuffer(void *encoder, NV_ENC_OUTPUT_PTR MVBuffer)
|
||||
+{
|
||||
+ TRACE("(%p, %p)\n", encoder, MVBuffer);
|
||||
+ return origFunctions.nvEncDestroyMVBuffer(encoder, MVBuffer);
|
||||
+}
|
||||
+
|
||||
+static NVENCSTATUS WINAPI NvEncRunMotionEstimationOnly(void *encoder, NV_ENC_MEONLY_PARAMS *MEOnlyParams)
|
||||
+{
|
||||
+ TRACE("(%p, %p)\n", encoder, MEOnlyParams);
|
||||
+ return origFunctions.nvEncRunMotionEstimationOnly(encoder, MEOnlyParams);
|
||||
+}
|
||||
|
||||
NVENCSTATUS WINAPI NvEncodeAPICreateInstance(NV_ENCODE_API_FUNCTION_LIST *functionList)
|
||||
{
|
||||
+ NVENCSTATUS status;
|
||||
+
|
||||
TRACE("(%p)\n", functionList);
|
||||
|
||||
if (!functionList)
|
||||
return NV_ENC_ERR_INVALID_PTR;
|
||||
|
||||
- /* FIXME: Provide forward/backwards compatibility */
|
||||
- if (functionList->version != NV_ENCODE_API_FUNCTION_LIST_VER)
|
||||
- FIXME("Application expects nvencodeapi version %x, but wrapper only supports version %x\n",
|
||||
- functionList->version, NV_ENCODE_API_FUNCTION_LIST_VER);
|
||||
+ /* we currently support 5.0 and 6.0 */
|
||||
+ if (functionList->version != NV_ENCODE_API_FUNCTION_LIST_VER &&
|
||||
+ functionList->version != NV_ENCODE_API_FUNCTION_LIST_VER_6_0)
|
||||
+ {
|
||||
+ FIXME("Application requested nvencodeapi version %x which is not supported yet\n",
|
||||
+ functionList->version);
|
||||
+ return NV_ENC_ERR_INVALID_VERSION;
|
||||
+ }
|
||||
+
|
||||
+ memset(&origFunctions, 0, sizeof(origFunctions));
|
||||
+ origFunctions.version = functionList->version;
|
||||
+ status = pNvEncodeAPICreateInstance(&origFunctions);
|
||||
+ if (status)
|
||||
+ {
|
||||
+ FIXME("Failed to create native encoder for version %x\n", functionList->version);
|
||||
+ return status;
|
||||
+ }
|
||||
|
||||
/* set all function points and reserved values to zero */
|
||||
memset(functionList, 0, sizeof(*functionList));
|
||||
@@ -316,6 +348,9 @@ NVENCSTATUS WINAPI NvEncodeAPICreateInstance(NV_ENCODE_API_FUNCTION_LIST *functi
|
||||
SET_FUNCPTR(EncRegisterResource);
|
||||
SET_FUNCPTR(EncUnregisterResource);
|
||||
SET_FUNCPTR(EncReconfigureEncoder);
|
||||
+ SET_FUNCPTR(EncCreateMVBuffer); /* available since 6.0 */
|
||||
+ SET_FUNCPTR(EncDestroyMVBuffer); /* available since 6.0 */
|
||||
+ SET_FUNCPTR(EncRunMotionEstimationOnly); /* available since 6.0 */
|
||||
|
||||
#undef SET_FUNCPTR
|
||||
|
||||
@@ -354,14 +389,6 @@ static BOOL load_nvencode(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- memset(&origFunctions, 0, sizeof(origFunctions));
|
||||
- origFunctions.version = NV_ENCODE_API_FUNCTION_LIST_VER;
|
||||
- if (pNvEncodeAPICreateInstance(&origFunctions))
|
||||
- {
|
||||
- FIXME("Failed to get function pointers.\n");
|
||||
- return FALSE;
|
||||
- }
|
||||
-
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
diff --git a/include/nvencodeapi.h b/include/nvencodeapi.h
|
||||
index 45e9fb9..3e44dd3 100644
|
||||
--- a/include/nvencodeapi.h
|
||||
+++ b/include/nvencodeapi.h
|
||||
@@ -27,6 +27,12 @@
|
||||
#define NVENCAPI_VERSION ((NVENCAPI_MAJOR_VERSION << 4) | (NVENCAPI_MINOR_VERSION))
|
||||
#define NVENCAPI_STRUCT_VERSION(type, version) (uint32_t)(sizeof(type) | ((version)<<16) | (NVENCAPI_VERSION << 24))
|
||||
|
||||
+/* the version scheme changed between 5.0 and 6.0 */
|
||||
+#define NVENCAPI_MAJOR_VERSION_6 6
|
||||
+#define NVENCAPI_MINOR_VERSION_0 0
|
||||
+#define NVENCAPI_VERSION_6_0 (NVENCAPI_MAJOR_VERSION_6 | (NVENCAPI_MINOR_VERSION_0 << 24))
|
||||
+#define NVENCAPI_STRUCT_VERSION_6_0(ver) ((uint32_t)NVENCAPI_VERSION_6_0 | ((ver)<<16) | (0x7 << 28))
|
||||
+
|
||||
#define NVENCSTATUS int
|
||||
#define NV_ENC_SUCCESS 0
|
||||
#define NV_ENC_ERR_INVALID_PTR 6
|
||||
@@ -59,6 +65,8 @@ typedef struct _NV_ENC_EVENT_PARAMS NV_ENC_EVENT_PARAMS;
|
||||
typedef struct _NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS;
|
||||
typedef struct _NV_ENC_BUFFER_FORMAT NV_ENC_BUFFER_FORMAT;
|
||||
typedef struct _NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS;
|
||||
+typedef struct _NV_ENC_CREATE_MV_BUFFER NV_ENC_CREATE_MV_BUFFER;
|
||||
+typedef struct _NV_ENC_MEONLY_PARAMS NV_ENC_MEONLY_PARAMS;
|
||||
|
||||
typedef struct _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE
|
||||
{
|
||||
@@ -230,10 +238,15 @@ typedef struct __NV_ENCODE_API_FUNCTION_LIST
|
||||
NVENCSTATUS (WINAPI *nvEncRegisterResource)(void *encoder, NV_ENC_REGISTER_RESOURCE *registerResParams);
|
||||
NVENCSTATUS (WINAPI *nvEncUnregisterResource)(void *encoder, NV_ENC_REGISTERED_PTR registeredRes);
|
||||
NVENCSTATUS (WINAPI *nvEncReconfigureEncoder)(void *encoder, NV_ENC_RECONFIGURE_PARAMS *reInitEncodeParams);
|
||||
- void *reserved2[285];
|
||||
+ void *reserved1;
|
||||
+ NVENCSTATUS (WINAPI *nvEncCreateMVBuffer)(void *encoder, NV_ENC_CREATE_MV_BUFFER *createMVBufferParams);
|
||||
+ NVENCSTATUS (WINAPI *nvEncDestroyMVBuffer)(void *encoder, NV_ENC_OUTPUT_PTR MVBuffer);
|
||||
+ NVENCSTATUS (WINAPI *nvEncRunMotionEstimationOnly)(void *encoder, NV_ENC_MEONLY_PARAMS *MEOnlyParams);
|
||||
+ void *reserved2[281];
|
||||
} NV_ENCODE_API_FUNCTION_LIST;
|
||||
|
||||
#define NV_ENCODE_API_FUNCTION_LIST_VER NVENCAPI_STRUCT_VERSION(NV_ENCODE_API_FUNCTION_LIST, 2)
|
||||
+#define NV_ENCODE_API_FUNCTION_LIST_VER_6_0 NVENCAPI_STRUCT_VERSION_6_0(2)
|
||||
|
||||
typedef struct __LINUX_NV_ENCODE_API_FUNCTION_LIST
|
||||
{
|
||||
@@ -275,7 +288,11 @@ typedef struct __LINUX_NV_ENCODE_API_FUNCTION_LIST
|
||||
NVENCSTATUS (*nvEncRegisterResource)(void *encoder, NV_ENC_REGISTER_RESOURCE *registerResParams);
|
||||
NVENCSTATUS (*nvEncUnregisterResource)(void *encoder, NV_ENC_REGISTERED_PTR registeredRes);
|
||||
NVENCSTATUS (*nvEncReconfigureEncoder)(void *encoder, NV_ENC_RECONFIGURE_PARAMS *reInitEncodeParams);
|
||||
- void *reserved2[285];
|
||||
+ void *reserved1;
|
||||
+ NVENCSTATUS (*nvEncCreateMVBuffer)(void *encoder, NV_ENC_CREATE_MV_BUFFER *createMVBufferParams);
|
||||
+ NVENCSTATUS (*nvEncDestroyMVBuffer)(void *encoder, NV_ENC_OUTPUT_PTR MVBuffer);
|
||||
+ NVENCSTATUS (*nvEncRunMotionEstimationOnly)(void *encoder, NV_ENC_MEONLY_PARAMS *MEOnlyParams);
|
||||
+ void *reserved2[281];
|
||||
} LINUX_NV_ENCODE_API_FUNCTION_LIST;
|
||||
|
||||
#endif /* __WINE_NVENCODEAPI_H */
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -1,23 +1,37 @@
|
||||
From 8981a08726f04d4c0f8360dc469b532724199d62 Mon Sep 17 00:00:00 2001
|
||||
From 2db198094888b7de074fcac0f27758364d07ef55 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 10 Apr 2015 08:17:22 +0200
|
||||
Subject: Revert "opengl32: Return a NULL pointer for functions requiring
|
||||
unsupported or disabled extensions."
|
||||
|
||||
This reverts commit bfd4836867d6d90eaeae6ccbc02e37678b59b8f1.
|
||||
This reverts commit bfd4836867d6d90eaeae6ccbc02e37678b59b8f1 and following changes.
|
||||
---
|
||||
dlls/opengl32/wgl.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
dlls/opengl32/wgl.c | 17 -----------------
|
||||
1 file changed, 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c
|
||||
index 9482c75..1903807 100644
|
||||
index f3f78ef..75d3796 100644
|
||||
--- a/dlls/opengl32/wgl.c
|
||||
+++ b/dlls/opengl32/wgl.c
|
||||
@@ -875,10 +875,7 @@ PROC WINAPI wglGetProcAddress( LPCSTR name )
|
||||
@@ -877,24 +877,7 @@ PROC WINAPI wglGetProcAddress( LPCSTR name )
|
||||
void *driver_func = funcs->wgl.p_wglGetProcAddress( name );
|
||||
|
||||
if (!is_extension_supported(ext_ret->extension))
|
||||
- {
|
||||
- unsigned int i;
|
||||
- static const struct { const char *name, *alt; } alternatives[] =
|
||||
- {
|
||||
- { "glCopyTexSubImage3DEXT", "glCopyTexSubImage3D" }, /* needed by RuneScape */
|
||||
- { "glVertexAttribDivisor", "glVertexAttribDivisorARB"}, /* needed by Caffeine */
|
||||
- };
|
||||
-
|
||||
- for (i = 0; i < sizeof(alternatives)/sizeof(alternatives[0]); i++)
|
||||
- {
|
||||
- if (strcmp( name, alternatives[i].name )) continue;
|
||||
- WARN("Extension %s required for %s not supported, trying %s\n",
|
||||
- ext_ret->extension, name, alternatives[i].alt );
|
||||
- return wglGetProcAddress( alternatives[i].alt );
|
||||
- }
|
||||
WARN("Extension %s required for %s not supported\n", ext_ret->extension, name);
|
||||
- return NULL;
|
||||
- }
|
||||
@@ -25,5 +39,5 @@ index 9482c75..1903807 100644
|
||||
if (driver_func == NULL)
|
||||
{
|
||||
--
|
||||
2.3.5
|
||||
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