Jacek Caban : winemac: Detect system cursors from cursor module name in copy_system_cursor_name.

Alexandre Julliard julliard at winehq.org
Mon May 30 15:34:59 CDT 2022


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun May 29 16:20:48 2022 +0200

winemac: Detect system cursors from cursor module name in copy_system_cursor_name.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>

---

 dlls/winemac.drv/macdrv.h | 1 +
 dlls/winemac.drv/mouse.c  | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 04a8af81c53..26028247a96 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -367,6 +367,7 @@ static inline UINT asciiz_to_unicode(WCHAR *dst, const char *src)
 }
 
 /* FIXME: remove once we use unixlib */
+#define wcsicmp strcmpiW
 #define wcsnicmp strncmpiW
 #define wcsrchr strrchrW
 #define wcstol strtolW
diff --git a/dlls/winemac.drv/mouse.c b/dlls/winemac.drv/mouse.c
index d5db014dece..078b674d7c0 100644
--- a/dlls/winemac.drv/mouse.c
+++ b/dlls/winemac.drv/mouse.c
@@ -170,7 +170,7 @@ CFStringRef copy_system_cursor_name(ICONINFOEXW *info)
     const struct system_cursors *cursors;
     unsigned int i;
     CFStringRef cursor_name = NULL;
-    HMODULE module;
+    const WCHAR *module;
     HKEY key;
     WCHAR *p, name[MAX_PATH * 2];
 
@@ -223,10 +223,11 @@ CFStringRef copy_system_cursor_name(ICONINFOEXW *info)
     }
 
     if (info->szResName[0]) goto done;  /* only integer resources are supported here */
-    if (!(module = GetModuleHandleW(info->szModName))) goto done;
 
-    for (i = 0; i < ARRAY_SIZE(module_cursors); i++)
-        if (GetModuleHandleW(module_cursors[i].name) == module) break;
+    if ((module = wcsrchr(info->szModName, '\\'))) module++;
+    else module = info->szModName;
+    for (i = 0; i < ARRAY_SIZE( module_cursors ); i++)
+        if (!wcsicmp(module, module_cursors[i].name)) break;
     if (i == ARRAY_SIZE(module_cursors)) goto done;
 
     cursors = module_cursors[i].cursors;




More information about the wine-cvs mailing list