If get_io_timeouts sets the interval timeout to 0, it means that the
read should return immediately even if there is no data. If
get_io_timeouts sets the interval timeout to -1, it means that the read
operation should wait indefinitely for the next byte. In either case,
the interval timer is not used, so there's no need to worry about
forgetting to start it, and the delay in returning data was causing a
problem in Ti99Hdx.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42882
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8454
Before the commit in question, both of these paths would be parsed as valid (with e.g. FindFirstFile):
```
Z:\tmp\\*
/tmp//*
```
After the commit, only the DOS path is accepted, while the Unix path returns ERROR_INVALID_NAME.
Fixes: ffa88c3993c3da97c7403209ef2068b2e3fac66f
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8464
In kernel32/tests/loader.c, child_process will try to write to stdout after
calling LdrShutdownProcess. LdrShutdownProcess calls DLL_PROCESS_DETACH on
msvcrt, which calls msvcrt_free_io, which frees the ioinfo blocks. So to
prevent use after free in this case, we don't free them.
* * *
Supersedes !8273
--
v4: msvcrt: Don't release io memory in msvcrt_free_io during shutdown.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8288
These patches replace the existing libtxc_dxtn texture compression/decompression source files with new libraries that can handle more formats. This is will be helpful when we begin to share code with d3dx10/d3dx11, as we will be able to use bcdec to decode all supported compressed formats, and stb_dxt to compress BC1-BC5.
--
v3: d3dx9: Replace txc_compress_dxtn with stb_dxt.
d3dx9: Replace txc_fetch_dxtn with bcdec.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8226
This MR uses the cursor-shapes-v1 protocol to tell the compositor which system
cursor shape to use. If a shape match is not found (or cursor-shapes-v1
is not available) we fall back to setting the cursor buffer from the
Windows cursor data as before.
The second commit implements support for a "UseSystemCursors" driver option, similar
to what winex11 has. Since this is the first winewayland driver option we also introduce
all the related registry reading code.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57648
--
Side note: The registry code is a copy from winex11, and is the third copy in the
codebase (x11, mac, wayland). Perhaps it's worth introducing a common
ntuser function to perform the option reading for the drivers, something like
`NtUserGetDriverOption("X11 Driver", buffer, buffer_size, TRUE /* whether to read app specific option if present */)`.
With such a function there is the concern about each call reopening the registry, but we can see if that's actually a problem and how a different API (or some sort of caching) may help.
--
v5: winewayland: Support "UseSystemCursors" driver option.
winewayland: Use system cursor shapes when possible.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7678
MAX messenger crashes without getting a valid pointer to PersistentZoneIdentifier COM object. Adding a stubbed COM object solves the problem
--
v2: urlmon: Add PersistentZoneIdentifier COM object stubs
https://gitlab.winehq.org/wine/wine/-/merge_requests/8456