On Tue Feb 4 14:36:04 2025 +0000, Helix Graziani wrote:
> Even though the tests for IShellWindows are in shell32, the EA App gets
> it from ieframe.
I think it's because we register it in a wrong way, see `HKEY_CLASSES_ROOT\CLSID\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}`. On Wine, it contains `InprocServer32` key, while on Windows it uses `LocalServer32`. We should probably remove `threading()` attribute from `ShellWindows` coclass in `exdisp.idl` and have `.rgs` file in shell registering it manually.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7221#note_93565
something is not correct. you should get something like:
```
Test output:
cmd.exe:batch start programs/cmd/tests/batch.c
0208:err:start:parse_command_line Unknown option 'L"/foobar"'
02a0:err:start:parse_command_line Unknown option 'L"/foobar"'
batch.c:454: running TEST_BUILTINS.BAT test...
batch.c:348: Test marked todo: unexpected char 0x39 position 11 in line 22 (got 'ERRORLEVEL 9009', wanted 'ERRORLEVEL 3')
batch.c:348: Test marked todo: unexpected char 0x53 position 0 in line 61 (got 'SUCCESS 1', wanted 'FAILURE 1')
batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line 64 (got 'SUCCESS 0', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 69 (got 'FAILURE 1', wanted 'a@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 70 (got '---', wanted 'b@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 71 (got '---', wanted 'FAILURE 1')
batch.c:340: Test marked todo: excess characters on line 152 (got 'SUCCESS 0', wanted 'SUCCESS@space@')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 161 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 162 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 212 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 213 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:454: running TEST_BUILTINS.CMD test...
batch.c:348: Test marked todo: unexpected char 0x26 position 71 in line 93 (got 'C:\users\eric\AppData\Local\Temp\wct>(echo the @ character chains until&&@echo we leave the current depth||( ', wanted '@pwd@>(echo the @ character chains until && ) && echo and can hide brackets || () ||@space@')
batch.c:348: Test marked todo: unexpected char 0x65 position 0 in line 94 (got 'echo hidden', wanted 'the @ character chains until')
batch.c:348: Test marked todo: unexpected char 0x29 position 0 in line 95 (got '))&&echo and can hide brackets||(@echo command hidden)||@(echo brackets hidden)', wanted 'we leave the current depth')
batch.c:348: Test marked todo: unexpected char 0x74 position 0 in line 96 (got 'the @ character chains until', wanted 'and can hide brackets')
batch.c:348: Test marked todo: unexpected char 0x77 position 0 in line 97 (got 'we leave the current depth', wanted '---')
batch.c:348: Test marked todo: unexpected char 0x61 position 0 in line 97 (got 'and can hide brackets', wanted '---')
batch.c:348: Test marked todo: unexpected char 0x3d position 41 in line 138 (got 'C:\users\eric\AppData\Local\Temp\wct>if 1==1 echo foo ', wanted '@pwd@>if 1 == 1 echo foo@space@')
batch.c:348: Test marked todo: unexpected char 0x3d position 41 in line 141 (got 'C:\users\eric\AppData\Local\Temp\wct>if 1==1 @echo bar ', wanted '@pwd@>if 1 == 1@space@')
batch.c:337: Test marked todo: unexpected end of line 428 (got 'j2', wanted 'j2@space@')
batch.c:348: Test marked todo: unexpected char 0x39 position 11 in line 473 (got 'ERRORLEVEL 9009', wanted 'ERRORLEVEL 3')
batch.c:348: Test marked todo: unexpected char 0x53 position 0 in line 512 (got 'SUCCESS 1', wanted 'FAILURE 1')
batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line 515 (got 'SUCCESS 0', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 520 (got 'FAILURE 1', wanted 'a@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 521 (got '---', wanted 'b@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 522 (got '---', wanted 'FAILURE 1')
batch.c:340: Test marked todo: excess characters on line 603 (got 'SUCCESS 0', wanted 'SUCCESS@space@')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 612 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 613 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 663 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 664 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x5e position 5 in line 849 (got 'after^', wanted 'after!')
batch.c:348: Test marked todo: unexpected char 0x20 position 5 in line 1773 (got ' C:\users\eric\AppData\Local\Temp\wct\foobar\baz', wanted ' R@spaces@@drive@@path@foobar\baz@or_broken@@spaces@@drive@@path@foobar\baz@or_broken@ R I@spaces@@drive@@path@foobar\baz')
batch.c:348: Test marked todo: unexpected char 0x6f position 1 in line 1801 (got ''one two three'', wanted '' one two three'@or_broken@Skipped as not enough permissions')
batch.c:348: Test marked todo: unexpected char 0x30 position 0 in line 1830 (got '0', wanted '1')
batch.c:340: Test marked todo: excess characters on line 1853 (got 'cp3 ', wanted 'cp3')
batch.c:340: Test marked todo: excess characters on line 1942 (got 'ErrLev: 0', wanted 'ErrLev:@space@')
batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line 1945 (got 'ErrLev: 0', wanted 'ErrLev:@space@@or_broken@ErrLev: 0')
batch.c:348: Test marked todo: unexpected char 0x35 position 1 in line 2062 (got '25', wanted '21')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 2064 (got 'Failure', wanted 'Success')
batch.c:454: running TEST_CMDLINE.CMD test...
01bc:batch: 2490 tests executed (40 marked as todo, 0 as flaky, 0 failures), 0 skipped.
cmd.exe:batch:01bc done (0) in 37s 5389B
cmd.exe:directory start programs/cmd/tests/directory.c
0754:directory: 24 tests executed (0 marked as todo, 0 as flaky, 0 failures), 0 skipped.
cmd.exe:directory:0754 done (0) in 0s 90B
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131#note_93561
This is a bit convoluted because of the amount of pieces involved. I'll
try to untangle things a bit.
The container id is meant to be globally unique and stable. We therefore
need a suitable amount of stable entropy that we can feed into a hash
function to get a stable and unique output.
This happens in winebus. The corner stone of hash inputs is the linux
device topology (sysfs path) obtained via udev. Along with all other
possible data we feed this into a hash function to obtain our container
id.
A bunch of extra wine-specific keys needed to be added to carry the
necessary metadata from the driver into the ntoskrnl (where it gets
written to the property registry of the relevant device).
Separate from this we also ingest the linux device topology (sysfs path)
in the winepulse driver.
In mmdevapi we then use winepulse's sysfs path to find the matching
device in the setupapi and query its container id. We now have the same
container id in both the device and the MMDevice, allowing applications
(in particular Games) to find the MMDevice for a given device.
For practical reasons we always resolve the sysfs path to the root
device as early as possible. Container ids are meant to be equal for sub
devices inside a "container" anyway.
--
v2: winebus,mmdevapi: implement audio device container id
https://gitlab.winehq.org/wine/wine/-/merge_requests/7238
This MR tries to implement the SetIMECompositionRect user driver function and partially the WINE_IME_POST_UPDATE message call. It requires support for zwp_text_input_v3 from the compositor. It supports submitting committed text to the win32 side and notifying the compositor about the area of the text cursor rectangle.
This doesn't add support for embedded pre-edit because I couldn't immediately get it to appear. Either I did something incorrect, or it has something to do with Wayland. On X11, the pre-edit appears completely separated to the application window and doesn't move with it, which doesn't seem to be compatible with Wayland.
If Windows has the surrounding text feature, it does not seem possible to support it here with the provided interface.
The IME is always enabled on the focused surface, like on X11. If Windows has a facility that applications can use to say that it does or does not accept text entry at certain parts of the UI, it does not seem possible to support it here with the provided interface.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7241
This MR enforces alignment of TLS slots as described in PE file.
I'm not 100% happy with the deallocation scheme, as it could be slow.
If someone has a better idea, be welcome!
Didn't open the option to introduce helpers in heap.c (but maybe that's the way to go).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7251