summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-12-25 15:13:18 +0000
committerBram Moolenaar <Bram@vim.org>2021-12-25 15:13:18 +0000
commit35cfd793aad7c4bfba4a9bedf5c435c44e4293d0 (patch)
tree1e6f77e8f5350e89c3538eec2fb077c2ae40571f
parent7f4a628efefd893a3cad3a1fdde340c98360f705 (diff)
downloadvim-git-8.2.3892.tar.gz
patch 8.2.3892: when modifyOtherKeys is used CTRL-C is not recognizedv8.2.3892
Problem: When modifyOtherKeys is used CTRL-C is not recognized. Solution: Check for uppercase C as well, fix minimum length.
-rw-r--r--src/ui.c15
-rw-r--r--src/version.c2
2 files changed, 12 insertions, 5 deletions
diff --git a/src/ui.c b/src/ui.c
index db49cc870..b37df4981 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -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)
|| (len >= 7 && STRNCMP(inbuf + inbufcount,
- "\033[99;5u", 7) == 0)))
+ "\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;
}
}
diff --git a/src/version.c b/src/version.c
index 6d23fa8fc..bca7604dc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3892,
+/**/
3891,
/**/
3890,