Global SO_PATH variable removed.
This commit is contained in:
parent
e94a91ba7e
commit
deb9c6e111
|
@ -12,10 +12,25 @@
|
||||||
|
|
||||||
#include "gettext-config.h"
|
#include "gettext-config.h"
|
||||||
|
|
||||||
char SO_PATH[FILENAME_MAX];
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
|
HINSTANCE hCurrentModuleInstance;
|
||||||
|
#endif
|
||||||
|
|
||||||
@LC_GLOB_VARS@
|
@LC_GLOB_VARS@
|
||||||
|
|
||||||
|
gboolean get_library_path (gchar *so_path, void *addr)
|
||||||
|
{
|
||||||
|
gboolean ret;
|
||||||
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
|
ret = 0 != GetModuleFileName (hCurrentModuleInstance, so_path, FILENAME_MAX);
|
||||||
|
#elif defined(linux) || defined(UNIX) || defined(__unix__)
|
||||||
|
Dl_info dl_info;
|
||||||
|
ret = 0 != dladdr(addr, &dl_info);
|
||||||
|
strcpy (so_path, dl_info.dli_fname);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(_WIN64)
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
|
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
|
||||||
#elif defined(linux) || defined(UNIX) || defined(__unix__)
|
#elif defined(linux) || defined(UNIX) || defined(__unix__)
|
||||||
|
@ -25,19 +40,18 @@ void __attribute__ ((constructor)) load_library (void)
|
||||||
gchar *soDir, *localePath;
|
gchar *soDir, *localePath;
|
||||||
@LC_VARS@
|
@LC_VARS@
|
||||||
|
|
||||||
|
gchar *so_path = g_new (gchar, FILENAME_MAX);
|
||||||
#if defined(_WIN32) || defined(_WIN64)
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
GetModuleFileName (hInstance, SO_PATH, FILENAME_MAX);
|
get_library_path (so_path, NULL);
|
||||||
|
hCurrentModuleInstance = hInstance;
|
||||||
@LC_WIN32_CODE@
|
@LC_WIN32_CODE@
|
||||||
#elif defined(linux) || defined(UNIX) || defined(__unix__)
|
#elif defined(linux) || defined(UNIX) || defined(__unix__)
|
||||||
Dl_info dl_info;
|
get_library_path (so_path, load_library);
|
||||||
dladdr(load_library, &dl_info);
|
|
||||||
strcpy (SO_PATH, dl_info.dli_fname);
|
|
||||||
|
|
||||||
@LC_UNIX_CODE@
|
@LC_UNIX_CODE@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
soDir = g_path_get_dirname (SO_PATH);
|
soDir = g_path_get_dirname (so_path);
|
||||||
|
g_free (so_path);
|
||||||
localePath = g_build_filename (soDir, "@LC_RELATIVE_PREFIX@/share/locale", NULL);
|
localePath = g_build_filename (soDir, "@LC_RELATIVE_PREFIX@/share/locale", NULL);
|
||||||
g_free (soDir);
|
g_free (soDir);
|
||||||
bindtextdomain (GETTEXT_PACKAGE, localePath);
|
bindtextdomain (GETTEXT_PACKAGE, localePath);
|
||||||
|
|
Loading…
Reference in New Issue