From ab8cd246bf7cd53a7e9de34ceba796876cb6842e Mon Sep 17 00:00:00 2001 From: Daiki Ueno <ueno@unixuser.org> Date: Fri, 30 Mar 2012 17:40:16 +0900 Subject: [PATCH] Fix make distcheck. --- eek/eek-xml-layout.c | 32 ++++++++++++++++++++++++-------- tests/Makefile.am | 2 ++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/eek/eek-xml-layout.c b/eek/eek-xml-layout.c index 8493ced9..2887f7eb 100644 --- a/eek/eek-xml-layout.c +++ b/eek/eek-xml-layout.c @@ -53,6 +53,7 @@ G_DEFINE_TYPE_WITH_CODE (EekXmlLayout, eek_xml_layout, EEK_TYPE_LAYOUT, struct _EekXmlLayoutPrivate { gchar *id; + gchar *keyboards_dir; EekXmlKeyboardDesc *desc; }; @@ -69,7 +70,8 @@ static gboolean parse_geometry (const gchar *path, EekKeyboard *keyboard, GError **error); static gboolean parse_symbols_with_prerequisites - (const gchar *name, + (const gchar *keyboards_dir, + const gchar *name, EekKeyboard *keyboard, GList **loaded, GError **error); @@ -923,7 +925,7 @@ eek_xml_layout_real_create_keyboard (EekLayout *self, /* Read geometry information. */ filename = g_strdup_printf ("%s.xml", layout->priv->desc->geometry); - path = g_build_filename (KEYBOARDSDIR, "geometry", filename, NULL); + path = g_build_filename (layout->priv->keyboards_dir, "geometry", filename, NULL); g_free (filename); error = NULL; @@ -940,7 +942,8 @@ eek_xml_layout_real_create_keyboard (EekLayout *self, /* Read symbols information. */ loaded = NULL; - retval = parse_symbols_with_prerequisites (layout->priv->desc->symbols, + retval = parse_symbols_with_prerequisites (layout->priv->keyboards_dir, + layout->priv->desc->symbols, keyboard, &loaded, &error); @@ -1009,6 +1012,8 @@ eek_xml_layout_finalize (GObject *object) if (priv->desc) keyboard_desc_free (priv->desc); + g_free (priv->keyboards_dir); + G_OBJECT_CLASS (eek_xml_layout_parent_class)->finalize (object); } @@ -1062,7 +1067,12 @@ initable_init (GInitable *initable, gchar *path; EekXmlKeyboardDesc *desc; - path = g_build_filename (KEYBOARDSDIR, "keyboards.xml", NULL); + layout->priv->keyboards_dir = (gchar *) g_getenv ("EEKBOARD_KEYBOARDSDIR"); + if (layout->priv->keyboards_dir == NULL) + layout->priv->keyboards_dir = KEYBOARDSDIR; + layout->priv->keyboards_dir = g_strdup (layout->priv->keyboards_dir); + + path = g_build_filename (layout->priv->keyboards_dir, "keyboards.xml", NULL); keyboards = parse_keyboards (path, error); g_free (path); if (error && *error) @@ -1099,10 +1109,14 @@ initable_iface_init (GInitableIface *initable_iface) GList * eek_xml_list_keyboards (void) { + const gchar *keyboards_dir; gchar *path; GList *keyboards; - path = g_build_filename (KEYBOARDSDIR, "keyboards.xml", NULL); + keyboards_dir = g_getenv ("EEKBOARD_KEYBOARDSDIR"); + if (keyboards_dir == NULL) + keyboards_dir = KEYBOARDSDIR; + path = g_build_filename (keyboards_dir, "keyboards.xml", NULL); keyboards = parse_keyboards (path, NULL); g_free (path); return keyboards; @@ -1183,7 +1197,8 @@ parse_geometry (const gchar *path, EekKeyboard *keyboard, GError **error) } static gboolean -parse_symbols_with_prerequisites (const gchar *name, +parse_symbols_with_prerequisites (const gchar *keyboards_dir, + const gchar *name, EekKeyboard *keyboard, GList **loaded, GError **error) @@ -1206,7 +1221,7 @@ parse_symbols_with_prerequisites (const gchar *name, *loaded = g_list_prepend (*loaded, g_strdup (name)); filename = g_strdup_printf ("%s.xml", name); - path = g_build_filename (KEYBOARDSDIR, "symbols", filename, NULL); + path = g_build_filename (keyboards_dir, "symbols", filename, NULL); g_free (filename); prerequisites_error = NULL; @@ -1217,7 +1232,8 @@ parse_symbols_with_prerequisites (const gchar *name, } for (p = prerequisites; p; p = p->next) { - retval = parse_symbols_with_prerequisites (p->data, + retval = parse_symbols_with_prerequisites (keyboards_dir, + p->data, keyboard, loaded, error); diff --git a/tests/Makefile.am b/tests/Makefile.am index d8f9f18d..b0258758 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -18,6 +18,8 @@ INCLUDES = -I$(top_srcdir) $(GIO2_CFLAGS) $(GTK_CFLAGS) $(LIBXKLAVIER_CFLAGS) +TESTS_ENVIRONMENT = EEKBOARD_KEYBOARDSDIR=$(top_srcdir)/data/keyboards + TESTS = eek-simple-test eek-xml-test noinst_PROGRAMS = $(TESTS) -- GitLab