Fixes Ball at Work: The Ultimate Speedrun Platformer! failing to start (which receives such non-standard headers from the servers).
While testing this I found more weird aspects of handling invalid reply header names on Windows:
- leading spaces are not skipped, but if the first character is a space then two more spaces added at start of header name and then all the other invalid characters in the name (like '@' or 0xfe) are ignored (otherwise without the space at name start the presence of such header fails request); then such a header saved by failing requests can't be queried with WinHttpQueryHeaders() as the presence of invalid characters (including space) fails that with ERROR_INVALID_PARAMETER;
- trailing '\\t' are not skipped but also do not fail the request and the header with tab is present in raw headers.
But I suppose we don't need to complicate things by replicating this behaviour precisely until anything depends on that. The specific game motivating the patch only receives spaces in the end of header name which are skipped on Windows while this behaviour has some obvious logic (even if doesn't follow http standard).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5975
This is part XIV of cmd engine rewrite.
It mainly tests and sets return code for a couple of directory related
commands (CD, MKDIR/MD, PUSHD, DIR).
It's on purpose that POPD isn't included in this MR:
it will require (as RMDIR) some changes not directly related
to command itself (more on next MR).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5986
I was hoping that the new tests would provide evidence that RtlQueryRegistryValues uses RegGetValue to ensure that multi-strings are double-null-terminated. Instead the tests suggest that my hypothesis was wrong because RegGetValue only ensures single null termination, not double null termination. We should fix RegGetValue anyway for the sake of applications that expect it to null-terminate.
--
v5: kernelbase: Ensure null termination in RegGetValue[AW].
windowscodecs: Use RegQueryValueExW in ComponentInfo_GetStringValue.
twinapi.appcore: Initialize size argument to RegGetValueW.
shell32: Pass size in bytes to RegGetValueW.
msi: Initialize size argument to GetRegValueW.
mscoree: Pass size in bytes to RegGetValueW.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5969
--
v3: winegstreamer: Respect video format padding for input buffers too.
winegstreamer: Normalize the video processor media types apertures.
winegstreamer: Normalize both input and output media types stride at once.
winegstreamer: Use video info stride in buffer meta rather than videoflip.
winegstreamer: Keep the input caps on the transform.
winegstreamer: Use a new wg_video_buffer_pool class to add buffer meta.
winegstreamer: Only use pool and set buffer meta for raw video frames.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5972
--
v2: winegstreamer: Respect video format padding for input buffers too.
winegstreamer: Normalize video processor and color converter apertures.
winegstreamer: Normalize both input and output media types stride at once.
winegstreamer: Use video info stride in buffer meta rather than videoflip.
winegstreamer: Keep the input caps on the transform.
winegstreamer: Use a new wg_video_buffer_pool class to add buffer meta.
winegstreamer: Only use pool and set buffer meta for raw video frames.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5972
I was hoping that the new tests would provide evidence that RtlQueryRegistryValues uses RegGetValue to ensure that multi-strings are double-null-terminated. Instead the tests suggest that my hypothesis was wrong because RegGetValue only ensures single null termination, not double null termination. We should fix RegGetValue anyway for the sake of applications that expect it to null-terminate.
--
v4: kernelbase: Ensure null termination in RegGetValue[AW].
https://gitlab.winehq.org/wine/wine/-/merge_requests/5969
I was hoping that the new tests would provide evidence that RtlQueryRegistryValues uses RegGetValue to ensure that multi-strings are double-null-terminated. Instead the tests suggest that my hypothesis was wrong because RegGetValue only ensures single null termination, not double null termination. We should fix RegGetValue anyway for the sake of applications that expect it to null-terminate.
--
v3: kernelbase: Ensure null termination in RegGetValue[AW].
windowscodecs: Use RegQueryValueExW in ComponentInfo_GetStringValue.
advapi32/tests: Drop security test workarounds for Windows <= 2000.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5969
Used for winex11 and later will be used in winemac and winewayland.
--
v2: win32u: Pass the shape bitmap info and bits to window_surface flush.
win32u: Update the window surface shape with color key and alpha.
win32u: Use a 1bpp bitmap to store the window surface shape bits.
win32u: Introduce a new window surface helper to set window shape.
win32u: Pass whether window is shaped to drivers WindowPosChanging.
win32u: Pass the window surface rect for CreateLayeredWindow.
win32u: Split a new create_window_surface helper from apply_window_pos.
win32u: Move offscreen window surface creation fallback.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5962