atk r1274 - in trunk: . atk
- From: tml svn gnome org
- To: svn-commits-list gnome org
- Subject: atk r1274 - in trunk: . atk
- Date: Sat, 13 Sep 2008 19:39:57 +0000 (UTC)
Author: tml
Date: Sat Sep 13 19:39:57 2008
New Revision: 1274
URL: http://svn.gnome.org/viewvc/atk?rev=1274&view=rev
Log:
2008-09-13 Tor Lillqvist <tml novell com>
* atk/atkobject.c: Don't use the deprectated
g_win32_get_package_installation_subdirectory(). Use
g_win32_get_package_installation_directory_of_module()
instead. Also, don't use the deprecated silly
G_WIN32_DLLMAIN_FOR_DLL_NAME() macro, but an explicit minimal
DllMain() that just saves the DLL handle.
Modified:
trunk/ChangeLog
trunk/atk/atkobject.c
Modified: trunk/atk/atkobject.c
==============================================================================
--- trunk/atk/atkobject.c (original)
+++ trunk/atk/atkobject.c Sat Sep 13 19:39:57 2008
@@ -235,11 +235,22 @@
#ifdef G_OS_WIN32
-#undef ATK_LOCALEDIR
+static HMODULE atk_dll;
-#define ATK_LOCALEDIR get_atk_locale_dir()
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved)
+{
+ switch (fdwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ atk_dll = (HMODULE) hinstDLL;
+ break;
+ }
-G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name)
+ return TRUE;
+}
static const char *
get_atk_locale_dir (void)
@@ -248,16 +259,35 @@
if (!atk_localedir)
{
- gchar *temp;
-
- temp = g_win32_get_package_installation_subdirectory
- (NULL, dll_name, "lib\\locale");
+ const gchar *p;
+ gchar *root, *temp;
+
+ /* ATK_LOCALEDIR might end in either /lib/locale or
+ * /share/locale. Scan for that slash.
+ */
+ p = ATK_LOCALEDIR + strlen (ATK_LOCALEDIR);
+ while (*--p != '/')
+ ;
+ while (*--p != '/')
+ ;
+
+ root = g_win32_get_package_installation_directory_of_module (atk_dll);
+ temp = g_build_filename (root, p, NULL);
+ g_free (root);
+
+ /* atk_localedir is passed to bindtextdomain() which isn't
+ * UTF-8-aware.
+ */
atk_localedir = g_win32_locale_filename_from_utf8 (temp);
g_free (temp);
}
return atk_localedir;
}
+#undef ATK_LOCALEDIR
+
+#define ATK_LOCALEDIR get_atk_locale_dir()
+
#endif
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]