blob: 0791f460b44a7515ae8f0c93c435579c57d4cdd8 [file] [log] [blame]
Bram Moolenaaredf3f972016-08-29 22:49:24 +02001/* vi:set ts=8 sts=4 sw=4 noet:
Bram Moolenaar071d4272004-06-13 20:20:40 +00002 *
3 * VIM - Vi IMproved by Bram Moolenaar
4 *
5 * Do ":help uganda" in Vim to read copying and usage conditions.
6 * Do ":help credits" in Vim to see a list of people who contributed.
7 */
8
9/*
10 * This file contains the defines for the machine dependent escape sequences
11 * that the editor needs to perform various operations. All of the sequences
12 * here are optional, except "cm" (cursor motion).
13 */
14
15#if defined(SASC) && SASC < 658
16/*
17 * The SAS C compiler has a bug that makes typedefs being forgot in include
18 * files. Has been fixed in version 6.58.
19 */
20typedef unsigned char char_u;
21#endif
22
23/*
24 * Index of the termcap codes in the term_strings array.
25 */
26enum SpecialKey
27{
28 KS_NAME = 0,/* name of this terminal entry */
29 KS_CE, /* clear to end of line */
30 KS_AL, /* add new blank line */
31 KS_CAL, /* add number of blank lines */
32 KS_DL, /* delete line */
33 KS_CDL, /* delete number of lines */
34 KS_CS, /* scroll region */
35 KS_CL, /* clear screen */
36 KS_CD, /* clear to end of display */
37 KS_UT, /* clearing uses current background color */
38 KS_DA, /* text may be scrolled down from up */
39 KS_DB, /* text may be scrolled up from down */
40 KS_VI, /* cursor invisible */
41 KS_VE, /* cursor visible */
Bram Moolenaarce1c3272017-08-20 15:05:15 +020042 KS_VS, /* cursor very visible (blink) */
43 KS_CVS, /* cursor normally visible (no blink) */
Bram Moolenaar3cd43cc2017-08-12 19:51:41 +020044 KS_CSH, /* cursor shape */
Bram Moolenaar4db25542017-08-28 22:43:05 +020045 KS_CRC, /* request cursor blinking */
46 KS_CRS, /* request cursor style */
Bram Moolenaar071d4272004-06-13 20:20:40 +000047 KS_ME, /* normal mode */
48 KS_MR, /* reverse mode */
49 KS_MD, /* bold mode */
50 KS_SE, /* normal mode */
51 KS_SO, /* standout mode */
52 KS_CZH, /* italic mode start */
53 KS_CZR, /* italic mode end */
Bram Moolenaaref53c022005-03-16 09:53:56 +000054 KS_UE, /* exit underscore (underline) mode */
55 KS_US, /* underscore (underline) mode */
56 KS_UCE, /* exit undercurl mode */
57 KS_UCS, /* undercurl mode */
Bram Moolenaarcf4b00c2017-09-02 18:33:56 +020058 KS_STE, /* exit strikethrough mode */
59 KS_STS, /* strikethrough mode */
Bram Moolenaar071d4272004-06-13 20:20:40 +000060 KS_MS, /* save to move cur in reverse mode */
61 KS_CM, /* cursor motion */
62 KS_SR, /* scroll reverse (backward) */
63 KS_CRI, /* cursor number of chars right */
64 KS_VB, /* visual bell */
65 KS_KS, /* put term in "keypad transmit" mode */
66 KS_KE, /* out of "keypad transmit" mode */
67 KS_TI, /* put terminal in termcap mode */
Bram Moolenaar171a9212019-10-12 21:08:59 +020068 KS_CTI, /* put terminal in "raw" mode */
69 KS_TE, /* end of termcap mode */
70 KS_CTE, /* end of "raw" mode */
Bram Moolenaar071d4272004-06-13 20:20:40 +000071 KS_BC, /* backspace character (cursor left) */
72 KS_CCS, /* cur is relative to scroll region */
73 KS_CCO, /* number of colors */
74 KS_CSF, /* set foreground color */
75 KS_CSB, /* set background color */
76 KS_XS, /* standout not erased by overwriting (hpterm) */
Bram Moolenaar494838a2015-02-10 19:20:37 +010077 KS_XN, /* newline glitch */
Bram Moolenaar071d4272004-06-13 20:20:40 +000078 KS_MB, /* blink mode */
79 KS_CAF, /* set foreground color (ANSI) */
80 KS_CAB, /* set background color (ANSI) */
81 KS_LE, /* cursor left (mostly backspace) */
82 KS_ND, /* cursor right */
83 KS_CIS, /* set icon text start */
84 KS_CIE, /* set icon text end */
Bram Moolenaar3cd43cc2017-08-12 19:51:41 +020085 KS_CSC, /* set cursor color start */
86 KS_CEC, /* set cursor color end */
Bram Moolenaar071d4272004-06-13 20:20:40 +000087 KS_TS, /* set window title start (to status line)*/
88 KS_FS, /* set window title end (from status line) */
89 KS_CWP, /* set window position in pixels */
Bram Moolenaarba6ec182017-04-04 22:41:10 +020090 KS_CGP, /* get window position */
Bram Moolenaar071d4272004-06-13 20:20:40 +000091 KS_CWS, /* set window size in characters */
92 KS_CRV, /* request version string */
Bram Moolenaar65e4c4f2017-10-14 23:24:25 +020093 KS_RFG, /* request foreground color */
Bram Moolenaarb5c32652015-06-25 17:03:36 +020094 KS_RBG, /* request background color */
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000095 KS_CSI, /* start insert mode (bar cursor) */
96 KS_CEI, /* end insert mode (block cursor) */
Bram Moolenaar1e7813a2015-03-31 18:31:03 +020097 KS_CSR, /* start replace mode (underline cursor) */
Bram Moolenaar071d4272004-06-13 20:20:40 +000098 KS_CSV, /* scroll region vertical */
Bram Moolenaar9584b312013-03-13 19:29:28 +010099 KS_OP, /* original color pair */
Bram Moolenaar8a633e32016-04-21 21:10:14 +0200100 KS_U7, /* request cursor position */
101 KS_8F, /* set foreground color (RGB) */
Bram Moolenaarec2da362017-01-21 20:04:22 +0100102 KS_8B, /* set background color (RGB) */
103 KS_CBE, /* enable bracketed paste mode */
104 KS_CBD, /* disable bracketed paste mode */
Bram Moolenaar8820b482017-03-16 17:23:31 +0100105 KS_CPS, /* start of bracketed paste */
Bram Moolenaar40385db2018-08-07 22:31:44 +0200106 KS_CPE, /* end of bracketed paste */
107 KS_CST, /* save window title */
108 KS_CRT, /* restore window title */
109 KS_SSI, /* save icon text */
110 KS_SRI /* restore icon text */
Bram Moolenaar071d4272004-06-13 20:20:40 +0000111};
112
Bram Moolenaar40385db2018-08-07 22:31:44 +0200113#define KS_LAST KS_SRI
Bram Moolenaar071d4272004-06-13 20:20:40 +0000114
115/*
116 * the terminal capabilities are stored in this array
117 * IMPORTANT: When making changes, note the following:
118 * - there should be an entry for each code in the builtin termcaps
119 * - there should be an option for each code in option.c
120 * - there should be code in term.c to obtain the value from the termcap
121 */
122
123extern char_u *(term_strings[]); /* current terminal strings */
124
125/*
126 * strings used for terminal
127 */
Bram Moolenaar8820b482017-03-16 17:23:31 +0100128#define T_NAME (TERM_STR(KS_NAME)) /* terminal name */
129#define T_CE (TERM_STR(KS_CE)) /* clear to end of line */
130#define T_AL (TERM_STR(KS_AL)) /* add new blank line */
131#define T_CAL (TERM_STR(KS_CAL)) /* add number of blank lines */
132#define T_DL (TERM_STR(KS_DL)) /* delete line */
133#define T_CDL (TERM_STR(KS_CDL)) /* delete number of lines */
134#define T_CS (TERM_STR(KS_CS)) /* scroll region */
135#define T_CSV (TERM_STR(KS_CSV)) /* scroll region vertical */
136#define T_CL (TERM_STR(KS_CL)) /* clear screen */
137#define T_CD (TERM_STR(KS_CD)) /* clear to end of display */
138#define T_UT (TERM_STR(KS_UT)) /* clearing uses background color */
139#define T_DA (TERM_STR(KS_DA)) /* text may be scrolled down from up */
140#define T_DB (TERM_STR(KS_DB)) /* text may be scrolled up from down */
141#define T_VI (TERM_STR(KS_VI)) /* cursor invisible */
142#define T_VE (TERM_STR(KS_VE)) /* cursor visible */
Bram Moolenaarce1c3272017-08-20 15:05:15 +0200143#define T_VS (TERM_STR(KS_VS)) /* cursor very visible (blink) */
144#define T_CVS (TERM_STR(KS_CVS)) /* cursor normally visible (no blink) */
Bram Moolenaar3cd43cc2017-08-12 19:51:41 +0200145#define T_CSH (TERM_STR(KS_CSH)) /* cursor shape */
Bram Moolenaar4db25542017-08-28 22:43:05 +0200146#define T_CRC (TERM_STR(KS_CRC)) /* request cursor blinking */
147#define T_CRS (TERM_STR(KS_CRS)) /* request cursor style */
Bram Moolenaar8820b482017-03-16 17:23:31 +0100148#define T_ME (TERM_STR(KS_ME)) /* normal mode */
149#define T_MR (TERM_STR(KS_MR)) /* reverse mode */
150#define T_MD (TERM_STR(KS_MD)) /* bold mode */
151#define T_SE (TERM_STR(KS_SE)) /* normal mode */
152#define T_SO (TERM_STR(KS_SO)) /* standout mode */
153#define T_CZH (TERM_STR(KS_CZH)) /* italic mode start */
154#define T_CZR (TERM_STR(KS_CZR)) /* italic mode end */
155#define T_UE (TERM_STR(KS_UE)) /* exit underscore (underline) mode */
156#define T_US (TERM_STR(KS_US)) /* underscore (underline) mode */
157#define T_UCE (TERM_STR(KS_UCE)) /* exit undercurl mode */
158#define T_UCS (TERM_STR(KS_UCS)) /* undercurl mode */
Bram Moolenaarcf4b00c2017-09-02 18:33:56 +0200159#define T_STE (TERM_STR(KS_STE)) /* exit strikethrough mode */
160#define T_STS (TERM_STR(KS_STS)) /* strikethrough mode */
Bram Moolenaar8820b482017-03-16 17:23:31 +0100161#define T_MS (TERM_STR(KS_MS)) /* save to move cur in reverse mode */
162#define T_CM (TERM_STR(KS_CM)) /* cursor motion */
163#define T_SR (TERM_STR(KS_SR)) /* scroll reverse (backward) */
164#define T_CRI (TERM_STR(KS_CRI)) /* cursor number of chars right */
165#define T_VB (TERM_STR(KS_VB)) /* visual bell */
166#define T_KS (TERM_STR(KS_KS)) /* put term in "keypad transmit" mode */
167#define T_KE (TERM_STR(KS_KE)) /* out of "keypad transmit" mode */
168#define T_TI (TERM_STR(KS_TI)) /* put terminal in termcap mode */
Bram Moolenaar171a9212019-10-12 21:08:59 +0200169#define T_CTI (TERM_STR(KS_CTI)) /* put terminal in "raw" mode */
170#define T_TE (TERM_STR(KS_TE)) /* end of termcap mode */
171#define T_CTE (TERM_STR(KS_CTE)) /* end of "raw" mode */
Bram Moolenaar8820b482017-03-16 17:23:31 +0100172#define T_BC (TERM_STR(KS_BC)) /* backspace character */
173#define T_CCS (TERM_STR(KS_CCS)) /* cur is relative to scroll region */
174#define T_CCO (TERM_STR(KS_CCO)) /* number of colors */
175#define T_CSF (TERM_STR(KS_CSF)) /* set foreground color */
176#define T_CSB (TERM_STR(KS_CSB)) /* set background color */
177#define T_XS (TERM_STR(KS_XS)) /* standout not erased by overwriting */
178#define T_XN (TERM_STR(KS_XN)) /* newline glitch */
179#define T_MB (TERM_STR(KS_MB)) /* blink mode */
180#define T_CAF (TERM_STR(KS_CAF)) /* set foreground color (ANSI) */
181#define T_CAB (TERM_STR(KS_CAB)) /* set background color (ANSI) */
182#define T_LE (TERM_STR(KS_LE)) /* cursor left */
183#define T_ND (TERM_STR(KS_ND)) /* cursor right */
184#define T_CIS (TERM_STR(KS_CIS)) /* set icon text start */
185#define T_CIE (TERM_STR(KS_CIE)) /* set icon text end */
186#define T_TS (TERM_STR(KS_TS)) /* set window title start */
187#define T_FS (TERM_STR(KS_FS)) /* set window title end */
Bram Moolenaar3cd43cc2017-08-12 19:51:41 +0200188#define T_CSC (TERM_STR(KS_CSC)) /* set cursor color start */
189#define T_CEC (TERM_STR(KS_CEC)) /* set cursor color end */
Bram Moolenaarba6ec182017-04-04 22:41:10 +0200190#define T_CWP (TERM_STR(KS_CWP)) /* set window position */
191#define T_CGP (TERM_STR(KS_CGP)) /* get window position */
Bram Moolenaar8820b482017-03-16 17:23:31 +0100192#define T_CWS (TERM_STR(KS_CWS)) /* window size */
193#define T_CSI (TERM_STR(KS_CSI)) /* start insert mode */
194#define T_CEI (TERM_STR(KS_CEI)) /* end insert mode */
195#define T_CSR (TERM_STR(KS_CSR)) /* start replace mode */
196#define T_CRV (TERM_STR(KS_CRV)) /* request version string */
Bram Moolenaar65e4c4f2017-10-14 23:24:25 +0200197#define T_RFG (TERM_STR(KS_RFG)) /* request foreground RGB */
Bram Moolenaar8820b482017-03-16 17:23:31 +0100198#define T_RBG (TERM_STR(KS_RBG)) /* request background RGB */
199#define T_OP (TERM_STR(KS_OP)) /* original color pair */
200#define T_U7 (TERM_STR(KS_U7)) /* request cursor position */
201#define T_8F (TERM_STR(KS_8F)) /* set foreground color (RGB) */
202#define T_8B (TERM_STR(KS_8B)) /* set background color (RGB) */
203#define T_BE (TERM_STR(KS_CBE)) /* enable bracketed paste mode */
204#define T_BD (TERM_STR(KS_CBD)) /* disable bracketed paste mode */
205#define T_PS (TERM_STR(KS_CPS)) /* start of bracketed paste */
206#define T_PE (TERM_STR(KS_CPE)) /* end of bracketed paste */
Bram Moolenaar40385db2018-08-07 22:31:44 +0200207#define T_CST (TERM_STR(KS_CST)) /* save window title */
208#define T_CRT (TERM_STR(KS_CRT)) /* restore window title */
209#define T_SSI (TERM_STR(KS_SSI)) /* save icon text */
210#define T_SRI (TERM_STR(KS_SRI)) /* restore icon text */
Bram Moolenaar071d4272004-06-13 20:20:40 +0000211
212#define TMODE_COOK 0 /* terminal mode for external cmds and Ex mode */
213#define TMODE_SLEEP 1 /* terminal mode for sleeping (cooked but no echo) */
214#define TMODE_RAW 2 /* terminal mode for Normal and Insert mode */