From ee803d04c74654b3fec3f4857ad31648da83a83b Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Mon, 12 Mar 2012 14:58:34 +0800 Subject: continue improves pinyin_save --- src/pinyin.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/pinyin.cpp b/src/pinyin.cpp index 4ede459..5257c49 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); -- cgit