New test.
[mono.git] / mcs / class / I18N / West / CP10079.cs
index 3c2d04e67d5e75c43ab5d9edbd2a0a2310b81e15..e15895df8211521a49f50bf33b7621f89f76e13b 100644 (file)
@@ -28,8 +28,10 @@ namespace I18N.West
 {
 
 using System;
+using System.Text;
 using I18N.Common;
 
+[Serializable]
 public class CP10079 : ByteEncoding
 {
        public CP10079()
@@ -65,7 +67,7 @@ public class CP10079 : ByteEncoding
                '\u00E4', '\u00E3', '\u00E5', '\u00E7', '\u00E9', '\u00E8', 
                '\u00EA', '\u00EB', '\u00ED', '\u00EC', '\u00EE', '\u00EF', 
                '\u00F1', '\u00F3', '\u00F2', '\u00F4', '\u00F6', '\u00F5', 
-               '\u00FA', '\u00F9', '\u00FB', '\u00FC', '\u2020', '\u00B0', 
+               '\u00FA', '\u00F9', '\u00FB', '\u00FC', /*'\u2020'*/'\u00DD', '\u00B0', 
                '\u00A2', '\u00A3', '\u00A7', '\u2022', '\u00B6', '\u00DF', 
                '\u00AE', '\u00A9', '\u2122', '\u00B4', '\u00A8', '\u2260', 
                '\u00C6', '\u00D8', '\u221E', '\u00B1', '\u2264', '\u2265', 
@@ -73,10 +75,10 @@ public class CP10079 : ByteEncoding
                '\u222B', '\u00AA', '\u00BA', '\u03A9', '\u00E6', '\u00F8', 
                '\u00BF', '\u00A1', '\u00AC', '\u221A', '\u0192', '\u2248', 
                '\u0394', '\u00AB', '\u00BB', '\u2026', '\u00A0', '\u00C0', 
-               '\u00C3', '\u00D5', '\u0152', '\u0153', '\u2014', '\u2013', 
+               '\u00C3', '\u00D5', '\u0152', '\u0153', /*'\u2014'*/'\u2013', '\u2013', 
                '\u201C', '\u201D', '\u2018', '\u2019', '\u00F7', '\u25C6', 
-               '\u00FF', '\u0178', '\u2044', '\u00A4', '\u0110', '\u0111', 
-               '\u00DE', '\u00FE', '\u2021', '\u00B7', '\u201A', '\u201E', 
+               '\u00FF', '\u0178', '\u2044', '\u00A4', '\u0110', /*\u0111*/'\u00F0', 
+               '\u00DE', '\u00FE', /*'\u2021'*/'\u00FD', '\u00B7', '\u201A', '\u201E', 
                '\u2030', '\u00C2', '\u00CA', '\u00C1', '\u00CB', '\u00C8', 
                '\u00CD', '\u00CE', '\u00CF', '\u00CC', '\u00D3', '\u00D4', 
                '\uE01E', '\u00D2', '\u00DA', '\u00DB', '\u00D9', '\u0131', 
@@ -84,10 +86,15 @@ public class CP10079 : ByteEncoding
                '\u00B8', '\u02DD', '\u02DB', '\u02C7', 
        };
 
-       protected override void ToBytes(char[] chars, int charIndex, int charCount,
-                                       byte[] bytes, int byteIndex)
+       protected unsafe override void ToBytes(char* chars, int charCount,
+                                       byte* bytes, int byteCount)
        {
                int ch;
+               int charIndex = 0;
+               int byteIndex = 0;
+#if NET_2_0
+               EncoderFallbackBuffer buffer = null;
+#endif
                while(charCount > 0)
                {
                        ch = (int)(chars[charIndex++]);
@@ -146,6 +153,7 @@ public class CP10079 : ByteEncoding
                                case 0x00DA: ch = 0xF2; break;
                                case 0x00DB: ch = 0xF3; break;
                                case 0x00DC: ch = 0x86; break;
+                               case 0x00DD: ch = 0xA0; break; /*mono*/
                                case 0x00DF: ch = 0xA7; break;
                                case 0x00E0: ch = 0x88; break;
                                case 0x00E1: ch = 0x87; break;
@@ -163,6 +171,7 @@ public class CP10079 : ByteEncoding
                                case 0x00ED: ch = 0x92; break;
                                case 0x00EE: ch = 0x94; break;
                                case 0x00EF: ch = 0x95; break;
+                               case 0x00F0: ch = 0xDD; break; /*mono*/
                                case 0x00F1: ch = 0x96; break;
                                case 0x00F2: ch = 0x98; break;
                                case 0x00F3: ch = 0x97; break;
@@ -175,6 +184,7 @@ public class CP10079 : ByteEncoding
                                case 0x00FA: ch = 0x9C; break;
                                case 0x00FB: ch = 0x9E; break;
                                case 0x00FC: ch = 0x9F; break;
+                               case 0x00FD: ch = 0xE0; break; /*mono*/
                                case 0x00FE: ch = 0xDF; break;
                                case 0x00FF: ch = 0xD8; break;
                                case 0x0110: ch = 0xDC; break;
@@ -193,7 +203,7 @@ public class CP10079 : ByteEncoding
                                case 0x0394: ch = 0xC6; break;
                                case 0x03A9: ch = 0xBD; break;
                                case 0x03C0: ch = 0xB9; break;
-                               case 0x2013: ch = 0xD1; break;
+                               case 0x2013: ch = /*0xD1*/0xD0; break;
                                case 0x2014: ch = 0xD0; break;
                                case 0x2018: ch = 0xD4; break;
                                case 0x2019: ch = 0xD5; break;
@@ -220,13 +230,21 @@ public class CP10079 : ByteEncoding
                                case 0x2265: ch = 0xB3; break;
                                case 0x25C6: ch = 0xD7; break;
                                case 0xE01E: ch = 0xF0; break;
-                               default: ch = 0x3F; break;
+                               default:
+#if NET_2_0
+                                       HandleFallback (ref buffer, chars, ref charIndex, ref charCount, bytes, ref byteIndex, ref byteCount);
+#else
+                                       ch = 0x3F;
+#endif
+                                       break;
                        }
                        bytes[byteIndex++] = (byte)ch;
                        --charCount;
+                       --byteCount;
                }
        }
 
+       /*
        protected override void ToBytes(String s, int charIndex, int charCount,
                                        byte[] bytes, int byteIndex)
        {
@@ -369,9 +387,11 @@ public class CP10079 : ByteEncoding
                        --charCount;
                }
        }
+       */
 
 }; // class CP10079
 
+[Serializable]
 public class ENCx_mac_icelandic : CP10079
 {
        public ENCx_mac_icelandic() : base() {}