summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-12-05 15:14:46 +0100
committerBram Moolenaar <Bram@vim.org>2017-12-05 15:14:46 +0100
commitfeeb4d0901c7b16958e8f02ffcdac83b605b0b43 (patch)
tree17f37212c7978f7e3c31a936aff77e078ba7c8e1 /src
parent1eca6f13d62d2201f3bf0e83400c2e3de7df3951 (diff)
downloadvim-git-feeb4d0901c7b16958e8f02ffcdac83b605b0b43.tar.gz
patch 8.0.1371: Shift-Insert doesn't always work in MS-Windows consolev8.0.1371
Problem: Shift-Insert doesn't always work in MS-Windows console. Solution: Handle K_NUL differently if the second character is more than one byte. (Yasuhiro Matsumoto, closes #2381)
Diffstat (limited to 'src')
-rw-r--r--src/os_win32.c15
-rw-r--r--src/version.c2
2 files changed, 14 insertions, 3 deletions
diff --git a/src/os_win32.c b/src/os_win32.c
index 22a2abc8f..d356c7ed6 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1816,9 +1816,18 @@ mch_inchar(
typeahead[typeaheadlen] = c;
if (ch2 != NUL)
{
- typeahead[typeaheadlen + n] = 3;
- typeahead[typeaheadlen + n + 1] = (char_u)ch2;
- n += 2;
+ if (c == K_NUL && (ch2 & 0xff00) != 0)
+ {
+ /* fAnsiKey with modifier keys */
+ typeahead[typeaheadlen + n] = (char_u)ch2;
+ n++;
+ }
+ else
+ {
+ typeahead[typeaheadlen + n] = 3;
+ typeahead[typeaheadlen + n + 1] = (char_u)ch2;
+ n += 2;
+ }
}
/* Use the ALT key to set the 8th bit of the character
diff --git a/src/version.c b/src/version.c
index d7f22b062..73b71d6f8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1371,
+/**/
1370,
/**/
1369,