changeset 5633:7db84aadd37a v7.4.163

updated for version 7.4.163 Problem: MS-Windows input doesn't work properly on Windows 7 and earlier. Solution: Add a check for Windows 8. (Yasuhiro Matsumoto)
author Bram Moolenaar <bram@vim.org>
date Wed, 05 Feb 2014 13:36:54 +0100
parents 2aca50f6f984
children 020a1e8fee2a
files src/os_win32.c src/version.c
diffstat 2 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -232,6 +232,8 @@ static int suppress_winsize = 1;	/* don'
 
 static char_u *exe_path = NULL;
 
+static BOOL win8_or_later = FALSE;
+
 /*
  * Version of ReadConsoleInput() that works with IME.
  * Works around problems on Windows 8.
@@ -252,6 +254,13 @@ read_console_input(
     static DWORD s_dwMax = 0;
     DWORD dwEvents;
 
+    if (!win8_or_later)
+    {
+	if (nLength == -1)
+	    return PeekConsoleInput(hInput, lpBuffer, 1, lpEvents);
+	return ReadConsoleInput(hInput, lpBuffer, 1, &dwEvents);
+    }
+
     if (s_dwMax == 0)
     {
 	if (nLength == -1)
@@ -617,6 +626,10 @@ PlatformId(void)
 
 	g_PlatformId = ovi.dwPlatformId;
 
+	if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion >= 2)
+		|| ovi.dwMajorVersion > 6)
+	    win8_or_later = TRUE;
+
 #ifdef HAVE_ACL
 	/*
 	 * Load the ADVAPI runtime if we are on anything
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    163,
+/**/
     162,
 /**/
     161,