diff options
author | Peng Wu <alexepico@gmail.com> | 2012-04-25 13:00:57 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-04-25 13:00:57 +0800 |
commit | 6046c7de7d8cc3e489f0e256f9f603520c5ddb1a (patch) | |
tree | fc42c4e23d608f79aaf491d4be6b033f19f9a1d5 /src/pinyin.cpp | |
parent | da3c53805ddb2f3849ba3e5df9731d484531cd29 (diff) | |
download | libpinyin-6046c7de7d8cc3e489f0e256f9f603520c5ddb1a.tar.gz libpinyin-6046c7de7d8cc3e489f0e256f9f603520c5ddb1a.tar.xz libpinyin-6046c7de7d8cc3e489f0e256f9f603520c5ddb1a.zip |
fixes _remove_duplicated_items
Diffstat (limited to 'src/pinyin.cpp')
-rw-r--r-- | src/pinyin.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp index a3beaff..c65bd12 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -574,15 +574,17 @@ static void _append_items(pinyin_context_t * context, static void _remove_duplicated_items(CandidateVector items) { /* remove the duplicated items. */ - phrase_token_t last_token = null_token; + phrase_token_t last_token = null_token, saved_token; for (size_t n = 0; n < items->len; ++n) { lookup_candidate_t * item = &g_array_index (items, lookup_candidate_t, n); - if (last_token == item->m_token) { + + saved_token = item->m_token; + if (last_token == saved_token) { g_array_remove_index(items, n); n--; } - last_token = item->m_token; + last_token = saved_token; } } @@ -1045,7 +1047,8 @@ bool pinyin_get_full_pinyin_candidates(pinyin_instance_t * instance, found = _try_divided_table(instance, ranges, offset, items); } if (options & USE_RESPLIT_TABLE) { - found = _try_resplit_table(instance, ranges, offset, items); + found = _try_resplit_table(instance, ranges, offset, items) || + found; } } |