12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // --------------------------------------------------
- // UnityInjector - ConsoleEncoding.Buffers.cs
- // Copyright (c) Usagirei 2015 - 2015
- // --------------------------------------------------
- namespace UnityInjector.ConsoleUtil
- {
- // --------------------------------------------------
- // Code ported from
- // https://gist.github.com/asm256/9bfb88336a1433e2328a
- // Which in turn was seemingly ported from
- // http://jonskeet.uk/csharp/ebcdic/
- // using only safe (managed) code
- // --------------------------------------------------
- internal partial class ConsoleEncoding
- {
- private byte[] _byteBuffer = new byte[256];
- private char[] _charBuffer = new char[256];
- private byte[] _zeroByte = new byte[0];
- private char[] _zeroChar = new char[0];
- private void ExpandByteBuffer(int count)
- {
- if (_byteBuffer.Length < count)
- _byteBuffer = new byte[count];
- }
- private void ExpandCharBuffer(int count)
- {
- if (_charBuffer.Length < count)
- _charBuffer = new char[count];
- }
- private void ReadByteBuffer(byte[] bytes, int index, int count)
- {
- for (int i = 0; i < count; i++)
- bytes[index + i] = _byteBuffer[i];
- }
- private void ReadCharBuffer(char[] chars, int index, int count)
- {
- for (int i = 0; i < count; i++)
- chars[index + i] = _charBuffer[i];
- }
- private void WriteByteBuffer(byte[] bytes, int index, int count)
- {
- ExpandByteBuffer(count);
- for (int i = 0; i < count; i++)
- _byteBuffer[i] = bytes[index + i];
- }
- private void WriteCharBuffer(char[] chars, int index, int count)
- {
- ExpandCharBuffer(count);
- for (int i = 0; i < count; i++)
- _charBuffer[i] = chars[index + i];
- }
- }
- }
|