diff options
author | Eric Albright <eric_albright@sil.org> | 2007-11-20 08:22:02 +0000 |
---|---|---|
committer | Eric Albright <eric_albright@sil.org> | 2007-11-20 08:22:02 +0000 |
commit | 0ed2f4cd26d3aa1ffddcbd152fa26f77aa0dad31 (patch) | |
tree | f36e53ea06a0cdc89e1b511ccc1b0cf8ac7864de | |
parent | bdb55647f8e9103747c52911afd742e6d343b6a5 (diff) | |
download | enchant-0ed2f4cd26d3aa1ffddcbd152fa26f77aa0dad31.tar.gz |
Unicode normalization for comparing suggestion lists
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/trunk@22318 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r-- | src/enchant.c | 9 | ||||
-rw-r--r-- | unittests/dictionary/enchant_dict_suggest_tests.cpp | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/enchant.c b/src/enchant.c index a6882f1..6a25589 100644 --- a/src/enchant.c +++ b/src/enchant.c @@ -580,9 +580,16 @@ enchant_dict_merge_suggestions(EnchantDict * dict, copy = 0; else { + char * normalized_new_sugg; + + normalized_new_sugg = g_utf8_normalize (new_suggs[i], sugg_len, G_NORMALIZE_NFD); + for(j = 0; j < n_suggs; j++) { - if(strcmp(suggs[j],new_suggs[i])==0) + char* normalized_sugg; + normalized_sugg = g_utf8_normalize (suggs[j], -1, G_NORMALIZE_NFD); + + if(strcmp(normalized_sugg,normalized_new_sugg)==0) { copy = 0; /*duplicate*/ break; diff --git a/unittests/dictionary/enchant_dict_suggest_tests.cpp b/unittests/dictionary/enchant_dict_suggest_tests.cpp index b91703d..cc2f1e0 100644 --- a/unittests/dictionary/enchant_dict_suggest_tests.cpp +++ b/unittests/dictionary/enchant_dict_suggest_tests.cpp @@ -444,6 +444,8 @@ TEST_FIXTURE(EnchantDictionarySuggest_TestFixture, ExternalAddWordToDictionary(Convert(L"fiance\x301")); // NFD u0301 = Combining acute accent
+ ReloadTestDictionary();
+
size_t cSuggestions;
_suggestions = enchant_dict_suggest(_dict, "fiance", -1, &cSuggestions);
CHECK(_suggestions);
|