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:22:44 +0800 |
commit | 6df832baaa4c06bcffed93620edf5431ee9249fc (patch) | |
tree | 25e31f61121fa227bd3aa575935329d3061e6d1b /src | |
parent | 127a5ce640ec5282bbb4b473c01c5366e3c5e2f2 (diff) | |
download | libpinyin-6df832baaa4c06bcffed93620edf5431ee9249fc.tar.gz libpinyin-6df832baaa4c06bcffed93620edf5431ee9249fc.tar.xz libpinyin-6df832baaa4c06bcffed93620edf5431ee9249fc.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, |