diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-04-26 19:00:07 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-04-26 19:00:07 +0200 |
commit | bc970da80735bfd49c238cdf4bbc60c04dc12e0f (patch) | |
tree | 375a1e177a1287c3a3bd8889008ef16d5591bf6f | |
parent | 759d81549c1340185f0d92524c563bb37697ea88 (diff) | |
download | vim-git-bc970da80735bfd49c238cdf4bbc60c04dc12e0f.tar.gz |
patch 8.2.0647: MS-Windows: repeat count for events was not usedv8.2.0647
Problem: MS-Windows: repeat count for events was not used.
Solution: Check the repeat count. (Nobuhiro Takasaki, closes #5989)
-rw-r--r-- | src/os_win32.c | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/os_win32.c b/src/os_win32.c index 6b3286975..85efc5266 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -307,6 +307,7 @@ read_console_input( int head; int tail; int i; + static INPUT_RECORD s_irPseudo; if (nLength == -2) return (s_dwMax > 0) ? TRUE : FALSE; @@ -354,6 +355,19 @@ read_console_input( } } + if (s_irCache[s_dwIndex].EventType == KEY_EVENT) + { + if (s_irCache[s_dwIndex].Event.KeyEvent.wRepeatCount > 1) + { + s_irPseudo = s_irCache[s_dwIndex]; + s_irPseudo.Event.KeyEvent.wRepeatCount = 1; + s_irCache[s_dwIndex].Event.KeyEvent.wRepeatCount--; + *lpBuffer = s_irPseudo; + *lpEvents = 1; + return TRUE; + } + } + *lpBuffer = s_irCache[s_dwIndex]; if (!(nLength == -1 || nLength == -2) && ++s_dwIndex >= s_dwMax) s_dwMax = 0; diff --git a/src/version.c b/src/version.c index 16145f2d6..9323b1d09 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 647, +/**/ 646, /**/ 645, |