From 97bad691842b1e5e1204aa95af05b86ceffd09e4 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 19 Apr 2010 10:58:00 +0200 Subject: [PATCH] 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 eb2f4749f8b..d872571cd40 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 7ffb0b999b6..75740ecfadc 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 59ed3b3bfd3..dffd74981e5 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 652cbd7fa89..df0ac03db27 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 ); } /********************************************************************* -- 2.11.4.GIT