fixes get_pinyin_string
authorPeng Wu <alexepico@gmail.com>
Wed, 5 Dec 2012 04:03:21 +0000 (12:03 +0800)
committerPeng Wu <alexepico@gmail.com>
Wed, 5 Dec 2012 04:03:21 +0000 (12:03 +0800)
src/PYPDoublePinyinEditor.cc
src/PYPFullPinyinEditor.cc
src/PYPPinyinEditor.cc

index 70b2847..b023313 100644 (file)
@@ -135,8 +135,11 @@ LibPinyinDoublePinyinEditor::updateAuxiliaryText (void)
         PinyinKeyPos *pos = &g_array_index (pinyin_poses, PinyinKeyPos, i);
         guint cursor = pos->m_raw_begin;
 
+        gchar * str = NULL;
         if (G_UNLIKELY (cursor == m_cursor)) { /* at word boundary. */
-            m_buffer << '|' << key->get_pinyin_string ();
+            pinyin_get_pinyin_string(m_instance, key, &str);
+            m_buffer << '|' << str;
+            g_free(str);
         } else if (G_LIKELY ( cursor < m_cursor &&
                               m_cursor < pos->m_raw_end )) { /* in word */
             /* raw text */
@@ -146,7 +149,9 @@ LibPinyinDoublePinyinEditor::updateAuxiliaryText (void)
             m_buffer << ' ' << raw.substr (0, offset)
                      << '|' << raw.substr (offset);
         } else { /* other words */
-            m_buffer << ' ' << key->get_pinyin_string ();
+            pinyin_get_pinyin_string(m_instance, key, &str);
+            m_buffer << ' ' << str;
+            g_free(str);
         }
     }
 
index eb58b6b..0641203 100644 (file)
@@ -101,8 +101,11 @@ LibPinyinFullPinyinEditor::updateAuxiliaryText ()
         PinyinKeyPos *pos = &g_array_index (pinyin_poses, PinyinKeyPos, i);
         guint cursor = pos->m_raw_begin;
 
+        gchar * str = NULL;
         if (G_UNLIKELY (cursor == m_cursor)) { /* at word boundary. */
-            m_buffer << '|' << key->get_pinyin_string ();
+            pinyin_get_pinyin_string(m_instance, key, &str);
+            m_buffer << '|' << str;
+            g_free(str);
         } else if (G_LIKELY ( cursor < m_cursor &&
                               m_cursor < pos->m_raw_end )) { /* in word */
             /* raw text */
@@ -112,7 +115,9 @@ LibPinyinFullPinyinEditor::updateAuxiliaryText ()
             m_buffer << ' ' << raw.substr (0, offset)
                      << '|' << raw.substr (offset);
         } else { /* other words */
-            m_buffer << ' ' << key->get_pinyin_string ();
+            pinyin_get_pinyin_string(m_instance, key, &str);
+            m_buffer << ' ' << str;
+            g_free(str);
         }
     }
 
index 220ab5c..5380c02 100644 (file)
@@ -287,8 +287,12 @@ LibPinyinPinyinEditor::updateAuxiliaryText ()
     for (guint i = 0; i < pinyin_keys->len; ++i) {
         if (G_LIKELY (i))
             m_buffer << ' ';
+
         PinyinKey *key = &g_array_index (pinyin_keys, PinyinKey, i);
-        m_buffer << key->get_pinyin_string ();
+        gchar * str = NULL;
+        pinyin_get_pinyin_string(m_instance, key, &str);
+        m_buffer << str;
+        g_free(str);
     }
 
     /* append rest text */