From b87bf3a41ee42e6f92a2139ae11515c4665f11ef Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 4 Aug 2015 15:34:56 +0800 Subject: fixes zhuyin_choose_candidate method --- src/zhuyin.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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, -- cgit