[PATCH 09/14] [Msvcrt*]: implemented _cputws

Eric Pouech eric.pouech at orange.fr
Tue Nov 2 16:03:28 CDT 2010




A+
---

 dlls/msvcr100/msvcr100.spec |    2 +-
 dlls/msvcr70/msvcr70.spec   |    2 +-
 dlls/msvcr71/msvcr71.spec   |    2 +-
 dlls/msvcr80/msvcr80.spec   |    2 +-
 dlls/msvcr90/msvcr90.spec   |    2 +-
 dlls/msvcrt/console.c       |   16 ++++++++++++++++
 dlls/msvcrt/msvcrt.spec     |    2 +-
 7 files changed, 22 insertions(+), 6 deletions(-)


diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 78d2d11..beb538f 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -551,7 +551,7 @@
 @ stub _cprintf_s
 @ stub _cprintf_s_l
 @ cdecl _cputs(str) msvcrt._cputs
-@ stub _cputws
+@ cdecl _cputws(wstr) msvcrt._cputws
 @ cdecl _creat(str long) msvcrt._creat
 @ cdecl _create_locale(long str) msvcrt._create_locale
 @ stub _crt_debugger_hook
diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec
index 7c6ef25..52156b7 100644
--- a/dlls/msvcr70/msvcr70.spec
+++ b/dlls/msvcr70/msvcr70.spec
@@ -261,7 +261,7 @@
 @ cdecl _copysign( double double ) msvcrt._copysign
 @ varargs _cprintf(str) msvcrt._cprintf
 @ cdecl _cputs(str) msvcrt._cputs
-@ stub _cputws
+@ cdecl _cputws(wstr) msvcrt._cputws
 @ cdecl _creat(str long) msvcrt._creat
 @ varargs _cscanf(str) msvcrt._cscanf
 @ cdecl _ctime64(ptr) msvcrt._ctime64
diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec
index 36ca881..33db3a6 100644
--- a/dlls/msvcr71/msvcr71.spec
+++ b/dlls/msvcr71/msvcr71.spec
@@ -256,7 +256,7 @@
 @ cdecl _copysign( double double ) msvcrt._copysign
 @ varargs _cprintf(str) msvcrt._cprintf
 @ cdecl _cputs(str) msvcrt._cputs
-@ stub _cputws
+@ cdecl _cputws(wstr) msvcrt._cputws
 @ cdecl _creat(str long) msvcrt._creat
 @ varargs _cscanf(str) msvcrt._cscanf
 @ cdecl _ctime64(ptr) msvcrt._ctime64
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index af83d53..c07cb58 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -390,7 +390,7 @@
 @ stub _cprintf_s
 @ stub _cprintf_s_l
 @ cdecl _cputs(str) msvcrt._cputs
-@ stub _cputws
+@ cdecl _cputws(wstr) msvcrt._cputws
 @ cdecl _creat(str long) msvcrt._creat
 @ cdecl _create_locale(long str) msvcrt._create_locale
 @ stub _crt_debugger_hook
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index c89fae9..f0e2af0 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -382,7 +382,7 @@
 @ stub _cprintf_s
 @ stub _cprintf_s_l
 @ cdecl _cputs(str) msvcrt._cputs
-@ stub _cputws
+@ cdecl _cputws(wstr) msvcrt._cputws
 @ cdecl _creat(str long) msvcrt._creat
 @ cdecl _create_locale(long str) msvcrt._create_locale
 @ stub _crt_debugger_hook
diff --git a/dlls/msvcrt/console.c b/dlls/msvcrt/console.c
index 268f6db..0411eb8 100644
--- a/dlls/msvcrt/console.c
+++ b/dlls/msvcrt/console.c
@@ -77,6 +77,22 @@ int CDECL _cputs(const char* str)
   return retval;
 }
 
+/*********************************************************************
+ *		_cputws (MSVCRT.@)
+ */
+int CDECL _cputws(const MSVCRT_wchar_t* str)
+{
+  DWORD count;
+  int retval = MSVCRT_EOF;
+
+  LOCK_CONSOLE;
+  if (WriteConsoleW(MSVCRT_console_out, str, lstrlenW(str), &count, NULL)
+      && count == 1)
+    retval = 0;
+  UNLOCK_CONSOLE;
+  return retval;
+}
+
 #define NORMAL_CHAR     0
 #define ALT_CHAR        1
 #define CTRL_CHAR       2
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 58831b7..dc49be8 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -346,7 +346,7 @@
 # stub _cprintf_s
 # stub _cprintf_s_l
 @ cdecl _cputs(str)
-# stub _cputws
+@ cdecl _cputws(wstr)
 @ cdecl _creat(str long) MSVCRT__creat
 # stub _crtAssertBusy
 # stub _crtBreakAlloc






More information about the wine-patches mailing list