diff options
author | Peng Wu <alexepico@gmail.com> | 2012-07-03 12:04:31 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-07-03 12:04:31 +0800 |
commit | 088ee79c591f72f800a4ac5ac6d969b054b45027 (patch) | |
tree | 09e705034ae06aea79e96dbb77290fb454192c5e /src | |
parent | 74fdc84d5e6436339bd96d3be8a125d89e969041 (diff) | |
download | libpinyin-088ee79c591f72f800a4ac5ac6d969b054b45027.tar.gz libpinyin-088ee79c591f72f800a4ac5ac6d969b054b45027.tar.xz libpinyin-088ee79c591f72f800a4ac5ac6d969b054b45027.zip |
fixes _prepend_sentence_candidate
Diffstat (limited to 'src')
-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 fbeeed1..96c2d33 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -901,9 +901,15 @@ static void _compute_frequency_of_items(pinyin_context_t * context, } } -static bool _prepend_sentence_candidate(CandidateVector candidates) { - /* prepend best match candidate to candidates. */ +static bool _prepend_sentence_candidate(pinyin_instance_t * instance, + CandidateVector candidates) { + /* check whether the best match candidate exists. */ + gchar * sentence = NULL; + pinyin_get_sentence(instance, &sentence); + if (NULL == sentence) + return false; + /* prepend best match candidate to candidates. */ lookup_candidate_t candidate; candidate.m_candidate_type = BEST_MATCH_CANDIDATE; g_array_prepend_val(candidates, candidate); @@ -1125,7 +1131,7 @@ bool pinyin_get_candidates(pinyin_instance_t * instance, /* post process to remove duplicated candidates */ - _prepend_sentence_candidate(candidates); + _prepend_sentence_candidate(instance, candidates); _compute_phrase_strings_of_items(instance, candidates); @@ -1499,7 +1505,7 @@ bool pinyin_get_full_pinyin_candidates(pinyin_instance_t * instance, /* post process to remove duplicated candidates */ - _prepend_sentence_candidate(candidates); + _prepend_sentence_candidate(instance, candidates); _compute_phrase_strings_of_items(instance, candidates); |