From: Piotr Caban Subject: msvcr90: Fix _vswprintf_p implementation Message-Id: <4E784F9D.6060907@codeweavers.com> Date: Tue, 20 Sep 2011 10:32:29 +0200 --- dlls/msvcr90/msvcr90.c | 8 ++++++++ dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/wcs.c | 2 +- include/msvcrt/stdio.h | 1 + include/msvcrt/wchar.h | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/msvcr90/msvcr90.c b/dlls/msvcr90/msvcr90.c index fd24f11..6b97e2f 100644 --- a/dlls/msvcr90/msvcr90.c +++ b/dlls/msvcr90/msvcr90.c @@ -358,3 +358,11 @@ void* CDECL _CRT_RTC_INITW(void *unk1, void *unk2, int unk3, int unk4, int unk5) TRACE("%p %p %x %x %x\n", unk1, unk2, unk3, unk4, unk5); return NULL; } + +/********************************************************************* + * _vswprintf_p (MSVCR90.@) + */ +int CDECL MSVCR90__vswprintf_p(wchar_t *buffer, size_t length, const wchar_t *format, __ms_va_list args) +{ + return _vswprintf_p_l(buffer, length, format, NULL, args); +} diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index ffdc931..c93efdd 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1107,7 +1107,7 @@ @ 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 wstr ptr ptr) msvcrt._vswprintf_l -@ cdecl _vswprintf_p(ptr long wstr ptr) msvcrt._vswprintf +@ cdecl _vswprintf_p(ptr long wstr ptr) MSVCR90__vswprintf_p @ 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 diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index d771d4f..0327ccb 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -709,7 +709,7 @@ int CDECL MSVCRT_vswprintf_p_l(MSVCRT_wchar_t *buffer, MSVCRT_size_t length, *MSVCRT__errno() = MSVCRT_EINVAL; return ret; } else if(ret == 0) - ret = pf_printf_w(puts_clbk_str_w, &puts_ctx, format, locale, TRUE, TRUE, + ret = pf_printf_w(puts_clbk_str_w, &puts_ctx, format, locale, FALSE, TRUE, arg_clbk_valist, NULL, &args); else ret = pf_printf_w(puts_clbk_str_w, &puts_ctx, format, locale, TRUE, TRUE, diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index 4e43635..e2c1669 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -191,6 +191,7 @@ int __cdecl _snwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,...); int __cdecl _vscwprintf(const wchar_t*,__ms_va_list); int __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,__ms_va_list); int __cdecl _vsnwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,__ms_va_list); +int __cdecl _vswprintf_p_l(wchar_t*,size_t,const wchar_t*,_locale_t,__ms_va_list); FILE* __cdecl _wfdopen(int,const wchar_t*); FILE* __cdecl _wfopen(const wchar_t*,const wchar_t*); errno_t __cdecl _wfopen_s(FILE**,const wchar_t*,const wchar_t*); diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h index eab28b7..4c26624 100644 --- a/include/msvcrt/wchar.h +++ b/include/msvcrt/wchar.h @@ -322,6 +322,7 @@ int __cdecl _snwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,...); int __cdecl _vscwprintf(const wchar_t*,__ms_va_list); int __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,__ms_va_list); int __cdecl _vsnwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,__ms_va_list); +int __cdecl _vswprintf_p_l(wchar_t*,size_t,const wchar_t*,_locale_t,__ms_va_list); FILE* __cdecl _wfdopen(int,const wchar_t*); FILE* __cdecl _wfopen(const wchar_t*,const wchar_t*); errno_t __cdecl _wfopen_s(FILE**,const wchar_t*,const wchar_t*);