diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-12-05 15:14:46 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-12-05 15:14:46 +0100 |
commit | feeb4d0901c7b16958e8f02ffcdac83b605b0b43 (patch) | |
tree | 17f37212c7978f7e3c31a936aff77e078ba7c8e1 /src/os_win32.c | |
parent | 1eca6f13d62d2201f3bf0e83400c2e3de7df3951 (diff) | |
download | vim-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/os_win32.c')
-rw-r--r-- | src/os_win32.c | 15 |
1 files changed, 12 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 |