diff options
author | Peng Wu <alexepico@gmail.com> | 2012-07-02 10:39:18 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-07-02 10:39:18 +0800 |
commit | cb66df1cc752cddcf35ac3e8a00264b0df05d410 (patch) | |
tree | d29c9101bb53653d9a56e3804d7d517c312794a4 /src | |
parent | 5ff36bd939efdce410885454b253ae9a362f7e2b (diff) | |
download | libpinyin-cb66df1cc752cddcf35ac3e8a00264b0df05d410.tar.gz libpinyin-cb66df1cc752cddcf35ac3e8a00264b0df05d410.tar.xz libpinyin-cb66df1cc752cddcf35ac3e8a00264b0df05d410.zip |
write _compute_strings_of_items
Diffstat (limited to 'src')
-rw-r--r-- | src/pinyin.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp index a255d5f..904fe61 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -901,6 +901,42 @@ static void _compute_frequency_of_items(pinyin_context_t * context, } } +static bool _prepend_sentence_candidate(CandidateVector candidates) { + /* prepend best match candidate to candidates. */ + + lookup_candidate_t candidate; + candidate.m_candidate_type = BEST_MATCH_CANDIDATE; + g_array_prepend_val(candidates, candidate); + + return true; +} + +static bool _compute_strings_of_items(pinyin_instance_t * instance, + CandidateVector candidates) { + /* populate m_phrase_string in lookup_candidate_t. */ + + for(size_t i = 0; i < candidates->len; ++i) { + lookup_candidate_t * candidate = &g_array_index + (candidates, lookup_candidate_t, i); + + switch(candidate->m_candidate_type) { + case BEST_MATCH_CANDIDATE: + pinyin_get_sentence(instance, &(candidate->m_phrase_string)); + break; + case NORMAL_CANDIDATE: + case DIVIDED_CANDIDATE: + case RESPLIT_CANDIDATE: + pinyin_translate_token + (instance, candidate->m_token, &(candidate->m_phrase_string)); + break; + case ZOMBIE_CANDIDATE: + break; + } + } + + return true; +} + bool pinyin_get_candidates(pinyin_instance_t * instance, size_t offset, CandidateVector candidates) { |