Major Update:
- Update printing: Do not use '\n' if indent = 0
- Implement refilling of buffer (from fd) while parsing
- No longer use LineMark, but keep track of char position with CharNo
- Use Mark to reference point for shifting buffer on refill
- SkipWhiteSpace no longer inline method
- Refill buffer if required, change Mark & CharNo on line break
- CreateBuffer(), RefillBuffer() & FreeBuffer() now public methods
- Make Loading and Saving more flexible:
- Refactor from LoadFromFile():
ReadFromFile(), ReadFromHandle(), ReadFromBuffer()
- Refactor from SaveToFile() & PrintToScreen:
WriteToFile(), WriteToScreen, WriteToHandle()
This commit is contained in:
@@ -688,16 +688,16 @@ int CShiftBuffer::Clear( int ClearLen )
|
||||
if ((ClearLen == -1) || (ClearLen >= BufLen))
|
||||
{
|
||||
// Clear all data
|
||||
BytesCleared = BufLen;
|
||||
BufLen = 0;
|
||||
Buffer[0] = 0;
|
||||
BytesCleared = BufLen;
|
||||
}
|
||||
else {
|
||||
// Shift remaining data
|
||||
BytesCleared = ClearLen;
|
||||
memmove( Buffer, &Buffer[ClearLen], BufLen-ClearLen ); // Shift remaining old data left
|
||||
BufLen -= ClearLen;
|
||||
Buffer[BufLen] = 0;
|
||||
BytesCleared = ClearLen;
|
||||
}
|
||||
|
||||
return BytesCleared;
|
||||
|
||||
Reference in New Issue
Block a user