summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2012-03-12 13:55:53 +0800
committerPeng Wu <alexepico@gmail.com>2012-03-12 14:08:53 +0800
commite939e37b1a48302b9bf2c44d403b907f3f42e118 (patch)
tree61ffc03398064bbe1a3c4d61b0b2ecb80e41401a
parent808790b8b30471c3c52cc8bc0bd7de0230c0547f (diff)
downloadlibpinyin-e939e37b1a48302b9bf2c44d403b907f3f42e118.tar.gz
libpinyin-e939e37b1a48302b9bf2c44d403b907f3f42e118.tar.xz
libpinyin-e939e37b1a48302b9bf2c44d403b907f3f42e118.zip
improves pinyin_save
-rw-r--r--src/pinyin.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index e1ec93e..4ede459 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -215,8 +215,12 @@ bool pinyin_save(pinyin_context_t * context){
g_free(filename);
delete newlog;
+ gchar * 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(filename);
+ context->m_user_bigram->save_db(tmpfilename);
+ rename(tmpfilename, filename);
+ g_free(tmpfilename);
g_free(filename);
mark_version(context->m_user_dir);