diff options
Diffstat (limited to 'src/termdefs.h')
-rw-r--r-- | src/termdefs.h | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/src/termdefs.h b/src/termdefs.h new file mode 100644 index 0000000000..a3d8299990 --- /dev/null +++ b/src/termdefs.h @@ -0,0 +1,225 @@ +/* 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_CTI, // put terminal in "raw" mode + KS_TE, // end of termcap mode + KS_CTE, // end of "raw" 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_CAU, // set underline 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_8U, // set underline 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 + KS_FD, // disable focus event tracking + KS_FE // enable focus event tracking +}; + +#define KS_LAST KS_FE + +/* + * 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_CTI (TERM_STR(KS_CTI)) // put terminal in "raw" mode +#define T_TE (TERM_STR(KS_TE)) // end of termcap mode +#define T_CTE (TERM_STR(KS_CTE)) // end of "raw" 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_CAU (TERM_STR(KS_CAU)) // set underline 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_8U (TERM_STR(KS_8U)) // set underline 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 T_FD (TERM_STR(KS_FD)) // disable focus event tracking +#define T_FE (TERM_STR(KS_FE)) // enable focus event tracking + +typedef enum { + TMODE_COOK, // terminal mode for external cmds and Ex mode + TMODE_SLEEP, // terminal mode for sleeping (cooked but no echo) + TMODE_RAW, // terminal mode for Normal and Insert mode + TMODE_UNKNOWN // after executing a shell +} tmode_T; |