diff options
author | Daiki Ueno <ueno@unixuser.org> | 2012-08-24 21:48:56 +0900 |
---|---|---|
committer | Daiki Ueno <ueno@unixuser.org> | 2012-08-24 21:48:56 +0900 |
commit | 69970b68c025a04f6ac557f8b196f2d5d3fe858e (patch) | |
tree | 682419b1bec7a68245c6cf72aab6b94c7ba3043b /bus | |
parent | 6bd9e0d2d49205fda366b20b18c7b20636993776 (diff) |
tests: add engine-switch test
Moved engine specific test from ibus-bus.c to a separate
file, so that it can be conditionally built depending on
--enable-engine.
Also do not register duplicate engine when loading component files.
This is for the case when two engine descs with the
same name are in different directories in IBUS_COMPONENT_PATH.
BUG=none
Review URL: https://codereview.appspot.com/6480052
Diffstat (limited to 'bus')
-rw-r--r-- | bus/registry.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/bus/registry.c b/bus/registry.c index f8f42855..946e8270 100644 --- a/bus/registry.c +++ b/bus/registry.c @@ -147,9 +147,15 @@ bus_registry_init (BusRegistry *registry) GList *p1; for (p1 = engines; p1 != NULL; p1 = p1->next) { IBusEngineDesc *desc = (IBusEngineDesc *) p1->data; - g_hash_table_insert (registry->engine_table, - (gpointer) ibus_engine_desc_get_name (desc), - desc); + const gchar *name = ibus_engine_desc_get_name (desc); + if (g_hash_table_lookup (registry->engine_table, name) == NULL) { + g_hash_table_insert (registry->engine_table, + (gpointer) name, + desc); + } else { + g_message ("Engine %s is already registered by other component", + name); + } } g_list_free (engines); } |