diff options
author | Peng Wu <alexepico@gmail.com> | 2013-11-19 11:20:28 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2013-11-29 15:09:14 +0800 |
commit | 75b9fa26f59f44567fb159bc74dbc3cee5914182 (patch) | |
tree | 46602e34efa2347e09f0cc8779f796cfd2f0c2cc /src | |
parent | d5de93dc76480d6016f5e5af0770c77e4105ec4a (diff) | |
download | libpinyin-75b9fa26f59f44567fb159bc74dbc3cee5914182.tar.gz libpinyin-75b9fa26f59f44567fb159bc74dbc3cee5914182.tar.xz libpinyin-75b9fa26f59f44567fb159bc74dbc3cee5914182.zip |
extract _compute_prefixes
Diffstat (limited to 'src')
-rw-r--r-- | src/pinyin.cpp | 17 |
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 |