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