Array selector data begins with 4 bytes length, followed by string
bytes. Right after the string starts the code blob, that we access
with (uint32_t *)(ptr + string_size) + 1. There is no separate
field to care about at (ptr + string_size).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7547
PathRemoveFileSpecW keeps only the drive if the path contains all forward slashes as shown in tests.
But then the temporary file is created in the root folder which fails for drive Z:.
This fixes a corner case when using CMake in Wine. Another usage of PathRemoveFileSpecW is in PathRelativePathToW which should be also checked.
I'm leaving this as a draft until getting some feedback and adding tests.
--
v4: kernelbase: Handle correctly paths with forward slashes in ReplaceFileW.
kernel32: Test ReplaceFileW with forward slashes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7290