summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2016-06-12 14:34:12 +0800
committerPeng Wu <alexepico@gmail.com>2016-06-12 14:34:12 +0800
commit83f5dac8e36949b7c848b2894f1d9c15ebefec47 (patch)
treec6a3e69623f493e490a883fb8002ee3b31331dc7
parent9bedecb28b9ac1503de0dfda07bcb6d5c7deb002 (diff)
downloadlibpinyin-83f5dac8e36949b7c848b2894f1d9c15ebefec47.tar.gz
libpinyin-83f5dac8e36949b7c848b2894f1d9c15ebefec47.tar.xz
libpinyin-83f5dac8e36949b7c848b2894f1d9c15ebefec47.zip
update pinyin.cpp
-rw-r--r--src/lookup/pinyin_lookup2.h2
-rw-r--r--src/pinyin.cpp18
2 files changed, 14 insertions, 6 deletions
diff --git a/src/lookup/pinyin_lookup2.h b/src/lookup/pinyin_lookup2.h
index ac4bdaa..17f0088 100644
--- a/src/lookup/pinyin_lookup2.h
+++ b/src/lookup/pinyin_lookup2.h
@@ -206,7 +206,7 @@ public:
* @start: the start of the phrase.
* @end: the end of the phrase.
* @token: the phrase token in the candidate list chosen by user.
- * @returns: the number of the characters in the chosen token.
+ * @returns: the number of the pinyin characters in the chosen constraint.
*
* Add one constraint to the constraints on the guessed sentence.
*
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index 6fe85ed..1143655 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -1536,7 +1536,7 @@ static bool _compute_phrase_strings_of_items(pinyin_instance_t * instance,
&(candidate->m_phrase_string));
break;
case ZOMBIE_CANDIDATE:
- break;
+ assert(FALSE);
}
}
@@ -2249,7 +2249,8 @@ int pinyin_choose_candidate(pinyin_instance_t * instance,
lookup_candidate_t * candidate){
assert(PREDICTED_CANDIDATE != candidate->m_candidate_type);
- pinyin_context_t * & context = instance->m_context;
+ pinyin_context_t * context = instance->m_context;
+ PhoneticKeyMatrix & matrix = instance->m_matrix;
if (BEST_MATCH_CANDIDATE == candidate->m_candidate_type)
return instance->m_pinyin_keys->len;
@@ -2285,6 +2286,7 @@ int pinyin_choose_candidate(pinyin_instance_t * instance,
candidate->m_token = token;
}
+#if 0
if (DIVIDED_CANDIDATE == candidate->m_candidate_type ||
RESPLIT_CANDIDATE == candidate->m_candidate_type) {
/* update full pinyin. */
@@ -2307,18 +2309,20 @@ int pinyin_choose_candidate(pinyin_instance_t * instance,
/* Note: there may be some un-parsable input here. */
}
+#endif
/* sync m_constraints to the length of m_pinyin_keys. */
bool retval = context->m_pinyin_lookup->validate_constraint
- (instance->m_constraints, instance->m_pinyin_keys);
+ (&matrix, instance->m_constraints);
phrase_token_t token = candidate->m_token;
guint8 len = context->m_pinyin_lookup->add_constraint
- (instance->m_constraints, offset, token);
+ (instance->m_constraints,
+ candidate->m_begin, candidate->m_end, token);
/* safe guard: validate the m_constraints again. */
retval = context->m_pinyin_lookup->validate_constraint
- (instance->m_constraints, instance->m_pinyin_keys) && len;
+ (&matrix, instance->m_constraints) && len;
return offset + len;
}
@@ -2593,6 +2597,7 @@ bool pinyin_get_candidate_string(pinyin_instance_t * instance,
return true;
}
+#if 0
bool pinyin_get_n_pinyin(pinyin_instance_t * instance,
guint * num) {
*num = 0;
@@ -2604,6 +2609,7 @@ bool pinyin_get_n_pinyin(pinyin_instance_t * instance,
*num = instance->m_pinyin_keys->len;
return true;
}
+#endif
bool pinyin_get_pinyin_key(pinyin_instance_t * instance,
guint index,
@@ -2685,11 +2691,13 @@ bool pinyin_get_pinyin_key_rest_offset(pinyin_instance_t * instance,
return true;
}
+#if 0
bool pinyin_get_raw_full_pinyin(pinyin_instance_t * instance,
const gchar ** utf8_str) {
*utf8_str = instance->m_raw_full_pinyin;
return true;
}
+#endif
bool pinyin_get_n_phrase(pinyin_instance_t * instance,
guint * num) {