From: Luca Bacci Date: Thu, 29 Dec 2022 17:32:57 +0000 (+0100) Subject: Use LoadLibraryW X-Git-Tag: archive/raspbian/1%0.1.106-3+rpi1^2~15^2^2~35 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=881740112d49c4216e79f763ee972fdb51a07635;p=babl.git Use LoadLibraryW This makes it possible to load modules in path names having characters outside of the ANSI codepage --- diff --git a/babl/babl-extension.c b/babl/babl-extension.c index d6d1a39..8f06fcd 100644 --- a/babl/babl-extension.c +++ b/babl/babl-extension.c @@ -33,7 +33,6 @@ #include "babl-base.h" #include -#include static Babl *babl_extension_current_extender = NULL; @@ -176,7 +175,22 @@ dlsym (HLIB handle, #include #define HLIB HINSTANCE -#define dlopen(a, b) LoadLibrary (a) +static HLIB +LoadLibraryWrap (const char *filename) +{ + wchar_t *filename_utf16 = babl_convert_utf8_to_utf16 (filename); + HLIB module = NULL; + + if (!filename_utf16) + return NULL; + + module = LoadLibraryW (filename_utf16); + + babl_free (filename_utf16); + return module; +} + +#define dlopen(a, b) LoadLibraryWrap (a) #define dlsym(l, s) GetProcAddress (l, s) #define dlclose(l) FreeLibrary (l) #define dlerror() GetLastError ()