diff options
author | Peng Wu <alexepico@gmail.com> | 2012-07-04 13:21:42 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-07-04 13:21:42 +0800 |
commit | f9f1575a983f184dd84b137d4b8d5ce3a35c063d (patch) | |
tree | 1313e6f1f1b95c0985490e3e42ae59d7aa5eb089 /src/pinyin.cpp | |
parent | f0fbf87fb1625bb8f8e362af3e1b4b3b20f67743 (diff) | |
download | libpinyin-f9f1575a983f184dd84b137d4b8d5ce3a35c063d.tar.gz libpinyin-f9f1575a983f184dd84b137d4b8d5ce3a35c063d.tar.xz libpinyin-f9f1575a983f184dd84b137d4b8d5ce3a35c063d.zip |
fixes _compute_phrase_strings_of_items
Diffstat (limited to 'src/pinyin.cpp')
-rw-r--r-- | src/pinyin.cpp | 14 |
1 files 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); |