diff options
author | Peng Wu <alexepico@gmail.com> | 2012-03-12 14:58:34 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-03-12 14:58:34 +0800 |
commit | a4913c389c9ee431f486ae8c6befc2556d5ae3fc (patch) | |
tree | 4abbc3810e9b735245e985babcb1510521ea0e58 /src | |
parent | ad345300d1bf8e9691ad24692a62421d04226948 (diff) | |
download | libpinyin-a4913c389c9ee431f486ae8c6befc2556d5ae3fc.tar.gz libpinyin-a4913c389c9ee431f486ae8c6befc2556d5ae3fc.tar.xz libpinyin-a4913c389c9ee431f486ae8c6befc2556d5ae3fc.zip |
continue improves pinyin_save
Diffstat (limited to 'src')
-rw-r--r-- | src/pinyin.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp index b8726f6..38deb6c 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -195,10 +195,15 @@ bool pinyin_save(pinyin_context_t * context){ "gb_char.bin", NULL); oldchunk->load(filename); g_free(filename); + context->m_phrase_index->diff(1, oldchunk, newlog); + gchar * tmpfilename = g_build_filename(context->m_user_dir, + "gb_char.dbin.tmp", NULL); filename = g_build_filename(context->m_user_dir, "gb_char.dbin", NULL); - newlog->save(filename); + newlog->save(tmpfilename); + rename(tmpfilename, filename); + g_free(tmpfilename); g_free(filename); delete newlog; @@ -209,14 +214,18 @@ bool pinyin_save(pinyin_context_t * context){ g_free(filename); context->m_phrase_index->diff(2, oldchunk, newlog); + tmpfilename = g_build_filename(context->m_user_dir, + "gbk_char.dbin.tmp", NULL); filename = g_build_filename(context->m_user_dir, "gbk_char.dbin", NULL); - newlog->save(filename); + newlog->save(tmpfilename); + rename(tmpfilename, filename); + g_free(tmpfilename); g_free(filename); delete newlog; - gchar * tmpfilename = g_build_filename(context->m_user_dir, - "user.db.tmp", NULL); + tmpfilename = g_build_filename(context->m_user_dir, + "user.db.tmp", NULL); filename = g_build_filename(context->m_user_dir, "user.db", NULL); context->m_user_bigram->save_db(tmpfilename); rename(tmpfilename, filename); |