# HG changeset patch # User Christian Brabandt # Date 1505847604 -7200 # Node ID 93a849230c1cffffdcef5be64fc7defc205cf4ac # Parent 93c55991726cde993106902bed0e50f31be625a5 patch 8.0.1128: old xterm sends CTRL-X in response to t_RS commit https://github.com/vim/vim/commit/e22bbf65088a01b465918919782c19eb291f9cf0 Author: Bram Moolenaar Date: Tue Sep 19 20:47:16 2017 +0200 patch 8.0.1128: old xterm sends CTRL-X in response to t_RS Problem: Old xterm sends CTRL-X in response to t_RS. Solution: Only send t_RS for xterm 279 and later. Remove the workaround to ignore CTRL-X. diff --git a/src/term.c b/src/term.c --- a/src/term.c +++ b/src/term.c @@ -4580,9 +4580,12 @@ check_termcode( is_not_xterm = TRUE; /* Only request the cursor style if t_SH and t_RS are - * set. Not for Terminal.app, it can't handle t_RS, it + * set. Only supported properly by xterm since version + * 279 (otherwise it returns 0x18). + * Not for Terminal.app, it can't handle t_RS, it * echoes the characters to the screen. */ if (rcs_status == STATUS_GET + && version >= 279 && !is_not_xterm && *T_CSH != NUL && *T_CRS != NUL) @@ -4729,11 +4732,6 @@ check_termcode( key_name[0] = (int)KS_EXTRA; key_name[1] = (int)KE_IGNORE; slen = i + 1 + (tp[i] == ESC); - if (rcs_status == STATUS_SENT - && slen < len && tp[slen] == 0x18) - /* Some older xterm send 0x18 for the T_RS request, - * skip it here. */ - ++slen; # ifdef FEAT_EVAL set_vim_var_string(VV_TERMRGBRESP, tp, slen); # endif @@ -4782,11 +4780,6 @@ check_termcode( key_name[0] = (int)KS_EXTRA; key_name[1] = (int)KE_IGNORE; slen = i + 1 + (tp[i] == ESC); - if (rcs_status == STATUS_SENT - && slen < len && tp[slen] == 0x18) - /* Some older xterm send 0x18 for the T_RS request, - * skip it here. */ - ++slen; break; } } @@ -5470,19 +5463,19 @@ check_termcode( /* * Avoid computing the difference between mouse_time * and orig_mouse_time for the first click, as the - * difference would be huge and would cause multiplication - * overflow. + * difference would be huge and would cause + * multiplication overflow. */ timediff = p_mouset; } else { timediff = (mouse_time.tv_usec - - orig_mouse_time.tv_usec) / 1000; + - orig_mouse_time.tv_usec) / 1000; if (timediff < 0) --orig_mouse_time.tv_sec; timediff += (mouse_time.tv_sec - - orig_mouse_time.tv_sec) * 1000; + - orig_mouse_time.tv_sec) * 1000; } orig_mouse_time = mouse_time; if (mouse_code == orig_mouse_code diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1128, +/**/ 1127, /**/ 1126,