]> www.fi.muni.cz Git - evince.git/commitdiff
Remove some code duplication
authorHib Eris <hib@hiberis.nl>
Tue, 25 May 2010 15:44:01 +0000 (17:44 +0200)
committerHib Eris <hib@hiberis.nl>
Tue, 25 May 2010 15:48:06 +0000 (17:48 +0200)
libdocument/ev-init.c
libdocument/ev-init.h
previewer/Makefile.am
previewer/ev-previewer.c
shell/Makefile.am
shell/main.c

index fb10ac57dc2ec207cd450f703d86c6d9b0df9817..9e8e10508c01946946f1c0deb2a251fec1e1e404 100644 (file)
@@ -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 ();
index 00560a4bb1edf06f6bd2d9e1d3247d68d3d34bde..046ee9b6b3c9fd24e3aa36e9d2ce0d9455fe267b 100644 (file)
@@ -28,6 +28,8 @@
 
 G_BEGIN_DECLS
 
+const gchar* ev_get_locale_dir (void);
+
 gboolean    ev_init           (void);
 
 void        ev_shutdown       (void);
index ea5296e5ccfea10f8c9d4eaa05090468b01c7b48..da0706cf9ec8874bd55449b57462f04f48e89e74 100644 (file)
@@ -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 = \
index 14d4f2f332306543779310a2f53998b61013c0b5..2b8dea364d5468486c236cd86d3146844da21bd3 100644 (file)
@@ -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
index af105eb6f20c282a119d1b4e155c25a56351ba66..f4da6818d245fa826438508edd8c60586badaaa5 100644 (file)
@@ -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)"\"                        \
index 4ed0b05ebd42067d934d64b144599ba637c43df7..8d057a04ddeb6590113b48c4dbe814201acfac7d 100644 (file)
@@ -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