Fix make distcheck.

This commit is contained in:
Daiki Ueno
2012-03-30 17:40:16 +09:00
parent 528981f913
commit ab8cd246bf
2 changed files with 26 additions and 8 deletions

View File

@ -53,6 +53,7 @@ G_DEFINE_TYPE_WITH_CODE (EekXmlLayout, eek_xml_layout, EEK_TYPE_LAYOUT,
struct _EekXmlLayoutPrivate struct _EekXmlLayoutPrivate
{ {
gchar *id; gchar *id;
gchar *keyboards_dir;
EekXmlKeyboardDesc *desc; EekXmlKeyboardDesc *desc;
}; };
@ -69,7 +70,8 @@ static gboolean parse_geometry (const gchar *path,
EekKeyboard *keyboard, EekKeyboard *keyboard,
GError **error); GError **error);
static gboolean parse_symbols_with_prerequisites static gboolean parse_symbols_with_prerequisites
(const gchar *name, (const gchar *keyboards_dir,
const gchar *name,
EekKeyboard *keyboard, EekKeyboard *keyboard,
GList **loaded, GList **loaded,
GError **error); GError **error);
@ -923,7 +925,7 @@ eek_xml_layout_real_create_keyboard (EekLayout *self,
/* Read geometry information. */ /* Read geometry information. */
filename = g_strdup_printf ("%s.xml", layout->priv->desc->geometry); 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); g_free (filename);
error = NULL; error = NULL;
@ -940,7 +942,8 @@ eek_xml_layout_real_create_keyboard (EekLayout *self,
/* Read symbols information. */ /* Read symbols information. */
loaded = NULL; 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, keyboard,
&loaded, &loaded,
&error); &error);
@ -1009,6 +1012,8 @@ eek_xml_layout_finalize (GObject *object)
if (priv->desc) if (priv->desc)
keyboard_desc_free (priv->desc); keyboard_desc_free (priv->desc);
g_free (priv->keyboards_dir);
G_OBJECT_CLASS (eek_xml_layout_parent_class)->finalize (object); G_OBJECT_CLASS (eek_xml_layout_parent_class)->finalize (object);
} }
@ -1062,7 +1067,12 @@ initable_init (GInitable *initable,
gchar *path; gchar *path;
EekXmlKeyboardDesc *desc; 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); keyboards = parse_keyboards (path, error);
g_free (path); g_free (path);
if (error && *error) if (error && *error)
@ -1099,10 +1109,14 @@ initable_iface_init (GInitableIface *initable_iface)
GList * GList *
eek_xml_list_keyboards (void) eek_xml_list_keyboards (void)
{ {
const gchar *keyboards_dir;
gchar *path; gchar *path;
GList *keyboards; 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); keyboards = parse_keyboards (path, NULL);
g_free (path); g_free (path);
return keyboards; return keyboards;
@ -1183,7 +1197,8 @@ parse_geometry (const gchar *path, EekKeyboard *keyboard, GError **error)
} }
static gboolean static gboolean
parse_symbols_with_prerequisites (const gchar *name, parse_symbols_with_prerequisites (const gchar *keyboards_dir,
const gchar *name,
EekKeyboard *keyboard, EekKeyboard *keyboard,
GList **loaded, GList **loaded,
GError **error) GError **error)
@ -1206,7 +1221,7 @@ parse_symbols_with_prerequisites (const gchar *name,
*loaded = g_list_prepend (*loaded, g_strdup (name)); *loaded = g_list_prepend (*loaded, g_strdup (name));
filename = g_strdup_printf ("%s.xml", 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); g_free (filename);
prerequisites_error = NULL; prerequisites_error = NULL;
@ -1217,7 +1232,8 @@ parse_symbols_with_prerequisites (const gchar *name,
} }
for (p = prerequisites; p; p = p->next) { for (p = prerequisites; p; p = p->next) {
retval = parse_symbols_with_prerequisites (p->data, retval = parse_symbols_with_prerequisites (keyboards_dir,
p->data,
keyboard, keyboard,
loaded, loaded,
error); error);

View File

@ -18,6 +18,8 @@
INCLUDES = -I$(top_srcdir) $(GIO2_CFLAGS) $(GTK_CFLAGS) $(LIBXKLAVIER_CFLAGS) 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 TESTS = eek-simple-test eek-xml-test
noinst_PROGRAMS = $(TESTS) noinst_PROGRAMS = $(TESTS)