diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-03-20 20:48:49 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-03-20 20:48:49 +0100 |
commit | 9645e2d9fc8a591f1db30383caccf71d40e0810c (patch) | |
tree | 8b8d4d8374a9c5d2f0f0ce71893d75cfc427f4bc /src/ui.c | |
parent | f1ec378b014efb9897422c40369a6462163a512a (diff) | |
download | vim-git-9645e2d9fc8a591f1db30383caccf71d40e0810c.tar.gz |
patch 8.2.0421: interrupting with CTRL-C does not always workv8.2.0421
Problem: Interrupting with CTRL-C does not always work.
Solution: Recognize CTRL-C while modifyOtherKeys is set.
Diffstat (limited to 'src/ui.c')
-rw-r--r-- | src/ui.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -2280,7 +2280,7 @@ fill_input_buf(int exit_on_error UNUSED) for (try = 0; try < 100; ++try) { size_t readlen = (size_t)((INBUFLEN - inbufcount) - / input_conv.vc_factor); + / input_conv.vc_factor); # ifdef VMS len = vms_read((char *)inbuf + inbufcount, readlen); # else @@ -2344,9 +2344,12 @@ fill_input_buf(int exit_on_error UNUSED) while (len-- > 0) { /* - * if a CTRL-C was typed, remove it from the buffer and set got_int + * If a CTRL-C was typed, remove it from the buffer and set + * got_int. Also recognize CTRL-C with modifyOtherKeys set. */ - if (inbuf[inbufcount] == 3 && ctrl_c_interrupts) + if (ctrl_c_interrupts && (inbuf[inbufcount] == 3 + || (len >= 9 && STRNCMP(inbuf + inbufcount, + "\e[27;5;99~", 10) == 0))) { // remove everything typed before the CTRL-C mch_memmove(inbuf, inbuf + inbufcount, (size_t)(len + 1)); |