annotate src/termdefs.h @ 32936:c517845bd10e v9.0.1776

patch 9.0.1776: No support for stable Python 3 ABI Commit: https://github.com/vim/vim/commit/c13b3d1350b60b94fe87f0761ea31c0e7fb6ebf3 Author: Yee Cheng Chin <ychin.git@gmail.com> Date: Sun Aug 20 21:18:38 2023 +0200 patch 9.0.1776: No support for stable Python 3 ABI Problem: No support for stable Python 3 ABI Solution: Support Python 3 stable ABI Commits: 1) Support Python 3 stable ABI to allow mixed version interoperatbility Vim currently supports embedding Python for use with plugins, and the "dynamic" linking option allows the user to specify a locally installed version of Python by setting `pythonthreedll`. However, one caveat is that the Python 3 libs are not binary compatible across minor versions, and mixing versions can potentially be dangerous (e.g. let's say Vim was linked against the Python 3.10 SDK, but the user sets `pythonthreedll` to a 3.11 lib). Usually, nothing bad happens, but in theory this could lead to crashes, memory corruption, and other unpredictable behaviors. It's also difficult for the user to tell something is wrong because Vim has no way of reporting what Python 3 version Vim was linked with. For Vim installed via a package manager, this usually isn't an issue because all the dependencies would already be figured out. For prebuilt Vim binaries like MacVim (my motivation for working on this), AppImage, and Win32 installer this could potentially be an issue as usually a single binary is distributed. This is more tricky when a new Python version is released, as there's a chicken-and-egg issue with deciding what Python version to build against and hard to keep in sync when a new Python version just drops and we have a mix of users of different Python versions, and a user just blindly upgrading to a new Python could lead to bad interactions with Vim. Python 3 does have a solution for this problem: stable ABI / limited API (see https://docs.python.org/3/c-api/stable.html). The C SDK limits the API to a set of functions that are promised to be stable across versions. This pull request adds an ifdef config that allows us to turn it on when building Vim. Vim binaries built with this option should be safe to freely link with any Python 3 libraies without having the constraint of having to use the same minor version. Note: Python 2 has no such concept and this doesn't change how Python 2 integration works (not that there is going to be a new version of Python 2 that would cause compatibility issues in the future anyway). --- Technical details: ====== The stable ABI can be accessed when we compile with the Python 3 limited API (by defining `Py_LIMITED_API`). The Python 3 code (in `if_python3.c` and `if_py_both.h`) would now handle this and switch to limited API mode. Without it set, Vim will still use the full API as before so this is an opt-in change. The main difference is that `PyType_Object` is now an opaque struct that we can't directly create "static types" out of, and we have to create type objects as "heap types" instead. This is because the struct is not stable and changes from version to version (e.g. 3.8 added a `tp_vectorcall` field to it). I had to change all the types to be allocated on the heap instead with just a pointer to them. Other functions are also simply missing in limited API, or they are introduced too late (e.g. `PyUnicode_AsUTF8AndSize` in 3.10) to it that we need some other ways to do the same thing, so I had to abstract a few things into macros, and sometimes re-implement functions like `PyObject_NEW`. One caveat is that in limited API, `OutputType` (used for replacing `sys.stdout`) no longer inherits from `PyStdPrinter_Type` which I don't think has any real issue other than minor differences in how they convert to a string and missing a couple functions like `mode()` and `fileno()`. Also fixed an existing bug where `tp_basicsize` was set incorrectly for `BufferObject`, `TabListObject, `WinListObject`. Technically, there could be a small performance drop, there is a little more indirection with accessing type objects, and some APIs like `PyUnicode_AsUTF8AndSize` are missing, but in practice I didn't see any difference, and any well-written Python plugin should try to avoid excessing callbacks to the `vim` module in Python anyway. I only tested limited API mode down to Python 3.7, which seemes to compile and work fine. I haven't tried earlier Python versions. 2) Fix PyIter_Check on older Python vers / type##Ptr unused warning For PyIter_Check, older versions exposed them as either macros (used in full API), or a function (for use in limited API). A previous change exposed PyIter_Check to the dynamic build because Python just moved it to function-only in 3.10 anyway. Because of that, just make sure we always grab the function in dynamic builds in earlier versions since that's what Python eventually did anyway. 3) Move Py_LIMITED_API define to configure script Can now use --with-python-stable-abi flag to customize what stable ABI version to target. Can also use an env var to do so as well. 4) Show +python/dyn-stable in :version, and allow has() feature query Not sure if the "/dyn-stable" suffix would break things, or whether we should do it another way. Or just don't show it in version and rely on has() feature checking. 5) Documentation first draft. Still need to implement v:python3_version 6) Fix PyIter_Check build breaks when compiling against Python 3.8 7) Add CI coverage stable ABI on Linux/Windows / make configurable on Windows This adds configurable options for Windows make files (both MinGW and MSVC). CI will also now exercise both traditional full API and stable ABI for Linux and Windows in the matrix for coverage. Also added a "dynamic" option to Linux matrix as a drive-by change to make other scripting languages like Ruby / Perl testable under both static and dynamic builds. 8) Fix inaccuracy in Windows docs Python's own docs are confusing but you don't actually want to use `python3.dll` for the dynamic linkage. 9) Add generated autoconf file 10) Add v:python3_version support This variable indicates the version of Python3 that Vim was built against (PY_VERSION_HEX), and will be useful to check whether the Python library you are loading in dynamically actually fits it. When built with stable ABI, it will be the limited ABI version instead (`Py_LIMITED_API`), which indicates the minimum version of Python 3 the user should have, rather than the exact match. When stable ABI is used, we won't be exposing PY_VERSION_HEX in this var because it just doesn't seem necessary to do so (the whole point of stable ABI is the promise that it will work across versions), and I don't want to confuse the user with too many variables. Also, cleaned up some documentation, and added help tags. 11) Fix Python 3.7 compat issues Fix a couple issues when using limited API < 3.8 - Crash on exit: In Python 3.7, if a heap-allocated type is destroyed before all instances are, it would cause a crash later. This happens when we destroyed `OptionsType` before calling `Py_Finalize` when using the limited API. To make it worse, later versions changed the semantics and now each instance has a strong reference to its own type and the recommendation has changed to have each instance de-ref its own type and have its type in GC traversal. To avoid dealing with these cross-version variations, we just don't free the heap type. They are static types in non-limited-API anyway and are designed to last through the entirety of the app, and we also don't restart the Python runtime and therefore do not need it to have absolutely 0 leaks. See: - https://docs.python.org/3/whatsnew/3.8.html#changes-in-the-c-api - https://docs.python.org/3/whatsnew/3.9.html#changes-in-the-c-api - PyIter_Check: This function is not provided in limited APIs older than 3.8. Previously I was trying to mock it out using manual PyType_GetSlot() but it was brittle and also does not actually work properly for static types (it will generate a Python error). Just return false. It does mean using limited API < 3.8 is not recommended as you lose the functionality to handle iterators, but from playing with plugins I couldn't find it to be an issue. - Fix loading of PyIter_Check so it will be done when limited API < 3.8. Otherwise loading a 3.7 Python lib will fail even if limited API was specified to use it. 12) Make sure to only load `PyUnicode_AsUTF8AndSize` in needed in limited API We don't use this function unless limited API >= 3.10, but we were loading it regardless. Usually it's ok in Unix-like systems where Python just has a single lib that we load from, but in Windows where there is a separate python3.dll this would not work as the symbol would not have been exposed in this more limited DLL file. This makes it much clearer under what condition is this function needed. closes: #12032 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Sun, 20 Aug 2023 21:30:04 +0200
parents 533e36e02a68
children 36843e079f64
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10042
4aead6a9b7a9 commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents: 8969
diff changeset
1 /* vi:set ts=8 sts=4 sw=4 noet:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 * VIM - Vi IMproved by Bram Moolenaar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 * Do ":help uganda" in Vim to read copying and usage conditions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 * Do ":help credits" in Vim to see a list of people who contributed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 * This file contains the defines for the machine dependent escape sequences
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 * that the editor needs to perform various operations. All of the sequences
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 * here are optional, except "cm" (cursor motion).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 #if defined(SASC) && SASC < 658
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 /*
32244
533e36e02a68 patch 9.0.1453: typos in source code and tests
Bram Moolenaar <Bram@vim.org>
parents: 31672
diff changeset
17 * The SAS C compiler has a bug that makes typedefs being forgotten
533e36e02a68 patch 9.0.1453: typos in source code and tests
Bram Moolenaar <Bram@vim.org>
parents: 31672
diff changeset
18 * in include files. Has been fixed in version 6.58.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 typedef unsigned char char_u;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 * Index of the termcap codes in the term_strings array.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 enum SpecialKey
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 {
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
28 KS_NAME = 0,// name of this terminal entry
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
29 KS_CE, // clear to end of line
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
30 KS_AL, // add new blank line
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
31 KS_CAL, // add number of blank lines
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
32 KS_DL, // delete line
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
33 KS_CDL, // delete number of lines
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
34 KS_CS, // scroll region
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
35 KS_CL, // clear screen
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
36 KS_CD, // clear to end of display
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
37 KS_UT, // clearing uses current background color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
38 KS_DA, // text may be scrolled down from up
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
39 KS_DB, // text may be scrolled up from down
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
40 KS_VI, // cursor invisible
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
41 KS_VE, // cursor visible
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
42 KS_VS, // cursor very visible (blink)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
43 KS_CVS, // cursor normally visible (no blink)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
44 KS_CSH, // cursor shape
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
45 KS_CRC, // request cursor blinking
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
46 KS_CRS, // request cursor style
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
47 KS_ME, // normal mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
48 KS_MR, // reverse mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
49 KS_MD, // bold mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
50 KS_SE, // normal mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
51 KS_SO, // standout mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
52 KS_CZH, // italic mode start
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
53 KS_CZR, // italic mode end
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
54 KS_UE, // exit underscore (underline) mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
55 KS_US, // underscore (underline) mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
56 KS_UCE, // exit undercurl mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
57 KS_UCS, // undercurl mode
29328
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 26177
diff changeset
58 KS_USS, // double underline mode
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 26177
diff changeset
59 KS_DS, // dotted underline mode
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 26177
diff changeset
60 KS_CDS, // dashed underline mode
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
61 KS_STE, // exit strikethrough mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
62 KS_STS, // strikethrough mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
63 KS_MS, // save to move cur in reverse mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
64 KS_CM, // cursor motion
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
65 KS_SR, // scroll reverse (backward)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
66 KS_CRI, // cursor number of chars right
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
67 KS_VB, // visual bell
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
68 KS_KS, // put term in "keypad transmit" mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
69 KS_KE, // out of "keypad transmit" mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
70 KS_TI, // put terminal in termcap mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
71 KS_CTI, // put terminal in "raw" mode
31293
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
72 KS_CRK, // request keyboard protocol state
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
73 KS_TE, // end of termcap mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
74 KS_CTE, // end of "raw" mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
75 KS_BC, // backspace character (cursor left)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
76 KS_CCS, // cur is relative to scroll region
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
77 KS_CCO, // number of colors
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
78 KS_CSF, // set foreground color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
79 KS_CSB, // set background color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
80 KS_XS, // standout not erased by overwriting (hpterm)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
81 KS_XN, // newline glitch
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
82 KS_MB, // blink mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
83 KS_CAF, // set foreground color (ANSI)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
84 KS_CAB, // set background color (ANSI)
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20439
diff changeset
85 KS_CAU, // set underline color (ANSI)
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
86 KS_LE, // cursor left (mostly backspace)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
87 KS_ND, // cursor right
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
88 KS_CIS, // set icon text start
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
89 KS_CIE, // set icon text end
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
90 KS_CSC, // set cursor color start
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
91 KS_CEC, // set cursor color end
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
92 KS_TS, // set window title start (to status line)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
93 KS_FS, // set window title end (from status line)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
94 KS_CWP, // set window position in pixels
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
95 KS_CGP, // get window position
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
96 KS_CWS, // set window size in characters
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
97 KS_CRV, // request version string
31672
9dc48932db8e patch 9.0.1168: code to enable/disable mouse is not from terminfo/termcap
Bram Moolenaar <Bram@vim.org>
parents: 31569
diff changeset
98 KS_CXM, // enable/disable mouse reporting
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
99 KS_RFG, // request foreground color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
100 KS_RBG, // request background color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
101 KS_CSI, // start insert mode (bar cursor)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
102 KS_CEI, // end insert mode (block cursor)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
103 KS_CSR, // start replace mode (underline cursor)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
104 KS_CSV, // scroll region vertical
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
105 KS_OP, // original color pair
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
106 KS_U7, // request cursor position
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
107 KS_8F, // set foreground color (RGB)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
108 KS_8B, // set background color (RGB)
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20439
diff changeset
109 KS_8U, // set underline color (RGB)
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
110 KS_CBE, // enable bracketed paste mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
111 KS_CBD, // disable bracketed paste mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
112 KS_CST, // save window title
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
113 KS_CRT, // restore window title
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
114 KS_SSI, // save icon text
23606
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
115 KS_SRI, // restore icon text
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
116 KS_FD, // disable focus event tracking
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
117 KS_FE // enable focus event tracking
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 };
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119
23606
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
120 #define KS_LAST KS_FE
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 * the terminal capabilities are stored in this array
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 * IMPORTANT: When making changes, note the following:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 * - there should be an entry for each code in the builtin termcaps
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 * - there should be an option for each code in option.c
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 * - there should be code in term.c to obtain the value from the termcap
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
130 extern char_u *(term_strings[]); // current terminal strings
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 * strings used for terminal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 */
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
135 #define T_NAME (TERM_STR(KS_NAME)) // terminal name
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
136 #define T_CE (TERM_STR(KS_CE)) // clear to end of line
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
137 #define T_AL (TERM_STR(KS_AL)) // add new blank line
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
138 #define T_CAL (TERM_STR(KS_CAL)) // add number of blank lines
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
139 #define T_DL (TERM_STR(KS_DL)) // delete line
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
140 #define T_CDL (TERM_STR(KS_CDL)) // delete number of lines
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
141 #define T_CS (TERM_STR(KS_CS)) // scroll region
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
142 #define T_CSV (TERM_STR(KS_CSV)) // scroll region vertical
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
143 #define T_CL (TERM_STR(KS_CL)) // clear screen
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
144 #define T_CD (TERM_STR(KS_CD)) // clear to end of display
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
145 #define T_UT (TERM_STR(KS_UT)) // clearing uses background color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
146 #define T_DA (TERM_STR(KS_DA)) // text may be scrolled down from up
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
147 #define T_DB (TERM_STR(KS_DB)) // text may be scrolled up from down
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
148 #define T_VI (TERM_STR(KS_VI)) // cursor invisible
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
149 #define T_VE (TERM_STR(KS_VE)) // cursor visible
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
150 #define T_VS (TERM_STR(KS_VS)) // cursor very visible (blink)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
151 #define T_CVS (TERM_STR(KS_CVS)) // cursor normally visible (no blink)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
152 #define T_CSH (TERM_STR(KS_CSH)) // cursor shape
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
153 #define T_CRC (TERM_STR(KS_CRC)) // request cursor blinking
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
154 #define T_CRS (TERM_STR(KS_CRS)) // request cursor style
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
155 #define T_ME (TERM_STR(KS_ME)) // normal mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
156 #define T_MR (TERM_STR(KS_MR)) // reverse mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
157 #define T_MD (TERM_STR(KS_MD)) // bold mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
158 #define T_SE (TERM_STR(KS_SE)) // normal mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
159 #define T_SO (TERM_STR(KS_SO)) // standout mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
160 #define T_CZH (TERM_STR(KS_CZH)) // italic mode start
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
161 #define T_CZR (TERM_STR(KS_CZR)) // italic mode end
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
162 #define T_UE (TERM_STR(KS_UE)) // exit underscore (underline) mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
163 #define T_US (TERM_STR(KS_US)) // underscore (underline) mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
164 #define T_UCE (TERM_STR(KS_UCE)) // exit undercurl mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
165 #define T_UCS (TERM_STR(KS_UCS)) // undercurl mode
29328
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 26177
diff changeset
166 #define T_USS (TERM_STR(KS_USS)) // double underline mode
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 26177
diff changeset
167 #define T_DS (TERM_STR(KS_DS)) // dotted underline mode
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 26177
diff changeset
168 #define T_CDS (TERM_STR(KS_CDS)) // dashed underline mode
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
169 #define T_STE (TERM_STR(KS_STE)) // exit strikethrough mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
170 #define T_STS (TERM_STR(KS_STS)) // strikethrough mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
171 #define T_MS (TERM_STR(KS_MS)) // save to move cur in reverse mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
172 #define T_CM (TERM_STR(KS_CM)) // cursor motion
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
173 #define T_SR (TERM_STR(KS_SR)) // scroll reverse (backward)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
174 #define T_CRI (TERM_STR(KS_CRI)) // cursor number of chars right
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
175 #define T_VB (TERM_STR(KS_VB)) // visual bell
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
176 #define T_KS (TERM_STR(KS_KS)) // put term in "keypad transmit" mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
177 #define T_KE (TERM_STR(KS_KE)) // out of "keypad transmit" mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
178 #define T_TI (TERM_STR(KS_TI)) // put terminal in termcap mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
179 #define T_CTI (TERM_STR(KS_CTI)) // put terminal in "raw" mode
31293
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
180 #define T_CRK (TERM_STR(KS_CRK)) // request keyboard protocol status
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
181 #define T_TE (TERM_STR(KS_TE)) // end of termcap mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
182 #define T_CTE (TERM_STR(KS_CTE)) // end of "raw" mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
183 #define T_BC (TERM_STR(KS_BC)) // backspace character
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
184 #define T_CCS (TERM_STR(KS_CCS)) // cur is relative to scroll region
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
185 #define T_CCO (TERM_STR(KS_CCO)) // number of colors
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
186 #define T_CSF (TERM_STR(KS_CSF)) // set foreground color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
187 #define T_CSB (TERM_STR(KS_CSB)) // set background color
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
188 #define T_XS (TERM_STR(KS_XS)) // standout not erased by overwriting
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
189 #define T_XN (TERM_STR(KS_XN)) // newline glitch
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
190 #define T_MB (TERM_STR(KS_MB)) // blink mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
191 #define T_CAF (TERM_STR(KS_CAF)) // set foreground color (ANSI)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
192 #define T_CAB (TERM_STR(KS_CAB)) // set background color (ANSI)
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20439
diff changeset
193 #define T_CAU (TERM_STR(KS_CAU)) // set underline color (ANSI)
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
194 #define T_LE (TERM_STR(KS_LE)) // cursor left
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
195 #define T_ND (TERM_STR(KS_ND)) // cursor right
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
196 #define T_CIS (TERM_STR(KS_CIS)) // set icon text start
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
197 #define T_CIE (TERM_STR(KS_CIE)) // set icon text end
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
198 #define T_TS (TERM_STR(KS_TS)) // set window title start
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
199 #define T_FS (TERM_STR(KS_FS)) // set window title end
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
200 #define T_CSC (TERM_STR(KS_CSC)) // set cursor color start
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
201 #define T_CEC (TERM_STR(KS_CEC)) // set cursor color end
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
202 #define T_CWP (TERM_STR(KS_CWP)) // set window position
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
203 #define T_CGP (TERM_STR(KS_CGP)) // get window position
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
204 #define T_CWS (TERM_STR(KS_CWS)) // window size
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
205 #define T_CSI (TERM_STR(KS_CSI)) // start insert mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
206 #define T_CEI (TERM_STR(KS_CEI)) // end insert mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
207 #define T_CSR (TERM_STR(KS_CSR)) // start replace mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
208 #define T_CRV (TERM_STR(KS_CRV)) // request version string
31672
9dc48932db8e patch 9.0.1168: code to enable/disable mouse is not from terminfo/termcap
Bram Moolenaar <Bram@vim.org>
parents: 31569
diff changeset
209 #define T_CXM (TERM_STR(KS_CXM)) // enable/disable mouse reporting
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
210 #define T_RFG (TERM_STR(KS_RFG)) // request foreground RGB
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
211 #define T_RBG (TERM_STR(KS_RBG)) // request background RGB
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
212 #define T_OP (TERM_STR(KS_OP)) // original color pair
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
213 #define T_U7 (TERM_STR(KS_U7)) // request cursor position
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
214 #define T_8F (TERM_STR(KS_8F)) // set foreground color (RGB)
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
215 #define T_8B (TERM_STR(KS_8B)) // set background color (RGB)
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20439
diff changeset
216 #define T_8U (TERM_STR(KS_8U)) // set underline color (RGB)
18753
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
217 #define T_BE (TERM_STR(KS_CBE)) // enable bracketed paste mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
218 #define T_BD (TERM_STR(KS_CBD)) // disable bracketed paste mode
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
219 #define T_CST (TERM_STR(KS_CST)) // save window title
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
220 #define T_CRT (TERM_STR(KS_CRT)) // restore window title
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
221 #define T_SSI (TERM_STR(KS_SSI)) // save icon text
6e3dc2d630c2 patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
222 #define T_SRI (TERM_STR(KS_SRI)) // restore icon text
23606
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
223 #define T_FD (TERM_STR(KS_FD)) // disable focus event tracking
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
224 #define T_FE (TERM_STR(KS_FE)) // enable focus event tracking
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225
20439
d4b2a8675b78 patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Bram Moolenaar <Bram@vim.org>
parents: 20437
diff changeset
226 typedef enum {
d4b2a8675b78 patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Bram Moolenaar <Bram@vim.org>
parents: 20437
diff changeset
227 TMODE_COOK, // terminal mode for external cmds and Ex mode
d4b2a8675b78 patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Bram Moolenaar <Bram@vim.org>
parents: 20437
diff changeset
228 TMODE_SLEEP, // terminal mode for sleeping (cooked but no echo)
d4b2a8675b78 patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Bram Moolenaar <Bram@vim.org>
parents: 20437
diff changeset
229 TMODE_RAW, // terminal mode for Normal and Insert mode
d4b2a8675b78 patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Bram Moolenaar <Bram@vim.org>
parents: 20437
diff changeset
230 TMODE_UNKNOWN // after executing a shell
d4b2a8675b78 patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Bram Moolenaar <Bram@vim.org>
parents: 20437
diff changeset
231 } tmode_T;