From 6046c7de7d8cc3e489f0e256f9f603520c5ddb1a Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Wed, 25 Apr 2012 13:00:57 +0800 Subject: fixes _remove_duplicated_items --- src/pinyin.cpp | 11 +++++++---- 1 file 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; } } -- cgit