X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm.h;h=4ca241b83087f48ac887e03042614369c69abbc1;hb=2462d860630674d10d554f86aa669163f6f2db6b;hp=7b01366f83bc7c03690110f6888e3a00d33a57b7;hpb=1dc089a0b5b31e8e75e85128a03b7be20d4995f5;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm.h b/KernelLand/Kernel/drv/vterm.h index 7b01366f..4ca241b8 100644 --- a/KernelLand/Kernel/drv/vterm.h +++ b/KernelLand/Kernel/drv/vterm.h @@ -46,6 +46,8 @@ struct sVTerm { int Mode; //!< Current Mode (see ::eTplTerminal_Modes) int Flags; //!< Flags (see VT_FLAG_*) + + void *VT100Info; short Width; //!< Virtual Width short Height; //!< Virtual Height @@ -62,6 +64,7 @@ struct sVTerm int AltWritePos; //!< Alternate write position short ScrollTop; //!< Top of scrolling region (smallest) short ScrollHeight; //!< Length of scrolling region + int SavedWritePos; //!< Saved cursor position (\e[s and \e[u) char EscapeCodeCache[16]; size_t EscapeCodeLen; @@ -78,6 +81,15 @@ struct sVTerm // Call set again, it's freed, and if NULL it doesn't get reallocated. tVideo_IOCtl_Bitmap *VideoCursor; + struct { + int Current; + size_t CurrentSize; + size_t Offset; + int CachePos; + char Cache[32]; + size_t PreEat; + } Cmd2D; + tPTY *PTY; }; @@ -94,6 +106,7 @@ extern int giVT_InputDevHandle; // === FUNCTIONS === extern void VT_SetResolution(int Width, int Height); extern void VT_SetTerminal(int ID); +extern void VT_int_Handle2DCmd(void *Handle, size_t Length, const void *Data); // --- Output --- extern void VT_InitOutput(void); extern void VT_SetMode(int Mode); @@ -108,6 +121,7 @@ extern void VT_int_ParseEscape_StandardLarge(tVTerm *Term, char CmdChar, int arg extern int VT_int_ParseEscape(tVTerm *Term, const char *Buffer, size_t Bytes); // --- Terminal Buffer --- extern void VT_int_PutString(tVTerm *Term, const Uint8 *Buffer, Uint Count); +extern void VT_int_PutRawString(tVTerm *Term, const Uint8 *String, size_t Bytes); extern void VT_int_PutChar(tVTerm *Term, Uint32 Ch); extern void VT_int_ScrollText(tVTerm *Term, int Count); extern void VT_int_ClearLine(tVTerm *Term, int Num);