summaryrefslogtreecommitdiffstats
path: root/src/pinyin.cpp
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2012-06-28 15:13:49 +0800
committerPeng Wu <alexepico@gmail.com>2012-06-28 15:13:49 +0800
commit433353d0063be4ea5527261bd403ad8bd06bd93e (patch)
treeeb95b50aee06579f9d4d816ffc504498b5bde600 /src/pinyin.cpp
parentba1cd11a6ccf5ff85aa3a5df6deffd5097f12898 (diff)
downloadlibpinyin-433353d0063be4ea5527261bd403ad8bd06bd93e.tar.gz
libpinyin-433353d0063be4ea5527261bd403ad8bd06bd93e.tar.xz
libpinyin-433353d0063be4ea5527261bd403ad8bd06bd93e.zip
update pinyin_get/choose_candidates
Diffstat (limited to 'src/pinyin.cpp')
-rw-r--r--src/pinyin.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index a907cd9..9c06e68 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -900,7 +900,7 @@ static void _compute_frequency_of_items(pinyin_context_t * context,
bool pinyin_get_candidates(pinyin_instance_t * instance,
size_t offset,
- TokenVector candidates) {
+ CandidateVector candidates) {
pinyin_context_t * & context = instance->m_context;
pinyin_option_t & options = context->m_options;
@@ -960,10 +960,10 @@ bool pinyin_get_candidates(pinyin_instance_t * instance,
g_array_sort(items, compare_item_with_frequency);
/* transfer back items to tokens, and save it into candidates */
- for (ssize_t k = 0; k < items->len; ++k) {
+ for (size_t k = 0; k < items->len; ++k) {
lookup_candidate_t * item = &g_array_index
(items, lookup_candidate_t, k);
- g_array_append_val(candidates, item->m_token);
+ g_array_append_val(candidates, *item);
}
if (!(retval & SEARCH_CONTINUED))
@@ -1353,9 +1353,13 @@ bool pinyin_get_full_pinyin_candidates(pinyin_instance_t * instance,
int pinyin_choose_candidate(pinyin_instance_t * instance,
size_t offset,
- phrase_token_t token){
+ lookup_candidate_t * candidate){
pinyin_context_t * & context = instance->m_context;
+ assert(NORMAL_CANDIDATE == candidate->m_candidate_type);
+
+ phrase_token_t token = candidate->m_token;
+
guint8 len = context->m_pinyin_lookup->add_constraint
(instance->m_constraints, offset, token);