X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm_vt100.c;fp=KernelLand%2FKernel%2Fdrv%2Fvterm_vt100.c;h=8ebd9bfd7342b8367e31edc9e065bd3e49eca284;hb=cc3501e20d89f5e9db13bd874310bfb9983a35a6;hp=1f34479449bb18dfa5b2096ded57778efae28319;hpb=cff93fad3a4fc50cae99938d869356af2ab8a2e9;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm_vt100.c b/KernelLand/Kernel/drv/vterm_vt100.c index 1f344794..8ebd9bfd 100644 --- a/KernelLand/Kernel/drv/vterm_vt100.c +++ b/KernelLand/Kernel/drv/vterm_vt100.c @@ -228,7 +228,19 @@ void VT_int_ParseEscape_StandardLarge(tVTerm *Term, char CmdChar, int argc, int Term->ScrollTop = args[0]; Term->ScrollHeight = args[1] - args[0]; break; - + + // Save cursor position + case 's': + if( argc != 0 ) break; + Term->SavedWritePos = (Term->Flags & VT_FLAG_ALTBUF) ? Term->AltWritePos : Term->WritePos; + break; + + // Restore saved cursor position + case 'u': + if( argc != 0 ) break; + *((Term->Flags & VT_FLAG_ALTBUF) ? &Term->AltWritePos : &Term->WritePos) = Term->SavedWritePos; + break; + default: Log_Warning("VTerm", "Unknown control sequence '\\x1B[%c'", CmdChar); break;