summaryrefslogtreecommitdiff
path: root/src/ex_getln.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-12-03 19:54:42 +0100
committerBram Moolenaar <Bram@vim.org>2020-12-03 19:54:42 +0100
commit0684e36a7ee0743f2889698fb8e0e14f7acae423 (patch)
tree7a1f23d46e7e1fa94329d7da561bc4a152b7750f /src/ex_getln.c
parentaf0df47a7671a39f2cde950587ba48800188bfb9 (diff)
downloadvim-git-0684e36a7ee0743f2889698fb8e0e14f7acae423.tar.gz
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.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 80a920486..54924c188 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;