Piotr Caban : msvcr: Add _getch_nolock implementation.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 12 07:36:12 CDT 2015


Module: wine
Branch: master
Commit: 3bd60974a9d6e7d16ae278824a40d1b5b58fcb5e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3bd60974a9d6e7d16ae278824a40d1b5b58fcb5e

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Jun 11 17:54:13 2015 +0200

msvcr: Add _getch_nolock implementation.

---

 dlls/msvcr100/msvcr100.spec |  2 +-
 dlls/msvcr110/msvcr110.spec |  2 +-
 dlls/msvcr120/msvcr120.spec |  2 +-
 dlls/msvcr80/msvcr80.spec   |  2 +-
 dlls/msvcr90/msvcr90.spec   |  2 +-
 dlls/msvcrt/console.c       | 19 +++++++++++++++----
 6 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 9b47401..6e404f2 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -890,7 +890,7 @@
 @ cdecl _get_wpgmptr(ptr)
 @ cdecl _getc_nolock(ptr) MSVCRT__fgetc_nolock
 @ cdecl _getch()
-@ stub _getch_nolock
+@ cdecl _getch_nolock()
 @ cdecl _getche()
 @ stub _getche_nolock
 @ cdecl _getcwd(str long) MSVCRT__getcwd
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 66ec34c..28de3ab 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1238,7 +1238,7 @@
 @ cdecl _get_wpgmptr(ptr)
 @ cdecl _getc_nolock(ptr) MSVCRT__fgetc_nolock
 @ cdecl _getch()
-@ stub _getch_nolock
+@ cdecl _getch_nolock()
 @ cdecl _getche()
 @ stub _getche_nolock
 @ cdecl _getcwd(str long) MSVCRT__getcwd
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 2a3a813..c8ba7f7 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1236,7 +1236,7 @@
 @ cdecl _get_wpgmptr(ptr)
 @ cdecl _getc_nolock(ptr) MSVCRT__fgetc_nolock
 @ cdecl _getch()
-@ stub _getch_nolock
+@ cdecl _getch_nolock()
 @ cdecl _getche()
 @ stub _getche_nolock
 @ cdecl _getcwd(str long) MSVCRT__getcwd
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index e3de8ac..1570805 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -564,7 +564,7 @@
 @ cdecl _get_wpgmptr(ptr)
 @ cdecl _getc_nolock(ptr) MSVCRT__fgetc_nolock
 @ cdecl _getch()
-@ stub _getch_nolock
+@ cdecl _getch_nolock()
 @ cdecl _getche()
 @ stub _getche_nolock
 @ cdecl _getcwd(str long) MSVCRT__getcwd
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 2de0526..cab5922 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -541,7 +541,7 @@
 @ cdecl _get_wpgmptr(ptr)
 @ cdecl _getc_nolock(ptr) MSVCRT__fgetc_nolock
 @ cdecl _getch()
-@ stub _getch_nolock
+@ cdecl _getch_nolock()
 @ cdecl _getche()
 @ stub _getche_nolock
 @ cdecl _getcwd(str long) MSVCRT__getcwd
diff --git a/dlls/msvcrt/console.c b/dlls/msvcrt/console.c
index 27c0ac2..82e8fb2 100644
--- a/dlls/msvcrt/console.c
+++ b/dlls/msvcrt/console.c
@@ -113,13 +113,12 @@ static const struct {unsigned vk; unsigned ch[4][2];} enh_map[] = {
 };
 
 /*********************************************************************
- *		_getch (MSVCRT.@)
+ *		_getch_nolock (MSVCR80.@)
  */
-int CDECL _getch(void)
+int CDECL _getch_nolock(void)
 {
   int retval = MSVCRT_EOF;
 
-  LOCK_CONSOLE;
   if (__MSVCRT_console_buffer != MSVCRT_EOF)
   {
     retval = __MSVCRT_console_buffer;
@@ -179,11 +178,23 @@ int CDECL _getch(void)
     if (mode)
       SetConsoleMode(MSVCRT_console_in, mode);
   }
-  UNLOCK_CONSOLE;
   return retval;
 }
 
 /*********************************************************************
+ *		_getch (MSVCRT.@)
+ */
+int CDECL _getch(void)
+{
+    int ret;
+
+    LOCK_CONSOLE;
+    ret = _getch_nolock();
+    UNLOCK_CONSOLE;
+    return ret;
+}
+
+/*********************************************************************
  *		_putch (MSVCRT.@)
  */
 int CDECL _putch(int c)




More information about the wine-cvs mailing list