summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2013-11-19 11:20:28 +0800
committerPeng Wu <alexepico@gmail.com>2013-11-29 15:09:14 +0800
commit75b9fa26f59f44567fb159bc74dbc3cee5914182 (patch)
tree46602e34efa2347e09f0cc8779f796cfd2f0c2cc
parentd5de93dc76480d6016f5e5af0770c77e4105ec4a (diff)
downloadlibpinyin-75b9fa26f59f44567fb159bc74dbc3cee5914182.tar.gz
libpinyin-75b9fa26f59f44567fb159bc74dbc3cee5914182.tar.xz
libpinyin-75b9fa26f59f44567fb159bc74dbc3cee5914182.zip
extract _compute_prefixes
-rw-r--r--src/pinyin.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index 95215ae..7adbca6 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -812,15 +812,12 @@ bool pinyin_guess_sentence(pinyin_instance_t * instance){
return retval;
}
-bool pinyin_guess_sentence_with_prefix(pinyin_instance_t * instance,
- const char * prefix){
+static void _compute_prefixes(pinyin_instance_t * instance,
+ const char * prefix){
pinyin_context_t * & context = instance->m_context;
FacadePhraseIndex * & phrase_index = context->m_phrase_index;
- g_array_set_size(instance->m_prefixes, 0);
- g_array_append_val(instance->m_prefixes, sentence_start);
-
glong len_str = 0;
ucs4_t * ucs4_str = g_utf8_to_ucs4(prefix, -1, NULL, &len_str, NULL);
GArray * tokenarray = g_array_new(FALSE, FALSE, sizeof(phrase_token_t));
@@ -847,6 +844,16 @@ bool pinyin_guess_sentence_with_prefix(pinyin_instance_t * instance,
}
g_array_free(tokenarray, TRUE);
g_free(ucs4_str);
+}
+
+bool pinyin_guess_sentence_with_prefix(pinyin_instance_t * instance,
+ const char * prefix){
+ pinyin_context_t * & context = instance->m_context;
+
+ g_array_set_size(instance->m_prefixes, 0);
+ g_array_append_val(instance->m_prefixes, sentence_start);
+
+ _compute_prefixes(instance, prefix);
pinyin_update_constraints(instance);
bool retval = context->m_pinyin_lookup->get_best_match