X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm_termbuf.c;h=ee543858408c7d5634bfc3524877bef953096046;hb=ea487239a8b3632d13c6e4ec92d21f0fcd460bdd;hp=525f1a4b3d0034ede417839c2ed189eb7dc83dec;hpb=be5123fe1f4aa66b76ce8ef589362ad21b6bbf72;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm_termbuf.c b/KernelLand/Kernel/drv/vterm_termbuf.c index 525f1a4b..ee543858 100644 --- a/KernelLand/Kernel/drv/vterm_termbuf.c +++ b/KernelLand/Kernel/drv/vterm_termbuf.c @@ -21,14 +21,11 @@ void VT_int_PutString(tVTerm *Term, const Uint8 *Buffer, Uint Count) for( i = 0; i < Count; i++ ) { // Handle escape sequences - if( Buffer[i] == 0x1B && Count - i > 1 ) + int ret = VT_int_ParseEscape(Term, (const char*)&Buffer[i], Count-i); + if( ret > 0 ) { - int ret = VT_int_ParseEscape(Term, (const char*)&Buffer[i+1], Count-(i+1)); - if( ret > 0 ) - { - i += ret; - continue; - } + i += ret-1; + continue; } // Fast check for non UTF-8 @@ -291,7 +288,7 @@ void VT_int_ClearLine(tVTerm *Term, int Num) * \param NewWidth New framebuffer width * \param NewHeight New framebuffer height */ -void VT_int_ChangeMode(tVTerm *Term, int NewMode, int NewWidth, int NewHeight) +void VT_int_Resize(tVTerm *Term, int NewWidth, int NewHeight) { int oldW = Term->Width; int oldTW = Term->TextWidth; @@ -305,8 +302,6 @@ void VT_int_ChangeMode(tVTerm *Term, int NewMode, int NewWidth, int NewHeight) if(NewWidth > giVT_RealWidth) NewWidth = giVT_RealWidth; if(NewHeight > giVT_RealHeight) NewHeight = giVT_RealHeight; - Term->Mode = NewMode; - // Fast exit if no resolution change if(NewWidth == Term->Width && NewHeight == Term->Height) return ; @@ -365,7 +360,7 @@ void VT_int_ChangeMode(tVTerm *Term, int NewMode, int NewWidth, int NewHeight) // Debug #if 0 - switch(NewMode) + switch(Term->Mode) { case TERM_MODE_TEXT: Log_Log("VTerm", "Set VT %p to text mode (%ix%i)",