diff options
author | Peng Wu <alexepico@gmail.com> | 2015-08-04 15:34:56 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2015-08-04 15:34:56 +0800 |
commit | b87bf3a41ee42e6f92a2139ae11515c4665f11ef (patch) | |
tree | 905097236d04b1a1f0d5168d50f420a6a20d003e | |
parent | e7cc7ef2fbd29499e3874a95db5e26eacecd2e23 (diff) | |
download | libzhuyin-b87bf3a41ee42e6f92a2139ae11515c4665f11ef.tar.gz libzhuyin-b87bf3a41ee42e6f92a2139ae11515c4665f11ef.tar.xz libzhuyin-b87bf3a41ee42e6f92a2139ae11515c4665f11ef.zip |
fixes zhuyin_choose_candidate methoddevel
-rw-r--r-- | src/zhuyin.cpp | 5 |
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, |