--
v3: wineps: Define PSDRV_PDEVICE structure in unixlib.
wineps: Rename PSDRV_PDEVICE structure to print_ctx.
wineps: Move remaining DC driver functions to unixlib.
gdi32: Add device name to wine_get_gdi_driver call.
wineps: Remove no longer used PSDRV_StartDoc and PSDRV_EndDoc functions.
wineps: Remove no longer used font selection code from PE side.
wineps: Don't use BUILTIN structure on PE side.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2783
--
v2: wineps: Define PSDRV_PDEVICE structure in unixlib.
wineps: Rename PSDRV_PDEVICE structure to print_ctx.
wineps: Move remaining DC driver functions to unixlib.
gdi32: Add device name to wine_get_gdi_driver call.
wineps: Remove no longer used PSDRV_StartDoc and PSDRV_EndDoc functions.
wineps: Remove no longer used font selection code from PE side.
wineps: Don't use BUILTIN structure on PE side.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2783
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