commit 0f5f924728588d7ae187588ee1fabd3d6e670931 Author: Daiki Ueno ueno@unixuser.org Date: Wed May 11 18:22:01 2011 +0900
Update ibus-1.4 patch.
ibus-hangul-ibus-1.4.patch | 115 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 89 insertions(+), 26 deletions(-) --- diff --git a/ibus-hangul-ibus-1.4.patch b/ibus-hangul-ibus-1.4.patch index 7250459..25a6f12 100644 --- a/ibus-hangul-ibus-1.4.patch +++ b/ibus-hangul-ibus-1.4.patch @@ -1,70 +1,133 @@ -From de6027f586e0e8052a7e23bbe58b35eb419e971f Mon Sep 17 00:00:00 2001 +From 6ce58d1d79e5b175865ee26794e9fc7ce576ce56 Mon Sep 17 00:00:00 2001 From: Daiki Ueno ueno@unixuser.org Date: Mon, 8 Nov 2010 14:12:35 +0900 -Subject: [PATCH] Fix problem with ibus-1.4. +Subject: [PATCH] Fix build with ibus-1.4.
+This patch adds compatibility code for the API changes of IBusConfig and +IBusEngineDesc in ibus-1.3 -> ibus-1.4. --- - src/engine.c | 29 ++++++++++++----------------- - 1 files changed, 12 insertions(+), 17 deletions(-) + src/engine.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++--------- + 1 files changed, 63 insertions(+), 12 deletions(-)
diff --git a/src/engine.c b/src/engine.c -index 6b0cec9..cba09df 100644 +index 79db70f..a297e4d 100644 --- a/src/engine.c +++ b/src/engine.c -@@ -111,7 +111,7 @@ static void ibus_hangul_engine_update_lookup_table +@@ -111,7 +111,11 @@ static void ibus_hangul_engine_update_lookup_table static void ibus_config_value_changed (IBusConfig *config, const gchar *section, const gchar *name, -- GValue *value, ++#if IBUS_CHECK_VERSION(1,3,99) + GVariant *value, ++#else + GValue *value, ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ gpointer user_data);
static void lookup_table_set_visible (IBusLookupTable *table, -@@ -174,8 +174,7 @@ ibus_hangul_engine_get_type (void) - void +@@ -136,6 +140,11 @@ static gboolean hanja_key_list_match (HanjaKeyList *list, + static gboolean hanja_key_list_has_modifier (HanjaKeyList *list, + guint keyval); + ++static gboolean config_get_string (IBusConfig *config, ++ const gchar *section, ++ const gchar *name, ++ gchar **result); ++ + static IBusEngineClass *parent_class = NULL; + static HanjaTable *hanja_table = NULL; + static HanjaTable *symbol_table = NULL; +@@ -176,7 +185,7 @@ void ibus_hangul_init (IBusBus *bus) { -- gboolean res; + gboolean res; - GValue value = { 0, }; -+ GVariant *value = NULL; ++ gchar *str;
hanja_table = hanja_table_load (NULL);
-@@ -186,22 +185,18 @@ ibus_hangul_init (IBusBus *bus) +@@ -187,22 +196,20 @@ ibus_hangul_init (IBusBus *bus) g_object_ref_sink (config);
hangul_keyboard = g_string_new_len ("2", 8); - res = ibus_config_get_value (config, "engine/Hangul", - "HangulKeyboard", &value); -- if (res) { ++ str = NULL; ++ res = config_get_string (config, "engine/Hangul", "HangulKeyboard", &str); + if (res) { - const gchar* str = g_value_get_string (&value); -+ value = ibus_config_get_value (config, "engine/Hangul", "HangulKeyboard"); -+ if (value) { -+ const gchar* str = g_variant_get_string (value, NULL); g_string_assign (hangul_keyboard, str); - g_value_unset(&value); ++ g_free (str); }
hanja_key_list_init(&hanja_keys);
- res = ibus_config_get_value (config, "engine/Hangul", - "HanjaKeys", &value); -- if (res) { ++ str = NULL; ++ res = config_get_string (config, "engine/Hangul", "HanjaKeys", &str); + if (res) { - const gchar* str = g_value_get_string (&value); -+ value = ibus_config_get_value (config, "engine/Hangul", "HanjaKeys"); -+ if (value) { -+ const gchar* str = g_variant_get_string (value, NULL); hanja_key_list_set_from_string(&hanja_keys, str); - g_value_unset(&value); ++ g_free (str); } else { hanja_key_list_append(&hanja_keys, IBUS_Hangul_Hanja, 0); hanja_key_list_append(&hanja_keys, IBUS_F9, 0); -@@ -949,23 +944,23 @@ static void +@@ -963,27 +970,71 @@ ibus_hangul_engine_property_activate (IBusEngine *engine, + } + } + ++static gboolean ++config_get_string (IBusConfig *config, ++ const gchar *section, ++ const gchar *name, ++ gchar **result) ++{ ++#if IBUS_CHECK_VERSION(1,3,99) ++ GVariant *value = NULL; ++ ++ g_return_val_if_fail (result != NULL, FALSE); ++ ++ value = ibus_config_get_value (config, section, name); ++ if (value) { ++ *result = g_strdup (g_variant_get_string (value, NULL)); ++ g_variant_unref (value); ++ return TRUE; ++ } ++ return FALSE; ++#else ++ GValue value = { 0 }; ++ ++ g_return_val_if_fail (result != NULL, FALSE); ++ ++ if (ibus_config_get_value (config, section, name, &value)) { ++ *result = g_strdup (g_value_get_string (&value)); ++ g_value_unset (&value); ++ return TRUE; ++ } ++ return FALSE; ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ ++} ++ ++#if IBUS_CHECK_VERSION(1,3,99) ++#define _g_variant_get_string g_variant_get_string ++#define _g_variant_get_int32 g_variant_get_int32 ++#else ++#define _g_variant_get_string(value, length) g_value_get_string(value) ++#define _g_variant_get_int32 g_value_get_int ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ ++ + static void ibus_config_value_changed (IBusConfig *config, const gchar *section, const gchar *name, -- GValue *value, ++#if IBUS_CHECK_VERSION(1,3,99) + GVariant *value, ++#else + GValue *value, ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ gpointer user_data) { IBusHangulEngine *hangul = (IBusHangulEngine *) user_data; @@ -72,21 +135,21 @@ index 6b0cec9..cba09df 100644 if (strcmp(section, "engine/Hangul") == 0) { if (strcmp(name, "HangulKeyboard") == 0) { - const gchar *str = g_value_get_string (value); -+ const gchar *str = g_variant_get_string (value, NULL); ++ const gchar *str = _g_variant_get_string (value, NULL); g_string_assign (hangul_keyboard, str); hangul_ic_select_keyboard (hangul->context, hangul_keyboard->str); } else if (strcmp(name, "HanjaKeys") == 0) { - const gchar* str = g_value_get_string (value); -+ const gchar* str = g_variant_get_string (value, NULL); ++ const gchar* str = _g_variant_get_string (value, NULL); hanja_key_list_set_from_string(&hanja_keys, str); } } else if (strcmp(section, "panel") == 0) { if (strcmp(name, "lookup_table_orientation") == 0) { - lookup_table_orientation = g_value_get_int (value); -+ lookup_table_orientation = g_variant_get_int32 (value); ++ lookup_table_orientation = _g_variant_get_int32 (value); } } } -- -1.7.3.2 +1.7.5.1