X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Fgui_terminal_src%2Fvt100.c;h=4e7f70f4b6815166fdc2661b6ab3a31cccf935bf;hb=573469df47d366903d780ca563c9f2da18f2bf62;hp=840f2d92cbad49106808f00b55a26b54939ad172;hpb=9c05263776f7fc01de6a3247f9d5f88ed58a9ddc;p=tpg%2Facess2.git diff --git a/Usermode/Applications/gui_terminal_src/vt100.c b/Usermode/Applications/gui_terminal_src/vt100.c index 840f2d92..4e7f70f4 100644 --- a/Usermode/Applications/gui_terminal_src/vt100.c +++ b/Usermode/Applications/gui_terminal_src/vt100.c @@ -16,6 +16,11 @@ # include # include # include // malloc/free + +static inline int MIN(int a, int b) +{ + return a < b ? a : b; +} #endif enum eExcapeMode { @@ -58,11 +63,6 @@ const uint32_t caVT100Colours[] = { int Term_HandleVT100_Long(tTerminal *Term, int Len, const char *Buf); int Term_HandleVT100_OSC(tTerminal *Term, int Len, const char *Buf); -static inline int min(int a, int b) -{ - return a < b ? a : b; -} - int _locate_eos(size_t Len, const char *Buf) { for( size_t ret = 0; ret < Len; ret ++ ) @@ -137,7 +137,7 @@ int Term_HandleVT100(tTerminal *Term, int Len, const char *Buf) if( st->cache_len > 0 || *Buf == '\x1b' ) { // Handle VT100 (like) escape sequence - int new_bytes = min(MAX_VT100_ESCAPE_LEN - st->cache_len, Len); + int new_bytes = MIN(MAX_VT100_ESCAPE_LEN - st->cache_len, Len); int ret = 0; int old_inc_len = st->cache_len; @@ -178,11 +178,11 @@ int Term_HandleVT100(tTerminal *Term, int Len, const char *Buf) switch( *Buf ) { - // TODO: Need to handle \t and ^A-Z case '\b': + // backspace is aprarently just supposed to cursor left (if possible) Display_MoveCursor(Term, 0, -1); - Display_AddText(Term, 1, " "); - Display_MoveCursor(Term, 0, -1); + //Display_AddText(Term, 1, " "); + //Display_MoveCursor(Term, 0, -1); return 1; case '\t': // TODO: tab (get current cursor pos, space until multiple of 8) @@ -249,7 +249,7 @@ int Term_HandleVT100_Short(tTerminal *Term, int Len, const char *Buf) switch(Buf[2]) { case 8: - _SysDebug("TODO \\e#%c - Fill screen with 'E'", Buf[2]); + _SysDebug("TODO \\e#%c DECALN - Fill screen with 'E'", Buf[2]); break; default: _SysDebug("Unknown \\e#%c", Buf[2]); @@ -414,16 +414,16 @@ int Term_HandleVT100_Long(tTerminal *Term, int Len, const char *Buffer) switch( c ) { case 'A': - Display_MoveCursor(Term, -(argc >= 1 ? args[0] : 1), 0); + Display_MoveCursor(Term, -(args[0] != 0 ? args[0] : 1), 0); break; case 'B': - Display_MoveCursor(Term, (argc >= 1 ? args[0] : 1), 0); + Display_MoveCursor(Term, (args[0] != 0 ? args[0] : 1), 0); break; case 'C': - Display_MoveCursor(Term, 0, (argc >= 1 ? args[0] : 1)); + Display_MoveCursor(Term, 0, (args[0] != 0 ? args[0] : 1)); break; case 'D': - Display_MoveCursor(Term, 0, -(argc >= 1 ? args[0] : 1)); + Display_MoveCursor(Term, 0, -(args[0] != 0 ? args[0] : 1)); break; case 'H': if( argc != 2 ) {