# HG changeset patch # User Bram Moolenaar # Date 1606571104 -3600 # Node ID b68313ee700276c35a45acb316ccd8b006718a5d # Parent ec69d87aba978b2b4c75ccfbada1dde25cb3119b patch 8.2.2062: does not handle CTRL-V Commit: https://github.com/vim/vim/commit/4a44120e3dc1d40dd7109658afd5e078360b1d8f Author: Bram Moolenaar Date: Sat Nov 28 14:43:26 2020 +0100 patch 8.2.2062: does not handle CTRL-V Problem: does not handle CTRL-V. Solution: Call get_literal() after encountering CTRL-V. (closes https://github.com/vim/vim/issues/7387) diff --git a/src/getchar.c b/src/getchar.c --- a/src/getchar.c +++ b/src/getchar.c @@ -3675,6 +3675,14 @@ getcmdkeycmd( } c1 = TO_SPECIAL(c1, c2); } + if (c1 == Ctrl_V) + { + // CTRL-V is followed by octal, hex or other characters, reverses + // what AppendToRedobuffLit() does. + no_reduce_keys = TRUE; // don't merge modifyOtherKeys + c1 = get_literal(); + no_reduce_keys = FALSE; + } if (got_int) aborted = TRUE; diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim --- a/src/testdir/test_mapping.vim +++ b/src/testdir/test_mapping.vim @@ -972,6 +972,11 @@ func Test_map_cmdkey() unmap unmap! %bw! + + " command line ending in "0" is handled without errors + onoremap ix eval 0 + call feedkeys('dix.', 'xt') + ounmap ix endfunc " text object enters visual mode diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2062, +/**/ 2061, /**/ 2060,