diff --git a/Kernel/drv/vterm.c b/Kernel/drv/vterm.c index 5ba340828151e1a78a021608ac169642014054d4..720e76b0cce26d88a9e855ea9662e330e51c6c45 100644 --- a/Kernel/drv/vterm.c +++ b/Kernel/drv/vterm.c @@ -843,7 +843,7 @@ void VT_int_ClearLine(tVTerm *Term, int Num) { int i; tVT_Char *cell = &Term->Text[ Num*Term->TextWidth ]; - if( Num < 0 || Num >= Term->TextHeight ) return ; + if( Num < 0 || Num >= Term->TextHeight * (giVT_Scrollback + 1) ) return ; //ENTER("pTerm iNum", Term, Num); for( i = Term->TextWidth; i--; ) { @@ -1073,8 +1073,6 @@ void VT_int_PutChar(tVTerm *Term, Uint32 Ch) { int base, i; - //Debug("Scrolling entire buffer"); - // Move back by one Term->WritePos -= Term->TextWidth; // Update the scren @@ -1118,6 +1116,7 @@ void VT_int_PutChar(tVTerm *Term, Uint32 Ch) Term->WritePos -= Term->TextWidth; VT_int_UpdateScreen( Term, 0 ); Term->WritePos += Term->TextWidth; + VT_int_ClearLine(Term, Term->WritePos / Term->TextWidth); // Scroll Term->ViewPos += Term->TextWidth;