forked from aniani/vim
		
	patch 8.2.0647: MS-Windows: repeat count for events was not used
Problem: MS-Windows: repeat count for events was not used. Solution: Check the repeat count. (Nobuhiro Takasaki, closes #5989)
This commit is contained in:
		| @@ -307,6 +307,7 @@ read_console_input( | |||||||
|     int head; |     int head; | ||||||
|     int tail; |     int tail; | ||||||
|     int i; |     int i; | ||||||
|  |     static INPUT_RECORD s_irPseudo; | ||||||
|  |  | ||||||
|     if (nLength == -2) |     if (nLength == -2) | ||||||
| 	return (s_dwMax > 0) ? TRUE : FALSE; | 	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]; |     *lpBuffer = s_irCache[s_dwIndex]; | ||||||
|     if (!(nLength == -1 || nLength == -2) && ++s_dwIndex >= s_dwMax) |     if (!(nLength == -1 || nLength == -2) && ++s_dwIndex >= s_dwMax) | ||||||
| 	s_dwMax = 0; | 	s_dwMax = 0; | ||||||
|   | |||||||
| @@ -746,6 +746,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     647, | ||||||
| /**/ | /**/ | ||||||
|     646, |     646, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user