diff options
author | Peng Wu <alexepico@gmail.com> | 2011-10-26 10:22:44 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2011-10-26 10:28:29 +0800 |
commit | b5f85c8f94097e34a91e6a74cc4f0e3736aa2c2f (patch) | |
tree | 1f5220a3bdb7f2f3d621650648bcffad43724779 /src | |
parent | cfa83483dae050b6010f9de0f9fef8b76501f520 (diff) | |
download | libpinyin-b5f85c8f94097e34a91e6a74cc4f0e3736aa2c2f.tar.gz libpinyin-b5f85c8f94097e34a91e6a74cc4f0e3736aa2c2f.tar.xz libpinyin-b5f85c8f94097e34a91e6a74cc4f0e3736aa2c2f.zip |
add m_modified
Diffstat (limited to 'src')
-rw-r--r-- | src/pinyin.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp index c8eff79..46269e1 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -20,8 +20,6 @@ */ - - #include "pinyin.h" #include "pinyin_internal.h" @@ -46,6 +44,7 @@ struct _pinyin_context_t{ char * m_system_dir; char * m_user_dir; + bool m_modified; }; @@ -54,6 +53,7 @@ pinyin_context_t * pinyin_init(const char * systemdir, const char * userdir){ context->m_system_dir = g_strdup(systemdir); context->m_user_dir = g_strdup(userdir); + context->m_modified = false; context->m_pinyin_table = new PinyinLargeTable(&(context->m_custom)); MemoryChunk * chunk = new MemoryChunk; @@ -123,7 +123,10 @@ pinyin_context_t * pinyin_init(const char * systemdir, const char * userdir){ bool pinyin_save(pinyin_context_t * context){ if (!context->m_user_dir) - return FALSE; + return false; + + if (!context->m_modified) + return false; MemoryChunk * oldchunk = new MemoryChunk; MemoryChunk * newlog = new MemoryChunk; @@ -150,6 +153,7 @@ bool pinyin_save(pinyin_context_t * context){ filename = g_build_filename(context->m_user_dir, "user.db", NULL); context->m_user_bigram->save_db(filename); + context->m_modified = false; return true; } @@ -180,6 +184,7 @@ void pinyin_fini(pinyin_context_t * context){ g_free(context->m_system_dir); g_free(context->m_user_dir); + context->m_modified = false; delete context; } @@ -518,9 +523,10 @@ bool pinyin_translate_token(pinyin_instance_t * instance, bool pinyin_train(pinyin_instance_t * instance){ if (!instance->m_context->m_user_dir) - return FALSE; + return false; pinyin_context_t * & context = instance->m_context; + context->m_modified = true; bool retval = context->m_pinyin_lookup->train_result (instance->m_pinyin_keys, instance->m_constraints, |