summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2012-07-02 10:39:18 +0800
committerPeng Wu <alexepico@gmail.com>2012-07-02 10:39:18 +0800
commitcb66df1cc752cddcf35ac3e8a00264b0df05d410 (patch)
treed29c9101bb53653d9a56e3804d7d517c312794a4
parent5ff36bd939efdce410885454b253ae9a362f7e2b (diff)
downloadlibpinyin-cb66df1cc752cddcf35ac3e8a00264b0df05d410.tar.gz
libpinyin-cb66df1cc752cddcf35ac3e8a00264b0df05d410.tar.xz
libpinyin-cb66df1cc752cddcf35ac3e8a00264b0df05d410.zip
write _compute_strings_of_items
-rw-r--r--src/pinyin.cpp36
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) {