Compare commits

...

272 Commits

Author SHA1 Message Date
Sebastian Lackner
525b5f5dd3 Release 1.7.39. 2015-03-22 04:06:36 +01:00
Sebastian Lackner
8c880d262f server-Shared_Memory: Cache the result of GetForegroundWindow. 2015-03-21 22:47:01 +01:00
Sebastian Lackner
d1451cd34f dxva2-Video_Decoder: Use a bigger estimation for the maximum slice size (required for some HD videos). 2015-03-21 20:35:42 +01:00
Sebastian Lackner
b0cf640a90 wined3d-NormalMatrix: Fix calculation of transpose matrix. 2015-03-21 20:27:58 +01:00
Sebastian Lackner
8751f075a1 Added patches to get rid of wineserver call for GetActiveWindow, GetFocus, GetCapture. 2015-03-21 10:00:53 +01:00
Sebastian Lackner
2f3d51e7f4 Fix 'available for more data' field in user32 user_thread_info structure. 2015-03-21 05:32:24 +01:00
Sebastian Lackner
d7d95ca4b6 server-Shared_Memory: Add a winediag warning message when shared memory is used. 2015-03-21 00:14:26 +01:00
Sebastian Lackner
e2c1e62662 Added patch to implement SetupLogError[A|W] and Setup[Open|Close]Log. 2015-03-20 22:52:47 +01:00
Sebastian Lackner
c5f0106cd6 gdiplus: Add missing returns in initialize_decoder_wic. 2015-03-20 22:39:16 +01:00
Sebastian Lackner
483cf18923 Added patch to fix regression causing black screen on startup. 2015-03-20 22:17:45 +01:00
Sebastian Lackner
dab39259ab Added patch to fix regression causing too dark/missing textures in several games. 2015-03-20 21:46:12 +01:00
Sebastian Lackner
5ee34a9309 Added patch to allow to edit winecfg library override by double clicking. 2015-03-20 19:07:59 +01:00
Sebastian Lackner
468a035b3e Added patch with stub for wininet.ParseX509EncodedCertificateForListBoxEntry. 2015-03-20 18:27:18 +01:00
Sebastian Lackner
486c1d6f46 Added patch to implement combase.WindowsSubstring function. 2015-03-20 17:33:05 +01:00
Sebastian Lackner
0958d303e9 Rebase against upstream changes. 2015-03-20 17:01:00 +01:00
Sebastian Lackner
a526f3eb07 ws2_32-TransmitFile: Set the event on the server side. 2015-03-20 06:57:46 +01:00
Sebastian Lackner
42b6978464 Removed first patch of series ws2_32_WriteWatches (accepted upstream). 2015-03-19 20:23:42 +01:00
Sebastian Lackner
5fe90fc2e8 Added patch to implement shared memory wineserver communication for various user32 functions. 2015-03-19 03:13:07 +01:00
Sebastian Lackner
1c4a8d2f9a Removed patch to only zero the buffer up 32767 bytes in GetTempPathW (accepted upstream). 2015-03-18 18:16:23 +01:00
Sebastian Lackner
6308175bc4 user32-Key_State: Fix (harmless) issue in the structure layout of user_thread_info. 2015-03-18 16:07:35 +01:00
Sebastian Lackner
7a53f1fbc5 server-Key_State: Fix lock_count when reassigning a different thread input to a queue. 2015-03-18 01:44:00 +01:00
Sebastian Lackner
014ef86645 Update patchset for ntdll-RtlUnwindEx to fix an issue with dwarf handling (fixes Wine Staging Bug #170). 2015-03-18 00:27:36 +01:00
Sebastian Lackner
2dd6d5e049 Added patch to only zero the buffer up 32767 bytes in GetTempPathW. 2015-03-17 19:26:00 +01:00
Sebastian Lackner
0486bc809f Remove various patches (accepted upstream). 2015-03-17 19:13:04 +01:00
Sebastian Lackner
de8e8a4079 Added patch with additional tests for server-PeekMessage. 2015-03-17 04:35:13 +01:00
Sebastian Lackner
20286952db Fix a build failure on MacOS caused by using of strndup in the server-Inherited_ACLs patchset. 2015-03-17 01:06:45 +01:00
Sebastian Lackner
17a3d8c2ea Rebase against upstream changes. 2015-03-16 17:13:28 +01:00
Sebastian Lackner
9fd51f90ef dinput-Events: Since some games use different code to poll for input events, partially restore code from old version of the patch. 2015-03-16 15:46:47 +01:00
Sebastian Lackner
d807c55e94 Added patch to improve stub for ID3DXEffectImpl_CloneEffect, mark upstream bug 25138 as fixes. 2015-03-16 08:24:51 +01:00
Sebastian Lackner
88f4c9ec57 Fix some typos. 2015-03-16 08:06:52 +01:00
Sebastian Lackner
aa51a47238 Added patch to implement _ismbckata and _mbctohira, moreover fix wrong return value of _ismbckata. 2015-03-16 07:49:25 +01:00
Sebastian Lackner
ec4e719cd6 Added patch to fix wrong return values of RtlFindActivationContextSectionString for NULL data (by Mark Jansen). 2015-03-16 03:48:50 +01:00
Erich E. Hoover
547d1a988d Fix Wine Staging Bug #162 - Caesar III demo installer crashes. 2015-03-15 15:35:20 -06:00
Sebastian Lackner
d57ae8c150 Added patch to invalidate key state cache globally after calling LL hooks. 2015-03-15 05:49:45 +01:00
Sebastian Lackner
0c660b9e3a Added patch for stub of PowerCreateRequest. 2015-03-15 01:45:31 +01:00
Sebastian Lackner
ea89242465 Added patch to silence repeated 'Unhandled blend factor 0' FIXME messages. 2015-03-15 01:34:10 +01:00
Sebastian Lackner
f1f051f491 Added patch to modify GetMessage to return already seen messages with higher priority. 2015-03-15 01:09:36 +01:00
Sebastian Lackner
de15f131bc Added patch to allow to query for d3dx9_26 specific ID3DXEffect interface. 2015-03-14 17:02:19 +01:00
Sebastian Lackner
48b14fe20b d3dx9_{24,25}-ID3DXEffect: Update patches to wrap even more functions. 2015-03-14 07:02:23 +01:00
Sebastian Lackner
dfd778f392 Added patch to fix wrong version of ID3DXEffect interface for d3dx9_24. 2015-03-14 05:03:07 +01:00
Sebastian Lackner
74f4207916 Added patch to fix wrong version of ID3DXEffect interface for d3dx9_25. 2015-03-14 04:50:52 +01:00
Sebastian Lackner
4bfaa67fea Added patch to avoid crash in d3d9 tests by skipping when texture/surface creation fails. 2015-03-14 02:35:58 +01:00
Sebastian Lackner
70c01d5385 ntoskrnl-Stubs: It is no longer necessary to remove duplicate definitions, this was already fixed upstream. 2015-03-13 18:43:39 +01:00
Sebastian Lackner
e759eff059 nvcuda-CUDA_Support: Create new file dlls/nvcuda/internal.c with appropriate file mode. 2015-03-13 18:26:42 +01:00
Sebastian Lackner
c9e146259d ntdll-ThreadTime: Do not change the mode of files (thanks Qian Hong). 2015-03-13 18:17:16 +01:00
Sebastian Lackner
3c7f5898c0 Removed patches for SLGetWindowsInformationDWORD (accepted upstream). 2015-03-13 15:09:40 +01:00
Sebastian Lackner
5b7dc79ea0 Added patch to implement better stub function for NtQueryInformationJobObject. 2015-03-12 22:28:18 +01:00
Sebastian Lackner
8c17307f95 Added patch to implement proper locking of keystate and synchronization with desktop thread. 2015-03-12 03:14:38 +01:00
Sebastian Lackner
513ca1f4ba Rebase against upstream changes. 2015-03-11 17:03:50 +01:00
Sebastian Lackner
28ddd8d7d5 ntdll-LZNT1_Compression: Fix test failures on systems with broken RtlDecompressBuffer. 2015-03-10 20:13:07 +01:00
Sebastian Lackner
4b41a20552 Change dependency order of ntdll-LZNT1_Compression and ntdll-RtlIpStringToAddress. 2015-03-10 18:36:54 +01:00
Sebastian Lackner
82b52e11c3 Added patch with tests for VerQueryValueA (by Mark Jansen). 2015-03-10 18:16:26 +01:00
Sebastian Lackner
538f3aaaea Rebase against upstream changes. 2015-03-10 17:50:41 +01:00
Sebastian Lackner
ffdcf51981 Added patch to fix multithreading issues with fullscreen clipping. 2015-03-10 17:42:08 +01:00
Sebastian Lackner
a812ef647e Added patch for tests of RtlIpv6StringToAddress, RtlIpv{4,6}StringToAddressEx (by Mark Jansen). 2015-03-09 19:23:54 +01:00
Sebastian Lackner
0b477b3ef1 Staging: Update --check-libs to show information about libva libs. 2015-03-09 16:55:13 +01:00
Sebastian Lackner
da0ea43746 Release 1.7.38. 2015-03-07 23:10:42 +01:00
Sebastian Lackner
8afa18829a winex11-Limited_Resolutions: Temporarily disable patchset.
The patchset itself should be fine, but statically linking against libXNVCtrl
might be problematic because of the different license. Moreover, on Debian it
is even a bit more complicated because a dynamic library is provided. Since we
do not want to have a fixed dependency on Nvidia-specific packages (winex11
would depend on it) we will have to investigate this a bit more...
2015-03-07 21:26:33 +01:00
Sebastian Lackner
fa3bf612ea Mark one additional upstream bug as fixed. 2015-03-07 20:47:26 +01:00
Sebastian Lackner
521e8aa38c Added patch to process APC calls before starting process. 2015-03-07 18:14:35 +01:00
Sebastian Lackner
c1ee00741d debian/control: Add nvidia-settings as build dependency (for libXNVCtrl.a). 2015-03-07 15:02:18 +01:00
Sebastian Lackner
9127b8c30a winex11-Limited_Resolutions: Actually show the winediag message. 2015-03-07 07:36:00 +01:00
Sebastian Lackner
41cad2ab96 winex11-Limited_Resolutions: Clean up configure check. 2015-03-07 07:06:41 +01:00
Sebastian Lackner
6d2bd768c8 Added patch to implement cuModuleLoad wrapper function. 2015-03-07 06:21:57 +01:00
Sebastian Lackner
17eccd79dc debian/changelog: Update changelog, new patches for TransmitFile were already added. 2015-03-07 05:15:45 +01:00
Erich E. Hoover
def2378b7a Added patch to report the correct refresh rates for some NVIDIA cards. 2015-03-06 15:32:49 -07:00
Sebastian Lackner
9e39b598ad ws2_32-TransmitFile: Use correct type for return value of WS2_send, fix check in follow-up patch. 2015-03-06 21:04:56 +01:00
Sebastian Lackner
05cb27bb21 ws2_32-TransmitFile: Various fixes and style improvements. 2015-03-06 19:58:39 +01:00
Sebastian Lackner
89e58b5105 patchupdate.py: Add back code to query wine bugzilla, show upstream bug status during patch updater step. 2015-03-06 00:25:45 +01:00
Sebastian Lackner
0f1cce7ba2 Removed patch to fix parameters for ConvertToIndexedBlendedMesh stub (accepted upstream). 2015-03-05 17:39:14 +01:00
Erich E. Hoover
2cba978c4d Fix 64-bit compile warnings in the Hearthstone patch. 2015-03-04 23:25:41 -07:00
Erich E. Hoover
150c6dce28 Long overdue update to the TransmitFile patches. 2015-03-04 21:28:37 -07:00
Sebastian Lackner
ef97a06e99 winex11-Thread_data: Add reference to upstream bug report. 2015-03-05 02:45:23 +01:00
Sebastian Lackner
48c5b12ec2 ntdll-FD_Cache: Update patchset with latest version. 2015-03-05 02:15:11 +01:00
Sebastian Lackner
3c1f26970c d3dxof-Cleanup: Update patchset to use assignment instead of memcpy. 2015-03-04 23:42:40 +01:00
Sebastian Lackner
20e97e50b3 Added patch to replace hardcoded values with sizeof(GUID) for d3dxof. 2015-03-04 21:31:59 +01:00
Sebastian Lackner
e3616aa15c Added patch to increase wineconsole commandline buffer size. 2015-03-04 21:24:11 +01:00
Sebastian Lackner
e7b99e4558 debian/control: Add recommendation for optional runtime dependency libva-drm1. 2015-03-04 19:47:16 +01:00
Sebastian Lackner
c02bdae45d dxva2-Video_Decoder: Various improvements to dxva2 vaapi support. 2015-03-04 19:36:04 +01:00
Sebastian Lackner
4a8df258cd Removed multiple patches (accepted upstream). 2015-03-04 17:56:00 +01:00
Sebastian Lackner
6b31c6f9e2 ntdll-Vista_Threadpool: Various cleanup and splitting into smaller patchsets. 2015-03-04 14:19:38 +01:00
Sebastian Lackner
274fe74055 Added patches to improve performance by reusing old async IO structure if possible. 2015-03-03 19:35:46 +01:00
Sebastian Lackner
db827ac766 kernel32-Named_Pipe: Remove two todo_wine's - somehow magically fixed by the recent changes to wine APC handling. 2015-03-03 18:37:29 +01:00
Sebastian Lackner
4d3a96536e Removed various patches (accepted upstream), disabled patchset for TransmitFile (rewrite in progress). 2015-03-03 18:18:58 +01:00
Sebastian Lackner
cb7f47b637 ntdll-NtQuerySection: Fix all field names in SECTION_IMAGE_INFORMATION structure. 2015-03-03 00:42:30 +01:00
Erich E. Hoover
6038eeee95 quartz/strmbase: Added patch to fix MediaSeekingPassThru_GetPositions when the pins are unconnected. 2015-03-02 11:09:07 -07:00
Sebastian Lackner
ce2930fb30 Added patch to fix crash when trying to switch back to a 16-bit stack. 2015-03-02 16:25:46 +01:00
Sebastian Lackner
e86c1653d8 Removed patches to use interlocked functions for library refcounts (accepted upstream). 2015-03-02 16:17:41 +01:00
Sebastian Lackner
3efff4cb88 Added patch to correct DDSCAPS2 and DDSURFACEDESC2 structure (by Amine Khaldi, wine-patched/pull/7). 2015-03-01 19:10:52 +01:00
Sebastian Lackner
985f04d9ba Added patch to avoid unloading msctf library while textservices are activated. 2015-03-01 05:10:43 +01:00
Sebastian Lackner
6cf3424356 Added patches to fix race-condition when closing browseui IProcessDialog. 2015-03-01 04:10:54 +01:00
Sebastian Lackner
67e8c4d0a9 Added patch to make GetLogicalProcessorInformationEx a stub which returns TRUE. 2015-03-01 01:12:40 +01:00
Sebastian Lackner
6c1e7ddfb2 Added patches to make various functions in d3d8 / ddraw hotpatchable (required for fraps). 2015-02-28 22:00:48 +01:00
Sebastian Lackner
99bf902a97 Added patch to fix crash in clip_cursor_notify caused by uninitialized TLS. 2015-02-28 21:55:43 +01:00
Sebastian Lackner
c9d3b931f7 Added patch to implement support for waiting on job object. 2015-02-28 07:01:09 +01:00
Sebastian Lackner
d4871a1b6e server-JobObjects: Fix a wineserver crash when terminated processes are added to a job. 2015-02-28 06:52:37 +01:00
Sebastian Lackner
1564f9cd05 Added patch with tests for waiting on a job object. 2015-02-28 06:10:59 +01:00
Sebastian Lackner
aac61f746b Added patch to implement support for NULL job handles in IsProcessInJob. 2015-02-28 05:19:50 +01:00
Sebastian Lackner
348fe1182f Added patch to implement PROGDLG_AUTOTIME for IProgressDialog. 2015-02-28 02:48:26 +01:00
Sebastian Lackner
96bb4ddd1d Add missing file... don't ask. 2015-02-28 02:01:53 +01:00
Sebastian Lackner
ec8049fcf5 Added patch to implement JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE. 2015-02-28 01:52:48 +01:00
Sebastian Lackner
e7b9fc8d16 Added patch to properly track handle count of wineserver objects. 2015-02-28 01:38:49 +01:00
Sebastian Lackner
8cc25d0fe4 Added patch for job object completion support. 2015-02-28 01:20:47 +01:00
Sebastian Lackner
cd62b5bedc Added patch in order to allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. 2015-02-28 00:36:25 +01:00
Sebastian Lackner
9e9b76a6a9 shell32-Progress_Dialog: Remove useless cast. 2015-02-28 00:06:27 +01:00
Sebastian Lackner
5d4b0f6a7b browseui-Progress_Dialog: Make sure that a valid resource id is passed in IProgressDialog::SetAnimation. 2015-02-27 23:34:24 +01:00
Sebastian Lackner
a9622970cd Added patch to implement IProgressDialog::SetAnimation. 2015-02-27 22:53:56 +01:00
Sebastian Lackner
2672abd9e0 Added patch to enforce that surfaces are flushed after ReleaseDC. 2015-02-27 22:44:57 +01:00
Sebastian Lackner
9146caa7ae Added patch to display animations for SHFileOperation progress dialog. 2015-02-27 21:06:05 +01:00
Sebastian Lackner
480bab002e Added patch for basic implementation of job objects. 2015-02-27 20:56:05 +01:00
Sebastian Lackner
2de8f84fb0 Removed multiple patches (accepted upstream). 2015-02-27 15:34:05 +01:00
Sebastian Lackner
e01d563654 Added patch for support of shell32 file operation progress dialog. 2015-02-27 02:12:30 +01:00
Sebastian Lackner
cc1368ba9e ntoskrnl-Stubs: Mark one additional bug as fixed. 2015-02-27 01:36:56 +01:00
Sebastian Lackner
a63ea08036 Added patches for ntoskrnl.ProbeFor{Read,Write}. 2015-02-27 01:31:59 +01:00
Sebastian Lackner
b4c665d65a Added patch for stub of gdiplus.GdipCreateEffect. 2015-02-27 01:18:50 +01:00
Sebastian Lackner
870feed3e2 Added first set of patches for job objects (by Andrew Cook). 2015-02-26 22:41:29 +01:00
Michael MĂĽller
ec1b9737d0 Update progress callback patch. 2015-02-26 21:57:05 +01:00
Sebastian Lackner
6b6bb2edce Rename ntdll-CopyFileEx patchset to kernel32-CopyFileEx (Oops..). 2015-02-26 16:57:16 +01:00
Sebastian Lackner
98c6f8974b Removed multiple patchsets (accepted upstream). 2015-02-26 16:44:38 +01:00
Sebastian Lackner
f133ccbf40 Rename ntdll-SetFileInformationByHandle to kernel32-SetFileInformationByHandle. 2015-02-26 07:14:13 +01:00
Sebastian Lackner
b74ea4b14d Added patch for CopyFileEx progress callback and cancellation support. 2015-02-26 07:10:29 +01:00
Sebastian Lackner
7d2b751466 Added patch to implement SetFileInformationByHandle. 2015-02-26 06:12:24 +01:00
Sebastian Lackner
dd12b420e8 Added patch to fallback to global key state for threads without a queue. 2015-02-26 04:26:59 +01:00
Sebastian Lackner
d25e78cefb Added patch to avoid deadlock by using _exit() in NtTerminateProcess. 2015-02-25 23:27:09 +01:00
Sebastian Lackner
8f64b37ee2 Added patch to fix race-condition when threads are killed during shutdown. 2015-02-25 23:12:37 +01:00
Sebastian Lackner
11fe964c46 Removed several patches (accepted upstream). 2015-02-24 18:00:05 +01:00
Sebastian Lackner
8b3e8d11a8 Added patch to complete and properly pack DNS_HEADER structure (by Amine Khaldi, wine-patched/pull/6). 2015-02-23 22:35:00 +01:00
Sebastian Lackner
eaefcc8a3f Added patch to declare pDirectInputCreateEx in a MSVC compatible way (by Amine Khaldi, wine-patched/pull/5). 2015-02-23 22:34:35 +01:00
Sebastian Lackner
a412b6082a Added patch to skip Wine specific __wine_check_for_events calls in ReactOS (by Amine Khaldi, wine-patched/pull/4). 2015-02-23 20:31:13 +01:00
Sebastian Lackner
50b6ba8394 patchupdate.py: Use a threadpool to check patches in parallel. 2015-02-23 19:14:25 +01:00
Sebastian Lackner
c1eea67020 Added patch to mark DllCanUnloadNow and DllGetClassObject as private (by Amine Khaldi, wine-patched/pull/3). 2015-02-23 18:35:31 +01:00
Sebastian Lackner
f11e82495a Disabled patchset for reg.exe cleanup (partially accepted upstream). 2015-02-23 18:32:33 +01:00
Sebastian Lackner
5261bd8a89 patchupdate.py: Introduce a new Apply-After definition file variable. 2015-02-23 18:12:32 +01:00
Sebastian Lackner
b7777f405b patchutils.py: Fix some spelling errors (thanks Amine Khaldi). 2015-02-22 20:03:51 +01:00
Sebastian Lackner
1b4d215dd7 Release 1.7.37. 2015-02-22 06:59:18 +01:00
Sebastian Lackner
6c276e039c dxva2-Video_Decoder: Fix an incorrect FIXME message. 2015-02-22 05:46:02 +01:00
Sebastian Lackner
f354e38ec0 dxva2-Video_Decoder: Update configure check to make sure that libva exports vaQuerySurfaceAttributes. 2015-02-22 05:14:20 +01:00
Michael MĂĽller
282bb25d73 Add libva as build dependency for debian package. 2015-02-22 04:09:14 +01:00
Michael MĂĽller
44ea94f633 Added patch for MPEG2/H264 DXVA2 video decoding through vaapi. 2015-02-22 04:08:15 +01:00
Sebastian Lackner
8f19269b34 Added patch for support of non-blocking SIO_ADDRESS_LIST_CHANGE requests. 2015-02-22 00:32:18 +01:00
Sebastian Lackner
3bfb699f09 Added patch to implement ntoskrnl.KeInitializeMutex. 2015-02-21 12:01:06 +01:00
Sebastian Lackner
591c89dcaa Added patch to add stub for ntoskrnl.Mm{Map,Unmap}LockedPages. 2015-02-21 11:55:16 +01:00
Sebastian Lackner
65895dcd33 Added patch to ignore unsupported alpha channels in TIFF decoder. 2015-02-21 11:25:55 +01:00
Sebastian Lackner
ea6d6ce494 Added patches to implement semi-stubs for GetFileVersionInfoSizeExA/W and GetFileVersionInfoExA/W. 2015-02-21 11:10:51 +01:00
Sebastian Lackner
d734456470 wined3d-DXTn: Do not require libtxc_dxtn at compile-time, always search at runtime for common library names. 2015-02-21 02:21:01 +01:00
Sebastian Lackner
eea70481fe Rebase against upstream changes. 2015-02-20 15:57:32 +01:00
Sebastian Lackner
ea9f209292 Rebase against upstream changes, remove patch for IDirectPlayVoiceClient::GetCompressionTypes (accepted upstream). 2015-02-20 01:56:07 +01:00
Sebastian Lackner
9717d3f69e Rebase against upstream changes. 2015-02-18 20:15:35 +01:00
Sebastian Lackner
1078096afe d3dx9_36-GetShaderSemantics: Rebase against upstream changes. 2015-02-16 18:14:05 +01:00
Sebastian Lackner
eab42cde10 Added patches to improve stubs for AEV_{Get,Set}MasterVolumeLevel and AEV_{Get,Set}Mute. 2015-02-15 14:53:01 +01:00
Sebastian Lackner
c3d4426edd Added patch to implement IApplicationAssociationRegistration::QueryCurrentDefault. 2015-02-14 04:47:25 +01:00
Sebastian Lackner
6a98a1f8aa Added patch to avoid accessing stack below ESP when restoring thread context. 2015-02-13 01:46:19 +01:00
Sebastian Lackner
9afb8c2b6d wined3d-CSMT_Main: Rebase against upstream changes. 2015-02-12 20:50:03 +01:00
Sebastian Lackner
dc04777d5a Added patch to add stub for ntoskrnl.ExDeleteResourceLite. 2015-02-12 08:52:01 +01:00
Sebastian Lackner
3f9cc193b7 Added patch to add stub for ntoskrnl.ExReleaseResourceForThread. 2015-02-12 08:45:21 +01:00
Sebastian Lackner
a40b3e341a Added patch to add stub for ntoskrnl.ExAcquireResourceExclusiveLite. 2015-02-12 08:27:14 +01:00
Sebastian Lackner
2000faae13 wined3d-CSMT_{Helper,Main}: Rebase against upstream changes. 2015-02-12 08:07:54 +01:00
Sebastian Lackner
28bd360291 ntdll-WRITECOPY: Adjust patch based on changes in ws2_32-WriteWatches. 2015-02-11 21:19:10 +01:00
Sebastian Lackner
3f60978f12 Added patch to implement basic handling of write watches while we're on the signal stack. 2015-02-11 13:37:53 +01:00
Sebastian Lackner
d8772033dd d3dx9_36-GetShaderSemantics: Fix issue in implementation of D3DXGetShaderInputSemantics. 2015-02-10 23:26:58 +01:00
Sebastian Lackner
65c1bc4fd2 ntdll-DVD_Read_Size: Avoid dereferencing NULL pointer / accessing structure when size is invalid. 2015-02-10 21:53:58 +01:00
Sebastian Lackner
16f0d70b79 Added patch to implement D3DXGetShaderOutputSemantics. 2015-02-10 21:16:32 +01:00
Sebastian Lackner
5188eda906 Removed patches for SIO_ADDRESS_LIST_CHANGE ioctl (accepted upstream). 2015-02-10 18:21:42 +01:00
Sebastian Lackner
1ffd40e9de Added patch to avoid race-conditions with write watches in WS2_async_accept. 2015-02-10 07:37:49 +01:00
Sebastian Lackner
e8d4cc0cb0 Avoid race-conditions in NtReadFile() operations with write watches. 2015-02-10 06:40:25 +01:00
Sebastian Lackner
c1ae413bcc ntdll-RtlUnwind: Update patchset and fix a second bug in the unwinding code.
Fixes https://bugs.wine-staging.com/show_bug.cgi?id=68.
2015-02-10 00:10:32 +01:00
Sebastian Lackner
d329354032 Removed patches for UTF7 support (accepted upstream). 2015-02-09 17:22:09 +01:00
Sebastian Lackner
e2cd273303 iphlpapi-TCP_Table: Fix an incorrect TRACE message. 2015-02-08 20:32:31 +01:00
Sebastian Lackner
b7770327f1 Release 1.7.36. 2015-02-08 19:15:49 +01:00
Sebastian Lackner
b8c9d22e4c Added patch to improve stub for AEV_GetVolumeRange. 2015-02-08 18:02:28 +01:00
Sebastian Lackner
2b2f2d70ab Added patch to fix wrong defition of ntoskrnl.IoReleaseCancelSpinLock function. 2015-02-08 17:58:49 +01:00
Sebastian Lackner
c81eb4cfa6 Added patch to improve various ntoskrnl stub functions. 2015-02-08 17:55:46 +01:00
Sebastian Lackner
221a419640 Added patch to implement stub for ntoskrnl.KeDelayExecutionThread. 2015-02-08 17:51:06 +01:00
Sebastian Lackner
f1b08404b8 Added patch to implement stubs for ntoskrnl.ObReferenceObjectByPointer and ntoskrnl.ObDereferenceObject. 2015-02-08 17:47:43 +01:00
Sebastian Lackner
28fc684ff9 Added patch to implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe. 2015-02-08 17:44:07 +01:00
Sebastian Lackner
cb402d63de Added patch to implement stub for ntoskrnl.IoGetAttachedDeviceReference. 2015-02-08 17:35:02 +01:00
Sebastian Lackner
865083f801 Mark various upstream bugs as fixed. 2015-02-08 17:29:34 +01:00
Sebastian Lackner
b70612a236 Staging: Avoid a warning on x86_64. 2015-02-08 15:18:58 +01:00
Sebastian Lackner
340a8a9e73 patchupdate.py: Replace '.' with underscore for patchinstall.sh script. 2015-02-08 15:02:51 +01:00
Sebastian Lackner
39787f3608 Added patch to make nvcuda.dll compatible with CUDA 7.0. 2015-02-08 09:44:03 +01:00
Sebastian Lackner
f2831c4a36 Added patch to implement NVIDIA video encoder library (nvencodeapi). 2015-02-08 08:40:31 +01:00
Sebastian Lackner
6a5466cff1 Added patch to add performance library registry keys needed by MS SQL Server Management Studio Express 2008 R2. 2015-02-08 06:39:31 +01:00
Sebastian Lackner
fbf97b4ef0 Added patchset for various improvements and cleanup of reg.exe. 2015-02-07 15:41:23 +01:00
Sebastian Lackner
cfdc80f823 Add library override instead of closing winecfg when pressing ENTER over the combobox. 2015-02-07 08:07:40 +01:00
Sebastian Lackner
1b9fa30106 Rebase against upstream changes. 2015-02-06 21:41:46 +01:00
Sebastian Lackner
99fc70333a ntdll-Vista_Threadpool: Update threadpool patchset, implement additional wait object functions. 2015-02-06 20:49:32 +01:00
Sebastian Lackner
dac872a3f7 dinput-Events: Update patch to fix bug 42, some games do not explicitly poll for mouse events. 2015-02-04 06:51:05 +01:00
Sebastian Lackner
94558a24fb Removed several patches (accepted upstream). 2015-02-03 17:16:22 +01:00
Sebastian Lackner
1eeba48e51 Added patch to fix arguments for OSMesaMakeCurrent when using 16 bit formats. 2015-02-03 12:24:48 +01:00
Sebastian Lackner
70b8d10d2f Added patch to fix crash in Jedi Knight: Dark Forces II when winmm is set to native. 2015-02-03 07:13:28 +01:00
Sebastian Lackner
95d7e3c5a9 ntdll-Vista_Threadpool: Avoid race conditions between tp_object_{submit,shutdown} for simple callbacks. 2015-02-03 05:33:58 +01:00
Sebastian Lackner
647efb0b9b wined3d-CSMT_Main: Rebase against upstream changes. 2015-02-02 17:52:20 +01:00
Sebastian Lackner
1ac4ac7302 ntdll-Vista_Threadpool: Make sure that threadpools have always at least one worker thread. 2015-02-02 14:09:18 +01:00
Sebastian Lackner
af245c20be Added patchset to implement Vista+ threadpool functions for work / timers. 2015-02-01 19:58:36 +01:00
Sebastian Lackner
e51f6d2439 Added patch to implement additional stubs for vcomp dlls. 2015-01-29 00:43:26 +01:00
Sebastian Lackner
96b6186af1 Rebase patches against upstream Wine. 2015-01-28 23:25:01 +01:00
Sebastian Lackner
cfdd73e2c4 ntoskrnl-KeWaitForMultipleObjects: Remove definition of KWAIT_BLOCK (accepted upstream). 2015-01-28 02:03:28 +01:00
Sebastian Lackner
e3c329b656 ntoskrnl-KeWaitForMultipleObjects: Avoid duplicate definitions in ntdef.h and winternl.h. 2015-01-27 15:09:32 +01:00
Sebastian Lackner
aab0c9dd62 ntoskrnl-KeWaitForMultipleObjects: Directly use new header file ntdef.h. 2015-01-27 04:38:18 +01:00
Sebastian Lackner
42ef436373 ntdll-Junction_Points: Rebase against upstream changes. 2015-01-27 04:07:25 +01:00
Sebastian Lackner
8d231bde1d Added patch to fix mouse jittering in Planetside 2. 2015-01-26 13:31:24 +01:00
Sebastian Lackner
a5566f1e8e Added patch to fix check for end_frame in RtlUnwindEx on x86_64. 2015-01-26 11:57:43 +01:00
Michael MĂĽller
a3813c45a0 Added patch to call DriverUnload during driver unload. 2015-01-26 04:39:12 +01:00
Sebastian Lackner
0c2b776e83 patchinstall.sh: Only apply patchlist when 'Staging' patchset is enabled. Ensure Staging/004-*.patch also compiles without patchlist. 2015-01-26 03:46:33 +01:00
Sebastian Lackner
e65c2c7954 patchinstall.sh: Avoid using '&>' syntax which spawns a detached shell with dash instead of forwarding output (thanks DarkPlayer). 2015-01-26 01:13:49 +01:00
Sebastian Lackner
9ee1d8c391 nvcuvid-CUDA_Video_Support: Remove another duplicate struct definition (ancient compilers again ...). 2015-01-25 06:01:27 +01:00
Sebastian Lackner
4b62bd0dbc Release 1.7.35. 2015-01-24 16:04:50 +01:00
Sebastian Lackner
ca5f61a043 README.md: Update URL to installation instructions and commandline. 2015-01-24 13:13:19 +01:00
Sebastian Lackner
c2f1a759c3 ntdll-NtQuerySection: Fix warnings in tests on x86_64 (try 2). 2015-01-24 13:04:39 +01:00
Sebastian Lackner
71658e9cd3 ntoskrnl-DriverTest: Partially revert 791f33b, fix additional compiler warning.
We always have to use __ms_va_list because we depend on an ntoskrnl export here.
2015-01-24 12:32:24 +01:00
Sebastian Lackner
685c0f7d39 ws2_32-TransmitFile: Fix warnings in tests on x86_64. 2015-01-24 10:39:58 +01:00
Sebastian Lackner
0d7e53d834 setupapi-SetupPromptForDisk: Fix warnings in tests on x86_64. 2015-01-24 10:26:31 +01:00
Sebastian Lackner
791f33b9b7 ntoskrnl-DriverTest: Remove duplicate definition of __ms_va_{start,end,list} and some small fixes. 2015-01-24 10:25:15 +01:00
Sebastian Lackner
ed9a66862f ntdll-LZNT1_Compression: Fix warnings in tests on x86_64. 2015-01-24 09:42:35 +01:00
Sebastian Lackner
cc484c6d23 Update year in LICENSE.md. 2015-01-24 09:39:53 +01:00
Sebastian Lackner
425be312a8 slc-SLGetWindowsInformation: Fix warnings in tests on x86_64. 2015-01-24 09:26:22 +01:00
Sebastian Lackner
09bf9a7d65 ntdll-NtQuerySection: Fix warnings in tests on x86_64. 2015-01-24 09:12:52 +01:00
Sebastian Lackner
c85677af86 kernel32-Named_Pipe: Fix warnings in tests on x86_64. 2015-01-24 08:49:33 +01:00
Sebastian Lackner
8cf7585f01 kernel32-GetFinalPathNameByHandle: Fix warnings in tests on x86_64. 2015-01-24 08:43:01 +01:00
Sebastian Lackner
be82b0f592 dpvoice-GetCompressionTypes: Fix warnings in tests on x86_64. 2015-01-24 08:37:35 +01:00
Sebastian Lackner
7a84e26713 ntoskrnl-Irp_Status: Remove 'Fixes:' line as long as it doesn't resolve the upstream bug completely. 2015-01-24 05:52:41 +01:00
Sebastian Lackner
ab14a7dba0 Added patch to fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED. 2015-01-24 05:15:18 +01:00
Sebastian Lackner
804b80bb94 winecfg-Staging: Simplify logic to enable/disable CSMT. 2015-01-24 03:52:02 +01:00
Sebastian Lackner
2271acca98 Rebase against upstream wine, move ntdll-DllRedirects dependency from winecfg-Staging to wined3d-CSMT_Helper. 2015-01-23 18:21:18 +01:00
Sebastian Lackner
1b792e51fb msvcrt-atof_strtod: Skip tests on Windows 2000/XP.
We still need to add additional tests before sending this one upstream, since
the behaviour could be different between different msvcrt libraries.
2015-01-23 14:17:29 +01:00
Sebastian Lackner
dcc1885175 ntoskrnl-DriverTest: Fix typo in subject. 2015-01-23 06:21:11 +01:00
Sebastian Lackner
29bbba1e0f Added patches to implement ntoskrnl driver testing framework. 2015-01-23 06:14:02 +01:00
Sebastian Lackner
1d5798b7d0 kernel32-Profile: List one additional bug as fixed (Mario Remake fails to load keyboard mapping from profile files). 2015-01-23 04:51:45 +01:00
Erich E. Hoover
525dcd012f Removed patch to fix RandR on some broken nVidia systems (accepted upstream). 2015-01-22 14:37:27 -07:00
Erich E. Hoover
6a1d2cdd7b Add stub for KeWaitForMultipleObjects. 2015-01-22 13:50:03 -07:00
Sebastian Lackner
6a10f6d38f d3dx9_36-DXTn: Add another fixed bug to the definition file (Space Rangers 2 crashes). 2015-01-22 19:46:18 +01:00
Sebastian Lackner
0121248145 Added patch to fix cursor clip regression / broken raw input in multiple games. 2015-01-22 19:42:54 +01:00
Sebastian Lackner
fbe41916cb Properly wrap CUDA stream callbacks by forwarding them to a separate worker thread. 2015-01-22 01:05:36 +01:00
Sebastian Lackner
f64437a901 nvcuda-CUDA_Support: Update patchset with various improvements.
* Add static to a couple of functions
* TLS callbacks should be declared as CDECL
* Do not unlock the critical section while processing TLS callbacks
2015-01-21 03:09:54 +01:00
Sebastian Lackner
ddbbcb6c0f ws2_32-getaddrinfo: Rebase against upstream changes. 2015-01-20 23:04:35 +01:00
Sebastian Lackner
372c004139 Added patch to implement semi-stub for IDirectPlayVoiceClient::GetCompressionTypes. 2015-01-20 19:11:58 +01:00
Erich E. Hoover
277cf9f50f Actually revert 1b743a18ea. 2015-01-20 00:00:34 -07:00
Erich E. Hoover
69032a489b Added patch to quote program name in ShellExecute[Ex] when it contains spaces. 2015-01-19 23:39:56 -07:00
Erich E. Hoover
2a8899bd4f Revert commit 1b743a18ea for now. 2015-01-19 23:35:34 -07:00
Erich E. Hoover
0c33c34ab3 Add the library packages for building with OpenCL support. 2015-01-19 21:19:03 -07:00
Sebastian Lackner
87b4b86756 patchinstall.sh: Switch to DESTDIR at the beginning, instead of for each patch individually. Various Improvements of the 'ebuild' backend. 2015-01-20 03:54:35 +01:00
Sebastian Lackner
93224a7bf4 Rebase wined3d-CSMT_Main patchset on top of upstream Wine, remove wined3d-Color_Key patchset (fixed upstream). 2015-01-20 03:44:15 +01:00
Erich E. Hoover
1b743a18ea Added OpenCL dependency to the Debian control file. 2015-01-19 12:51:32 -07:00
Sebastian Lackner
ffac1eec98 mshtml-sessionStorage: Remove patches (because of incompatibility with new Gecko version).
These patches have been disabled for quite some time now because of fundamental changes
in Gecko (see https://github.com/wine-compholio/wine-staging/issues/119). As there
wasn't any attempt to fix that yet, we will remove them (until a solution compatible
with the current version is found).
2015-01-19 08:49:21 +01:00
Sebastian Lackner
417adfe869 d3dx9_36-AnimationController: Update patch to fix style issues in include/d3dx9anim.h. 2015-01-19 00:33:06 +01:00
Sebastian Lackner
294abd9164 Added patch to implement stubs for D3DXCreateAnimationController interface. 2015-01-18 07:43:10 +01:00
Sebastian Lackner
56a8b5698c Mark various bugs as fixed, which are indirectly solved by other patchsets. Disable ntoskrnl-Irp_Status since it doesn't solve the issue completely. 2015-01-18 06:18:42 +01:00
Sebastian Lackner
3a77266255 wined3d-CSMT_Main: Rebase against current upstream git version. 2015-01-16 07:52:09 +01:00
Sebastian Lackner
8692907421 Rebase against upstream commit 79a0dece8b2a27979835076914a21f468515d8b6, remove several patches accepted upstream. 2015-01-16 05:06:37 +01:00
Sebastian Lackner
3e7445275a Added patch to fix init of LONGLONG variable with a negative value in TGA decoder. 2015-01-15 18:18:50 +01:00
Sebastian Lackner
603ba80d41 Automatically enable fallback method to apply patches when running from inside of a git subdirectory. 2015-01-15 06:51:54 +01:00
Sebastian Lackner
d50c673144 Several improvements to make nvcuvid (CUDA video decoding) better compatible with x86_64. 2015-01-15 02:21:19 +01:00
Michael MĂĽller
60d18d4610 Add nvapi patch to stub NvAPI_D3D9_RegisterResource. 2015-01-14 22:55:10 +01:00
Michael MĂĽller
93764fd3d4 Add more nvapi stub patches. 2015-01-14 22:24:14 +01:00
Sebastian Lackner
fce30bb8f1 Removed patch to fix handling of subdirectory in FtpFindFirstFile (accepted upstream). 2015-01-14 21:48:26 +01:00
Michael MĂĽller
7c3eb20866 Add patch to stub IConnectionPoint. 2015-01-14 05:32:57 +01:00
Sebastian Lackner
322a32547f Synchronize CSMT patchset with https://github.com/stefand/wine. 2015-01-14 01:43:00 +01:00
Erich E. Hoover
b7ec4c3294 Update broken nVidia RandR detection with Henri's suggestions. 2015-01-13 14:59:19 -07:00
Sebastian Lackner
2e7eef2694 Removed patch to set last error on success in WSARecv (accepted upstream). 2015-01-13 22:21:26 +01:00
Sebastian Lackner
4d5f020d44 Add support for patchinstall.sh parameters '--no-patchlist' and '--no-autoconf'. 2015-01-13 07:54:16 +01:00
Sebastian Lackner
ce0a7a882b Added patch to avoid appending duplicate NULL character when importing keys with regedit. 2015-01-13 05:46:52 +01:00
Michael MĂĽller
0d07d50b91 Add more nvapi stubs. 2015-01-13 03:16:33 +01:00
Sebastian Lackner
32d5e2d8e9 nvcuvid-CUDA_Video_Support: Avoid duplicate struct definition to stay compatible with ancient gcc compilers (CentOS 6). 2015-01-12 20:20:09 +01:00
Sebastian Lackner
e55bb43544 d3dx9_36-DXTn: Remove todo_wine for all fixed format conversions. 2015-01-12 19:34:20 +01:00
Sebastian Lackner
2c708426cc patchinstall.sh: Mention stg backend in help. 2015-01-12 19:29:22 +01:00
Sebastian Lackner
ecd57240d0 Added patch to implement support for DDS file format in D3DXSaveTextureToFileInMemory. 2015-01-12 19:10:13 +01:00
Sebastian Lackner
a6b41279d8 patchinstall.sh: Use abort on error instead of calling exit directly, mention epatch backend in help. 2015-01-12 13:17:03 +01:00
Sebastian Lackner
7d9c7855c2 Add support for Gentoo epatch backend to patchinstall.sh. 2015-01-12 13:10:19 +01:00
Sebastian Lackner
17c1053de4 Release 1.7.34-1 (Debian/Ubuntu specific dependency fix).
The package rename caused some problems on Debian/Ubuntu. This updated version should
hopefully fix those. Other distributions which do not use debian/{rules,control} for
packaging are unaffected by these changes.
2015-01-11 19:25:22 +01:00
Sebastian Lackner
b56948f392 debian/rules: Second attempt to fix Debian/Ubuntu dependencies, this time by providing the compatibility symlinks in the main package. 2015-01-11 13:42:15 +01:00
Michael MĂĽller
7850f8bd74 Fix debian control file 2015-01-11 07:19:23 +01:00
Sebastian Lackner
25a137c8c6 debian/control: Add explicit dependency from wine-compholio dummy packages to subpackages. 2015-01-11 05:32:52 +01:00
441 changed files with 41619 additions and 9263 deletions

View File

@@ -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 the Wine Staging project authors.
Copyright (C) 2014-2015 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

113
README.md
View File

@@ -23,11 +23,12 @@ How to install and use Wine Staging
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 [website](http://www.wine-staging.com/install.html).
instructions available on the
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Installation).
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-compholio/bin/wine`.
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
@@ -37,103 +38,174 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
**Bugs fixed in Wine Staging 1.7.34 [135]:**
**Bugs fixed in Wine Staging 1.7.39 [205]:**
* ATL IOCS data should not be stored in GWLP_USERDATA ([Wine Bug #21767](https://bugs.winehq.org/show_bug.cgi?id=21767))
* Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](https://bugs.winehq.org/show_bug.cgi?id=36374))
* Add default ACLs for user shell folders
* Add implementation for CreateThreadpool ([Wine Bug #35192](https://bugs.winehq.org/show_bug.cgi?id=35192))
* 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 GetFileVersionInfoExA/W ([Wine Bug #38098](https://bugs.winehq.org/show_bug.cgi?id=38098))
* Add semi-stub for GetFileVersionInfoSizeExA/W ([Wine Bug #38090](https://bugs.winehq.org/show_bug.cgi?id=38090))
* Add stub for D3DXComputeNormalMap
* Add stub for D3DXComputeTangentFrameEx ([Wine Bug #31984](https://bugs.winehq.org/show_bug.cgi?id=31984))
* Add stub for D3DXIntersect
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
* Add stub for PowerCreateRequest
* Add stub for gdiplus.GdipCreateEffect ([Wine Bug #32163](https://bugs.winehq.org/show_bug.cgi?id=32163))
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
* Add stub for ntoskrnl.ExDeleteResourceLite
* Add stub for ntoskrnl.ExReleaseResourceForThread
* Add stub for ntoskrnl.KeWaitForMultipleObjects
* Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
* Add stub for wininet.ParseX509EncodedCertificateForListBoxEntry ([Wine Bug #29842](https://bugs.winehq.org/show_bug.cgi?id=29842))
* Add stubs for D3DXCreateAnimationController interface
* Add support for CopyFileEx progress callback ([Wine Bug #22692](https://bugs.winehq.org/show_bug.cgi?id=22692))
* Add support for GetPropValue to PulseAudio backend
* Adobe Reader needs ITextSelection_fnGetDuplicate implementation
* 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))
* Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW
* 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 override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. ([Wine Bug #12652](https://bugs.winehq.org/show_bug.cgi?id=12652))
* Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW ([Wine Bug #37916](https://bugs.winehq.org/show_bug.cgi?id=37916))
* 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.
* Avoid unloading msctf library while textservices are activated ([Wine Bug #31579](https://bugs.winehq.org/show_bug.cgi?id=31579))
* Avseq crashes when multisampling is enabled ([Wine Bug #31998](https://bugs.winehq.org/show_bug.cgi?id=31998))
* Basic handling of write watches triggered while we're on the signal stack.
* Basic support for CUDA
* Black & White needs DXTn software decoding support ([Wine Bug #14939](https://bugs.winehq.org/show_bug.cgi?id=14939))
* Correctly treat '.' when checking for empty directories ([Wine Bug #26272](https://bugs.winehq.org/show_bug.cgi?id=26272))
* CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE
* Child of Light expects FindConnectionPoint to succeed and increase the refcount ([Wine Bug #36408](https://bugs.winehq.org/show_bug.cgi?id=36408))
* 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 append duplicate NULL characters when importing keys with regedit ([Wine Bug #37575](https://bugs.winehq.org/show_bug.cgi?id=37575))
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
* Don't fill KdHelp structure for usermode applications ([Wine Bug #37272](https://bugs.winehq.org/show_bug.cgi?id=37272))
* EA Origin needs support for job objects ([Wine Bug #33723](https://bugs.winehq.org/show_bug.cgi?id=33723))
* Emulate access to KI_USER_SHARED_DATA kernel page on x86_64 ([Wine Bug #33849](https://bugs.winehq.org/show_bug.cgi?id=33849))
* Enforce that surfaces are flushed after ReleaseDC
* 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))
* Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
* FEAR 1 installer expects basic_string_wchar_dtor to return NULL ([Wine Bug #37358](https://bugs.winehq.org/show_bug.cgi?id=37358))
* Fallback to global key state for threads without a queue ([Wine Bug #27238](https://bugs.winehq.org/show_bug.cgi?id=27238))
* Fix NULL dereference in ICSeqCompressFrameStart ([Wine Bug #27595](https://bugs.winehq.org/show_bug.cgi?id=27595))
* Fix access violation when calling GetStringTypeW with NULL src. ([Wine Bug #37759](https://bugs.winehq.org/show_bug.cgi?id=37759))
* Fix black screen on startup introduced by pixelformat changes. ([Wine Bug #35950](https://bugs.winehq.org/show_bug.cgi?id=35950))
* Fix color key regression causing pink rectangles around text ([Wine Bug #37748](https://bugs.winehq.org/show_bug.cgi?id=37748))
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
* Fix check for end_frame in RtlUnwindEx on x86_64. ([Wine Bug #34254](https://bugs.winehq.org/show_bug.cgi?id=34254))
* 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 in clip_cursor_notify caused by uninitialized TLS ([Wine Bug #36915](https://bugs.winehq.org/show_bug.cgi?id=36915))
* Fix crash of Trine Demo on start ([Wine Bug #19231](https://bugs.winehq.org/show_bug.cgi?id=19231))
* 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 flickering introduced by pixelformat changes. ([Wine Bug #35718](https://bugs.winehq.org/show_bug.cgi?id=35718))
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](https://bugs.winehq.org/show_bug.cgi?id=16550))
* Fix for programs leaking wndproc slots ([Wine Bug #32451](https://bugs.winehq.org/show_bug.cgi?id=32451))
* Fix graphical corruption in FarCry 3 with NVIDIA drivers ([Wine Bug #35062](https://bugs.winehq.org/show_bug.cgi?id=35062))
* Fix gray screen on startup introduced by pixelformat changes. ([Wine Bug #35975](https://bugs.winehq.org/show_bug.cgi?id=35975))
* Fix handling of 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 subdirectory in FtpFindFirstFile ([Wine Bug #16526](https://bugs.winehq.org/show_bug.cgi?id=16526))
* Fix issues when driver dispatch routine returns different status codes ([Wine Bug #30155](https://bugs.winehq.org/show_bug.cgi?id=30155))
* 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 issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
* Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900))
* Fix parameters for ConvertToIndexedBlendedMesh stub ([Wine Bug #36449](https://bugs.winehq.org/show_bug.cgi?id=36449))
* Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
* Fix race-condition when threads are killed during shutdown
* Fix regression causing black screen on startup ([Wine Bug #38248](https://bugs.winehq.org/show_bug.cgi?id=38248))
* Fix regression causing too dark/missing textures in several games ([Wine Bug #38256](https://bugs.winehq.org/show_bug.cgi?id=38256))
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
* Fix unintentional leaks with ntdll internals
* Fix wined3d performance drop introduced by pixelformat changes. ([Wine Bug #35655](https://bugs.winehq.org/show_bug.cgi?id=35655))
* 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))
* Games For Windows Live 1.x expects a valid linker version in the PE header ([Wine Bug #28768](https://bugs.winehq.org/show_bug.cgi?id=28768))
* 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))
* Graphical issues in Inquisitor ([Wine Bug #32490](https://bugs.winehq.org/show_bug.cgi?id=32490))
* Hearthstone fails to start ([Wine Bug #36216](https://bugs.winehq.org/show_bug.cgi?id=36216))
* IOCTL_DVD_READ_STRUCTURE expects the wrong size of output buffer for some requests ([Wine Bug #37767](https://bugs.winehq.org/show_bug.cgi?id=37767))
* Ignore unsupported alpha channels in TIFF decoder ([Wine Bug #38027](https://bugs.winehq.org/show_bug.cgi?id=38027))
* Ignore unsupported flags for CoInternetSetFeatureEnabled ([Wine Bug #35197](https://bugs.winehq.org/show_bug.cgi?id=35197))
* Implement D3DXGetShaderOutputSemantics
* Implement ID3DXEffect::FindNextValidTechnique ([Wine Bug #34101](https://bugs.winehq.org/show_bug.cgi?id=34101))
* Implement IDXGIOutput::GetDesc
* Implement SetFileInformationByHandle
* Implement SetupLogError[A|W] and Setup[Open|Close]Log
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](https://bugs.winehq.org/show_bug.cgi?id=13829))
* Implement additional stubs for vcomp dlls ([Wine Bug #31640](https://bugs.winehq.org/show_bug.cgi?id=31640))
* Implement an Arial replacement font ([Wine Bug #32323](https://bugs.winehq.org/show_bug.cgi?id=32323))
* Implement combase.WindowsSubstring function
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
* Implement ntoskrnl driver testing framework.
* Implement ntoskrnl.KeInitializeMutex
* Implement stub for ntoskrnl.IoGetAttachedDeviceReference
* Implement stub for ntoskrnl.KeDelayExecutionThread.
* Implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe
* Implement stubs for ntoskrnl.ObReferenceObjectByPointer and ntoskrnl.ObDereferenceObject
* Implement threadpool timers ([Wine Bug #37306](https://bugs.winehq.org/show_bug.cgi?id=37306))
* Implement threadpool wait objects
* Implement threadpool work items ([Wine Bug #32531](https://bugs.winehq.org/show_bug.cgi?id=32531))
* Improve stub for AEV_GetVolumeRange ([Wine Bug #35658](https://bugs.winehq.org/show_bug.cgi?id=35658))
* Improve stub for ID3DXEffectImpl_CloneEffect
* Improve stubs for AEV_{Get,Set}MasterVolumeLevel
* Improve stubs for AEV_{Get,Set}Mute
* Improvement for heap allocation performance
* Initialize irp.Tail.Overlay.OriginalFileObject with stub file object ([Wine Bug #37537](https://bugs.winehq.org/show_bug.cgi?id=37537))
* Increase wineconsole commandline buffer size ([Wine Bug #34814](https://bugs.winehq.org/show_bug.cgi?id=34814))
* Invalidate key state cache globally after calling LL hooks ([Wine Bug #29871](https://bugs.winehq.org/show_bug.cgi?id=29871))
* 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))
* Limit cross thread access to ImmSet* functions ([Wine Bug #35361](https://bugs.winehq.org/show_bug.cgi?id=35361))
* Lockfree algorithm for filedescriptor cache (improves file access speed)
* MSVCRT crashes when NULL is passed as string to atof or strtod ([Wine Bug #32550](https://bugs.winehq.org/show_bug.cgi?id=32550))
* MSYS2 expects correct handling of WRITECOPY memory protection ([Wine Bug #35561](https://bugs.winehq.org/show_bug.cgi?id=35561))
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](https://bugs.winehq.org/show_bug.cgi?id=18732))
* 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))
* Multiple applications start wrong executable if whitespace present in name ([Wine Bug #19666](https://bugs.winehq.org/show_bug.cgi?id=19666))
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](https://bugs.winehq.org/show_bug.cgi?id=7115))
* 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
* Process Hacker 2.x needs ntoskrnl.ProbeForRead ([Wine Bug #38103](https://bugs.winehq.org/show_bug.cgi?id=38103))
* Properly track handle count of wineserver objects
* Python PIP needs better NtQueryInformationJobObject stub
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
* 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 ([Wine Bug #23174](https://bugs.winehq.org/show_bug.cgi?id=23174))
* Return correct values for GetThreadTimes function ([Wine Bug #20230](https://bugs.winehq.org/show_bug.cgi?id=20230))
* Return more context attributes in schan_InitializeSecurityContextW ([Wine Bug #37527](https://bugs.winehq.org/show_bug.cgi?id=37527))
* 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 last error when GetRawInputDeviceList fails ([Wine Bug #37667](https://bugs.winehq.org/show_bug.cgi?id=37667))
* 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 D3DXComputeNormals ([Wine Bug #26379](https://bugs.winehq.org/show_bug.cgi?id=26379))
* 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 Dynamic DST (daylight saving time) information in registry
* Support for GdipCreateRegionRgnData ([Wine Bug #34843](https://bugs.winehq.org/show_bug.cgi?id=34843))
* Support for GetFinalPathNameByHandle ([Wine Bug #36073](https://bugs.winehq.org/show_bug.cgi?id=36073))
* Support for GetFinalPathNameByHandle ([Wine Bug #34851](https://bugs.winehq.org/show_bug.cgi?id=34851))
* Support for GetSystemTimes ([Wine Bug #19813](https://bugs.winehq.org/show_bug.cgi?id=19813))
* Support for GetVolumePathName
* 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 ITextDocument_fnRange function ([Wine Bug #12458](https://bugs.winehq.org/show_bug.cgi?id=12458))
@@ -141,37 +213,36 @@ Included bug fixes and improvements
* 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 LoadIconMetric ([Wine Bug #35375](https://bugs.winehq.org/show_bug.cgi?id=35375))
* 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 NtSetInformationFile class FileDispositionInformation ([Wine Bug #30397](https://bugs.winehq.org/show_bug.cgi?id=30397))
* Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495))
* Support for RtlDecompressBuffer ([Wine Bug #37449](https://bugs.winehq.org/show_bug.cgi?id=37449))
* Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
* Support for SLGetWindowsInformationDWORD ([Wine Bug #36709](https://bugs.winehq.org/show_bug.cgi?id=36709))
* Support for TOOLTIPS_GetTipText edge cases ([Wine Bug #30648](https://bugs.winehq.org/show_bug.cgi?id=30648))
* Support for TransmitFile ([Wine Bug #5048](https://bugs.winehq.org/show_bug.cgi?id=5048))
* Support for UTF7 encoding/decoding ([Wine Bug #27388](https://bugs.winehq.org/show_bug.cgi?id=27388))
* 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 ([Wine Bug #34406](https://bugs.winehq.org/show_bug.cgi?id=34406))
* Support for interface change notifications ([Wine Bug #32328](https://bugs.winehq.org/show_bug.cgi?id=32328))
* 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 non-blocking SIO_ADDRESS_LIST_CHANGE requests ([Wine Bug #38062](https://bugs.winehq.org/show_bug.cgi?id=38062))
* 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 stored file ACLs ([Wine Bug #31858](https://bugs.winehq.org/show_bug.cgi?id=31858))
* Support for shell32 file operation progress dialog
* Support for stored file ACLs ([Wine Bug #33576](https://bugs.winehq.org/show_bug.cgi?id=33576))
* Try harder to get the host name address in getaddrinfo() ([Wine Bug #29609](https://bugs.winehq.org/show_bug.cgi?id=29609))
* 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 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))
* Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](https://bugs.winehq.org/show_bug.cgi?id=29384))
* WSARecv should call SetLastError on success ([Wine Bug #31438](https://bugs.winehq.org/show_bug.cgi?id=31438))
* 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
* nVidia driver for high-end laptop cards does not list all supported resolutions
* eRacer Demo doesn't correctly display text ([Wine Bug #29598](https://bugs.winehq.org/show_bug.cgi?id=29598))
* ntdll is missing WinSqm[Start|End]Session implementation ([Wine Bug #31971](https://bugs.winehq.org/show_bug.cgi?id=31971))
* wglDescribePixelFormat should return max index for NULL descriptor ([Wine Bug #6176](https://bugs.winehq.org/show_bug.cgi?id=6176))
* wininet should allow Accept-Encoding header for HTTP/1.0 ([Wine Bug #37046](https://bugs.winehq.org/show_bug.cgi?id=37046))

188
debian/changelog vendored
View File

@@ -1,3 +1,191 @@
wine-staging (1.7.39) unstable; urgency=low
* Fix a build failure on MacOS caused by using of strndup in the server-Inherited_ACLs patchset.
* Update patchset for ntdll-RtlUnwindEx to fix an issue with dwarf handling (fixes Wine Staging Bug #170).
* Updated patchset for dinput-Events to be compatible with more games (fixes Wine Staging Bug #149).
* Added patch for tests of RtlIpv6StringToAddress, RtlIpv{4,6}StringToAddressEx (by Mark Jansen).
* Added patch to fix multithreading issues with fullscreen clipping.
* Added patch with tests for VerQueryValueA (by Mark Jansen).
* Added patch to implement proper locking of keystate and synchronization with desktop thread.
* Added patch to implement better stub function for NtQueryInformationJobObject.
* Added patch to avoid crash in d3d9 tests by skipping when texture/surface creation fails.
* Added patch to fix wrong version of ID3DXEffect interface for d3dx9_24.
* Added patch to fix wrong version of ID3DXEffect interface for d3dx9_25.
* Added patch to allow to query for d3dx9_26 specific ID3DXEffect interface.
* Added patch to modify GetMessage to return already seen messages with higher priority.
* Added patch to silence repeated 'Unhandled blend factor 0' FIXME messages.
* Added patch for stub of PowerCreateRequest.
* Added patch to invalidate key state cache globally after calling LL hooks.
* Added patch to fix Wine Staging Bug #162 - Caesar III demo installer crashes.
* Added patch to fix wrong return values of RtlFindActivationContextSectionString for NULL data (by Mark Jansen).
* Added patch to implement _ismbckata and _mbctohira, moreover fix wrong return value of _ismbckata.
* Added patch to improve stub for ID3DXEffectImpl_CloneEffect.
* Added patch with additional tests for server-PeekMessage.
* Added patch to only zero the buffer up 32767 bytes in GetTempPathW.
* Added patches to implement shared memory wineserver communication for various user32 functions.
* Added patch to implement combase.WindowsSubstring function.
* Added patch with stub for wininet.ParseX509EncodedCertificateForListBoxEntry.
* Added patch to allow to edit winecfg library override by double clicking.
* Added patch to fix regression causing too dark/missing textures in several games.
* Added patch to fix regression causing black screen on startup.
* Added patch to implement SetupLogError[A|W] and Setup[Open|Close]Log.
* Added patches to get rid of wineserver call for GetActiveWindow, GetFocus, GetCapture.
* Removed patch to avoid hardcoded values for sizeof(GUID) (accepted upstream).
* Removed patches for SLGetWindowsInformationDWORD (accepted upstream).
* Removed patches for _ismbckata and _mbctohira (fixed upstream).
* Removed patches to fix wrong return values of RtlFindActivationContextSectionString for NULL data (accepted upstream).
* Removed patch for server-PeekMessage tests (accepted upstream).
* Removed patch to only zero the buffer up 32767 bytes in GetTempPathW (accepted upstream).
* Removed first patch of series ws2_32_WriteWatches (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 22 Mar 2015 04:05:46 +0100
wine-staging (1.7.38) unstable; urgency=low
* Various improvements to patchupdate.py.
* Various improvements to dxva2 vaapi support.
* Long overdue update to the TransmitFile patches.
* Disabled patchset for reg.exe cleanup (partially accepted upstream).
* Added patch to report the correct refresh rates for some NVIDIA cards.
* Added patch to mark DllCanUnloadNow and DllGetClassObject as private (by Amine Khaldi, wine-patched/pull/3).
* Added patch to skip Wine specific __wine_check_for_events calls in ReactOS (by Amine Khaldi, wine-patched/pull/4).
* Added patch to declare pDirectInputCreateEx in a MSVC compatible way (by Amine Khaldi, wine-patched/pull/5).
* Added patch to complete and properly pack DNS_HEADER structure (by Amine Khaldi, wine-patched/pull/6).
* Added patch to fix race-condition when threads are killed during shutdown.
* Added patch to avoid deadlock by using _exit() in NtTerminateProcess.
* Added patch to fallback to global key state for threads without a queue.
* Added patch to implement SetFileInformationByHandle.
* Added patch for CopyFileEx progress callback and cancellation support.
* Added first set of patches for job objects (by Andrew Cook).
* Added patch for stub of gdiplus.GdipCreateEffect.
* Added patches for ntoskrnl.ProbeFor{Read,Write}.
* Added patch for support of shell32 file operation progress dialog.
* Added patch for basic implementation of job objects.
* Added patch to display animations for SHFileOperation progress dialog.
* Added patch to enforce that surfaces are flushed after ReleaseDC.
* Added patch to implement IProgressDialog::SetAnimation.
* Added patch in order to allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
* Added patch for job object completion support.
* Added patch to properly track handle count of wineserver objects.
* Added patch to implement JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE.
* Added patch to implement PROGDLG_AUTOTIME for IProgressDialog.
* Added patch to implement support for NULL job handles in IsProcessInJob.
* Added patch to implement support for waiting on job object.
* Added patch to fix crash in clip_cursor_notify caused by uninitialized TLS.
* Added patches to make various functions in d3d8 / ddraw hotpatchable (required for fraps).
* Added patch to make GetLogicalProcessorInformationEx a stub which returns TRUE.
* Added patches to fix race-condition when closing browseui IProcessDialog.
* Added patch to avoid unloading msctf library while textservices are activated.
* Added patch to correct DDSCAPS2 and DDSURFACEDESC2 structure (by Amine Khaldi, wine-patched/pull/7).
* Added patch to fix crash when trying to switch back to a 16-bit stack.
* Added patches to improve performance by reusing old async IO structure if possible.
* Added patch to increase wineconsole commandline buffer size.
* Added patch to replace hardcoded values with sizeof(GUID) for d3dxof.
* Added patch to implement cuModuleLoad wrapper function.
* Added patch to process APC calls before starting process.
* Removed patch to properly call DriverUnload when unloading device drivers (accepted upstream).
* Removed patch to allow Accept-Encoding for HTTP/1.0 in wininet (accepted upstream).
* Removed patch to declare pDirectInputCreateEx in a MSVC compatible way (accepted upstream).
* Removed patch to limit cross thread access to ImmSet* functions (accepted upstream).
* Removed patch to fix arguments for OSMesaMakeCurrent when using 16 bit formats (accepted upstream).
* Removed patch to fix memory leak in ApplicationAssociationRegistration_QueryCurrentDefault (accepted upstream).
* Removed patch to complete and properly pack DNS_HEADER structure (accepted upstream).
* Removed patch to avoid accessing stack below ESP when restoring thread context (accepted upstream).
* Removed patch to fix mouse jittering in Planetside 2 (accepted upstream).
* Removed patch to handle write watches while we're on the signal stack (accepted upstream).
* Removed patch with tests for NtQueryLicenseKey (accepted upstream).
* Removed patch to fix crash when trying to switch back to a 16-bit stack (accepted upstream).
* Removed patch to fix definition of SECTION_BASIC_INFORMATION and SECTION_IMAGE_INFORMATION (accepted upstream).
* Removed patch to add library override instead of closing winecfg when pressing ENTER (accepted upstream).
* Removed patch to fix init of LONGLONG variable with a negative value in TGA decoder (accepted upstream).
* Removed patch to fix parameters for ConvertToIndexedBlendedMesh stub (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sat, 07 Mar 2015 23:09:11 +0100
wine-staging (1.7.37) unstable; urgency=low
* Fix a TRACE line in the iphlpapi-TCP_Table patchset.
* Fix an issue in the d3dx9_36-GetShaderSemantics patchset.
* Update patchset for RtlUnwindEx on x86_64 and fix a second bug.
* Updated patch for DXTn support to avoid libtxc_dxtn as compile time dependency.
* Added patch to avoid race-conditions in NtReadFile() operations with write watches.
* Added patch to avoid race-conditions with write watches in WS2_async_accept.
* Added patch to implement D3DXGetShaderOutputSemantics.
* Added patch to implement basic handling of write watches while we're on the signal stack.
* Added patch to add stub for ntoskrnl.ExAcquireResourceExclusiveLite.
* Added patch to add stub for ntoskrnl.ExReleaseResourceForThread.
* Added patch to add stub for ntoskrnl.ExDeleteResourceLite.
* Added patch to avoid accessing stack below ESP when restoring thread context.
* Added patch to implement IApplicationAssociationRegistration::QueryCurrentDefault.
* Added patch to improve stubs for AEV_{Get,Set}MasterVolumeLevel.
* Added patch to improve stubs for AEV_{Get,Set}Mute.
* Added patch to implement semi-stub for GetFileVersionInfoSizeExA/W.
* Added patch to implement semi-stub for GetFileVersionInfoExA/W.
* Added patch to ignore unsupported alpha channels in TIFF decoder.
* Added patch to add stub for ntoskrnl.Mm{Map,Unmap}LockedPages.
* Added patch to implement ntoskrnl.KeInitializeMutex.
* Added patch for support of non-blocking SIO_ADDRESS_LIST_CHANGE requests.
* Added patch for MPEG2/H264 DXVA2 video decoding through vaapi.
* Removed patches for UTF7 support (accepted upstream).
* Removed patches for SIO_ADDRESS_LIST_CHANGE ioctl (accepted upstream).
* Removed patch for IApplicationAssociationRegistration::QueryCurrentDefault (accepted upstream).
* Removed patch for IDirectPlayVoiceClient::GetCompressionTypes (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 22 Feb 2015 06:58:09 +0100
wine-staging (1.7.36) unstable; urgency=low
* Fix an incompatibility of patchinstall.sh with non-bash shells under specific situations.
* Improve dinput-Events patch to be compatible with applications which do not explicitly poll for input.
* Added patch to properly call DriverUnload when unloading device drivers.
* Added patch to fix check for end_frame in RtlUnwindEx on x86_64.
* Added patch to fix mouse jittering in Planetside 2.
* Added patch to implement additional stubs for vcomp dlls.
* Added patchset to implement Vista+ threadpool functions for work / timers.
* Added patchset for Vista+ threadpool wait objects.
* Added patch to fix crash in Jedi Knight: Dark Forces II when winmm is set to native.
* Added patch to fix arguments for OSMesaMakeCurrent when using 16 bit formats.
* Added patch to add library override instead of closing winecfg when pressing ENTER over the combobox.
* Added patchset for various improvements and cleanup of reg.exe.
* Added patch to add performance library registry keys needed by MS SQL Server Management Studio Express 2008 R2.
* Added patch to implement NVIDIA video encoder library (nvencodeapi).
* Added patch to make nvcuda.dll compatible with CUDA 7.0.
* Added patch to implement stub for ntoskrnl.IoGetAttachedDeviceReference.
* Added patch to implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe.
* Added patch to implement stubs for ntoskrnl.ObReferenceObjectByPointer and ntoskrnl.ObDereferenceObject.
* Added patch to implement stub for ntoskrnl.KeDelayExecutionThread.
* Added patch to improve various ntoskrnl stub functions.
* Added patch to fix wrong defition of ntoskrnl.IoReleaseCancelSpinLock function.
* Added patch to improve stub for AEV_GetVolumeRange.
* Removed patch to add additional tests for SLGetWindowsInformationDWORD (accepted upstream).
* Removed patch to avoid filling KdHelp structure for usermode applications (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 08 Feb 2015 19:14:24 +0100
wine-staging (1.7.35) unstable; urgency=low
* Add stub for KeWaitForMultipleObjects.
* Add support for patchinstall.sh parameters '--no-patchlist' and '--no-autoconf'.
* Add support for Gentoo epatch backend to patchinstall.sh.
* Fix compile warnings on x86_64 in several patchsets.
* Automatically enable fallback method to apply patches when running from inside of a git subdirectory.
* Synchronize CSMT patchset with https://github.com/stefand/wine.
* Several improvements to make nvcuvid (CUDA video decoding) better compatible with x86_64.
* Properly wrap CUDA stream callbacks by forwarding them to a separate worker thread.
* Added patch to quote program name in ShellExecute[Ex] when it contains spaces.
* Added patch to implement support for DDS file format in D3DXSaveTextureToFileInMemory.
* Added patch to avoid appending duplicate NULL character when importing keys with regedit.
* Added patch for IConnectionPoint/INetworkListManagerEvents stub interface.
* Added patch to fix init of LONGLONG variable with a negative value in TGA decoder.
* Added patch to implement stubs for D3DXCreateAnimationController interface.
* Added patch to implement semi-stub for IDirectPlayVoiceClient::GetCompressionTypes.
* Added patch to fix cursor clip regression / broken raw input in multiple games.
* Added patches to implement ntoskrnl driver testing framework.
* Added patch to fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED.
* Removed patch to fix RandR on some broken nVidia systems (accepted upstream).
* Removed patch to set last error on success in WSARecv (accepted upstream).
* Removed patch to fix handling of subdirectory in FtpFindFirstFile (accepted upstream).
* Removed patch to initialize irp.Tail.Overlay.OriginalFileObject with stub file object (accepted upstream).
* Removed patch to fix incorrect behaviour of PathIsDirectoryEmptyW (accepted upstream).
* Removed patch to store IOCS data in a property instead of GWLP_USERDATA (accepted upstream).
* Removed patch to fix color key regression (fixed upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sat, 24 Jan 2015 16:03:35 +0100
wine-staging (1.7.34-1) unstable; urgency=low
* Debian/Ubuntu specific package dependency fix (no changes for other distros).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 11 Jan 2015 19:14:09 +0100
wine-staging (1.7.34) unstable; urgency=low
* Huge rewrite of patchupdate.py, deprecation of Makefile based way to apply patches.
* Rename debian package from 'wine-compholio' to 'wine-staging' and provide compatibility package.

5
debian/control vendored
View File

@@ -48,6 +48,7 @@ Build-Depends: autotools-dev,
libtiff5-dev | libtiff4-dev | libtiff-dev,
libtxc-dxtn-s2tc-dev,
libv4l-dev,
libva-dev,
libx11-dev,
libxcomposite-dev,
libxcursor-dev,
@@ -95,6 +96,8 @@ Recommends: libcapi20-3,
libtiff5 | libtiff4,
libtxc-dxtn-s2tc0,
libv4l-0,
libva-drm1,
libva-x11-1,
libxcomposite1,
libxcursor1,
libxi6,
@@ -149,6 +152,8 @@ Recommends: libcapi20-3,
libtiff5 | libtiff4,
libtxc-dxtn-s2tc0,
libv4l-0,
libva-drm1,
libva-x11-1,
libxcomposite1,
libxcursor1,
libxi6,

23
debian/rules vendored
View File

@@ -60,19 +60,16 @@ override_dh_install:
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
done
if [ -e debian/wine-staging-i386 ]; then \
mkdir -p debian/wine-compholio-i386/opt/wine-compholio/bin; \
for _file in $$(ls "debian/wine-staging-i386/opt/wine-staging/bin"); do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio-i386/opt/wine-compholio/bin/$$_file"; \
done \
fi
if [ -e debian/wine-staging-amd64 ]; then \
mkdir -p debian/wine-compholio-amd64/opt/wine-compholio/bin; \
for _file in $$(ls "debian/wine-staging-amd64/opt/wine-staging/bin"); do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio-amd64/opt/wine-compholio/bin/$$_file"; \
done \
fi
# Architecture specific compatibility symlinks
ifeq ($(DEB_HOST_ARCH),amd64)
for _file in wine wine-preloader wine64 wine64-preloader; do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
done
else
for _file in wine wine-preloader; do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
done
endif
override_dh_strip:
dh_strip -Xwine-pthread -Xwine-kthread --dbg-package=wine-staging-dbg

View File

@@ -23,11 +23,12 @@ How to install and use Wine Staging
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 [website](http://www.wine-staging.com/install.html).
instructions available on the
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Installation).
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-compholio/bin/wine`.
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

View File

@@ -31,15 +31,18 @@ usage()
echo ""
echo "Configuration:"
echo " DESTDIR=path Specify the path to the wine source tree"
echo " --all Select all patches"
echo " --help Display this help and exit"
echo " --no-autoupdate Do not apply patchlist and don't auto-update files"
echo " -W patchset Exclude a specific patchset"
echo " --all Select all patches"
echo " --help Display this help and exit"
echo " --no-patchlist Do not apply patchlist (needed for 'wine --patches')"
echo " --no-autoconf Do not run autoreconf and tools/make_requests"
echo " -W patchset Exclude a specific patchset"
echo ""
echo "Backends:"
echo " --backend=patch Use regular 'patch' utility to apply patches (default)"
echo " --backend=epatch Use 'epatch' to apply patches (Gentoo only)"
echo " --backend=git-am Use 'git am' to apply patches"
echo " --backend=git-apply Use 'git apply' to apply patches"
echo " --backend=stg Import the patches using stacked git"
echo ""
}}
@@ -50,15 +53,33 @@ abort()
exit 1
}}
# Show a warning
warning()
{{
echo "WARNING: $1" >&2
}}
{patch_helpers}
# Default settings
patch_enable_all 0
enable_autoupdate=1
enable_patchlist=1
enable_autoconf=1
patchlist="/dev/null"
backend="patch"
enable=1
# Find location of patches
patchdir="$(dirname "$(readlink -f "$0")")"
if test ! -f "$patchdir/patchinstall.sh"; then
if test -f ./patchinstall.sh; then
patchdir="$(pwd)"
else
abort "Failed to find patch directory."
fi
fi
# Parse commandline arguments
if test "$#" -eq 0; then
abort "No commandline arguments given, don't know what to do."
fi
@@ -95,8 +116,13 @@ while test "$#" -gt 0; do
exit 0
;;
--no-autoupdate)
enable_autoupdate=0
--no-patchlist)
enable_patchlist=0
shift
;;
--no-autoconf)
enable_autoconf=0
shift
;;
@@ -115,24 +141,86 @@ if test "$enable" -ne 1; then
abort "Missing argument for -W, expected patchname."
fi
# Determine DESTDIR if not explicitly specified
if test -z "$DESTDIR" -a -f ./tools/make_requests; then
DESTDIR="$(pwd)"
elif test ! -f "$DESTDIR/tools/make_requests"; then
abort "DESTDIR does not point to the Wine source tree."
fi
# Change directory to DESTDIR, epatch depends on that
if ! cd "$DESTDIR"; then
abort "Unable to change directory to $DESTDIR."
fi
# Most backends will try to use git, either directly or indirectly.
# Unfortunately this does not work when "$DESTDIR" points to a
# subdirectory of a git tree, which has the effect that no patches
# are applied, but the exitcode is zero. To avoid broken builds we
# will workaround this issue or abort. For more information see
# https://github.com/wine-compholio/wine-staging/issues/7
test ! -d ".git" && git rev-parse --git-dir >/dev/null 2>&1
workaround_git_bug="$?"
# Apply the patches using gitapply.sh, a small wrapper around 'patch'
if test "$backend" = "patch"; then
patch_apply ()
if test "$workaround_git_bug" -eq 0; then
gitapply_args="--nogit"
else
gitapply_args=""
fi
patch_apply_file ()
{{
echo "Applying $1"
if ! ../debian/tools/gitapply.sh -d "$DESTDIR" < "$1"; then
if ! "$patchdir/../debian/tools/gitapply.sh" $gitapply_args < "$1"; then
abort "Failed to apply patch, aborting!"
fi
}}
# 'epatch' backend - used on Gentoo
elif test "$backend" = "epatch"; then
if test "$workaround_git_bug" -eq 0; then
gitapply_args="--nogit"
else
gitapply_args=""
fi
if ! command -v epatch >/dev/null 2>&1 || \
! command -v ebegin >/dev/null 2>&1 || \
! command -v eend >/dev/null 2>&1 || \
! command -v die >/dev/null 2>&1; then
abort "Shell functions epatch/ebegin/eend not found. You have to source this script from your ebuild."
fi
patch_apply_file ()
{{
shortname="$(basename "$1")"
if grep -q "^GIT binary patch" "$1"; then
ebegin "Applying $shortname"
"$patchdir/../debian/tools/gitapply.sh" $gitapply_args < "$1" || \
die "Failed Patch: $1!"
eend
else
epatch "$1" # epatch calls die upon failure
fi
}}
# GIT backend - apply patches using 'git am'
elif test "$backend" = "git" -o "$backend" = "git-am"; then
patch_apply ()
if test "$workaround_git_bug" -eq 0; then
abort "Backend 'git-am' not possible when DESTDIR points to a git subdirectory."
fi
patch_apply_file ()
{{
echo "Applying $1"
if ! cat "$1" | (cd "$DESTDIR" && git am); then
if ! git am "$1"; then
abort "Failed to apply patch, aborting!"
fi
}}
@@ -140,10 +228,14 @@ elif test "$backend" = "git" -o "$backend" = "git-am"; then
# Git apply backend
elif test "$backend" = "git-apply"; then
patch_apply ()
if test "$workaround_git_bug" -eq 0; then
abort "Backend 'git-apply' not possible when DESTDIR points to a git subdirectory."
fi
patch_apply_file ()
{{
echo "Applying $1"
if ! cat "$1" | (cd "$DESTDIR" && git apply); then
if ! git apply "$1"; then
abort "Failed to apply patch, aborting!"
fi
}}
@@ -151,14 +243,20 @@ elif test "$backend" = "git-apply"; then
# Stacked GIT backend - import the patches (mainly for developers)
elif test "$backend" = "stg"; then
if test "$workaround_git_bug" -eq 0; then
abort "Backend 'stg' not possible when DESTDIR points to a git subdirectory."
fi
# Only import the regular patches, no autogenerated ones -
# moreover, don't run autoreconf or ./tools/make_requests.
enable_autoupdate=0
enable_patchlist=0
enable_autoconf=0
patch_apply ()
patch_apply_file ()
{{
echo "Applying $1"
if ! echo "staging/$1" | cat - "$1" | (cd "$DESTDIR" && stg import); then
shortname="$(basename "$1")"
if ! echo "staging/$shortname" | cat - "$1" | stg import; then
abort "Failed to apply patch, aborting!"
fi
}}
@@ -167,30 +265,25 @@ else
abort "Selected backend $backend not supported."
fi
patch_apply ()
{{
patch_apply_file "$patchdir/$1"
}}
{patch_resolver}
if test -z "$DESTDIR" -a -f ./tools/make_requests; then
DESTDIR="$(pwd)"
elif test ! -f "$DESTDIR/tools/make_requests"; then
abort "DESTDIR does not point to the Wine source tree."
fi
# To make sure we find all the patches and tools switch to the patches directory now
script="$(readlink -f "$0")"
curdir="$(dirname "$script")"
if ! cd "$curdir"; then
abort "Failed to change working directory to $curdir."
fi
# If autoupdate is enabled then create a tempfile to keep track of all patches
if test "$enable_autoupdate" -eq 1; then
patchlist=$(mktemp)
if test ! -f "$patchlist"; then
echo "ERROR: Unable to create temporary file for patchlist." >&2
exit 1
if test "$enable_patchlist" -eq 1; then
if test "$enable_Staging" -eq 1; then
patchlist=$(mktemp)
if test ! -f "$patchlist"; then
abort "Unable to create temporary file for patchlist."
fi
else
warning "Skipping generation of patchlist because 'Staging' patchset is disabled."
enable_patchlist=0
fi
fi
@@ -198,33 +291,22 @@ fi
{patch_apply}
if test "$enable_autoupdate" -eq 1; then
if test "$enable_patchlist" -eq 1; then
# Generate a temporary patch containing the patchlist and apply it
patch_data=$(cat "$patchlist" | sort)
patch_lines=$(echo "$patch_data" | wc -l)
if test ! -z "$patch_data"; then
patch_lines=$((${{patch_lines}}+23))
patch_lines=$(echo "$patch_data" | wc -l)
patch_lines=$((${{patch_lines}}+21))
cat > "$patchlist" <<EOF
From: Wine Staging Team <webmaster@fds-team.de>
Subject: Autogenerated patch list.
diff --git a/include/wine/library.h b/include/wine/library.h
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -43,6 +43,7 @@ extern const char *wine_get_data_dir(void);
extern const char *wine_get_server_dir(void);
extern const char *wine_get_user_name(void);
extern const char *wine_get_version(void);
+extern const void *wine_get_patches(void);
extern const char *wine_get_build_id(void);
extern void wine_init_argv0_path( const char *argv0 );
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index a273502..0a3182f 100644
index 5262c76..0a3182f 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -478,6 +478,${{patch_lines}} @@ const char *wine_get_version(void)
@@ -478,10 +478,${{patch_lines}} @@ const char *wine_get_version(void)
return PACKAGE_VERSION;
}}
@@ -240,49 +322,25 @@ ${{patch_data}}
+ {{ NULL, NULL, 0 }}
+}};
+
+/* return the applied non-standard patches */
+const void *wine_get_patches(void)
+{{
+ return &wine_patch_data[0];
+}}
+
/* return the build id string */
const char *wine_get_build_id(void)
/* return the applied non-standard patches */
const void *wine_get_patches(void)
{{
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index ed315bd..5b42029 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -83,6 +83,7 @@ EXPORTS
wine_get_sortkey
wine_get_user_name
wine_get_version
+ wine_get_patches
wine_init
wine_init_argv0_path
wine_is_dbcs_leadbyte
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 2159fac..7cb2918 100644
--- a/libs/wine/wine.map
+++ b/libs/wine/wine.map
@@ -90,6 +90,7 @@ WINE_1.0
wine_get_ss;
wine_get_user_name;
wine_get_version;
+ wine_get_patches;
wine_init;
wine_init_argv0_path;
wine_is_dbcs_leadbyte;
- return NULL;
+ return &wine_patch_data[0];
}}
/* return the build id string */
EOF
patch_apply "$patchlist"
patch_apply_file "$patchlist"
fi
rm "$patchlist"
fi
# Other autogenerated changes
if ! (cd "$DESTDIR" && autoreconf -f); then
if test "$enable_autoconf" -eq 1; then
if ! autoreconf -f; then
abort "'autoreconf -f' failed."
fi
if ! (cd "$DESTDIR" && ./tools/make_requests); then
if ! ./tools/make_requests; then
abort "'./tools/make_requests' failed."
fi
fi

View File

@@ -21,6 +21,8 @@
import binascii
import cPickle as pickle
import contextlib
import fnmatch
import hashlib
import itertools
import math
@@ -35,6 +37,8 @@ import subprocess
import sys
import tempfile
import textwrap
import urllib
import xml.dom.minidom
_devnull = open(os.devnull, 'wb')
@@ -73,6 +77,7 @@ class PatchSet(object):
self.patches = []
self.modified_files = set()
self.depends = set()
self.auto_depends = set()
self.verify_time = None
@@ -133,6 +138,34 @@ def _parse_int(val, default=0):
except AttributeError:
return default
def _winebugs_query(bugids):
"""Query short_desc from multiple wine bugzilla bugs at the same time."""
bugids = list(set(bugids)) # Remove duplicates and convert to fixed order
if len(bugids) == 0: return {}
# Query bugzilla
url = "http://bugs.winehq.org/show_bug.cgi?%s&ctype=xml&field=short_desc&field=bug_status&field=resolution" % \
"&".join(["id=%d" % bugid for bugid in bugids])
with contextlib.closing(urllib.urlopen(url)) as fp:
data = xml.dom.minidom.parseString(fp.read())
# convert xml in a dictionary containing all bugs we found
result = {}
for element in data.getElementsByTagName('bug_id'):
bugids.remove(int(element.firstChild.data))
def _get_text(n):
return n.firstChild.data if (n and n.firstChild) else None
for bugid, element in zip(bugids, data.getElementsByTagName('bug')):
if element.getElementsByTagName('bug_id'): continue
result[bugid] = {
'short_desc': _get_text(element.getElementsByTagName('short_desc')[0]),
'bug_status': _get_text(element.getElementsByTagName('bug_status')[0]),
'resolution': _get_text(element.getElementsByTagName('resolution')[0]) }
return result
def _read_changelog():
"""Read information from changelog."""
with open(config.path_changelog) as fp:
@@ -146,11 +179,12 @@ def _stable_compholio_version():
if distro.lower() != "unreleased":
return version
def _latest_wine_commit():
def _latest_wine_commit(commit=None):
"""Get latest wine commit."""
if not os.path.isdir(config.path_wine):
raise PatchUpdaterError("Please create a symlink to the wine repository in %s" % config.path_wine)
commit = subprocess.check_output(["git", "rev-parse", "origin/master"], cwd=config.path_wine).strip()
if commit is None:
commit = subprocess.check_output(["git", "rev-parse", "origin/master"], cwd=config.path_wine).strip()
assert len(commit) == 40
return commit
@@ -187,65 +221,12 @@ def enum_directories(revision, path):
return dirs
def read_definition(revision, filename, name_to_id):
"""Read a definition file and return information as tuple (depends, fixes)."""
filename = os.path.join(filename, "definition")
if revision is None:
with open(filename) as fp:
content = fp.read()
else:
filename = "%s:%s" % (revision, filename)
try:
content = subprocess.check_output(["git", "show", filename], stderr=_devnull)
except subprocess.CalledProcessError:
raise IOError("Failed to load %s" % filename)
depends = set()
fixes = []
disabled = False
ifdefined = None
for line in content.split("\n"):
if line.startswith("#"):
continue
tmp = line.split(":", 1)
if len(tmp) != 2:
continue
key, val = tmp[0].lower(), tmp[1].strip()
if key == "depends":
if name_to_id is not None:
if not name_to_id.has_key(val):
raise PatchUpdaterError("Definition file %s references unknown dependency %s" % (filename, val))
depends.add(name_to_id[val])
elif key == "fixes":
r = re.match("^[0-9]+$", val)
if r:
fixes.append((int(val), None))
continue
r = re.match("^\\[ *([0-9]+) *\\](.*)$", val)
if r:
fixes.append((int(r.group(1)), r.group(2).strip()))
continue
fixes.append((None, val))
elif key == "disabled":
disabled = _parse_int(val)
elif key == "ifdefined":
ifdefined = val
elif revision is None:
print "WARNING: Ignoring unknown command in definition file %s: %s" % (filename, line)
return depends, fixes, disabled, ifdefined
def read_patchset(revision = None):
"""Read information about all patchsets for a specific revision."""
unique_id = itertools.count()
all_patches = {}
name_to_id = {}
all_bugids = set()
# Read in sorted order (to ensure created Makefile doesn't change too much)
for name, directory in sorted(enum_directories(revision, config.path_patches)):
@@ -282,10 +263,72 @@ def read_patchset(revision = None):
# Now read the definition files in a second step
for i, patch in all_patches.iteritems():
try:
patch.depends, patch.fixes, patch.disabled, patch.ifdefined = \
read_definition(revision, os.path.join(config.path_patches, patch.name), name_to_id)
except IOError:
patch.depends, patch.fixes, patch.disabled, patch.ifdefined = set(), [], False, None
filename = os.path.join(os.path.join(config.path_patches, patch.name), "definition")
if revision is None:
with open(filename) as fp:
content = fp.read()
else:
filename = "%s:%s" % (revision, filename)
content = subprocess.check_output(["git", "show", filename], stderr=_devnull)
except (IOError, subprocess.CalledProcessError):
continue # Skip this definition file
for line in content.split("\n"):
if line.startswith("#"):
continue
tmp = line.split(":", 1)
if len(tmp) != 2:
continue
key, val = tmp[0].lower(), tmp[1].strip()
if key == "depends":
if not name_to_id.has_key(val):
raise PatchUpdaterError("Definition file %s references unknown dependency %s" % (filename, val))
patch.depends.add(name_to_id[val])
elif key == "apply-after":
for j, other_patch in all_patches.iteritems():
if i != j and any([fnmatch.fnmatch(f, val) for f in other_patch.modified_files]):
patch.auto_depends.add(j)
elif key == "fixes":
r = re.match("^[0-9]+$", val)
if r:
bugid = int(val)
patch.fixes.append((bugid, None))
all_bugids.add(bugid)
continue
r = re.match("^\\[ *([0-9]+) *\\](.*)$", val)
if r:
bugid = int(r.group(1))
patch.fixes.append((bugid, r.group(2).strip()))
all_bugids.add(bugid)
continue
patch.fixes.append((None, val))
elif key == "disabled":
patch.disabled = _parse_int(val)
elif key == "ifdefined":
patch.ifdefined = val
elif revision is None:
print "WARNING: Ignoring unknown command in definition file %s: %s" % (filename, line)
# To simplify the task of keeping the bug list up-to-date, list all bugs
# which might require attention.
if revision is None:
once = True
for bugid, bug in sorted(_winebugs_query(all_bugids).items()):
if bug['bug_status'] not in ["UNCONFIRMED", "NEW", "REOPENED"]:
if once:
print ""
print "WARNING: The following bugs might require attention:"
print ""
once = False
print " #%d - \"%s\" - %s %s" % (bugid, bug['short_desc'], bug['bug_status'],
bug['resolution'] if bug['resolution'] else "")
print ""
return all_patches
@@ -374,6 +417,7 @@ def resolve_dependencies(all_patches, index = None, depends = None):
# Recusively resolve dependencies
all_patches[i].verify_resolved = -1
_resolve(all_patches[i].depends)
_resolve(all_patches[i].auto_depends)
all_patches[i].verify_resolved = 1
resolved.append(i)
@@ -457,46 +501,59 @@ def generate_script(all_patches):
modified_files[f].append(i)
# Check dependencies
for filename, indices in modified_files.iteritems():
pool = multiprocessing.pool.ThreadPool(processes=4)
try:
for filename, indices in modified_files.iteritems():
# If one of patches is a binary patch, then we cannot / won't verify it - require dependencies in this case
if contains_binary_patch(all_patches, indices, filename):
if not causal_time_relation_any(all_patches, indices):
raise PatchUpdaterError("Because of binary patch modifying file %s the following patches need explicit dependencies: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
continue
# If one of patches is a binary patch, then we cannot / won't verify it - require dependencies in this case
if contains_binary_patch(all_patches, indices, filename):
if not causal_time_relation_any(all_patches, indices):
raise PatchUpdaterError("Because of binary patch modifying file %s the following patches need explicit dependencies: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
continue
original_content = get_wine_file(filename)
selected_patches = select_patches(all_patches, indices, filename)
original_content = get_wine_file(filename)
selected_patches = select_patches(all_patches, indices, filename)
# Show a progress bar while applying the patches - this task might take some time
with progressbar.ProgressBar(desc=filename, total=2 ** len(indices)) as progress:
for k, bitstring in enumerate(itertools.product([0,1], repeat=len(indices))):
progress.update(k)
# Show a progress bar while applying the patches - this task might take some time
chunk_size = 20
with progressbar.ProgressBar(desc=filename, total=2 ** len(indices) / chunk_size) as progress:
set_apply = [(i, all_patches[i]) for u, i in zip(bitstring, indices) if u]
set_skip = [(i, all_patches[i]) for u, i in zip(bitstring, indices) if not u]
test_apply = True
def test_apply(bitstring):
set_apply = [(i, all_patches[i]) for u, i in zip(bitstring, indices) if u]
set_skip = [(i, all_patches[i]) for u, i in zip(bitstring, indices) if not u]
# Check if there is any patch2 which depends directly or indirectly on patch1.
# If this is the case we found an impossible situation, we can be skipped in this test.
for i, patch1 in set_apply:
for j, patch2 in set_skip:
if causal_time_smaller(patch2.verify_time, patch1.verify_time):
test_apply = False
break
if not test_apply:
break
# Check if there is any patch2 which depends directly or indirectly on patch1.
# If this is the case we found an impossible situation, we can be skipped in this test.
for i, patch1 in set_apply:
for j, patch2 in set_skip:
if causal_time_smaller(patch2.verify_time, patch1.verify_time):
return True # we can skip this test
if test_apply:
try:
original = original_content
for i, patch in set_apply:
original = patchutils.apply_patch(original, selected_patches[i][1], fuzz=0)
except patchutils.PatchApplyError:
return False
return True # everything is fine
def test_apply_seq(bitstrings):
for bitstring in bitstrings:
if not test_apply(bitstring):
return False
return True
it = _split_seq(itertools.product([0,1], repeat=len(indices)), chunk_size)
for k, res in enumerate(pool.imap_unordered(test_apply_seq, it)):
if not res:
progress.finish("<failed to apply>")
raise PatchUpdaterError("Changes to file %s don't apply: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
progress.update(k)
finally:
pool.close()
# Generate code for helper functions
lines = []
@@ -504,7 +561,7 @@ def generate_script(all_patches):
lines.append("patch_enable_all ()\n")
lines.append("{\n")
for i, patch in sorted([(i, all_patches[i]) for i in resolved], key=lambda x:x[1].name):
patch.variable = "enable_%s" % patch.name.replace("-","_")
patch.variable = "enable_%s" % patch.name.replace("-","_").replace(".","_")
lines.append("\t%s=\"$1\"\n" % patch.variable)
lines.append("}\n")
lines.append("\n")
@@ -588,7 +645,7 @@ def generate_markdown(all_patches, stable_patches, stable_compholio_version):
return "* %s ([Wine Bug #%d](https://bugs.winehq.org/show_bug.cgi?id=%d))" % \
(bugname, bugid, bugid) #, short_desc.replace("\\", "\\\\").replace("\"", "\\\""))
all_fixes = {}
all_fixes = {}
# Get fixes for current version
for _, patch in all_patches.iteritems():
@@ -650,7 +707,7 @@ if __name__ == "__main__":
try:
# Get information about Wine and Compholio version
latest_wine_commit = _latest_wine_commit()
latest_wine_commit = _latest_wine_commit(sys.argv[1] if len(sys.argv) >= 2 else None)
stable_compholio_version = _stable_compholio_version()
# Read current and stable patches

View File

@@ -375,7 +375,7 @@ def generate_ifdef_patch(original, patched, ifdef):
"""Generate a patch which adds #ifdef where necessary to keep both the original and patched version."""
def _preprocess_source(fp):
"""Simple C preprocessor to determine where we can savely add #ifdef instructions."""
"""Simple C preprocessor to determine where we can safely add #ifdef instructions."""
_re_state0 = re.compile("(\"|/[/*])")
_re_state1 = re.compile("(\\\"|\")")
@@ -418,7 +418,7 @@ def generate_ifdef_patch(original, patched, ifdef):
elif match.group(0) == "/*":
state = 2 # Begin of comment
elif match.group(0) == "//":
break # Rest of the line is a comment, which can be savely ignored
break # Rest of the line is a comment, which can be safely ignored
else:
assert 0
@@ -460,7 +460,7 @@ def generate_ifdef_patch(original, patched, ifdef):
# The basic of idea of this algorithm is as following:
#
# (1) determine diff between original file and patched file
# (2) run the preprocessor, to determine where #ifdefs can be savely added
# (2) run the preprocessor, to determine where #ifdefs can be safely added
# (3) use diff and preprocessor information to create a merged version containing #ifdefs
# (4) create another diff to apply the changes on the patched version
#

View File

@@ -1,4 +1,4 @@
From 8c7754a1da9f43cf15057a8467c0b76c9da2ce40 Mon Sep 17 00:00:00 2001
From 5a4827d5c16aefd82029583710b9032a2356917b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 22 Nov 2014 05:49:30 +0100
Subject: ntdll: Fix issues with write watches when using Exagear.
@@ -8,10 +8,10 @@ Subject: ntdll: Fix issues with write watches when using Exagear.
1 file changed, 21 insertions(+)
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 1a8e4a4..4140323 100644
index f7aae0b..3fa2027 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1558,6 +1558,26 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err )
@@ -1558,6 +1558,26 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
{
void *page = ROUND_ADDR( addr, page_mask );
BYTE *vprot = &view->prot[((const char *)page - (const char *)view->base) >> page_shift];
@@ -38,14 +38,14 @@ index 1a8e4a4..4140323 100644
if (err & EXCEPTION_WRITE_FAULT)
{
if ((view->protect & VPROT_WRITEWATCH) && (*vprot & VPROT_WRITEWATCH))
@@ -1573,6 +1593,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err )
@@ -1573,6 +1593,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
/* ignore fault if page is writable now */
if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS;
}
+#endif
if (*vprot & VPROT_GUARD)
if (!on_signal_stack && (*vprot & VPROT_GUARD))
{
VIRTUAL_SetProt( view, page, page_size, *vprot & ~VPROT_GUARD );
--
2.1.3
2.2.2

View File

@@ -1,4 +1,4 @@
From f56694f318ce0134317b812ff32f6c35875c31b3 Mon Sep 17 00:00:00 2001
From aa76ae0448583e87dbe7f374101eb5b20d55dea8 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 117c8eb..3988628 100644
index 0c10ffa..2f35992 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -11163,7 +11163,7 @@ static void yuv_layout_test(void)
@@ -11161,7 +11161,7 @@ static void yuv_layout_test(void)
IDirect3D9 *d3d;
D3DCOLOR color;
DWORD ref_color;
@@ -38,10 +38,10 @@ index d2a61fa..bb7ac1c 100644
if (servername && !(server = strdup_unixcp( servername ))) return ERROR_OUTOFMEMORY;
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c
index a4c02bf..909db53 100644
index e32cb54..ddf972d 100644
--- a/dlls/winealsa.drv/mmdevdrv.c
+++ b/dlls/winealsa.drv/mmdevdrv.c
@@ -353,7 +353,7 @@ static WCHAR *construct_device_id(EDataFlow flow, const WCHAR *chunk1, const cha
@@ -359,7 +359,7 @@ static WCHAR *construct_device_id(EDataFlow flow, const WCHAR *chunk1, const cha
{
WCHAR *ret;
const WCHAR *prefix;
@@ -51,13 +51,13 @@ index a4c02bf..909db53 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 34cc567..4f2a6c6 100644
index f3e921c..fa64436 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -5784,7 +5784,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
GLhandleARB vs_id = 0;
GLhandleARB gs_id = 0;
GLhandleARB ps_id = 0;
@@ -5834,7 +5834,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;
- struct list *ps_list, *vs_list;
+ struct list *ps_list = NULL, *vs_list = NULL;
@@ -77,5 +77,5 @@ index 54aab45..103422e 100644
expand = get_make_variable( make, name );
if (!expand) return NULL;
--
2.1.1
2.2.1

View File

@@ -1,13 +1,17 @@
From 6661529d2422f99287336b764fe7a5b61484b8ad Mon Sep 17 00:00:00 2001
From f23512417cb3d149a8be4f757282d17cc1f99f9a Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 29 May 2014 23:43:45 +0200
Subject: loader: Add commandline option --patches to show the patch list.
---
dlls/ntdll/misc.c | 8 ++++++++
dlls/ntdll/ntdll.spec | 1 +
loader/main.c | 36 +++++++++++++++++++++++++++++++++++-
3 files changed, 44 insertions(+), 1 deletion(-)
dlls/ntdll/misc.c | 8 ++++++++
dlls/ntdll/ntdll.spec | 1 +
include/wine/library.h | 1 +
libs/wine/config.c | 6 ++++++
libs/wine/wine.def | 1 +
libs/wine/wine.map | 1 +
loader/main.c | 42 +++++++++++++++++++++++++++++++++++++++++-
7 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
index ad1b43b..1f985e7 100644
@@ -29,7 +33,7 @@ index ad1b43b..1f985e7 100644
*/
const char * CDECL NTDLL_wine_get_build_id(void)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 7e95969..f9483aa 100644
index 51de6e7..ee4ed49 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -1421,6 +1421,7 @@
@@ -40,8 +44,61 @@ index 7e95969..f9483aa 100644
@ cdecl wine_get_build_id() NTDLL_wine_get_build_id
@ cdecl wine_get_host_version(ptr ptr) NTDLL_wine_get_host_version
diff --git a/include/wine/library.h b/include/wine/library.h
index 242bb69..fae73fe 100644
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -43,6 +43,7 @@ extern const char *wine_get_data_dir(void);
extern const char *wine_get_server_dir(void);
extern const char *wine_get_user_name(void);
extern const char *wine_get_version(void);
+extern const void *wine_get_patches(void);
extern const char *wine_get_build_id(void);
extern void wine_init_argv0_path( const char *argv0 );
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index a273502..5262c76 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -478,6 +478,12 @@ const char *wine_get_version(void)
return PACKAGE_VERSION;
}
+/* return the applied non-standard patches */
+const void *wine_get_patches(void)
+{
+ return NULL;
+}
+
/* return the build id string */
const char *wine_get_build_id(void)
{
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index ed315bd..5b42029 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -83,6 +83,7 @@ EXPORTS
wine_get_sortkey
wine_get_user_name
wine_get_version
+ wine_get_patches
wine_init
wine_init_argv0_path
wine_is_dbcs_leadbyte
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 2159fac..7cb2918 100644
--- a/libs/wine/wine.map
+++ b/libs/wine/wine.map
@@ -90,6 +90,7 @@ WINE_1.0
wine_get_ss;
wine_get_user_name;
wine_get_version;
+ wine_get_patches;
wine_init;
wine_init_argv0_path;
wine_is_dbcs_leadbyte;
diff --git a/loader/main.c b/loader/main.c
index ac67290..b1df463 100644
index ce21173..4794e51 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -89,7 +89,8 @@ static void check_command_line( int argc, char *argv[] )
@@ -54,7 +111,7 @@ index ac67290..b1df463 100644
if (argc <= 1)
{
@@ -106,6 +107,39 @@ static void check_command_line( int argc, char *argv[] )
@@ -106,6 +107,45 @@ static void check_command_line( int argc, char *argv[] )
printf( "%s\n", wine_get_build_id() );
exit(0);
}
@@ -68,6 +125,12 @@ index ac67290..b1df463 100644
+ }
+ *next, *cur = wine_get_patches();
+
+ if (!cur)
+ {
+ fprintf( stderr, "Patchlist not available.\n" );
+ exit(1);
+ }
+
+ while (cur->author)
+ {
+ next = cur + 1;
@@ -77,7 +140,7 @@ index ac67290..b1df463 100644
+ next++;
+ }
+
+ printf( "%s (%d):\n", cur->author, next - cur );
+ printf( "%s (%d):\n", cur->author, (int)(next - cur) );
+ while (cur < next)
+ {
+ printf( " %s", cur->subject );
@@ -95,5 +158,5 @@ index ac67290..b1df463 100644
--
2.1.3
2.2.1

View File

@@ -1,19 +1,19 @@
From 5f0f1d8dc69cd473f35c874b46e98a34930d0b46 Mon Sep 17 00:00:00 2001
From e71a6c24c41e3d390a81aac1986938a1db71f9e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 28 May 2014 19:50:51 +0200
Subject: loader: Add commandline option --check-libs.
---
include/wine/library.h | 2 +
libs/wine/config.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++
libs/wine/loader.c | 36 +++++++++++++++++
libs/wine/config.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++++
libs/wine/loader.c | 36 ++++++++++++++++
libs/wine/wine.def | 2 +
libs/wine/wine.map | 2 +
loader/main.c | 50 +++++++++++++++++++++++-
6 files changed, 194 insertions(+), 1 deletion(-)
loader/main.c | 50 +++++++++++++++++++++-
6 files changed, 203 insertions(+), 1 deletion(-)
diff --git a/include/wine/library.h b/include/wine/library.h
index 242bb69..fa1e339 100644
index fae73fe..7395a11 100644
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -40,6 +40,7 @@ extern "C" {
@@ -24,7 +24,7 @@ index 242bb69..fa1e339 100644
extern const char *wine_get_server_dir(void);
extern const char *wine_get_user_name(void);
extern const char *wine_get_version(void);
@@ -51,6 +52,7 @@ extern void wine_exec_wine_binary( const char *name, char **argv, const char *en
@@ -52,6 +53,7 @@ extern void wine_exec_wine_binary( const char *name, char **argv, const char *en
typedef void (*load_dll_callback_t)( void *, const char * );
@@ -33,10 +33,10 @@ index 242bb69..fa1e339 100644
extern void *wine_dlsym( void *handle, const char *symbol, char *error, size_t errorsize );
extern int wine_dlclose( void *handle, char *error, size_t errorsize );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index a273502..58e4977 100644
index 5262c76..7acf51b 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -444,6 +444,109 @@ const char *wine_get_build_dir(void)
@@ -444,6 +444,118 @@ const char *wine_get_build_dir(void)
return build_dir;
}
@@ -104,6 +104,15 @@ index a273502..58e4977 100644
+#ifdef SONAME_LIBV4L1
+ SONAME_LIBV4L1,
+#endif
+#ifdef SONAME_LIBVA
+ SONAME_LIBVA,
+#endif
+#ifdef SONAME_LIBVA_DRM
+ SONAME_LIBVA_DRM,
+#endif
+#ifdef SONAME_LIBVA_X11
+ SONAME_LIBVA_X11,
+#endif
+#ifdef SONAME_LIBX11
+ SONAME_LIBX11,
+#endif
@@ -194,7 +203,7 @@ index 3591ede..2718857 100644
*/
void *wine_dlsym( void *handle, const char *symbol, char *error, size_t errorsize )
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index ed315bd..b6acbce 100644
index 5b42029..6acf329 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -64,6 +64,7 @@ EXPORTS
@@ -214,7 +223,7 @@ index ed315bd..b6acbce 100644
wine_get_sortkey
wine_get_user_name
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 2159fac..91ace06 100644
index 7cb2918..72ffed8 100644
--- a/libs/wine/wine.map
+++ b/libs/wine/wine.map
@@ -65,6 +65,7 @@ WINE_1.0
@@ -234,7 +243,7 @@ index 2159fac..91ace06 100644
wine_get_sortkey;
wine_get_ss;
diff --git a/loader/main.c b/loader/main.c
index 76bf324..36738f2 100644
index fa0efa2..e96363d 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -36,6 +36,12 @@
@@ -260,7 +269,7 @@ index 76bf324..36738f2 100644
if (argc <= 1)
{
@@ -135,6 +142,47 @@ static void check_command_line( int argc, char *argv[] )
@@ -146,6 +153,47 @@ static void check_command_line( int argc, char *argv[] )
exit(0);
}
@@ -309,5 +318,5 @@ index 76bf324..36738f2 100644
--
2.1.2
2.3.1

View File

@@ -1,71 +0,0 @@
From 4d79656ea8c30f14fcd4a8e6a901e7b50ea50eef Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Thu, 17 Apr 2014 04:34:30 +0800
Subject: atl: Don't use GWLP_USERDATA to store IOCS to avoid conflict with
Apps.
---
dlls/atl/atl_ax.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/atl/atl_ax.c b/dlls/atl/atl_ax.c
index 5bafbf1..45936e8 100644
--- a/dlls/atl/atl_ax.c
+++ b/dlls/atl/atl_ax.c
@@ -38,6 +38,8 @@
#include "wine/unicode.h"
+#define WINE_IOCS_PROPERTY "WINE_IOCS"
+
WINE_DEFAULT_DEBUG_CHANNEL(atl);
typedef struct IOCS {
@@ -150,7 +152,7 @@ static HRESULT IOCS_Detach( IOCS *This ) /* remove subclassing */
if ( This->hWnd )
{
SetWindowLongPtrW( This->hWnd, GWLP_WNDPROC, (ULONG_PTR) This->OrigWndProc );
- SetWindowLongPtrW( This->hWnd, GWLP_USERDATA, 0 );
+ RemovePropA( This->hWnd, WINE_IOCS_PROPERTY );
This->hWnd = NULL;
}
if ( This->control )
@@ -906,7 +908,7 @@ static LRESULT IOCS_OnWndProc( IOCS *This, HWND hWnd, UINT uMsg, WPARAM wParam,
static LRESULT CALLBACK AtlHost_wndproc( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
{
- IOCS *This = (IOCS*) GetWindowLongPtrW( hWnd, GWLP_USERDATA );
+ IOCS *This = (IOCS *)GetPropA( hWnd, WINE_IOCS_PROPERTY );
return IOCS_OnWndProc( This, hWnd, wMsg, wParam, lParam );
}
@@ -915,7 +917,7 @@ static HRESULT IOCS_Attach( IOCS *This, HWND hWnd, IUnknown *pUnkControl ) /* su
This->hWnd = hWnd;
IUnknown_QueryInterface( pUnkControl, &IID_IOleObject, (void**)&This->control );
IOleObject_SetClientSite( This->control, &This->IOleClientSite_iface );
- SetWindowLongPtrW( hWnd, GWLP_USERDATA, (ULONG_PTR) This );
+ SetPropA( hWnd, WINE_IOCS_PROPERTY, This );
This->OrigWndProc = (WNDPROC)SetWindowLongPtrW( hWnd, GWLP_WNDPROC, (ULONG_PTR) AtlHost_wndproc );
return S_OK;
@@ -1329,7 +1331,7 @@ HRESULT WINAPI AtlAxGetHost(HWND hWnd, IUnknown **host)
*host = NULL;
- This = (IOCS*) GetWindowLongPtrW( hWnd, GWLP_USERDATA );
+ This = (IOCS *)GetPropA( hWnd, WINE_IOCS_PROPERTY );
if ( !This )
{
WARN("No container attached to %p\n", hWnd );
@@ -1351,7 +1353,7 @@ HRESULT WINAPI AtlAxGetControl(HWND hWnd, IUnknown **pUnk)
*pUnk = NULL;
- This = (IOCS*) GetWindowLongPtrW( hWnd, GWLP_USERDATA );
+ This = (IOCS *)GetPropA ( hWnd, WINE_IOCS_PROPERTY );
if ( !This || !This->control )
{
WARN("No control attached to %p\n", hWnd );
--
1.7.9.5

View File

@@ -1 +0,0 @@
Fixes: [21767] ATL IOCS data should not be stored in GWLP_USERDATA

View File

@@ -0,0 +1,53 @@
From fe4f06bfdb1a53e0be15aca8f1f8f897f7fef632 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 27 Feb 2015 17:46:11 +0100
Subject: browseui: Implement IProgressDialog::SetAnimation.
---
dlls/browseui/progressdlg.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/browseui/progressdlg.c b/dlls/browseui/progressdlg.c
index 598197b..a14fa17 100644
--- a/dlls/browseui/progressdlg.c
+++ b/dlls/browseui/progressdlg.c
@@ -175,6 +175,7 @@ static INT_PTR CALLBACK dialog_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM l
case WM_INITDIALOG:
{
struct create_params *params = (struct create_params *)lParam;
+ LONG_PTR style;
/* Note: until we set the hEvent, the object is protected by
* the critical section held by StartProgress */
@@ -191,6 +192,10 @@ static INT_PTR CALLBACK dialog_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM l
if (This->dwFlags & PROGDLG_NOMINIMIZE)
SetWindowLongW(hwnd, GWL_STYLE, GetWindowLongW(hwnd, GWL_STYLE) & (~WS_MINIMIZEBOX));
+ style = GetWindowLongPtrW(GetDlgItem(hwnd, IDC_ANIMATION), GWL_STYLE);
+ style |= ACS_AUTOPLAY | ACS_TRANSPARENT;
+ SetWindowLongPtrW(GetDlgItem(hwnd, IDC_ANIMATION), GWL_STYLE, style);
+
update_dialog(This, 0xffffffff);
This->dwUpdate = 0;
This->isCancelled = FALSE;
@@ -396,7 +401,16 @@ static HRESULT WINAPI ProgressDialog_SetTitle(IProgressDialog *iface, LPCWSTR pw
static HRESULT WINAPI ProgressDialog_SetAnimation(IProgressDialog *iface, HINSTANCE hInstance, UINT uiResourceId)
{
- FIXME("(%p, %p, %d) - stub\n", iface, hInstance, uiResourceId);
+ ProgressDialog *This = impl_from_IProgressDialog(iface);
+
+ TRACE("(%p, %p, %d)\n", iface, hInstance, uiResourceId);
+
+ if (uiResourceId & ~0xFFFF)
+ return S_OK;
+
+ if (!SendDlgItemMessageW(This->hwnd, IDC_ANIMATION, ACM_OPENW, (WPARAM)hInstance, uiResourceId))
+ WARN("Failed to load animation\n");
+
return S_OK;
}
--
2.3.0

View File

@@ -0,0 +1,161 @@
From 61fce27e29e7e61b76916d0e1014a3294217fb54 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 28 Feb 2015 02:28:08 +0100
Subject: browseui: Implement PROGDLG_AUTOTIME flag for IProgressDialog.
---
dlls/browseui/browseui.rc | 5 ++++
dlls/browseui/progressdlg.c | 64 +++++++++++++++++++++++++++++++++++++++++----
dlls/browseui/resids.h | 5 ++++
3 files changed, 69 insertions(+), 5 deletions(-)
diff --git a/dlls/browseui/browseui.rc b/dlls/browseui/browseui.rc
index 833b139..64b859d 100644
--- a/dlls/browseui/browseui.rc
+++ b/dlls/browseui/browseui.rc
@@ -25,6 +25,11 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
{
IDS_CANCELLING "Canceling..."
+ IDS_REMAINING1 "%u %s remaining"
+ IDS_REMAINING2 "%u %s and %u %s remaining"
+ IDS_SECONDS "seconds"
+ IDS_MINUTES "minutes"
+ IDS_HOURS "hours"
}
IDD_PROGRESS_DLG DIALOG 0, 0, 260, 85
diff --git a/dlls/browseui/progressdlg.c b/dlls/browseui/progressdlg.c
index 598197b..d632860 100644
--- a/dlls/browseui/progressdlg.c
+++ b/dlls/browseui/progressdlg.c
@@ -73,6 +73,9 @@ typedef struct tagProgressDialog {
ULONGLONG ullCompleted;
ULONGLONG ullTotal;
HWND hwndDisabledParent; /* For modal dialog: the parent that need to be re-enabled when the dialog ends */
+ ULONGLONG startTime;
+ LPWSTR remainingMsg[2];
+ LPWSTR timeMsg[3];
} ProgressDialog;
static inline ProgressDialog *impl_from_IProgressDialog(IProgressDialog *iface)
@@ -257,14 +260,18 @@ static DWORD WINAPI dialog_thread(LPVOID lpParameter)
static void ProgressDialog_Destructor(ProgressDialog *This)
{
+ int i;
TRACE("destroying %p\n", This);
if (This->hwnd)
end_dialog(This);
- heap_free(This->lines[0]);
- heap_free(This->lines[1]);
- heap_free(This->lines[2]);
+ for (i = 0; i < 3; i++)
+ heap_free(This->lines[i]);
heap_free(This->cancelMsg);
heap_free(This->title);
+ for (i = 0; i < 2; i++)
+ heap_free(This->remainingMsg[i]);
+ for (i = 0; i < 3; i++)
+ heap_free(This->timeMsg[i]);
This->cs.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->cs);
heap_free(This);
@@ -326,8 +333,6 @@ static HRESULT WINAPI ProgressDialog_StartProgressDialog(IProgressDialog *iface,
TRACE("(%p, %p, %x, %p)\n", iface, punkEnableModeless, dwFlags, reserved);
if (punkEnableModeless || reserved)
FIXME("Reserved parameters not null (%p, %p)\n", punkEnableModeless, reserved);
- if (dwFlags & PROGDLG_AUTOTIME)
- FIXME("Flags PROGDLG_AUTOTIME not supported\n");
if (dwFlags & PROGDLG_NOTIME)
FIXME("Flags PROGDLG_NOTIME not supported\n");
@@ -358,6 +363,7 @@ static HRESULT WINAPI ProgressDialog_StartProgressDialog(IProgressDialog *iface,
This->hwndDisabledParent = hwndDisable;
}
+ This->startTime = GetTickCount64();
LeaveCriticalSection(&This->cs);
return S_OK;
@@ -406,6 +412,52 @@ static BOOL WINAPI ProgressDialog_HasUserCancelled(IProgressDialog *iface)
return This->isCancelled;
}
+static void load_time_strings(ProgressDialog *This)
+{
+ int i;
+
+ for (i = 0; i < 2; i++)
+ {
+ if (!This->remainingMsg[i])
+ This->remainingMsg[i] = load_string(BROWSEUI_hinstance, IDS_REMAINING1 + i);
+ }
+ for (i = 0; i < 3; i++)
+ {
+ if (!This->timeMsg[i])
+ This->timeMsg[i] = load_string(BROWSEUI_hinstance, IDS_SECONDS + i);
+ }
+}
+
+static void update_time_remaining(ProgressDialog *This, ULONGLONG ullCompleted, ULONGLONG ullTotal)
+{
+ unsigned int remaining, remainder = 0;
+ ULONGLONG elapsed;
+ WCHAR line[128];
+ int i;
+
+ if (!This->startTime || !ullCompleted || !ullTotal)
+ return;
+
+ load_time_strings(This);
+
+ elapsed = GetTickCount64() - This->startTime;
+ remaining = (elapsed * ullTotal / ullCompleted - elapsed) / 1000;
+
+ for (i = 0; remaining >= 60 && i < 2; i++)
+ {
+ remainder = remaining % 60;
+ remaining /= 60;
+ }
+
+ if (i > 0 && remaining < 2 && remainder != 0)
+ wsprintfW(line, This->remainingMsg[1], remaining, This->timeMsg[i], remainder, This->timeMsg[i-1]);
+ else
+ wsprintfW(line, This->remainingMsg[0], remaining, This->timeMsg[i]);
+
+ set_buffer(&This->lines[2], line);
+ This->dwUpdate |= UPDATE_LINE3;
+}
+
static HRESULT WINAPI ProgressDialog_SetProgress64(IProgressDialog *iface, ULONGLONG ullCompleted, ULONGLONG ullTotal)
{
ProgressDialog *This = impl_from_IProgressDialog(iface);
@@ -418,6 +470,8 @@ static HRESULT WINAPI ProgressDialog_SetProgress64(IProgressDialog *iface, ULONG
This->ullCompleted = ullCompleted;
This->dwUpdate |= UPDATE_PROGRESS;
hwnd = This->hwnd;
+ if (This->dwFlags & PROGDLG_AUTOTIME)
+ update_time_remaining(This, ullCompleted, ullTotal);
LeaveCriticalSection(&This->cs);
if (hwnd)
diff --git a/dlls/browseui/resids.h b/dlls/browseui/resids.h
index cd44a8e..865cdd1 100644
--- a/dlls/browseui/resids.h
+++ b/dlls/browseui/resids.h
@@ -21,6 +21,11 @@
#include "commctrl.h"
#define IDS_CANCELLING 16
+#define IDS_REMAINING1 17
+#define IDS_REMAINING2 18
+#define IDS_SECONDS 19
+#define IDS_MINUTES 20
+#define IDS_HOURS 21
#define IDC_ANIMATION 100
#define IDC_PROGRESS_BAR 102
--
2.3.0

View File

@@ -0,0 +1,48 @@
From da4415d947b792fc5e0de978cf22e68d2b6b8601 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 1 Mar 2015 03:52:06 +0100
Subject: browseui: Avoid race-conditions when progress dialog is released
before thread terminates.
---
dlls/browseui/progressdlg.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dlls/browseui/progressdlg.c b/dlls/browseui/progressdlg.c
index e61a4cc..7d07ee9 100644
--- a/dlls/browseui/progressdlg.c
+++ b/dlls/browseui/progressdlg.c
@@ -235,6 +235,7 @@ static DWORD WINAPI dialog_thread(LPVOID lpParameter)
/* Note: until we set the hEvent in WM_INITDIALOG, the ProgressDialog object
* is protected by the critical section held by StartProgress */
struct create_params *params = lpParameter;
+ ProgressDialog *This = params->This;
HWND hwnd;
MSG msg;
@@ -252,6 +253,7 @@ static DWORD WINAPI dialog_thread(LPVOID lpParameter)
}
}
+ IProgressDialog_Release(&This->IProgressDialog_iface);
return 0;
}
@@ -341,10 +343,14 @@ static HRESULT WINAPI ProgressDialog_StartProgressDialog(IProgressDialog *iface,
return S_OK; /* as on XP */
}
This->dwFlags = dwFlags;
+
params.This = This;
params.hwndParent = hwndParent;
params.hEvent = CreateEventW(NULL, TRUE, FALSE, NULL);
+ /* thread holds one reference to ensure clean shutdown */
+ IProgressDialog_AddRef(&This->IProgressDialog_iface);
+
hThread = CreateThread(NULL, 0, dialog_thread, &params, 0, NULL);
WaitForSingleObject(params.hEvent, INFINITE);
CloseHandle(params.hEvent);
--
2.3.0

View File

@@ -0,0 +1,181 @@
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

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