if( term->NewHeight )
ret = term->NewHeight;
else if( term->Mode == TERM_MODE_TEXT )
- ret = term->TextHeight = *iData;
+ ret = term->TextHeight;
else
ret = term->Height;
LEAVE('i', ret);
tVideo_IOCtl_Pos pos;
pos.x = (gpVT_CurTerm->WritePos - gpVT_CurTerm->ViewPos) % gpVT_CurTerm->TextWidth;
pos.y = (gpVT_CurTerm->WritePos - gpVT_CurTerm->ViewPos) / gpVT_CurTerm->TextWidth;
- VFS_IOCtl(giVT_OutputDevHandle, VIDEO_IOCTL_SETCURSOR, &pos);
+ if( pos.x < gpVT_CurTerm->TextHeight )
+ VFS_IOCtl(giVT_OutputDevHandle, VIDEO_IOCTL_SETCURSOR, &pos);
}
if( gpVT_CurTerm->Mode == TERM_MODE_TEXT )
{
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--; )
{
{
int base, i;
- //Debug("Scrolling entire buffer");
-
// Move back by one
Term->WritePos -= Term->TextWidth;
// Update the scren
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;