| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
Severe memory leak observed on gnome-terminal 3.26.2 VTE 0.50.2 when
colon-delimited RGB sequences are used.
closes #7573
|
| |
|
|
|
|
|
| |
Anything claiming to be an xterm gets DECSCUSR. This is the only
reasonable choice unless/until we get more reliable detection (#7490).
ref #6997
closes #7550
|
| |
|
|
|
|
|
|
|
| |
...in order to retrieve highlights.
Added test/functional/api/highlight_spec.lua
HL_NORMAL is not really a good name, since it's more like an empty attribute than the normal's one.
If one pays attention, syn_cterm_attr2entry is never called with attr=0 because it's always special cased before.
I suggest in subsequent PRs we remove the ATTR_OFF and just insert an EMPTY ATTR/RESET_ATTR/UNINITIALIZED for id 0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As of unibilium 1.2.1, directly manipulating unibi_var_t is deprecated.
../src/nvim/tui/tui.c: In function 'update_attrs':
../src/nvim/tui/tui.c:321:7: warning: 'i' is deprecated: use unibi_var_from_num or unibi_num_from_var instead [-Wdeprecated-declarations]
data->params[0].i = (fg >> 16) & 0xff; // red
^~~~
In file included from ../src/nvim/tui/tui.c:12:0:
/usr/include/unibilium.h:632:9: note: declared here
int i UNIBI_DEPRECATED("use unibi_var_from_num or unibi_num_from_var instead");
^
All use should go through unibi_{num,str}_from_var and
unibi_var_from_{num,str}. Wrap access of unibi_var_t behind a new
UNIBI_SET_NUM_VAR macro which uses the new functions when they're
available.
|
| |
|
|
|
| |
closes #4840
closes #6164
|
| |
|
| |
closes #7235
|
| |
|
|
|
|
|
|
| |
iTerm2 got its own entry in Thomas Dickey's terminfo.src on 2017-08-16.
Make sure that the new entry is handled in the same way as the old entry.
closes #7209
closes #7214
|
| |
|
|
|
|
|
|
| |
When using an index returned by unibi_add_ext_str() we should
always use unibi_get_ext_str() and not rely on the index being
lower than unibi_string_begin_.
Closes #7206
|
| |
|
|
|
|
|
|
|
|
| |
Fix linuxvt cursor shape codes
Fix konsole cursor_shapes (even when inside tmux)
Do not trust old VTE terminal lies
Closes #6978
Closes #7002
Closes #7049
|
| |
|
|
|
|
|
|
| |
32396b5879b429def1c48948069c55366d41b9be add length checks to
TERMINAL_FAMILY/STARTS_WITH to ensure memcmp() wouldn't read past the
end of the string. However, "term" was copy/pasted from TERMINAL_FAMILY
so STARTS_WITH() was unnecessarily reading the, potentially NULL, term
variable.
|
| |
|
|
| |
Closes #7041
|
| | |
|
| |
|
|
|
|
|
| |
* Do not guard true color support with white list
* Remove ext_bool (it is unused)
Closes #7003
|
| | |
|
| |
|
|
|
|
|
| |
The libvte test was too agressive, and is reduced to only triggering
when it is libvte 0.36 AND a gnome or xterm terminal type is used.
Contrastingly, tmux was not on the list at all and now is.
|
| | |
|
| |
|
|
| |
Per warnings about house style from automated tools.
|
| |
|
|
|
|
|
|
| |
The terminfo doco explicitly states that it covers the case where the
terminal is in application cursor/keypad (i.e. "keypad transmit") mode,
and not where it is in normal cursor/keypad (i.e. "keypad local") mode.
Full screen applications like nvim must switch to and from keypad
transmit mode when expecting the control sequences given by terminfo.
|
| |
|
|
| |
Per warnings about house style from automated tools.
|
| |
|
|
|
|
| |
This fixes a test failure caused by dfaecb25f6a9a94f29a38d9f2d24a579b3dff5f
not tracking what the current visibility is and whether it matches the
current business state.
|
| |
|
|
|
|
| |
When higher layers flush the TUI layer output buffer, but there is
nothing in the buffer to flush, no longer does the TUI layer write out
unnecessary cnorm/civis sequences surrounding that nothing.
|
| |
|
|
|
| |
For the linux terminal type apply the same fixup to the terminfo civis
string that is applied to the cnorm string.
|
| |
|
|
|
|
|
|
|
|
|
| |
This is a new convention pioneered by tmux. It does not do much for
nvim; since nvim always looks to see whether it should be making up
"setrgbf" and "setrgbb" capabilities. But it is a way for terminfo to
force this, irrespective of the hardwired list in the code, for more
terminal types. On the gripping hand, updating terminfo descriptions to
actually have "setrgbf" and "setrgbb" capabilities so that nvim never
has to try to invent them in the first place, is as good if not better
an approach for overriding what is baked into the code.
|
| |
|
|
|
| |
Use the terminfo set_attribute capability to set multiple attributes in one
control sequence, if it is available.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From observation, there are several different possible behaviours:
1. Deferred wrap like a real DEC VT. The cursor stays visible in the last
column, and CUB is calculated relative to that column.
Examples: xterm, Unicode rxvt, PuTTY, nosh console-terminal-emulator,
FreeBSD kernel's built-in emulator, Linux's built-in emulator
2. Deferred wrap like a real DEC VT. CUB is calculated relative to the last
column. But the cursor is invisible.
Examples: emulators using newer libvte
3. Non-deferred wrap. The cursor has already wrapped to the next line and CUB
does not wrap back.
Examples: cygwin, Interix
4. Non-deferred wrap that acts like deferred wrap. The cursor has already
visibly wrapped to the next line, but CUB can wrap back around the left
margin.
Examples: Konsole
5. Deferred wrap with visibly out of bounds cursor. The cursor visibly moves
outwith the screen boundaries. CUB is calculated relative to a cursor
column that has overflowed the end of the screen grid array.
Examples: iTerm2
6. Deferred wrap with invisibly out of bounds cursor. CUB is calculated
relative to a cursor column that has overflowed the end of the screen grid
array. And the cursor is invisible.
Examples: emulators using older libvte
In many cases, nvim does not have enough information to know which behaviour
the terminal will exhibit, and thus the correct amount of CUB to issue.
|
| |
|
|
| |
Alongside interix.
|
| | |
|
| |
|
|
|
| |
Also enable italics on Konsole when it is falsely claiming to be xterm.
Also note the reasons for some of the patcher terminfo patches.
|
| | |
|
| |
|
|
|
|
| |
Partly undo 8ab08a65ba3bc9a44741a2ec9aa81fbcc77467fb. Further testing
by Enrico Ghirardi suggests limiting the non-deferred automatic wrap to
only the bottom line, whose rightmost column is not printed for iTerm.
|
| |
|
|
|
| |
* Don't use &data->grid when we already have grid .
* Consolidate into a single assignment to the default_attr flag.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
They are now in their own nvim/tui/terminfo.c file.
Also turn the TERMINAL_FAMILY macro into a function. Use the terminfo_
prefix for its name as other parts of the program are unlikely to want
that namespace, and the prefix is already used for some other TUI
functions.
|
| |
|
|
|
| |
Terminals that do not defer automatic right margin wrap cannot print
characters in the bottom right corner without immediately scrolling.
|
| |
|
|
|
|
| |
Testing by Enrico Ghirardi and review of the source indicates that
iTerm2 is a second terminal emulator that does not defer automatic wrap
at the right margin.
|
| | |
|
| |
|
|
| |
Reverse the change in c11c60325a2baba94abe6bdfa1c11afe28c16661.
|
| | |
|
| |
|
|
|
|
|
|
| |
PM...ST actually sends the string to screen's message area. Sending the
string to the status line requires a different control sequence peculiar to
screen.
Also make iTerm2 SGR 38/48 consistent.
|
| |
|
|
|
| |
Also slightly refactor the way in which GNOME/MATE Terminal pretending to be
xterm is detected.
|
| | |
|
| |
|
|
|
| |
They both can handle SGR control sequences in the form set out in
ISO 8613-6:1994/ITU T.416:1993.
|
| |
|
|
|
| |
The terminfo commentary states that these are not standalone
entries suitable for end-use.
|
| |
|
|
| |
Also comment and augment some terminal colour tests.
|
| |
|
|
|
|
|
| |
The Interix termcap entry is missing the carriage_return capability which nvim
relies upon. And Interix is one of the few terminal emulators that does not
defer automatic wrap at the right margin, which is now accounted for when
moving the cursor left and when outputting whole lines at a time.
|
| | |
|
| |
|
|
|
| |
Using the right unibilium query function then revealed a latent NULL pointer
problem.
|
| |
|
|
|
| |
Using the wrong unibilium query function just happened to work with the
various terminfo records used in local testing.
|
| |
|
|
| |
Follows on from fcf0d13f48bffbd41749069ce383d01153dd960c.
|