summaryrefslogtreecommitdiffstats
path: root/src/zhuyin.cpp
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2014-04-28 13:27:59 +0800
committerPeng Wu <alexepico@gmail.com>2014-04-28 13:27:59 +0800
commitae65f9c93fc5714c4f7e2c5faaf07a81c5d08e68 (patch)
treea962aaf0c7c21b26129156f68908f684a960d1d9 /src/zhuyin.cpp
parent1b38714d21d0380341c5fbcf88d0edbf17c8bd27 (diff)
downloadlibzhuyin-ae65f9c93fc5714c4f7e2c5faaf07a81c5d08e68.tar.gz
libzhuyin-ae65f9c93fc5714c4f7e2c5faaf07a81c5d08e68.tar.xz
libzhuyin-ae65f9c93fc5714c4f7e2c5faaf07a81c5d08e68.zip
add zhuyin_get_parsed_input_length function
Diffstat (limited to 'src/zhuyin.cpp')
-rw-r--r--src/zhuyin.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/zhuyin.cpp b/src/zhuyin.cpp
index 267de3f..926b19c 100644
--- a/src/zhuyin.cpp
+++ b/src/zhuyin.cpp
@@ -62,6 +62,7 @@ struct _zhuyin_instance_t{
TokenVector m_prefixes;
ChewingKeyVector m_pinyin_keys;
ChewingKeyRestVector m_pinyin_key_rests;
+ size_t m_parsed_len;
CandidateConstraints m_constraints;
MatchResults m_match_results;
CandidateVector m_candidates;
@@ -773,6 +774,9 @@ zhuyin_instance_t * zhuyin_alloc_instance(zhuyin_context_t * context){
instance->m_pinyin_keys = g_array_new(FALSE, FALSE, sizeof(ChewingKey));
instance->m_pinyin_key_rests =
g_array_new(FALSE, FALSE, sizeof(ChewingKeyRest));
+
+ instance->m_parsed_len = 0;
+
instance->m_constraints = g_array_new
(TRUE, FALSE, sizeof(lookup_constraint_t));
instance->m_match_results =
@@ -926,11 +930,12 @@ size_t zhuyin_parse_more_full_pinyins(zhuyin_instance_t * instance,
instance->m_raw_full_pinyin = g_strdup(pinyins);
int pinyin_len = strlen(pinyins);
- int parse_len = context->m_full_pinyin_parser->parse
+ int parsed_len = context->m_full_pinyin_parser->parse
( context->m_options, instance->m_pinyin_keys,
instance->m_pinyin_key_rests, pinyins, pinyin_len);
- return parse_len;
+ instance->m_parsed_len = parsed_len;
+ return parsed_len;
}
bool zhuyin_parse_chewing(zhuyin_instance_t * instance,
@@ -949,11 +954,16 @@ size_t zhuyin_parse_more_chewings(zhuyin_instance_t * instance,
zhuyin_context_t * & context = instance->m_context;
int chewing_len = strlen(chewings);
- int parse_len = context->m_chewing_parser->parse
+ int parsed_len = context->m_chewing_parser->parse
( context->m_options, instance->m_pinyin_keys,
instance->m_pinyin_key_rests, chewings, chewing_len);
- return parse_len;
+ instance->m_parsed_len = parsed_len;
+ return parsed_len;
+}
+
+size_t zhuyin_get_parsed_input_length(zhuyin_instance_t * instance) {
+ return instance->m_parsed_len;
}
bool zhuyin_in_chewing_keyboard(zhuyin_instance_t * instance,