Module: wine Branch: master Commit: 853d4343dba89b8df47d4f21f2170b52fcea1fa1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=853d4343dba89b8df47d4f21f2...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Jun 11 17:54:44 2015 +0200
msvcr: Add _ungetch_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 | 17 +++++++++++++---- 6 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 002ed36..194554b 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1410,7 +1410,7 @@ @ stub _umask_s @ cdecl _ungetc_nolock(long ptr) MSVCRT__ungetc_nolock @ cdecl _ungetch(long) -@ stub _ungetch_nolock +@ cdecl _ungetch_nolock(long) @ cdecl _ungetwc_nolock(long ptr) MSVCRT__ungetwc_nolock @ stub _ungetwch @ stub _ungetwch_nolock diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 7b06c5f..9114632 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1768,7 +1768,7 @@ @ stub _umask_s @ cdecl _ungetc_nolock(long ptr) MSVCRT__ungetc_nolock @ cdecl _ungetch(long) -@ stub _ungetch_nolock +@ cdecl _ungetch_nolock(long) @ cdecl _ungetwc_nolock(long ptr) MSVCRT__ungetwc_nolock @ stub _ungetwch @ stub _ungetwch_nolock diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 64eb2f5..9537d79 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1782,7 +1782,7 @@ @ stub _umask_s @ cdecl _ungetc_nolock(long ptr) MSVCRT__ungetc_nolock @ cdecl _ungetch(long) -@ stub _ungetch_nolock +@ cdecl _ungetch_nolock(long) @ cdecl _ungetwc_nolock(long ptr) MSVCRT__ungetwc_nolock @ stub _ungetwch @ stub _ungetwch_nolock diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 0bef364..00f7ab2 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1090,7 +1090,7 @@ @ stub _umask_s @ cdecl _ungetc_nolock(long ptr) MSVCRT__ungetc_nolock @ cdecl _ungetch(long) -@ stub _ungetch_nolock +@ cdecl _ungetch_nolock(long) @ cdecl _ungetwc_nolock(long ptr) MSVCRT__ungetwc_nolock @ stub _ungetwch @ stub _ungetwch_nolock diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index fafed02..9384a3f 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1065,7 +1065,7 @@ @ stub _umask_s @ cdecl _ungetc_nolock(long ptr) MSVCRT__ungetc_nolock @ cdecl _ungetch(long) -@ stub _ungetch_nolock +@ cdecl _ungetch_nolock(long) @ cdecl _ungetwc_nolock(long ptr) MSVCRT__ungetwc_nolock @ stub _ungetwch @ stub _ungetwch_nolock diff --git a/dlls/msvcrt/console.c b/dlls/msvcrt/console.c index ed8b728..0acaa03 100644 --- a/dlls/msvcrt/console.c +++ b/dlls/msvcrt/console.c @@ -280,19 +280,28 @@ char* CDECL _cgets(char* str) }
/********************************************************************* - * _ungetch (MSVCRT.@) + * _ungetch_nolock (MSVCRT.@) */ -int CDECL _ungetch(int c) +int CDECL _ungetch_nolock(int c) { int retval = MSVCRT_EOF; - LOCK_CONSOLE; if (c != MSVCRT_EOF && __MSVCRT_console_buffer == MSVCRT_EOF) retval = __MSVCRT_console_buffer = c; - UNLOCK_CONSOLE; return retval; }
/********************************************************************* + * _ungetch (MSVCRT.@) + */ +int CDECL _ungetch(int c) +{ + LOCK_CONSOLE; + c = _ungetch_nolock(c); + UNLOCK_CONSOLE; + return c; +} + +/********************************************************************* * _kbhit (MSVCRT.@) */ int CDECL _kbhit(void)