diff options
-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); |