summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-04-26 19:00:07 +0200
committerBram Moolenaar <Bram@vim.org>2020-04-26 19:00:07 +0200
commitbc970da80735bfd49c238cdf4bbc60c04dc12e0f (patch)
tree375a1e177a1287c3a3bd8889008ef16d5591bf6f
parent759d81549c1340185f0d92524c563bb37697ea88 (diff)
downloadvim-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.c14
-rw-r--r--src/version.c2
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,