Module: wine Branch: master Commit: 33199860f15703a7da0bbff8ae3dd822f0ced81c URL: http://source.winehq.org/git/wine.git/?a=commit;h=33199860f15703a7da0bbff8ae...
Author: Alexandre Bique bique.alexandre@gmail.com Date: Mon Dec 9 12:57:19 2013 +0100
msvcrt: Implement missing sprintf functions.
---
dlls/msvcr100/msvcr100.spec | 6 +++--- dlls/msvcr110/msvcr110.spec | 6 +++--- dlls/msvcr80/msvcr80.spec | 6 +++--- dlls/msvcr90/msvcr90.spec | 6 +++--- dlls/msvcrt/msvcrt.spec | 6 +++--- dlls/msvcrt/wcs.c | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 52 insertions(+), 15 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index b5c8614..4de2266 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1317,10 +1317,10 @@ @ cdecl _spawnvpe(long str ptr ptr) msvcrt._spawnvpe @ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s -@ stub _sprintf_l +@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l @ varargs _sprintf_p(ptr long str) @ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l -@ stub _sprintf_s_l +@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l @ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l @ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l @ cdecl _stat32(str ptr) @@ -1461,7 +1461,7 @@ @ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l -@ stub _vsprintf_s_l +@ cdecl _vsprintf_s_l(ptr long str ptr ptr) msvcrt._vsprintf_s_l @ cdecl _vswprintf(ptr 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 diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index f37bdd7..a656f4e 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1675,10 +1675,10 @@ @ cdecl _spawnvpe(long str ptr ptr) msvcrt._spawnvpe @ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s -@ stub _sprintf_l +@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l @ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p @ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l -@ stub _sprintf_s_l +@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l @ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l @ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l @ cdecl _stat32(str ptr) msvcr100._stat32 @@ -1819,7 +1819,7 @@ @ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l -@ stub _vsprintf_s_l +@ cdecl _vsprintf_s_l(ptr long str ptr ptr) msvcrt._vsprintf_s_l @ cdecl _vswprintf(ptr 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 diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 6090a4b..db174f4 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -997,10 +997,10 @@ @ cdecl _spawnvpe(long str ptr ptr) msvcrt._spawnvpe @ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s -@ stub _sprintf_l +@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l @ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p @ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l -@ stub _sprintf_s_l +@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l @ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l @ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l @ cdecl _stat32(str ptr) msvcr100._stat32 @@ -1140,7 +1140,7 @@ @ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l -@ stub _vsprintf_s_l +@ cdecl _vsprintf_s_l(ptr long str ptr ptr) msvcrt._vsprintf_s_l @ cdecl _vswprintf(ptr 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 diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 4a30bb1..2b260e0 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -972,10 +972,10 @@ @ cdecl _spawnvpe(long str ptr ptr) msvcrt._spawnvpe @ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s -@ stub _sprintf_l +@ varargs _sprintf_l(ptr str ptr) msvcrt._sprintf_l @ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p @ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l -@ stub _sprintf_s_l +@ varargs _sprintf_s_l(ptr long str ptr) msvcrt._sprintf_s_l @ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l @ varargs _sscanf_s_l(str str ptr) msvcrt._sscanf_s_l @ cdecl _stat32(str ptr) msvcr100._stat32 @@ -1116,7 +1116,7 @@ @ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l -@ stub _vsprintf_s_l +@ cdecl _vsprintf_s_l(ptr long str ptr ptr) msvcrt._vsprintf_s_l @ cdecl _vswprintf(ptr 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 diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index cbeca9e..7f59bdb 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -939,9 +939,9 @@ @ cdecl _spawnvpe(long str ptr ptr) MSVCRT__spawnvpe @ cdecl _splitpath(str ptr ptr ptr ptr) @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) -# stub _sprintf_l(ptr str ptr) +@ varargs _sprintf_l(ptr str ptr) MSVCRT_sprintf_l @ varargs _sprintf_p_l(ptr long str ptr) MSVCRT_sprintf_p_l -# stub _sprintf_s_l(ptr long str ptr) +@ varargs _sprintf_s_l(ptr long str ptr) MSVCRT_sprintf_s_l @ varargs _sscanf_l(str str ptr) MSVCRT__sscanf_l @ varargs _sscanf_s_l(str str ptr) MSVCRT__sscanf_s_l @ cdecl _stat(str ptr) MSVCRT_stat @@ -1076,7 +1076,7 @@ @ cdecl _vsprintf_l(ptr str ptr ptr) MSVCRT_vsprintf_l @ cdecl _vsprintf_p(ptr long str ptr) MSVCRT_vsprintf_p @ cdecl _vsprintf_p_l(ptr long str ptr ptr) MSVCRT_vsprintf_p_l -# stub _vsprintf_s_l(ptr long str ptr ptr) +@ cdecl _vsprintf_s_l(ptr long str ptr ptr) MSVCRT_vsprintf_s_l @ cdecl _vswprintf(ptr wstr ptr) MSVCRT_vswprintf @ cdecl _vswprintf_c(ptr long wstr ptr) MSVCRT_vsnwprintf @ cdecl _vswprintf_c_l(ptr long wstr ptr ptr) MSVCRT_vsnwprintf_l diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index 28e05d9..12458a8 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -647,6 +647,20 @@ int CDECL MSVCRT_vsprintf_l( char *str, const char *format, }
/********************************************************************* + * _sprintf_l (MSVCRT.@) + */ +int CDECL MSVCRT_sprintf_l(char *str, const char *format, + MSVCRT__locale_t locale, ...) +{ + int retval; + __ms_va_list valist; + __ms_va_start(valist, locale); + retval = MSVCRT_vsnprintf_l(str, INT_MAX, format, locale, valist); + __ms_va_end(valist); + return retval; +} + +/********************************************************************* * _vsnprintf_s_l (MSVCRT.@) */ int CDECL MSVCRT_vsnprintf_s_l( char *str, MSVCRT_size_t sizeOfBuffer, @@ -682,6 +696,29 @@ int CDECL MSVCRT_vsnprintf_s_l( char *str, MSVCRT_size_t sizeOfBuffer, }
/********************************************************************* + * _vsprintf_s_l (MSVCRT.@) + */ +int CDECL MSVCRT_vsprintf_s_l( char *str, MSVCRT_size_t count, const char *format, + MSVCRT__locale_t locale, __ms_va_list valist ) +{ + return MSVCRT_vsnprintf_s_l(str, INT_MAX, count, format, locale, valist); +} + +/********************************************************************* + * _sprintf_s_l (MSVCRT.@) + */ +int CDECL MSVCRT_sprintf_s_l( char *str, MSVCRT_size_t count, const char *format, + MSVCRT__locale_t locale, ...) +{ + int retval; + __ms_va_list valist; + __ms_va_start(valist, locale); + retval = MSVCRT_vsnprintf_s_l(str, INT_MAX, count, format, locale, valist); + __ms_va_end(valist); + return retval; +} + +/********************************************************************* * _vsnprintf_s (MSVCRT.@) */ int CDECL MSVCRT_vsnprintf_s( char *str, MSVCRT_size_t sizeOfBuffer,