Mercurial > vim
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 |
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 | 2 * |
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 /* | |
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 | 19 */ |
20 typedef unsigned char char_u; | |
21 #endif | |
22 | |
23 /* | |
24 * Index of the termcap codes in the term_strings array. | |
25 */ | |
26 enum SpecialKey | |
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 | 118 }; |
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 | 121 |
122 /* | |
123 * the terminal capabilities are stored in this array | |
124 * IMPORTANT: When making changes, note the following: | |
125 * - there should be an entry for each code in the builtin termcaps | |
126 * - there should be an option for each code in option.c | |
127 * - there should be code in term.c to obtain the value from the termcap | |
128 */ | |
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 | 131 |
132 /* | |
133 * strings used for terminal | |
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 | 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; |