[PATCH 1/3] RawInput: Uppercase the device names up to the GUID.

Arkadiusz Hiler ahiler at codeweavers.com
Wed Feb 24 02:25:00 CST 2021


On Mon, Feb 22, 2021 at 01:50:36PM +0200, Arkadiusz Hiler wrote:
> This is a preparation for a patch that changes setupapi to return lowercased
> device paths, which is the source of RawInput device names. On Windows
> RawInput returns mostly uppercase names (except the GUID part) and we want to
> keep Wine's old behavior in this regards as SDL 2.0.14+ looks for uppercase IG_
> to match xinput devices to their RawInput counterparts.
> 
> Signed-off-by: Arkadiusz Hiler <ahiler at codeweavers.com>
> ---
>  dlls/user32/rawinput.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c
> index ba11a121bc5..13aac0278d5 100644
> --- a/dlls/user32/rawinput.c
> +++ b/dlls/user32/rawinput.c
> @@ -94,7 +94,7 @@ static struct device *add_device(HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface)
>      SP_DEVICE_INTERFACE_DETAIL_DATA_W *detail;
>      struct device *device;
>      HANDLE file;
> -    WCHAR *path;
> +    WCHAR *path, *pos;
>      DWORD size;
>  
>      SetupDiGetDeviceInterfaceDetailW(set, iface, NULL, 0, &size, NULL);
> @@ -121,6 +121,9 @@ static struct device *add_device(HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface)
>      }
>      heap_free(detail);
>  
> +    /* upper case everything but the GUID */
> +    for (pos = path; *pos && *pos != '{'; pos++) *pos = towupper(*pos);
> +

I assume that this patch is the reason why this series is still pending.
I wonder if using instance id to overwrite part of the path would make
the change more acceptable.

Oh, and all the failures look like false positives. I haven't seen any
difference in the results when running the tests locally.

-- 
Cheers,
Arek



More information about the wine-devel mailing list