From 7cf0b7a5216e80f50558d071608a97cca2b4339d Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Wed, 4 Jul 2012 13:29:11 +0800 Subject: [PATCH] update patch --- libpinyin-0.7.x-head.patch | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/libpinyin-0.7.x-head.patch b/libpinyin-0.7.x-head.patch index e69de29..c55f61a 100644 --- a/libpinyin-0.7.x-head.patch +++ b/libpinyin-0.7.x-head.patch @@ -0,0 +1,59 @@ +From f9f1575a983f184dd84b137d4b8d5ce3a35c063d Mon Sep 17 00:00:00 2001 +From: Peng Wu +Date: Wed, 4 Jul 2012 13:21:42 +0800 +Subject: [PATCH] fixes _compute_phrase_strings_of_items + +--- + src/pinyin.cpp | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/src/pinyin.cpp b/src/pinyin.cpp +index 96c2d33..12a4b8d 100644 +--- a/src/pinyin.cpp ++++ b/src/pinyin.cpp +@@ -918,6 +918,7 @@ static bool _prepend_sentence_candidate(pinyin_instance_t * instance, + } + + static bool _compute_phrase_strings_of_items(pinyin_instance_t * instance, ++ size_t offset, + CandidateVector candidates) { + /* populate m_phrase_string in lookup_candidate_t. */ + +@@ -926,9 +927,14 @@ static bool _compute_phrase_strings_of_items(pinyin_instance_t * instance, + (candidates, lookup_candidate_t, i); + + switch(candidate->m_candidate_type) { +- case BEST_MATCH_CANDIDATE: +- pinyin_get_sentence(instance, &(candidate->m_phrase_string)); ++ case BEST_MATCH_CANDIDATE: { ++ gchar * sentence = NULL; ++ pinyin_get_sentence(instance, &sentence); ++ candidate->m_phrase_string = g_strdup ++ (g_utf8_offset_to_pointer(sentence, offset)); ++ g_free(sentence); + break; ++ } + case NORMAL_CANDIDATE: + case DIVIDED_CANDIDATE: + case RESPLIT_CANDIDATE: +@@ -1133,7 +1139,7 @@ bool pinyin_get_candidates(pinyin_instance_t * instance, + + _prepend_sentence_candidate(instance, candidates); + +- _compute_phrase_strings_of_items(instance, candidates); ++ _compute_phrase_strings_of_items(instance, offset, candidates); + + _remove_duplicated_items_by_phrase_string(instance, candidates); + +@@ -1507,7 +1513,7 @@ bool pinyin_get_full_pinyin_candidates(pinyin_instance_t * instance, + + _prepend_sentence_candidate(instance, candidates); + +- _compute_phrase_strings_of_items(instance, candidates); ++ _compute_phrase_strings_of_items(instance, offset, candidates); + + _remove_duplicated_items_by_phrase_string(instance, candidates); + +-- +1.7.10.4 +