From e1c81ab18826d0448e6b3c470d80d423d7fed7ed Mon Sep 17 00:00:00 2001 From: Miguel de Icaza Date: Thu, 22 Apr 2010 21:25:59 +0000 Subject: [PATCH] Fourth patch from: Damien Diederen For bug: https://bugzilla.novell.com/show_bug.cgi?id=480152 * Normalization.cs: The correct "checkType" argument to Decompose() is NKD or NKFD when normalizing to NKC resp. NKFC. * StringTest.cs: More NFC test cases. svn path=/trunk/mcs/; revision=155965 --- mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog | 7 +++++++ .../corlib/Mono.Globalization.Unicode/Normalization.cs | 3 ++- mcs/class/corlib/Test/System/StringTest.cs | 7 +++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog b/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog index 194c87e7f7d..892f47bf5ef 100644 --- a/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog +++ b/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog @@ -1,3 +1,10 @@ +2010-04-20 Damien Diederen + + * Normalization.cs: The correct "checkType" argument to + Decompose() is NKD or NKFD when normalizing to NKC resp. NKFC. + + * StringTest.cs: More NFC test cases. + 2010-04-20 Damien Diederen * Normalization.cs: Implement algorithmic Hangul composition. diff --git a/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs b/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs index 8d7fcfc84d4..d49ad6c166d 100644 --- a/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs +++ b/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs @@ -56,7 +56,8 @@ namespace Mono.Globalization.Unicode private static string Compose (string source, int checkType) { StringBuilder sb = null; - Decompose (source, ref sb, checkType); + // Decompose to NFD or NKFD depending on our target + Decompose (source, ref sb, checkType == 2 ? 3 : 1); if (sb == null) sb = Combine (source, 0, checkType); else diff --git a/mcs/class/corlib/Test/System/StringTest.cs b/mcs/class/corlib/Test/System/StringTest.cs index e85a42f1aac..d8f51a3b999 100644 --- a/mcs/class/corlib/Test/System/StringTest.cs +++ b/mcs/class/corlib/Test/System/StringTest.cs @@ -4309,6 +4309,13 @@ public class StringTest Assert.AreEqual ("!\u116C".Normalize (NormalizationForm.FormC), "!\u116C", "#5"); Assert.AreEqual ("!\u116B\u11C2".Normalize (NormalizationForm.FormC), "!\u116B\u11C2", "#6"); } + + [Test] + public void MoreNormalizeFormC () + { + Assert.AreEqual ("\u1E0A\u0323".Normalize (NormalizationForm.FormC), "\u1E0C\u0307", "#1"); + Assert.AreEqual ("\u0044\u0323\u0307".Normalize (NormalizationForm.FormC), "\u1E0C\u0307", "#2"); + } #endif [Test] public void Emptiness () -- 2.25.1