*/
void VT_int_PutString(tVTerm *Term, const Uint8 *Buffer, Uint Count)
{
+ ENTER("pTerm pBuffer iCount", Term, Buffer, Count);
// Iterate
for( int ofs = 0; ofs < Count; )
{
ofs += esc_len;
}
// Update Screen
- VT_int_UpdateScreen( Term, 1 );
+ LOG("Update");
+ VT_int_UpdateScreen( Term, 0 );
+ LEAVE('-');
}
void VT_int_PutRawString(tVTerm *Term, const Uint8 *String, size_t Bytes)
{
ASSERTC(wrpos->Col, <=, Term->TextWidth);
VT_int_UpdateScreen( Term, 0 );
- //wrpos->Row ++;
+ wrpos->Row ++;
wrpos->Col = 0;
}
case '\0': // Ignore NULL byte
return;
case '\n':
+ LOG("Newline, update @ %i", write_pos);
VT_int_UpdateScreen( Term, 0 ); // Update the line before newlining
wrpos->Row ++;
// TODO: Force scroll?
buffer[ write_pos ].Ch = Ch;
buffer[ write_pos ].Colour = Term->CurColour;
// Update the line before wrapping
- if( (write_pos + 1) % Term->TextWidth == 0 )
+ if( (write_pos + 1) % Term->TextWidth == 0 ) {
+ LOG("Line wrap, update @ %i", write_pos);
VT_int_UpdateScreen( Term, 0 );
- write_pos ++;
+ // NOTE: Code at the top of PutChar handles the actual wrapping
+ }
wrpos->Col ++;
+ write_pos ++;
break;
}
HEAP_VALIDATE();
// TODO: Schedule a delayed screen update
-
- //LEAVE('-');
}
void VT_int_ScrollText(tVTerm *Term, int Count)
{
+ ENTER("pTerm iCount", Term, Count);
tVT_Char *buf;
int scroll_top, scroll_height;
*wrpos = init_wrpos;
HEAP_VALIDATE();
+ LEAVE('-');
}
/**