[Fedora-i18n-bugs] [ibus-hangul] Update ibus-1.4 patch.
Daiki Ueno
ueno at fedoraproject.org
Wed May 11 09:22:29 UTC 2011
commit 0f5f924728588d7ae187588ee1fabd3d6e670931
Author: Daiki Ueno <ueno at 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 at 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
More information about the i18n-bugs
mailing list