From 84b8ecaf7b1c016b304015788e5ded68abc0d7db Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 11 Oct 2011 11:03:10 +0800 Subject: re-factor choose candidate --- src/lookup/pinyin_lookup.cpp | 8 ++++---- src/lookup/pinyin_lookup.h | 2 +- src/pinyin.cpp | 14 +++++++------- src/pinyin.h | 6 +++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/lookup/pinyin_lookup.cpp b/src/lookup/pinyin_lookup.cpp index 4e67c49..2e6408d 100644 --- a/src/lookup/pinyin_lookup.cpp +++ b/src/lookup/pinyin_lookup.cpp @@ -494,13 +494,13 @@ bool PinyinLookup::train_result(PinyinKeyVector keys, CandidateConstraints const return true; } -bool PinyinLookup::add_constraint(CandidateConstraints constraints, size_t index, phrase_token_t token){ +guint8 PinyinLookup::add_constraint(CandidateConstraints constraints, size_t index, phrase_token_t token){ if ( m_phrase_index->get_phrase_item(token, m_cache_phrase_item) ) - return false; + return 0; size_t phrase_length = m_cache_phrase_item.get_phrase_length(); if ( index + phrase_length > constraints->len ) - return false; + return 0; for ( size_t i = index; i < index + phrase_length ; ++i ){ clear_constraint(constraints, i); @@ -515,7 +515,7 @@ bool PinyinLookup::add_constraint(CandidateConstraints constraints, size_t index constraint->m_type = CONSTRAINT_NOSEARCH; constraint->m_constraint_step = index; } - return true; + return phrase_length; } bool PinyinLookup::clear_constraint(CandidateConstraints constraints, size_t index){ diff --git a/src/lookup/pinyin_lookup.h b/src/lookup/pinyin_lookup.h index 47cc4a9..7bc206d 100644 --- a/src/lookup/pinyin_lookup.h +++ b/src/lookup/pinyin_lookup.h @@ -134,7 +134,7 @@ public: } /* user interactions */ - bool add_constraint(CandidateConstraints constraints, size_t index, phrase_token_t token); + guint8 add_constraint(CandidateConstraints constraints, size_t index, phrase_token_t token); bool clear_constraint(CandidateConstraints constraints, size_t index); diff --git a/src/pinyin.cpp b/src/pinyin.cpp index 36969af..ee05a0a 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -466,18 +466,18 @@ bool pinyin_get_candidates(pinyin_instance_t * instance, return true; } -bool pinyin_choose_candidate(pinyin_instance_t * instance, - size_t offset, - phrase_token_t token){ +guint8 pinyin_choose_candidate(pinyin_instance_t * instance, + size_t offset, + phrase_token_t token){ pinyin_context_t * & context = instance->m_context; - bool retval = context->m_pinyin_lookup->add_constraint + guint8 len = context->m_pinyin_lookup->add_constraint (instance->m_constraints, offset, token); - retval = context->m_pinyin_lookup->validate_constraint - (instance->m_constraints, instance->m_pinyin_keys) && retval; + bool retval = context->m_pinyin_lookup->validate_constraint + (instance->m_constraints, instance->m_pinyin_keys) && len; - return retval; + return len; } bool pinyin_clear_constraint(pinyin_instance_t * instance, diff --git a/src/pinyin.h b/src/pinyin.h index 8b34a52..b06e578 100644 --- a/src/pinyin.h +++ b/src/pinyin.h @@ -86,9 +86,9 @@ bool pinyin_get_candidates(pinyin_instance_t * instance, size_t offset, TokenVector candidates); -bool pinyin_choose_candidate(pinyin_instance_t * instance, - size_t offset, - phrase_token_t token); +guint8 pinyin_choose_candidate(pinyin_instance_t * instance, + size_t offset, + phrase_token_t token); bool pinyin_clear_constraint(pinyin_instance_t * instance, size_t offset); -- cgit