Module: wine Branch: master Commit: 66d70e38f5508042a6acf80f216b76e3c6fd8d35 URL: http://source.winehq.org/git/wine.git/?a=commit;h=66d70e38f5508042a6acf80f21...
Author: Sebastian Lackner sebastian@fds-team.de Date: Fri Oct 14 08:54:33 2016 +0200
winebus.sys: Add a strdupAtoW implementation.
Signed-off-by: Aric Stewart aric@codeweavers.com Signed-off-by: Sebastian Lackner sebastian@fds-team.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winebus.sys/bus_udev.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c index 22ea07d..fd5de70 100644 --- a/dlls/winebus.sys/bus_udev.c +++ b/dlls/winebus.sys/bus_udev.c @@ -78,6 +78,17 @@ static inline struct platform_private *impl_from_DEVICE_OBJECT(DEVICE_OBJECT *de return (struct platform_private *)get_platform_private(device); }
+static inline WCHAR *strdupAtoW(const char *src) +{ + WCHAR *dst; + DWORD len; + if (!src) return NULL; + len = MultiByteToWideChar(CP_UNIXCP, 0, src, -1, NULL, 0); + if ((dst = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)))) + MultiByteToWideChar(CP_UNIXCP, 0, src, -1, dst, len); + return dst; +} + static DWORD get_sysattr_dword(struct udev_device *dev, const char *sysattr, int base) { const char *attr = udev_device_get_sysattr_value(dev, sysattr); @@ -92,17 +103,12 @@ static DWORD get_sysattr_dword(struct udev_device *dev, const char *sysattr, int static WCHAR *get_sysattr_string(struct udev_device *dev, const char *sysattr) { const char *attr = udev_device_get_sysattr_value(dev, sysattr); - WCHAR *dst; - DWORD len; if (!attr) { WARN("Could not get %s from device\n", sysattr); return NULL; } - len = MultiByteToWideChar(CP_UNIXCP, 0, attr, -1, NULL, 0); - if ((dst = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)))) - MultiByteToWideChar(CP_UNIXCP, 0, attr, -1, dst, len); - return dst; + return strdupAtoW(attr); }
static int compare_platform_device(DEVICE_OBJECT *device, void *platform_dev)