diff options
author | Anton Sharonov <anton.sharonov@gmail.com> | 2024-04-14 20:02:24 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-04-14 20:02:50 +0200 |
commit | 49528da8a60f8fd38ca491d6ccec47dfccf5f23c (patch) | |
tree | 71fc7657638a759d09b611fd3804aa079a4d39fb /src/term.c | |
parent | 4052474a1bd2fe756bc7dc596d29d0d7581e35ae (diff) |
patch 9.1.0321: Garbled output on serial terminals with XON/XOFF flow controlv9.1.0321
Problem: When used terminal with XON/XOFF flow control, vim tries to
still make CTRL-S mapping available, which results in severe
screen corruption, especially on large redraws, and even
spurious inputs (John Tsiombikas)
Solution: Disallow CTRL-S mapping if such terminal is recognized.
Don't remove IXON from the bitmask inversion.
(Anton Sharonov)
*** When started like this:
TERM=vt420 vim
:set termcap
shows "t_xon=y"
map <C-S> :echo "abc"<CR>
does nothing (after <C-S> output freezes and subsequent <C-Q>
unfreezes it)
*** When started like this:
TERM=xterm vim
:set termcap
shows "t_xon="
map <C-S> :echo "abc"<CR>
works (after <C-S> one see "abc" string echo-ed)
fixes: #12674
closes: #14542
Signed-off-by: Anton Sharonov <anton.sharonov@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/term.c')
-rw-r--r-- | src/term.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/term.c b/src/term.c index 8aa86ce034..7e39b037c4 100644 --- a/src/term.c +++ b/src/term.c @@ -1798,6 +1798,8 @@ get_term_entries(int *height, int *width) T_DA = (char_u *)"y"; if ((T_UT == NULL || T_UT == empty_option) && tgetflag("ut") > 0) T_UT = (char_u *)"y"; + if ((T_XON == NULL || T_XON == empty_option) && tgetflag("xo") > 0) + T_XON = (char_u *)"y"; /* * get key codes |