diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-12-03 19:54:42 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-12-03 19:54:42 +0100 |
commit | 0684e36a7ee0743f2889698fb8e0e14f7acae423 (patch) | |
tree | 7a1f23d46e7e1fa94329d7da561bc4a152b7750f /src/ex_getln.c | |
parent | af0df47a7671a39f2cde950587ba48800188bfb9 (diff) |
patch 8.2.2084: CTRL-V U doesn't work to enter a Unicode characterv8.2.2084
Problem: CTRL-V U doesn't work to enter a Unicode character when
modifyOtherKeys is effective. (Ken Takata)
Solution: Add a flag to get_literal() for the shift key. (closes #7413)
Diffstat (limited to 'src/ex_getln.c')
-rw-r--r-- | src/ex_getln.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index 80a9204869..54924c1889 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -2206,13 +2206,14 @@ getcmdline_int( case Ctrl_V: case Ctrl_Q: { - int prev_mod_mask = mod_mask; - ignore_drag_release = TRUE; putcmdline('^', TRUE); - no_reduce_keys = TRUE; // don't merge modifyOtherKeys - c = get_literal(); // get next (two) character(s) - no_reduce_keys = FALSE; + + // Get next (two) character(s). Do not change any + // modifyOtherKeys ESC sequence to a normal key for + // CTRL-SHIFT-V. + c = get_literal(mod_mask & MOD_MASK_SHIFT); + do_abbr = FALSE; // don't do abbreviation now extra_char = NUL; // may need to remove ^ when composing char was typed @@ -2223,13 +2224,6 @@ getcmdline_int( msg_putchar(' '); cursorcmd(); } - - if ((c == ESC || c == CSI) - && !(prev_mod_mask & MOD_MASK_SHIFT)) - // Using CTRL-V: Change any modifyOtherKeys ESC - // sequence to a normal key. Don't do this for - // CTRL-SHIFT-V. - c = decodeModifyOtherKeys(c); } break; |