summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Albright <eric_albright@sil.org>2007-11-20 08:22:02 +0000
committerEric Albright <eric_albright@sil.org>2007-11-20 08:22:02 +0000
commit0ed2f4cd26d3aa1ffddcbd152fa26f77aa0dad31 (patch)
treef36e53ea06a0cdc89e1b511ccc1b0cf8ac7864de
parentbdb55647f8e9103747c52911afd742e6d343b6a5 (diff)
downloadenchant-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.c9
-rw-r--r--unittests/dictionary/enchant_dict_suggest_tests.cpp2
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);