Piotr Caban : msvcrt: Added implementations of _vswprintf* functions.

Alexandre Julliard julliard at winehq.org
Mon Apr 19 11:51:16 CDT 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Mon Apr 19 10:58:00 2010 +0200

msvcrt: Added implementations of _vswprintf* functions.

---

 dlls/msvcr80/msvcr80.spec |   14 +++++++-------
 dlls/msvcr90/msvcr90.spec |   14 +++++++-------
 dlls/msvcrt/msvcrt.spec   |   12 ++++++------
 dlls/msvcrt/wcs.c         |   17 ++++++++++++++---
 4 files changed, 34 insertions(+), 23 deletions(-)

diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index eb2f474..d872571 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1061,13 +1061,13 @@
 @ stub _vsprintf_p
 @ stub _vsprintf_p_l
 @ stub _vsprintf_s_l
-@ stub _vswprintf
-@ stub _vswprintf_c
-@ stub _vswprintf_c_l
-@ stub _vswprintf_l
-@ stub _vswprintf_p
-@ stub _vswprintf_p_l
-@ stub _vswprintf_s_l
+@ cdecl _vswprintf(ptr long wstr ptr) msvcrt._vswprintf
+@ cdecl _vswprintf_c(ptr long wstr ptr) msvcrt._vswprintf_c
+@ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) msvcrt._vswprintf_c_l
+@ cdecl _vswprintf_l(ptr long wstr ptr ptr) msvcrt._vswprintf_l
+@ cdecl _vswprintf_p(ptr long wstr ptr) msvcrt._vswprintf
+@ cdecl _vswprintf_p_l(ptr long wstr ptr ptr) msvcrt._vswprintf_p_l
+@ cdecl _vswprintf_s_l(ptr long wstr ptr ptr) msvcrt._vswprintf_s_l
 @ stub _vwprintf_l
 @ stub _vwprintf_p
 @ stub _vwprintf_p_l
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 7ffb0b9..75740ec 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1048,13 +1048,13 @@
 @ stub _vsprintf_p
 @ stub _vsprintf_p_l
 @ stub _vsprintf_s_l
-@ stub _vswprintf
-@ stub _vswprintf_c
-@ stub _vswprintf_c_l
-@ stub _vswprintf_l
-@ stub _vswprintf_p
-@ stub _vswprintf_p_l
-@ stub _vswprintf_s_l
+@ cdecl _vswprintf(ptr long wstr ptr) msvcrt._vswprintf
+@ cdecl _vswprintf_c(ptr long wstr ptr) msvcrt._vswprintf_c
+@ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) msvcrt._vswprintf_c_l
+@ cdecl _vswprintf_l(ptr long wstr ptr ptr) msvcrt._vswprintf_l
+@ cdecl _vswprintf_p(ptr long wstr ptr) msvcrt._vswprintf
+@ cdecl _vswprintf_p_l(ptr long wstr ptr ptr) msvcrt._vswprintf_p_l
+@ cdecl _vswprintf_s_l(ptr long wstr ptr ptr) msvcrt._vswprintf_s_l
 @ stub _vwprintf_l
 @ stub _vwprintf_p
 @ stub _vwprintf_p_l
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 59ed3b3..dffd749 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -990,12 +990,12 @@
 # stub _vsprintf_p
 # stub _vsprintf_p_l
 # stub _vsprintf_s_l
-# stub _vswprintf
-# stub _vswprintf_c
-# stub _vswprintf_c_l
-# stub _vswprintf_l
-# stub _vswprintf_p_l
-# stub _vswprintf_s_l
+@ cdecl _vswprintf(ptr long wstr ptr) MSVCRT_vsnwprintf
+@ cdecl _vswprintf_c(ptr long wstr ptr) MSVCRT_vsnwprintf
+@ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) MSVCRT_vsnwprintf_l
+@ cdecl _vswprintf_l(ptr long wstr ptr ptr) MSVCRT_vsnwprintf_l
+@ cdecl _vswprintf_p_l(ptr long wstr ptr ptr) MSVCRT_vsnwprintf_l
+@ cdecl _vswprintf_s_l(ptr long wstr ptr ptr) MSVCRT_vswprintf_s_l
 # stub _vwprintf_l
 # stub _vwprintf_p
 # stub _vwprintf_p_l
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 652cbd7..df0ac03 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1083,10 +1083,21 @@ int CDECL _vscwprintf( const MSVCRT_wchar_t *format, __ms_va_list args )
 /*********************************************************************
  *		vswprintf_s (MSVCRT.@)
  */
-int CDECL MSVCRT_vswprintf_s( MSVCRT_wchar_t* str, MSVCRT_size_t num, const MSVCRT_wchar_t* format, __ms_va_list args )
+int CDECL MSVCRT_vswprintf_s(MSVCRT_wchar_t* str, MSVCRT_size_t numberOfElements,
+        const MSVCRT_wchar_t* format, __ms_va_list args)
 {
-    /* FIXME: must handle positional arguments */
-    return MSVCRT_vsnwprintf( str, num, format, args );
+    return MSVCRT_vsnwprintf_s(str, numberOfElements*sizeof(MSVCRT_wchar_t),
+            INT_MAX, format, args);
+}
+
+/*********************************************************************
+ *              _vswprintf_s_l (MSVCRT.@)
+ */
+int CDECL MSVCRT_vswprintf_s_l(MSVCRT_wchar_t* str, MSVCRT_size_t numberOfElements,
+        const MSVCRT_wchar_t* format, MSVCRT__locale_t locale, __ms_va_list args)
+{
+    return MSVCRT_vsnwprintf_s_l(str, numberOfElements*sizeof(MSVCRT_wchar_t),
+            INT_MAX, format, locale, args );
 }
 
 /*********************************************************************




More information about the wine-cvs mailing list