This is an alternative location to filter out this environment variables, see merge request !8292 for details.
Doing this in winetest would have the advantage to protect all tests run by it, not just kernel32:process.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8299
--
v2: ir50_32: Suggest 24-bit RGB.
ir50_32: Return ICERR_OK from ICM_DECOMPRESS_END.
ir50_32: Do not handle a NULL input pointer in ICM_DECOMPRESS_GET_FORMAT.
ir50_32: Use case-insensitive comparison for the compression fourcc.
ir50_32/tests: Move compression and decompression tests from mf:transform.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8280
I see some CI runs fail with this message (e.g. [this run](https://gitlab.winehq.org/bernhardu/wine/-/jobs/164160):
```
...
$ if ($WINETEST_ARGS.count -gt 0) { # collapsed multi-line command
Running after_script 00:01
Traceback (most recent call last):
File "/home/gitlab-runner/tools/gitlab/virtrunner/qemu-agent.py", line 190, in <module>
main()
File "/home/gitlab-runner/tools/gitlab/virtrunner/qemu-agent.py", line 179, in main
ret = run(virsh, args)
File "/home/gitlab-runner/tools/gitlab/virtrunner/qemu-agent.py", line 112, in run
print(data.decode("utf-8"))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 8638: invalid start byte
Uploading artifacts for failed job 00:01
...
```
The artifact [winetest.log](https://gitlab.winehq.org/bernhardu/wine/-/jobs/164160/artifa… from the example above contains this test failures, where these environment variables do no longer match the parent process:
```
process.c:1327:1.000 Test succeeded
process.c:1327:1.015 Test failed: Parent-env string CI_COMMIT_AUTHOR=Bernhard Übelacker <bernhardu(a)mailbox.org> isn't in child process
process.c:1327:1.421 Test failed: Parent-env string GITLAB_USER_NAME=Bernhard Übelacker isn't in child process
process.c:1352:1.687 Test failed: Child-env string CI_COMMIT_AUTHOR=Bernhard sbelacker <bernhardu(a)mailbox.org> isn't in parent process
process.c:1352:1.687 Test failed: Child-env string GITLAB_USER_NAME=Bernhard sbelacker isn't in parent process
```
I tried to get some more details and [this testbot run](https://testbot.winehq.org/JobDetails.pl?Key=158611&f201=exe64.report#… points to the second CreateProcessA, which is given a specific `child_env` to use for process creation, but does not make it into child process in Windows for some reason.
Therefore this patch is an attempt to filter out these known environment variables.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8292
For React Native. React Native applications use HLSL shader linking extensively. Obviously, these two functions are not enough because they are just stubs. But I think it's good to get them in the tree so they don't get lost. Currently, React Native applications need to rely on the bundled native d3dcompiler.
--
v3: d3dcompiler_47: Implement D3DCreateFunctionLinkingGraph().
d3dcompiler_47: Implement D3DCreateLinker().
https://gitlab.winehq.org/wine/wine/-/merge_requests/8245
On Thu Jun 12 20:43:38 2025 +0000, eric pouech wrote:
> to summarize:
> * win7 (and below) don't have new form of console handles (bound ones),
> so test shall be skipped (skip_nt)
> * test can be run in Window8 (checking that console handles in child are
> not closed), but without using NtCompareObject
> this new MR disables the tests in Win8 which is not what the initlal intent
> so this MR should be reverted, and replaced by reintroducing the logic
> in first version of MR!8162 to handle the absence of NtCompareObject by
> clearing the corresponding flag
Thanks for the hints, I put it together in merge request !8301.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8271#note_106404
If entry->stgmedium.hEnhMetaFile is NULL, the data_size we get will be 0, we
then allocate 0 bytes for data, but expect it to contain at least a
METAFILEPICT, resulting in reading out-of-bound.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8298
In native Windows, the COPY command will display the names of the files as they are copied. Wine should do the same. This change enables that.
--
v17: cmd: Allow '+' as delimiter for tab-completion, e.g. 'copy file+file2'.
cmd/tests: Add tests to verify COPY command output.
cmd: COPY should output file names as they are copied.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200
In native Windows, the COPY command will display the names of the files as they are copied. Wine should do the same. This change enables that.
--
v16: cmd: COPY should output file names as they are copied.
cmd: Allow '+' as delimiter for tab-completion, e.g. 'copy file+file2'.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200
On Thu Jun 12 17:34:38 2025 +0000, eric pouech wrote:
> you should support the same parameters as below
> likely you'd better have the {cc=len; } body when
> parameter_with_delims() fails
I'm not sure that I understand the question. There are the delimiters that WCMD_parameter uses to parse the entire command line into different paths. Then for tab-completion, I need to parse for the search and insert points within each path. These delimiters are not the same.
For example, given the following string:
DIR C:\tmp C:\windows\sys<tab>
WCMD_parameters needs to parse that into the separate paths. Then, once I have C:\windows\sys<tab>, I have to search for C:\windows\sys*, and then insert the results at the last \, i.e. replace sys<tab> with system, etc. There is no need to parse the path for characters like \t, etc., because that cannot exist in a legal path and would have already been parsed out previously by the call to WCMD_parameter.
Further, the code at line 141 exists at all because in the case of COPY file1+<tab>, WCMD_parameter finds file1 as the last parameter, but for tab-completion I need to perform a wildcard search starting after the +.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200#note_106387
On Thu Jun 12 17:34:46 2025 +0000, eric pouech wrote:
> ditto is there a reason to not handle the other delimiters here?
Mainly same reason as other answer, that the delimiters that I need to parse within a given path are not the same as the delimiters needed by WCMD_parameter to pass a multi-path string into separate paths.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200#note_106386
Generic ATTribute Profile (GATT) is a protocol used by BLE devices for data exchange. Broadly, every LE device contains one or more GATT services, with each service having multiple characteristics, which contain the actual piece of data to be exchanged. The Win32 BLE api is defined in [`bluetoothleapis.h`](https://learn.microsoft.com/en-us/windows/win32/api/bluetoothleapis/), and operates on `HANDLE`s to PDOs created by the driver to remote devices and services, using the `GUID_BLUETOOTHLE_DEVICE_INTERFACE` and `GUID_BLUETOOTH_GATT_SERVICE_DEVICE_INTERFACE` class interfaces respectively.
This MR introduces initial support for accessing GATT services on LE devices:
* Create PDOs for remote devices that we discover GATT services on, and enabling `GUID_BLUETOOTHLE_DEVICE_INTERFACE` for them.
* Because the driver also creates PDOs for bluetooth radios, a tagged union is used to distinguish between device extension values to dispatch IOCTL and PnP IRPs appropriately.
* Enumerate through all `org.bluez.GattService1` objects on BlueZ, and store them on the PE driver inside the associated devices.
* Implement IOCTL_WINEBTH_LE_DEVICE_GET_GATT_SERVICES for device PDOs.
* Use the newly added IOCTL to implement [`BluetoothGATTGetServices`](https://learn.microsoft.com/en-us/windows/win32/api/bluetoothleapis/nf-bluetoothleapis-bluetoothgattgetservices).
--
v8: bluetoothapis/tests: Add tests for BluetoothGATTGetServices.
bluetoothapis: Implement BluetoothGATTGetServices.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8174