summaryrefslogtreecommitdiffstats
path: root/src/term.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:44:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:44:24 +0000
commit8baab3c8d7a6f22888bd581cd5c6098fd2e4b5a8 (patch)
tree3537e168b860f2742f6029d70501b5ed7d15d345 /src/term.h
parentInitial commit. (diff)
downloadvim-upstream.tar.xz
vim-upstream.zip
Adding upstream version 2:8.1.0875.upstream/2%8.1.0875upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/term.h')
-rw-r--r--src/term.h210
1 files changed, 210 insertions, 0 deletions
diff --git a/src/term.h b/src/term.h
new file mode 100644
index 0000000..219a208
--- /dev/null
+++ b/src/term.h
@@ -0,0 +1,210 @@
+/* vi:set ts=8 sts=4 sw=4 noet:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+ * Do ":help uganda" in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ */
+
+/*
+ * This file contains the defines for the machine dependent escape sequences
+ * that the editor needs to perform various operations. All of the sequences
+ * here are optional, except "cm" (cursor motion).
+ */
+
+#if defined(SASC) && SASC < 658
+/*
+ * The SAS C compiler has a bug that makes typedefs being forgot in include
+ * files. Has been fixed in version 6.58.
+ */
+typedef unsigned char char_u;
+#endif
+
+/*
+ * Index of the termcap codes in the term_strings array.
+ */
+enum SpecialKey
+{
+ KS_NAME = 0,/* name of this terminal entry */
+ KS_CE, /* clear to end of line */
+ KS_AL, /* add new blank line */
+ KS_CAL, /* add number of blank lines */
+ KS_DL, /* delete line */
+ KS_CDL, /* delete number of lines */
+ KS_CS, /* scroll region */
+ KS_CL, /* clear screen */
+ KS_CD, /* clear to end of display */
+ KS_UT, /* clearing uses current background color */
+ KS_DA, /* text may be scrolled down from up */
+ KS_DB, /* text may be scrolled up from down */
+ KS_VI, /* cursor invisible */
+ KS_VE, /* cursor visible */
+ KS_VS, /* cursor very visible (blink) */
+ KS_CVS, /* cursor normally visible (no blink) */
+ KS_CSH, /* cursor shape */
+ KS_CRC, /* request cursor blinking */
+ KS_CRS, /* request cursor style */
+ KS_ME, /* normal mode */
+ KS_MR, /* reverse mode */
+ KS_MD, /* bold mode */
+ KS_SE, /* normal mode */
+ KS_SO, /* standout mode */
+ KS_CZH, /* italic mode start */
+ KS_CZR, /* italic mode end */
+ KS_UE, /* exit underscore (underline) mode */
+ KS_US, /* underscore (underline) mode */
+ KS_UCE, /* exit undercurl mode */
+ KS_UCS, /* undercurl mode */
+ KS_STE, /* exit strikethrough mode */
+ KS_STS, /* strikethrough mode */
+ KS_MS, /* save to move cur in reverse mode */
+ KS_CM, /* cursor motion */
+ KS_SR, /* scroll reverse (backward) */
+ KS_CRI, /* cursor number of chars right */
+ KS_VB, /* visual bell */
+ KS_KS, /* put term in "keypad transmit" mode */
+ KS_KE, /* out of "keypad transmit" mode */
+ KS_TI, /* put terminal in termcap mode */
+ KS_TE, /* out of termcap mode */
+ KS_BC, /* backspace character (cursor left) */
+ KS_CCS, /* cur is relative to scroll region */
+ KS_CCO, /* number of colors */
+ KS_CSF, /* set foreground color */
+ KS_CSB, /* set background color */
+ KS_XS, /* standout not erased by overwriting (hpterm) */
+ KS_XN, /* newline glitch */
+ KS_MB, /* blink mode */
+ KS_CAF, /* set foreground color (ANSI) */
+ KS_CAB, /* set background color (ANSI) */
+ KS_LE, /* cursor left (mostly backspace) */
+ KS_ND, /* cursor right */
+ KS_CIS, /* set icon text start */
+ KS_CIE, /* set icon text end */
+ KS_CSC, /* set cursor color start */
+ KS_CEC, /* set cursor color end */
+ KS_TS, /* set window title start (to status line)*/
+ KS_FS, /* set window title end (from status line) */
+ KS_CWP, /* set window position in pixels */
+ KS_CGP, /* get window position */
+ KS_CWS, /* set window size in characters */
+ KS_CRV, /* request version string */
+ KS_RFG, /* request foreground color */
+ KS_RBG, /* request background color */
+ KS_CSI, /* start insert mode (bar cursor) */
+ KS_CEI, /* end insert mode (block cursor) */
+ KS_CSR, /* start replace mode (underline cursor) */
+ KS_CSV, /* scroll region vertical */
+ KS_OP, /* original color pair */
+ KS_U7, /* request cursor position */
+ KS_8F, /* set foreground color (RGB) */
+ KS_8B, /* set background color (RGB) */
+ KS_CBE, /* enable bracketed paste mode */
+ KS_CBD, /* disable bracketed paste mode */
+ KS_CPS, /* start of bracketed paste */
+ KS_CPE, /* end of bracketed paste */
+ KS_CST, /* save window title */
+ KS_CRT, /* restore window title */
+ KS_SSI, /* save icon text */
+ KS_SRI /* restore icon text */
+};
+
+#define KS_LAST KS_SRI
+
+/*
+ * the terminal capabilities are stored in this array
+ * IMPORTANT: When making changes, note the following:
+ * - there should be an entry for each code in the builtin termcaps
+ * - there should be an option for each code in option.c
+ * - there should be code in term.c to obtain the value from the termcap
+ */
+
+extern char_u *(term_strings[]); /* current terminal strings */
+
+/*
+ * strings used for terminal
+ */
+#define T_NAME (TERM_STR(KS_NAME)) /* terminal name */
+#define T_CE (TERM_STR(KS_CE)) /* clear to end of line */
+#define T_AL (TERM_STR(KS_AL)) /* add new blank line */
+#define T_CAL (TERM_STR(KS_CAL)) /* add number of blank lines */
+#define T_DL (TERM_STR(KS_DL)) /* delete line */
+#define T_CDL (TERM_STR(KS_CDL)) /* delete number of lines */
+#define T_CS (TERM_STR(KS_CS)) /* scroll region */
+#define T_CSV (TERM_STR(KS_CSV)) /* scroll region vertical */
+#define T_CL (TERM_STR(KS_CL)) /* clear screen */
+#define T_CD (TERM_STR(KS_CD)) /* clear to end of display */
+#define T_UT (TERM_STR(KS_UT)) /* clearing uses background color */
+#define T_DA (TERM_STR(KS_DA)) /* text may be scrolled down from up */
+#define T_DB (TERM_STR(KS_DB)) /* text may be scrolled up from down */
+#define T_VI (TERM_STR(KS_VI)) /* cursor invisible */
+#define T_VE (TERM_STR(KS_VE)) /* cursor visible */
+#define T_VS (TERM_STR(KS_VS)) /* cursor very visible (blink) */
+#define T_CVS (TERM_STR(KS_CVS)) /* cursor normally visible (no blink) */
+#define T_CSH (TERM_STR(KS_CSH)) /* cursor shape */
+#define T_CRC (TERM_STR(KS_CRC)) /* request cursor blinking */
+#define T_CRS (TERM_STR(KS_CRS)) /* request cursor style */
+#define T_ME (TERM_STR(KS_ME)) /* normal mode */
+#define T_MR (TERM_STR(KS_MR)) /* reverse mode */
+#define T_MD (TERM_STR(KS_MD)) /* bold mode */
+#define T_SE (TERM_STR(KS_SE)) /* normal mode */
+#define T_SO (TERM_STR(KS_SO)) /* standout mode */
+#define T_CZH (TERM_STR(KS_CZH)) /* italic mode start */
+#define T_CZR (TERM_STR(KS_CZR)) /* italic mode end */
+#define T_UE (TERM_STR(KS_UE)) /* exit underscore (underline) mode */
+#define T_US (TERM_STR(KS_US)) /* underscore (underline) mode */
+#define T_UCE (TERM_STR(KS_UCE)) /* exit undercurl mode */
+#define T_UCS (TERM_STR(KS_UCS)) /* undercurl mode */
+#define T_STE (TERM_STR(KS_STE)) /* exit strikethrough mode */
+#define T_STS (TERM_STR(KS_STS)) /* strikethrough mode */
+#define T_MS (TERM_STR(KS_MS)) /* save to move cur in reverse mode */
+#define T_CM (TERM_STR(KS_CM)) /* cursor motion */
+#define T_SR (TERM_STR(KS_SR)) /* scroll reverse (backward) */
+#define T_CRI (TERM_STR(KS_CRI)) /* cursor number of chars right */
+#define T_VB (TERM_STR(KS_VB)) /* visual bell */
+#define T_KS (TERM_STR(KS_KS)) /* put term in "keypad transmit" mode */
+#define T_KE (TERM_STR(KS_KE)) /* out of "keypad transmit" mode */
+#define T_TI (TERM_STR(KS_TI)) /* put terminal in termcap mode */
+#define T_TE (TERM_STR(KS_TE)) /* out of termcap mode */
+#define T_BC (TERM_STR(KS_BC)) /* backspace character */
+#define T_CCS (TERM_STR(KS_CCS)) /* cur is relative to scroll region */
+#define T_CCO (TERM_STR(KS_CCO)) /* number of colors */
+#define T_CSF (TERM_STR(KS_CSF)) /* set foreground color */
+#define T_CSB (TERM_STR(KS_CSB)) /* set background color */
+#define T_XS (TERM_STR(KS_XS)) /* standout not erased by overwriting */
+#define T_XN (TERM_STR(KS_XN)) /* newline glitch */
+#define T_MB (TERM_STR(KS_MB)) /* blink mode */
+#define T_CAF (TERM_STR(KS_CAF)) /* set foreground color (ANSI) */
+#define T_CAB (TERM_STR(KS_CAB)) /* set background color (ANSI) */
+#define T_LE (TERM_STR(KS_LE)) /* cursor left */
+#define T_ND (TERM_STR(KS_ND)) /* cursor right */
+#define T_CIS (TERM_STR(KS_CIS)) /* set icon text start */
+#define T_CIE (TERM_STR(KS_CIE)) /* set icon text end */
+#define T_TS (TERM_STR(KS_TS)) /* set window title start */
+#define T_FS (TERM_STR(KS_FS)) /* set window title end */
+#define T_CSC (TERM_STR(KS_CSC)) /* set cursor color start */
+#define T_CEC (TERM_STR(KS_CEC)) /* set cursor color end */
+#define T_CWP (TERM_STR(KS_CWP)) /* set window position */
+#define T_CGP (TERM_STR(KS_CGP)) /* get window position */
+#define T_CWS (TERM_STR(KS_CWS)) /* window size */
+#define T_CSI (TERM_STR(KS_CSI)) /* start insert mode */
+#define T_CEI (TERM_STR(KS_CEI)) /* end insert mode */
+#define T_CSR (TERM_STR(KS_CSR)) /* start replace mode */
+#define T_CRV (TERM_STR(KS_CRV)) /* request version string */
+#define T_RFG (TERM_STR(KS_RFG)) /* request foreground RGB */
+#define T_RBG (TERM_STR(KS_RBG)) /* request background RGB */
+#define T_OP (TERM_STR(KS_OP)) /* original color pair */
+#define T_U7 (TERM_STR(KS_U7)) /* request cursor position */
+#define T_8F (TERM_STR(KS_8F)) /* set foreground color (RGB) */
+#define T_8B (TERM_STR(KS_8B)) /* set background color (RGB) */
+#define T_BE (TERM_STR(KS_CBE)) /* enable bracketed paste mode */
+#define T_BD (TERM_STR(KS_CBD)) /* disable bracketed paste mode */
+#define T_PS (TERM_STR(KS_CPS)) /* start of bracketed paste */
+#define T_PE (TERM_STR(KS_CPE)) /* end of bracketed paste */
+#define T_CST (TERM_STR(KS_CST)) /* save window title */
+#define T_CRT (TERM_STR(KS_CRT)) /* restore window title */
+#define T_SSI (TERM_STR(KS_SSI)) /* save icon text */
+#define T_SRI (TERM_STR(KS_SRI)) /* restore icon text */
+
+#define TMODE_COOK 0 /* terminal mode for external cmds and Ex mode */
+#define TMODE_SLEEP 1 /* terminal mode for sleeping (cooked but no echo) */
+#define TMODE_RAW 2 /* terminal mode for Normal and Insert mode */