{
using System;
+using System.Text;
using I18N.Common;
+[Serializable]
public class CP500 : ByteEncoding
{
public CP500()
'\u00DC', '\u00D9', '\u00DA', '\u009F',
};
- 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++]);
case 0xFF5C: ch = 0xBB; break;
case 0xFF5D: ch = 0xD0; break;
case 0xFF5E: ch = 0xA1; 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)
{
--charCount;
}
}
+ */
}; // class CP500
+[Serializable]
public class ENCibm500 : CP500
{
public ENCibm500() : base() {}