diff options
author | Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.com> | 2017-05-24 21:36:52 +0100 |
---|---|---|
committer | Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.com> | 2017-06-03 18:53:27 +0100 |
commit | 3d8e0594e495c42dbdf3871ef3c3023e128f748c (patch) | |
tree | a9987e7a44517a6cde02471d8d552e5a4a49e23b /src/clint.py | |
parent | d65cff9de89936109bc25aec78dc11a16707fe50 (diff) | |
download | rneovim-3d8e0594e495c42dbdf3871ef3c3023e128f748c.tar.gz rneovim-3d8e0594e495c42dbdf3871ef3c3023e128f748c.tar.bz2 rneovim-3d8e0594e495c42dbdf3871ef3c3023e128f748c.zip |
tui: Split fix_terminfo() up and refactor.
There are now a few built-in terminfo entries, taken either from unibilium
or ncurses terminfo, for falling back upon when there is no terminfo database
or when it is missing stuff. In an ideal world, these would be in unibilium
itself.
The ultimate fallback, for no terminfo database and no built-in terminfo
record that matches the terminal type, is now the "ansi" terminal type; so
unknown terminal types are now considered to have at minimum the basic
ECMA-48 colour, motion, and editing capabilities.
The terminfo records are just blobs, raw images of the equivalent terminfo file
created with the od command. No longer are incomplete terminfo records built
up with code. These blobs are the full, real, records; already built.
The post-processing of the terminfo record, once found, is split into the
part where we fix known errors and deficiencies in terminfo, and the part
where we add extensions that we need that terminfo does not define
capabilities for. In an ideal world, the former would be a no-op.
No part of the TUI layer apart from these is aware of terminal type or has
conditional code based upon checking environment variables at runtime. It
is all pre-calculated and written into unibilium (or the TUIData object) at
initialization time.
This is fairly aggressive about turning on 256-colour and true colour support.
This also positively decodes genuine xterm for turning on DECSLRM use, rather
than assuming that anything that says that it is xterm is actually xterm,
fixing scrolling problems with vertically split windows.
Diffstat (limited to 'src/clint.py')
0 files changed, 0 insertions, 0 deletions