> It is indeed Wine-specific, but on Windows it isn't as much of a problem because AllocConsole gives you the same cmd you would use normally, while wineconsole is inferior to a normal terminal.
I think that what you're looking for is `AttachConsole`. Depending details of process hierarchy, something `if (!AttachConsole(ATTACH_PARENT_PROCESS)) AllocConsole()` instead of plain `AllocConsole` should do what you want both on Windows and Wine.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3145#note_38575
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.
--
v39: ws2_32/tests: Add test for AF_UNIX sockets fix.
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to create a SOCK_DGRAM AF_UNIX socket.
server: Allow for deletion of socket files.
ws2_32: Add support for AF_UNIX sockets.
ntdll/unix: Add support for AF_UNIX sockets to multiple functions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786
This also converts the opaque pointers passed across the PE->Unix interface to opaque types
represented as UINT64 which store the unix side pointer. This makes the thunking simpler and should
avoid anyone accidently dereferencing the unix pointer in the PE code.
This was tested with warcraft 3 (1.26, the last non-reforged release), and is consistent with the standard 32bit build. ~~But since movies on warcraft 3 are broken in standard 32bit builds I could only test that that the gstreamer graph gets built up similarly and not verify the video playback. Id appreciate if someone knew of a working exercise of the gstreamer code.~~ it works great, the issue with cinematics ended up being related to modesetting under xwayland, running with a virtual desktop in winecfg confirms playback working perfectly.
--
v10: winegstreamer: Implement Wow64 entrypoints in the Unix library.
winegstreamer: Replace ambiguously sized/aligned elements
winegstreamer: Replace pointers with handles in PE->Unix transition
https://gitlab.winehq.org/wine/wine/-/merge_requests/3075
On Mon Jul 10 16:57:51 2023 +0000, Alex Henrie wrote:
> If thread safety matters here, could you use strtok_r?
I'm not sure if it does, just wanted to make sure there is no race conditions. Not sure why I missed strtok_r, thanks.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3259#note_38565
I'm aware that winecfg allows unlinking of symlinked folders, but this is very annoying when regularly recreating WINEPREFIXES. This change makes it easy to isolate those folders from the start.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3259
> we should test the behavior of ctrl-c
I'm bit late to be reporting this :smile:, but Ctrl-C in (probably all) `-mwindows` Wine apps is now ignored (`winecfg`, `regedit`, etc). On the Windows apps side of things, at least Notepad++ also doesn't close on Ctrl-C.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3145#note_38548
--
v4: vkd3d-shader/dxil: Read function bodies.
vkd3d-shader/dxil: Read numeric constants.
vkd3d-shader/dxil: Read global function declarations.
vkd3d-shader/dxil: Validate the module format version.
vkd3d-shader/dxil: Read the value symbol table.
vkd3d-shader/dxil: Read the type table.
vkd3d-shader/dxil: Use size_t where applicable.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/259
On Mon Jul 10 15:59:56 2023 +0000, Jakub Staroń wrote:
> It is indeed Wine-specific, but on Windows it isn't as much of a problem
> because AllocConsole gives you the same cmd you would use normally,
> while wineconsole is inferior to a normal terminal. Also is there any
> reason to explicitly block console output on GUI apps? If I understand
> it correctly on Windows it's done because otherwise a new console window
> is created, wine doesn't do that though?
all these four configurations should behave the same way regarding log output:
1) app on wine being run from a unix shell
2) app on wine being from with wineconsole
3) app on wine being run from a cmd window
4) app on windows being run from a cmd window
if you see a discrepancy in output between 2 of these four items, please report (or even better file a bug report)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3145#note_38542