Kernel/PTYs - Added block on user write when server is full
[tpg/acess2.git] / KernelLand / Kernel / drv / vterm_termbuf.c
index 7c29656..ee54385 100644 (file)
  */
 void VT_int_PutString(tVTerm *Term, const Uint8 *Buffer, Uint Count)
 {
-       Uint32  val;
         int    i;
        
        // Iterate
        for( i = 0; i < Count; i++ )
        {
                // Handle escape sequences
-               if( Buffer[i] == 0x1B )
+               int ret = VT_int_ParseEscape(Term, (const char*)&Buffer[i], Count-i);
+               if( ret > 0 )
                {
-                       i ++;
-                       i += VT_int_ParseEscape(Term, (const char*)&Buffer[i]) - 1;
+                       i += ret-1;
                        continue;
                }
                
@@ -33,6 +32,7 @@ void VT_int_PutString(tVTerm *Term, const Uint8 *Buffer, Uint Count)
                if( Buffer[i] < 128 )   // Plain ASCII
                        VT_int_PutChar(Term, Buffer[i]);
                else {  // UTF-8
+                       Uint32  val;
                        i += ReadUTF8(&Buffer[i], &val) - 1;
                        VT_int_PutChar(Term, val);
                }
@@ -288,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;
@@ -302,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 ;
@@ -362,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)",

UCC git Repository :: git.ucc.asn.au