private void ExpandBuff(bool wrapAround)
{
char[] newBuffer = new char[bufferSize + 2048];
int[] newBufferLine = new int[bufferSize + 2048];
int[] newBufferColumn = new int[bufferSize + 2048];
try
{
if (wrapAround)
{
Array.Copy(buffer, tokenBegin, newBuffer, 0, bufferSize - tokenBegin);
Array.Copy(buffer, 0, newBuffer, bufferSize - tokenBegin, bufferPosition);
buffer = newBuffer;
Array.Copy(bufferLine, tokenBegin, newBufferLine, 0, bufferSize - tokenBegin);
Array.Copy(bufferLine, 0, newBufferLine, bufferSize - tokenBegin, bufferPosition);
bufferLine = newBufferLine;
Array.Copy(bufferColumn, tokenBegin, newBufferColumn, 0, bufferSize - tokenBegin);
Array.Copy(bufferColumn, 0, newBufferColumn, bufferSize - tokenBegin, bufferPosition);
bufferColumn = newBufferColumn;
maxNextCharInd = (bufferPosition += (bufferSize - tokenBegin));
}
else
{
Array.Copy(buffer, tokenBegin, newBuffer, 0, bufferSize - tokenBegin);
buffer = newBuffer;
Array.Copy(bufferLine, tokenBegin, newBufferLine, 0, bufferSize - tokenBegin);
bufferLine = newBufferLine;
Array.Copy(bufferColumn, tokenBegin, newBufferColumn, 0, bufferSize - tokenBegin);
bufferColumn = newBufferColumn;
maxNextCharInd = (bufferPosition -= tokenBegin);
}
}
catch(Exception t)
{
throw new ApplicationException(t.Message);
}
bufferSize += 2048;
available = bufferSize;
tokenBegin = 0;
}