Module: wine Branch: master Commit: eb9e00857a7a2f6caedbc6041454ae18e7e59052 URL: http://source.winehq.org/git/wine.git/?a=commit;h=eb9e00857a7a2f6caedbc60414...
Author: Piotr Caban piotr@codeweavers.com Date: Sun Jun 14 14:30:51 2015 +0200
msvcrt: Write directly to the console in _putwch.
---
dlls/msvcr100/msvcr100.spec | 4 ++-- dlls/msvcr110/msvcr110.spec | 4 ++-- dlls/msvcr120/msvcr120.spec | 4 ++-- dlls/msvcr70/msvcr70.spec | 2 +- dlls/msvcr71/msvcr71.spec | 2 +- dlls/msvcr80/msvcr80.spec | 4 ++-- dlls/msvcr90/msvcr90.spec | 4 ++-- dlls/msvcrt/console.c | 22 ++++++++++++++++++++++ dlls/msvcrt/file.c | 8 -------- dlls/msvcrt/msvcrt.spec | 2 +- 10 files changed, 35 insertions(+), 21 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 194554b..3e4badc 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1239,8 +1239,8 @@ @ cdecl _putenv_s(str str) @ cdecl _putw(long ptr) MSVCRT__putw @ cdecl _putwc_nolock(long ptr) MSVCRT__fputwc_nolock -@ cdecl _putwch(long) MSVCRT__putwch -@ stub _putwch_nolock +@ cdecl _putwch(long) +@ cdecl _putwch_nolock(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 9114632..25efacd 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1597,8 +1597,8 @@ @ cdecl _putenv_s(str str) @ cdecl _putw(long ptr) MSVCRT__putw @ cdecl _putwc_nolock(long ptr) MSVCRT__fputwc_nolock -@ cdecl _putwch(long) MSVCRT__putwch -@ stub _putwch_nolock +@ cdecl _putwch(long) +@ cdecl _putwch_nolock(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 9537d79..148b378 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1605,8 +1605,8 @@ @ cdecl _putenv_s(str str) @ cdecl _putw(long ptr) MSVCRT__putw @ cdecl _putwc_nolock(long ptr) MSVCRT__fputwc_nolock -@ cdecl _putwch(long) MSVCRT__putwch -@ stub _putwch_nolock +@ cdecl _putwch(long) +@ cdecl _putwch_nolock(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec index c494ce0..51415a9 100644 --- a/dlls/msvcr70/msvcr70.spec +++ b/dlls/msvcr70/msvcr70.spec @@ -495,7 +495,7 @@ @ cdecl _putch(long) @ cdecl _putenv(str) @ cdecl _putw(long ptr) MSVCRT__putw -@ cdecl _putwch(long) MSVCRT__putwch +@ cdecl _putwch(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec index f8a52f1..a28725b 100644 --- a/dlls/msvcr71/msvcr71.spec +++ b/dlls/msvcr71/msvcr71.spec @@ -490,7 +490,7 @@ @ cdecl _putch(long) @ cdecl _putenv(str) @ cdecl _putw(long ptr) MSVCRT__putw -@ cdecl _putwch(long) MSVCRT__putwch +@ cdecl _putwch(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 00f7ab2..3c1bb87 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -914,8 +914,8 @@ @ cdecl _putenv_s(str str) @ cdecl _putw(long ptr) MSVCRT__putw @ cdecl _putwc_nolock(long ptr) MSVCRT__fputwc_nolock -@ cdecl _putwch(long) MSVCRT__putwch -@ stub _putwch_nolock +@ cdecl _putwch(long) +@ cdecl _putwch_nolock(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 9384a3f..547f668 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -889,8 +889,8 @@ @ cdecl _putenv_s(str str) @ cdecl _putw(long ptr) MSVCRT__putw @ cdecl _putwc_nolock(long ptr) MSVCRT__fputwc_nolock -@ cdecl _putwch(long) MSVCRT__putwch -@ stub _putwch_nolock +@ cdecl _putwch(long) +@ cdecl _putwch_nolock(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read diff --git a/dlls/msvcrt/console.c b/dlls/msvcrt/console.c index 3da7fb8..d6bd40e 100644 --- a/dlls/msvcrt/console.c +++ b/dlls/msvcrt/console.c @@ -218,6 +218,28 @@ int CDECL _putch(int c) }
/********************************************************************* + * _putwch_nolock (MSVCR80.@) + */ +MSVCRT_wchar_t CDECL _putwch_nolock(MSVCRT_wchar_t c) +{ + DWORD count; + if (WriteConsoleW(MSVCRT_console_out, &c, 1, &count, NULL) && count==1) + return c; + return MSVCRT_WEOF; +} + +/********************************************************************* + * _putwch (MSVCRT.@) + */ +MSVCRT_wchar_t CDECL _putwch(MSVCRT_wchar_t c) +{ + LOCK_CONSOLE; + c = _putwch_nolock(c); + UNLOCK_CONSOLE; + return c; +} + +/********************************************************************* * _getche_nolock (MSVCR80.@) */ int CDECL _getche_nolock(void) diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 1069cf7..241c337 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -4631,14 +4631,6 @@ int CDECL MSVCRT_putchar(int c) }
/********************************************************************* - * _putwch (MSVCRT.@) - */ -int CDECL MSVCRT__putwch(int c) -{ - return MSVCRT_fputwc(c, MSVCRT_stdout); -} - -/********************************************************************* * puts (MSVCRT.@) */ int CDECL MSVCRT_puts(const char *s) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 1f2a8ce..46cbf08 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -861,7 +861,7 @@ @ cdecl _putenv(str) @ cdecl _putenv_s(str str) @ cdecl _putw(long ptr) MSVCRT__putw -@ cdecl _putwch(long) MSVCRT__putwch +@ cdecl _putwch(long) @ cdecl _putws(wstr) MSVCRT__putws # extern _pwctype @ cdecl _read(long ptr long) MSVCRT__read