Rémi Bernon : winebus.sys: Parse product string from uevent HID_NAME.

Alexandre Julliard julliard at winehq.org
Wed Oct 6 15:51:39 CDT 2021


Module: wine
Branch: master
Commit: 57d99dcfb7c814a76098da96c15879e243b80db7
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=57d99dcfb7c814a76098da96c15879e243b80db7

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Wed Oct  6 14:04:02 2021 +0200

winebus.sys: Parse product string from uevent HID_NAME.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winebus.sys/bus_udev.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c
index 1f563ebb56f..f780aac2785 100644
--- a/dlls/winebus.sys/bus_udev.c
+++ b/dlls/winebus.sys/bus_udev.c
@@ -1048,6 +1048,7 @@ static void get_device_subsystem_info(struct udev_device *dev, char const *subsy
 {
     struct udev_device *parent = NULL;
     const char *ptr, *next, *tmp;
+    char buffer[MAX_PATH];
     DWORD bus = 0;
 
     if (!(parent = udev_device_get_parent_with_subsystem_devtype(dev, subsystem, NULL))) return;
@@ -1062,11 +1063,16 @@ static void get_device_subsystem_info(struct udev_device *dev, char const *subsy
 
             if (!strncmp(ptr, "HID_UNIQ=", 9))
             {
-                char buffer[MAX_PATH];
                 if (desc->serialnumber[0]) continue;
                 if (sscanf(ptr, "HID_UNIQ=%256s\n", buffer) == 1)
                     ntdll_umbstowcs(buffer, strlen(buffer) + 1, desc->serialnumber, ARRAY_SIZE(desc->serialnumber));
             }
+            if (!strncmp(ptr, "HID_NAME=", 7))
+            {
+                if (desc->product[0]) continue;
+                if (sscanf(ptr, "HID_NAME=%256s\n", buffer) == 1)
+                    ntdll_umbstowcs(buffer, strlen(buffer) + 1, desc->product, ARRAY_SIZE(desc->product));
+            }
             if (!strncmp(ptr, "HID_PHYS=", 9) || !strncmp(ptr, "PHYS=\"", 6))
             {
                 if (!(tmp = strstr(ptr, "/input")) || tmp >= next) continue;




More information about the wine-cvs mailing list