Usermode/libposix - Added types for F_GETLK
[tpg/acess2.git] / KernelLand / Kernel / drv / vterm_vt100.c
index bab7802..559115d 100644 (file)
@@ -5,14 +5,22 @@
  * drv/vterm_vt100.c
  * - Virtual Terminal - VT100 (Kinda) Emulation
  */
-#define DEBUG  0
+#define DEBUG  1
 #include "vterm.h"
 
 #define sTerminal      sVTerm
 #include "../../../Usermode/Applications/gui_terminal_src/vt100.c"
 
+void *Display_GetTermState(tTerminal *Term) {
+       return Term->VT100Info;;
+}
+void Display_SetTermState(tTerminal *Term, void *State) {
+       Term->VT100Info = State;
+}
+
 void Display_AddText(tTerminal *Term, size_t Length, const char *UTF8Text)
 {
+       LOG("'%*C'", Length, UTF8Text);
        VT_int_PutRawString(Term, (const void*)UTF8Text, Length);
 }
 void Display_Newline(tTerminal *Term, bool bCarriageReturn)
@@ -63,7 +71,7 @@ void Display_MoveCursor(tTerminal *Term, int RelRow, int RelCol)
                // 
                if( RelCol < 0 )
                {
-                       size_t  avail = *wrpos % Term->TextWidth;
+                        int    avail = *wrpos % Term->TextWidth;
                        if( RelCol < -avail )
                                RelCol = -avail;
                }
@@ -81,8 +89,8 @@ void Display_MoveCursor(tTerminal *Term, int RelRow, int RelCol)
                 int    maxrows = ((Term->Flags & VT_FLAG_ALTBUF) ? 1 : (giVT_Scrollback+1))*Term->TextHeight;
                if( RelRow < 0 )
                {
-                       if( currow + RelRow < 0 )
-                               RelRow = currow;
+                       if( RelRow < -currow )
+                               RelRow = -currow;
                }
                else
                {
@@ -91,6 +99,7 @@ void Display_MoveCursor(tTerminal *Term, int RelRow, int RelCol)
                }
                *wrpos += RelRow*Term->TextWidth;
        }
+       LOG("=(R%i,C%i)", *wrpos / Term->TextWidth, *wrpos % Term->TextWidth);
 }
 void Display_SaveCursor(tTerminal *Term)
 {
@@ -144,7 +153,6 @@ void Display_ClearLines(tTerminal *Term, int Dir)
 {
        LOG("(Dir=%i)", Dir);   
         int    *wrpos = (Term->Flags & VT_FLAG_ALTBUF ? &Term->AltWritePos : &Term->WritePos);
-       tVT_Char        *buffer = (Term->Flags & VT_FLAG_ALTBUF ? Term->AltBuf : Term->Text);
        
        // All
        if( Dir == 0 ) {
@@ -192,7 +200,7 @@ void Display_SetBackground(tTerminal *Term, uint32_t RGB)
 {
        LOG("(%06x)", RGB);
        Term->CurColour &= 0xFFFF8000;
-       Term->CurColour |= (Uint32)VT_Colour24to12(RGB) <<06;
+       Term->CurColour |= (Uint32)VT_Colour24to12(RGB) <<  0;
 }
 void Display_Flush(tTerminal *Term)
 {
@@ -204,4 +212,8 @@ void Display_ShowAltBuffer(tTerminal *Term, bool AltBufEnabled)
        LOG("(%B)", AltBufEnabled);
        VT_int_ToggleAltBuffer(Term, AltBufEnabled);
 }
+void Display_SetTitle(tTerminal *Term, const char *Title)
+{
+       // ignore
+}
 

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