Windows 10 [received support](https://devblogs.microsoft.com/commandline/af_unix-comes-to-window… for AF_UNIX sockets in Insider Build 17063. This merge request adds basic support for AF_UNIX sockets to ws2_32 and wineserver.
Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32. I considered the following options:
* Pass the Windows path to wineserver and do the conversion there.
* This is, as far as I can tell, not possible without major rearchitecting. wineserver does not have functions to translate Windows paths to Unix paths, for obvious reasons.
* Obtain the current working directory of the requesting process and temporarily change directories to there.
* This only handles relative paths and fails for absolute paths, UNC paths, etc.
* Conditionally change directories based on whether the path is relative or not.
* This is error-prone and wineserver does not have the requisite functions to do this cleanly.
I ultimately decided to pass the translated Unix path to wineserver, which changes directories to `dirname(path)`. It then provides `bind` and `connect` with `basename(path)`. This is not threadsafe, but wineserver is not (currently) multithreaded.
Abstract sockets are supported by this patch.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786
Doing first instead of https://gitlab.winehq.org/wine/wine/-/merge_requests/2637, as it should be more straightforward.
--
v4: winemac: Use the default IME implementation for NotifyIME.
winex11: Move NotifyIME to the default IME implementation.
win32u: Introduce new NtUserNotifyIMEStatus syscall.
winex11: Simplify NotifyIME with NI_COMPOSITIONSTR / CPS_COMPLETE.
winex11: Clear the composition string when input context is closed.
winex11: Use a helper to change internal composition status.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2769
Prior to 98d209752cee9abd8dc31dfe1f28811066b0b83f, the base type format
wasn't inserted twice in stream format description.
An application (Idol Showdown) fails to play its intro video when the
base type format is duplicated.
Signed-off-by: Eric Pouech <epouech(a)codeweavers.com>
--
v4: winegstreamer: Fix typo.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2771
Prior to 98d209752cee9abd8dc31dfe1f28811066b0b83f, the base type format
wasn't inserted twice in stream format description.
An application (Idol Showdown) fails to play its intro video when the
base type format is duplicated.
Signed-off-by: Eric Pouech <epouech(a)codeweavers.com>
--
v3: winestreamer: Fix typo.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2771
This tests that the resolution should be quick enough to not trigger an Unreal Engine race condition. This also checks the determinism of the media source presentation descriptor stream ordering, as well as the stream selection updates when the media source is started.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2782