Author: atsushi
Date: 2005-04-25 03:26:06 -0400 (Mon, 25 Apr 2005)
New Revision: 43533
Modified:
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/MSCompatUnicodeTable.cs
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/create-char-mapping-source.cs
Log:
2005-04-25 Atsushi Enomoto <[EMAIL PROTECTED]>
* create-char-mapping-source.cs : Now it generates
ToWidthInsensitive() from combining category <wide> and <narrow>.
* MSCompatUnicodeTable.cs : added ToKanaTypeInsensitive() and
ToWidthInsensitive() for IgnoreKanaType and IgnoreWidth.
Modified: branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog
===================================================================
--- branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog
2005-04-25 06:19:02 UTC (rev 43532)
+++ branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/ChangeLog
2005-04-25 07:26:06 UTC (rev 43533)
@@ -1,5 +1,12 @@
2005-04-25 Atsushi Enomoto <[EMAIL PROTECTED]>
+ * create-char-mapping-source.cs : Now it generates
+ ToWidthInsensitive() from combining category <wide> and <narrow>.
+ * MSCompatUnicodeTable.cs : added ToKanaTypeInsensitive() and
+ ToWidthInsensitive() for IgnoreKanaType and IgnoreWidth.
+
+2005-04-25 Atsushi Enomoto <[EMAIL PROTECTED]>
+
* README, LdmlReader.cs, DataStructures.txt : new files.
2005-04-25 Atsushi Enomoto <[EMAIL PROTECTED]>
Modified:
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/MSCompatUnicodeTable.cs
===================================================================
---
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/MSCompatUnicodeTable.cs
2005-04-25 06:19:02 UTC (rev 43532)
+++
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/MSCompatUnicodeTable.cs
2005-04-25 07:26:06 UTC (rev 43533)
@@ -349,6 +349,20 @@
// We can reuse IsIgnorableSymbol testcode
// for IsIgnorableNonSpacing.
#endregion
+
+ public static int ToKanatypeInsensitive (int i)
+ {
+ // Note that IgnoreKanaType does not treat half-width
+ // katakana as equivalent to full-width ones.
+
+ // Thus, it is so simple ;-)
+ return (0x3041 <= i && i <= 0x3094) ? i + 0x60 : i;
+ }
+
+ public static int ToWidthInsensitive (int i)
+ {
+ return Normalization.ToWidthInsensitive (i);
+ }
}
}
Modified:
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/create-char-mapping-source.cs
===================================================================
---
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/create-char-mapping-source.cs
2005-04-25 06:19:02 UTC (rev 43532)
+++
branches/atsushi/mcs/class/corlib/Mono.Globalization.Unicode/create-char-mapping-source.cs
2005-04-25 07:26:06 UTC (rev 43533)
@@ -63,6 +63,7 @@
int [] mapIndex = new int [0x5000];
ArrayList mappings = new ArrayList ();
+ ArrayList widthSensitives = new ArrayList ();
public CharMappingGenerator ()
{
@@ -166,6 +167,19 @@
Console.WriteLine (" }");
Console.WriteLine (" return 0;");
Console.WriteLine ("}");
+
+ // WidthSensitives
+ Console.WriteLine ("public static int
ToWidthInsensitive (int i)");
+ Console.WriteLine ("{");
+ Console.WriteLine (" if (i != 0x3000 && i <
0xFF00)");
+ Console.WriteLine (" return i;");
+ Console.WriteLine (" switch (i) {");
+ foreach (int i in widthSensitives)
+ Console.WriteLine (" case 0x{0:X}:", i);
+ Console.WriteLine (" return mappedChars
[NormalizationTableUtil.MapIdx (i)];");
+ Console.WriteLine (" }");
+ Console.WriteLine (" return i;");
+ Console.WriteLine ("}");
}
private void DumpArray (int [] array, int count, bool getCP)
@@ -207,6 +221,12 @@
if (combiningCategory.Length > 0)
mappedCharsValue = canon.Substring
(combiningCategory.Length + 2).Trim ();
if (mappedCharsValue.Length > 0) {
+ switch (combiningCategory) {
+ case "narrow":
+ case "wide":
+ widthSensitives.Add (cp);
+ break;
+ }
mappings.Add (new CharMapping (cp,
mappedCharCount,
combiningCategory.Length == 0));
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches