blob: b9535ee1de2610087751cb243e8ac9c5f6fffced [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{
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010028 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
42 KS_VS, // cursor very visible (blink)
43 KS_CVS, // cursor normally visible (no blink)
44 KS_CSH, // cursor shape
45 KS_CRC, // request cursor blinking
46 KS_CRS, // request cursor style
47 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
54 KS_UE, // exit underscore (underline) mode
55 KS_US, // underscore (underline) mode
56 KS_UCE, // exit undercurl mode
57 KS_UCS, // undercurl mode
58 KS_STE, // exit strikethrough mode
59 KS_STS, // strikethrough mode
60 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
68 KS_CTI, // put terminal in "raw" mode
69 KS_TE, // end of termcap mode
70 KS_CTE, // end of "raw" mode
71 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)
77 KS_XN, // newline glitch
78 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
85 KS_CSC, // set cursor color start
86 KS_CEC, // set cursor color end
87 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
90 KS_CGP, // get window position
91 KS_CWS, // set window size in characters
92 KS_CRV, // request version string
93 KS_RFG, // request foreground color
94 KS_RBG, // request background color
95 KS_CSI, // start insert mode (bar cursor)
96 KS_CEI, // end insert mode (block cursor)
97 KS_CSR, // start replace mode (underline cursor)
98 KS_CSV, // scroll region vertical
99 KS_OP, // original color pair
100 KS_U7, // request cursor position
101 KS_8F, // set foreground color (RGB)
102 KS_8B, // set background color (RGB)
103 KS_CBE, // enable bracketed paste mode
104 KS_CBD, // disable bracketed paste mode
105 KS_CPS, // start of bracketed paste
106 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
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100123extern char_u *(term_strings[]); // current terminal strings
Bram Moolenaar071d4272004-06-13 20:20:40 +0000124
125/*
126 * strings used for terminal
127 */
Bram Moolenaar9bf703d2019-11-30 19:44:38 +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
143#define T_VS (TERM_STR(KS_VS)) // cursor very visible (blink)
144#define T_CVS (TERM_STR(KS_CVS)) // cursor normally visible (no blink)
145#define T_CSH (TERM_STR(KS_CSH)) // cursor shape
146#define T_CRC (TERM_STR(KS_CRC)) // request cursor blinking
147#define T_CRS (TERM_STR(KS_CRS)) // request cursor style
148#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
159#define T_STE (TERM_STR(KS_STE)) // exit strikethrough mode
160#define T_STS (TERM_STR(KS_STS)) // strikethrough mode
161#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
169#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
172#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
188#define T_CSC (TERM_STR(KS_CSC)) // set cursor color start
189#define T_CEC (TERM_STR(KS_CEC)) // set cursor color end
190#define T_CWP (TERM_STR(KS_CWP)) // set window position
191#define T_CGP (TERM_STR(KS_CGP)) // get window position
192#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
197#define T_RFG (TERM_STR(KS_RFG)) // request foreground RGB
198#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
207#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
Bram Moolenaar3b1f18f2020-05-16 23:15:08 +0200212#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
215#define TMODE_UNKNOWN 9 // after executing a shell