diff options
-rw-r--r-- | libdocument/ev-init.c | 45 | ||||
-rw-r--r-- | libdocument/ev-init.h | 2 | ||||
-rw-r--r-- | previewer/Makefile.am | 1 | ||||
-rw-r--r-- | previewer/ev-previewer.c | 31 | ||||
-rw-r--r-- | shell/Makefile.am | 1 | ||||
-rw-r--r-- | shell/main.c | 31 |
6 files changed, 31 insertions, 80 deletions
diff --git a/libdocument/ev-init.c b/libdocument/ev-init.c index fb10ac5..9e8e105 100644 --- a/libdocument/ev-init.c +++ b/libdocument/ev-init.c @@ -35,6 +35,7 @@ static int ev_init_count; #ifdef G_OS_WIN32 static HMODULE evdocument_dll = NULL; +static gchar *locale_dir = NULL; #ifdef DLL_EXPORT BOOL WINAPI @@ -49,34 +50,39 @@ DllMain (HINSTANCE hinstDLL, } #endif -#endif - -static gchar * -_ev_get_locale_dir (void) +static const gchar * +_ev_win32_get_locale_dir (HMODULE module) { -#ifdef G_OS_WIN32 - gchar *install_dir = NULL, *locale_dir; + gchar *install_dir = NULL, *utf8_locale_dir; gchar *retval = NULL; if (evdocument_dll != NULL) - install_dir = g_win32_get_package_installation_directory_of_module (evdocument_dll); + install_dir = + g_win32_get_package_installation_directory_of_module (module); if (install_dir) { - locale_dir = g_build_filename (install_dir, + utf8_locale_dir = g_build_filename (install_dir, "share", "locale", NULL); - retval = g_win32_locale_filename_from_utf8 (locale_dir); + locale_dir = g_win32_locale_filename_from_utf8 (utf8_locale_dir); g_free (install_dir); - g_free (locale_dir); + g_free (utf8_locale_dir); } - if (retval) - return retval; - else - return g_strdup (""); + if (!locale_dir) + locale_dir = g_strdup (""); +} + +#endif + +const gchar * +ev_get_locale_dir (void) +{ +#ifdef G_OS_WIN32 + return _ev_win32_get_locale_dir (evdocument_dll); #else - return g_strdup (GNOMELOCALEDIR); + return GNOMELOCALEDIR; #endif } @@ -100,9 +106,7 @@ ev_init (void) return have_backends; /* set up translation catalog */ - gchar *tmp = _ev_get_locale_dir (); - bindtextdomain (GETTEXT_PACKAGE, tmp); - g_free (tmp); + bindtextdomain (GETTEXT_PACKAGE, ev_get_locale_dir ()); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); _ev_debug_init (); @@ -125,6 +129,11 @@ ev_shutdown (void) if (--ev_init_count > 0) return; +#ifdef G_OS_WIN32 + if (locale_dir != NULL) + g_free(locale_dir); +#endif + _ev_backends_manager_shutdown (); _ev_file_helpers_shutdown (); _ev_debug_shutdown (); diff --git a/libdocument/ev-init.h b/libdocument/ev-init.h index 00560a4..046ee9b 100644 --- a/libdocument/ev-init.h +++ b/libdocument/ev-init.h @@ -28,6 +28,8 @@ G_BEGIN_DECLS +const gchar* ev_get_locale_dir (void); + gboolean ev_init (void); void ev_shutdown (void); diff --git a/previewer/Makefile.am b/previewer/Makefile.am index ea5296e..da0706c 100644 --- a/previewer/Makefile.am +++ b/previewer/Makefile.am @@ -13,7 +13,6 @@ evince_previewer_CPPFLAGS = \ -I$(top_srcdir)/libdocument \ -I$(top_srcdir)/libview \ -I$(top_srcdir)/libmisc \ - -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ $(AM_CPPFLAGS) evince_previewer_CFLAGS = \ diff --git a/previewer/ev-previewer.c b/previewer/ev-previewer.c index 14d4f2f..2b8dea3 100644 --- a/previewer/ev-previewer.c +++ b/previewer/ev-previewer.c @@ -100,33 +100,6 @@ ev_previewer_load_document (const gchar *filename, g_free (uri); } -static gchar* -ev_previewer_get_locale_dir () -{ -#ifdef G_OS_WIN32 - gchar *install_dir = NULL, *locale_dir; - gchar *retval = NULL; - - install_dir = - g_win32_get_package_installation_directory_of_module (NULL); - - if (install_dir) { - locale_dir = g_build_filename (install_dir, - "share", "locale", NULL); - retval = g_win32_locale_filename_from_utf8 (locale_dir); - g_free (install_dir); - g_free (locale_dir); - } - - if (retval) - return retval; - else - return g_strdup (""); -#else - return g_strdup (GNOMELOCALEDIR); -#endif -} - gint main (gint argc, gchar **argv) { @@ -166,9 +139,7 @@ main (gint argc, gchar **argv) #ifdef ENABLE_NLS /* Initialize the i18n stuff */ - gchar *tmp = ev_previewer_get_locale_dir (); - bindtextdomain (GETTEXT_PACKAGE, tmp); - g_free (tmp); + bindtextdomain (GETTEXT_PACKAGE, ev_get_locale_dir()); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif diff --git a/shell/Makefile.am b/shell/Makefile.am index af105eb..f4da681 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -14,7 +14,6 @@ INCLUDES= \ -I$(top_builddir)/libview \ -I$(top_srcdir)/libmisc \ -I$(top_srcdir)/properties \ - -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ -DGNOMEICONDIR=\""$(datadir)/pixmaps"\" \ -DBINDIR=\""$(bindir)"\" \ -DLIBEXECDIR=\""$(libexecdir)"\" \ diff --git a/shell/main.c b/shell/main.c index 4ed0b05..8d057a0 100644 --- a/shell/main.c +++ b/shell/main.c @@ -232,33 +232,6 @@ load_files (const char **files) } } -static gchar* -ev_get_locale_dir () -{ -#ifdef G_OS_WIN32 - gchar *install_dir = NULL, *locale_dir; - gchar *retval = NULL; - - install_dir = - g_win32_get_package_installation_directory_of_module (NULL); - - if (install_dir) { - locale_dir = g_build_filename (install_dir, - "share", "locale", NULL); - retval = g_win32_locale_filename_from_utf8 (locale_dir); - g_free (install_dir); - g_free (locale_dir); - } - - if (retval) - return retval; - else - return g_strdup (""); -#else - return g_strdup (GNOMELOCALEDIR); -#endif -} - int main (int argc, char *argv[]) { @@ -296,9 +269,7 @@ main (int argc, char *argv[]) #ifdef ENABLE_NLS /* Initialize the i18n stuff */ - gchar *tmp = ev_get_locale_dir (); - bindtextdomain (GETTEXT_PACKAGE, tmp); - g_free (tmp); + bindtextdomain (GETTEXT_PACKAGE, ev_get_locale_dir()); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif |