X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm_termbuf.c;h=1a14f8252ab8481f45c3c477e36df1f4336ab7eb;hb=5cab4c07bc13888dc7956194ef9595508072a4eb;hp=fed577a9d768762b9a3c7ca8afcb90c4dfd90420;hpb=802762ae7efd39786c0e134ed0bdfe8100d97230;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm_termbuf.c b/KernelLand/Kernel/drv/vterm_termbuf.c index fed577a9..1a14f825 100644 --- a/KernelLand/Kernel/drv/vterm_termbuf.c +++ b/KernelLand/Kernel/drv/vterm_termbuf.c @@ -25,6 +25,7 @@ extern int Term_HandleVT100(tVTerm *Term, int Len, const char *Buf); */ 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; ) { @@ -43,7 +44,9 @@ void VT_int_PutString(tVTerm *Term, const Uint8 *Buffer, Uint 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) @@ -76,7 +79,7 @@ void VT_int_PutChar(tVTerm *Term, Uint32 Ch) { ASSERTC(wrpos->Col, <=, Term->TextWidth); VT_int_UpdateScreen( Term, 0 ); - //wrpos->Row ++; + wrpos->Row ++; wrpos->Col = 0; } @@ -121,6 +124,7 @@ void VT_int_PutChar(tVTerm *Term, Uint32 Ch) 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? @@ -165,10 +169,13 @@ void VT_int_PutChar(tVTerm *Term, Uint32 Ch) 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; } @@ -177,12 +184,11 @@ void VT_int_PutChar(tVTerm *Term, Uint32 Ch) 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; @@ -276,6 +282,7 @@ void VT_int_ScrollText(tVTerm *Term, int Count) *wrpos = init_wrpos; HEAP_VALIDATE(); + LEAVE('-'); } /**