[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