Sebastian Lackner : winebus.sys: Add a strdupAtoW implementation.
Module: wine Branch: master Commit: 66d70e38f5508042a6acf80f216b76e3c6fd8d35 URL: http://source.winehq.org/git/wine.git/?a=commit;h=66d70e38f5508042a6acf80f21... Author: Sebastian Lackner <sebastian(a)fds-team.de> Date: Fri Oct 14 08:54:33 2016 +0200 winebus.sys: Add a strdupAtoW implementation. Signed-off-by: Aric Stewart <aric(a)codeweavers.com> Signed-off-by: Sebastian Lackner <sebastian(a)fds-team.de> Signed-off-by: Alexandre Julliard <julliard(a)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)
participants (1)
-
Alexandre Julliard