0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.2.3892: when modifyOtherKeys is used CTRL-C is not recognized

Problem:    When modifyOtherKeys is used CTRL-C is not recognized.
Solution:   Check for uppercase C as well, fix minimum length.
This commit is contained in:
Bram Moolenaar
2021-12-25 15:13:18 +00:00
parent 7f4a628efe
commit 35cfd793aa
2 changed files with 12 additions and 5 deletions

View File

@@ -1028,22 +1028,27 @@ fill_input_buf(int exit_on_error UNUSED)
len + unconverted, INBUFLEN - inbufcount,
rest == NULL ? &rest : NULL, &restlen);
}
while (len-- > 0)
while (len > 0)
{
// If a CTRL-C was typed, remove it from the buffer and set
// got_int. Also recognize CTRL-C with modifyOtherKeys set, in two
// forms.
// got_int. Also recognize CTRL-C with modifyOtherKeys set, lower
// and upper case, in two forms.
if (ctrl_c_interrupts && (inbuf[inbufcount] == 3
|| (len >= 10 && STRNCMP(inbuf + inbufcount,
"\033[27;5;99~", 10) == 0)
|| (len >= 10 && STRNCMP(inbuf + inbufcount,
"\033[27;5;67~", 10) == 0)
|| (len >= 7 && STRNCMP(inbuf + inbufcount,
"\033[99;5u", 7) == 0)))
"\033[99;5u", 7) == 0)
|| (len >= 7 && STRNCMP(inbuf + inbufcount,
"\033[67;5u", 7) == 0)))
{
// remove everything typed before the CTRL-C
mch_memmove(inbuf, inbuf + inbufcount, (size_t)(len + 1));
mch_memmove(inbuf, inbuf + inbufcount, (size_t)(len));
inbufcount = 0;
got_int = TRUE;
}
--len;
++inbufcount;
}
}

View File

@@ -749,6 +749,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3892,
/**/
3891,
/**/