summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2015-08-04 15:34:56 +0800
committerPeng Wu <alexepico@gmail.com>2015-08-04 15:34:56 +0800
commitb87bf3a41ee42e6f92a2139ae11515c4665f11ef (patch)
tree905097236d04b1a1f0d5168d50f420a6a20d003e
parente7cc7ef2fbd29499e3874a95db5e26eacecd2e23 (diff)
downloadlibzhuyin-b87bf3a41ee42e6f92a2139ae11515c4665f11ef.tar.gz
libzhuyin-b87bf3a41ee42e6f92a2139ae11515c4665f11ef.tar.xz
libzhuyin-b87bf3a41ee42e6f92a2139ae11515c4665f11ef.zip
fixes zhuyin_choose_candidate methoddevel
-rw-r--r--src/zhuyin.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/zhuyin.cpp b/src/zhuyin.cpp
index 251e6c8..3e7a0b1 100644
--- a/src/zhuyin.cpp
+++ b/src/zhuyin.cpp
@@ -1510,6 +1510,7 @@ int zhuyin_choose_candidate(zhuyin_instance_t * instance,
phrase_token_t token = candidate->m_token;
len = context->m_pinyin_lookup->add_constraint
(instance->m_constraints, offset, token);
+ offset = offset + len;
}
if (NORMAL_CANDIDATE_BEFORE_CURSOR == candidate->m_candidate_type) {
@@ -1519,13 +1520,15 @@ int zhuyin_choose_candidate(zhuyin_instance_t * instance,
guint8 phrase_len = item.get_phrase_length();
len = context->m_pinyin_lookup->add_constraint
(instance->m_constraints, offset - phrase_len, token);
+ if (offset < instance->m_pinyin_keys->len)
+ offset = offset + 1;
}
/* safe guard: validate the m_constraints again. */
retval = context->m_pinyin_lookup->validate_constraint
(instance->m_constraints, instance->m_pinyin_keys) && len;
- return offset + len;
+ return offset;
}
bool zhuyin_clear_constraint(zhuyin_instance_t * instance,