Alexandre Bique : msvcrt: Implement missing sprintf functions.
Alexandre Julliard
julliard at winehq.org
Tue Dec 10 14:44:06 CST 2013
Module: wine
Branch: master
Commit: 33199860f15703a7da0bbff8ae3dd822f0ced81c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=33199860f15703a7da0bbff8ae3dd822f0ced81c
Author: Alexandre Bique <bique.alexandre at 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,
More information about the wine-cvs
mailing list