diff options
author | Peng Wu <alexepico@gmail.com> | 2013-04-10 15:08:52 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2013-04-10 15:12:34 +0800 |
commit | 34e763f4523ea05ea09340edbf3870f82888f5a9 (patch) | |
tree | 93135c8464b3a29c00e2a9d164de2b124ebdfa6a /src/pinyin.cpp | |
parent | a762acbcb5c16fe8bbcbc67ff05d0882ae9faa56 (diff) | |
download | libpinyin-34e763f4523ea05ea09340edbf3870f82888f5a9.tar.gz libpinyin-34e763f4523ea05ea09340edbf3870f82888f5a9.tar.xz libpinyin-34e763f4523ea05ea09340edbf3870f82888f5a9.zip |
update src/pinyin.cpp
Diffstat (limited to 'src/pinyin.cpp')
-rw-r--r-- | src/pinyin.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp index ac6f3e2..1d8500b 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -105,10 +105,12 @@ static bool check_format(pinyin_context_t * context){ if (exists) return exists; + const pinyin_table_info_t * phrase_files = + context->m_system_table_info.get_table_info(); + /* clean up files, if version mis-matches. */ for (size_t i = 1; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) { - const pinyin_table_info_t * table_info = - context->m_system_table_info.get_table_info() + i; + const pinyin_table_info_t * table_info = phrase_files + i; if (NOT_USED == table_info->m_file_type) continue; @@ -168,7 +170,7 @@ pinyin_context_t * pinyin_init(const char * systemdir, const char * userdir){ gchar * filename = g_build_filename (context->m_system_dir, SYSTEM_TABLE_INFO, NULL); if (!context->m_system_table_info.load(filename)) { - fprintf(stderr, "open %s failed!\n", filename); + fprintf(stderr, "load %s failed!\n", filename); return NULL; } g_free(filename); @@ -271,8 +273,10 @@ bool pinyin_load_phrase_library(pinyin_context_t * context, if (ERROR_OK == retval) return false; - const pinyin_table_info_t * table_info = - context->m_system_table_info.get_table_info() + index; + const pinyin_table_info_t * phrase_files = + context->m_system_table_info.get_table_info(); + + const pinyin_table_info_t * table_info = phrase_files + index; if (SYSTEM_FILE == table_info->m_file_type || DICTIONARY == table_info->m_file_type) { @@ -484,6 +488,9 @@ bool pinyin_save(pinyin_context_t * context){ context->m_phrase_index->compact(); + const pinyin_table_info_t * phrase_files = + context->m_system_table_info.get_table_info(); + /* skip the reserved zero phrase library. */ for (size_t i = 1; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) { PhraseIndexRange range; @@ -492,8 +499,7 @@ bool pinyin_save(pinyin_context_t * context){ if (ERROR_NO_SUB_PHRASE_INDEX == retval) continue; - const pinyin_table_info_t * table_info = - context->m_system_table_info.get_table_info() + i; + const pinyin_table_info_t * table_info = phrase_files + i; if (NOT_USED == table_info->m_file_type) continue; @@ -640,6 +646,9 @@ bool pinyin_mask_out(pinyin_context_t * context, context->m_phrase_table->mask_out(mask, value); context->m_user_bigram->mask_out(mask, value); + const pinyin_table_info_t * phrase_files = + context->m_system_table_info.get_table_info(); + /* mask out the phrase index. */ for (size_t index = 1; index < PHRASE_INDEX_LIBRARY_COUNT; ++index) { PhraseIndexRange range; @@ -648,8 +657,7 @@ bool pinyin_mask_out(pinyin_context_t * context, if (ERROR_NO_SUB_PHRASE_INDEX == retval) continue; - const pinyin_table_info_t * table_info = - context->m_system_table_info.get_table_info() + index; + const pinyin_table_info_t * table_info = phrase_files + index; if (NOT_USED == table_info->m_file_type) continue; |