[PATCH 3/5] msvcrt: Implement vprintf_s and vwprintf_s.

Eryk Wieliczko ewdevel at gmail.com
Wed Nov 24 14:25:30 CST 2010


---
 dlls/msvcr100/msvcr100.spec |    4 ++--
 dlls/msvcr80/msvcr80.spec   |    4 ++--
 dlls/msvcr90/msvcr90.spec   |    4 ++--
 dlls/msvcrt/file.c          |   16 ++++++++++++++++
 dlls/msvcrt/msvcrt.spec     |    4 ++--
 include/msvcrt/stdio.h      |    2 ++
 include/msvcrt/wchar.h      |    1 +
 7 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 16854b4..61a7121 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1621,12 +1621,12 @@
 @ cdecl vfwprintf(ptr wstr ptr) msvcrt.vfwprintf
 @ cdecl vfwprintf_s(ptr wstr ptr) msvcrt.vfwprintf_s
 @ cdecl vprintf(str ptr) msvcrt.vprintf
-@ stub vprintf_s
+@ cdecl vprintf_s(str ptr) msvcrt.vprintf_s
 @ cdecl vsprintf(ptr str ptr) msvcrt.vsprintf
 @ cdecl vsprintf_s(ptr long str ptr) msvcrt.vsprintf_s
 @ cdecl vswprintf_s(ptr long wstr ptr) msvcrt.vswprintf_s
 @ cdecl vwprintf(wstr ptr) msvcrt.vwprintf
-@ stub vwprintf_s
+@ cdecl vwprintf_s(wstr ptr) msvcrt.vwprintf_s
 @ stub wcrtomb
 @ stub wcrtomb_s
 @ cdecl wcscat(wstr wstr) msvcrt.wcscat
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 3bee113..9823273 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1475,12 +1475,12 @@
 @ cdecl vfwprintf(ptr wstr ptr) msvcrt.vfwprintf
 @ cdecl vfwprintf_s(ptr wstr ptr) msvcrt.vfwprintf_s
 @ cdecl vprintf(str ptr) msvcrt.vprintf
-@ stub vprintf_s
+@ cdecl vprintf_s(str ptr) msvcrt.vprintf_s
 @ cdecl vsprintf(ptr str ptr) msvcrt.vsprintf
 @ cdecl vsprintf_s(ptr long str ptr) msvcrt.vsprintf_s
 @ cdecl vswprintf_s(ptr long wstr ptr) msvcrt.vswprintf_s
 @ cdecl vwprintf(wstr ptr) msvcrt.vwprintf
-@ stub vwprintf_s
+@ cdecl vwprintf_s(wstr ptr) msvcrt.vwprintf_s
 @ stub wcrtomb
 @ stub wcrtomb_s
 @ cdecl wcscat(wstr wstr) msvcrt.wcscat
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 536db47..4f68724 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1459,12 +1459,12 @@
 @ cdecl vfwprintf(ptr wstr ptr) msvcrt.vfwprintf
 @ cdecl vfwprintf_s(ptr wstr ptr) msvcrt.vfwprintf_s
 @ cdecl vprintf(str ptr) msvcrt.vprintf
-@ stub vprintf_s
+@ cdecl vprintf_s(str ptr) msvcrt.vprintf_s
 @ cdecl vsprintf(ptr str ptr) msvcrt.vsprintf
 @ cdecl vsprintf_s(ptr long str ptr) msvcrt.vsprintf_s
 @ cdecl vswprintf_s(ptr long wstr ptr) msvcrt.vswprintf_s
 @ cdecl vwprintf(wstr ptr) msvcrt.vwprintf
-@ stub vwprintf_s
+@ cdecl vwprintf_s(wstr ptr) msvcrt.vwprintf_s
 @ stub wcrtomb
 @ stub wcrtomb_s
 @ cdecl wcscat(wstr wstr) msvcrt.wcscat
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index 809cdda..03d4ce3 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -3481,6 +3481,14 @@ int CDECL MSVCRT_vprintf(const char *format, __ms_va_list valist)
 }
 
 /*********************************************************************
+ *		vprintf_s (MSVCRT.@)
+ */
+int CDECL MSVCRT_vprintf_s(const char *format, __ms_va_list valist)
+{
+  return MSVCRT_vfprintf_s(MSVCRT_stdout,format,valist);
+}
+
+/*********************************************************************
  *		vwprintf (MSVCRT.@)
  */
 int CDECL MSVCRT_vwprintf(const MSVCRT_wchar_t *format, __ms_va_list valist)
@@ -3489,6 +3497,14 @@ int CDECL MSVCRT_vwprintf(const MSVCRT_wchar_t *format, __ms_va_list valist)
 }
 
 /*********************************************************************
+ *		vwprintf_s (MSVCRT.@)
+ */
+int CDECL MSVCRT_vwprintf_s(const MSVCRT_wchar_t *format, __ms_va_list valist)
+{
+  return MSVCRT_vfwprintf_s(MSVCRT_stdout,format,valist);
+}
+
+/*********************************************************************
  *		fprintf (MSVCRT.@)
  */
 int CDECL MSVCRT_fprintf(MSVCRT_FILE* file, const char *format, ...)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index b6d1f10..c861643 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1426,14 +1426,14 @@
 @ cdecl vfwprintf(ptr wstr ptr) MSVCRT_vfwprintf
 @ cdecl vfwprintf_s(ptr wstr ptr) MSVCRT_vfwprintf_s
 @ cdecl vprintf(str ptr) MSVCRT_vprintf
-# stub vprintf_s
+@ cdecl vprintf_s(str ptr) MSVCRT_vprintf_s
 # stub vsnprintf
 @ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf
 @ cdecl vsprintf_s(ptr long str ptr) MSVCRT_vsprintf_s
 @ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf
 @ cdecl vswprintf_s(ptr long wstr ptr) MSVCRT_vswprintf_s
 @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
-# stub vwprintf_s
+@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
 # stub wcrtomb
 # stub wcrtomb_s
 @ cdecl wcscat(wstr wstr) ntdll.wcscat
diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h
index e27c8ca..e8c7671 100644
--- a/include/msvcrt/stdio.h
+++ b/include/msvcrt/stdio.h
@@ -168,6 +168,7 @@ int    __cdecl ungetc(int,FILE*);
 int    __cdecl vfprintf(FILE*,const char*,__ms_va_list);
 int    __cdecl vfprintf_s(FILE*,const char*,__ms_va_list);
 int    __cdecl vprintf(const char*,__ms_va_list);
+int    __cdecl vprintf_s(const char*,__ms_va_list);
 int    __cdecl vsprintf(char*,const char*,__ms_va_list);
 int    __cdecl vsprintf_s(char*,size_t,const char*,__ms_va_list);
 
@@ -217,6 +218,7 @@ int      __cdecl vfwprintf_s(FILE*,const wchar_t*,__ms_va_list);
 int      __cdecl vswprintf(wchar_t*,const wchar_t*,__ms_va_list);
 int      __cdecl vswprintf_s(wchar_t*,size_t,const wchar_t*,__ms_va_list);
 int      __cdecl vwprintf(const wchar_t*,__ms_va_list);
+int      __cdecl vwprintf_s(const wchar_t*,__ms_va_list);
 int      __cdecl wprintf(const wchar_t*,...);
 int      __cdecl wscanf(const wchar_t*,...);
 int      __cdecl wscanf_s(const wchar_t*,...);
diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h
index 7c495f0..d0a6a37 100644
--- a/include/msvcrt/wchar.h
+++ b/include/msvcrt/wchar.h
@@ -314,6 +314,7 @@ int      __cdecl vfwprintf_s(FILE*,const wchar_t*,__ms_va_list);
 int      __cdecl vswprintf(wchar_t*,const wchar_t*,__ms_va_list);
 int      __cdecl vswprintf_s(wchar_t*,size_t,const wchar_t*,__ms_va_list);
 int      __cdecl vwprintf(const wchar_t*,__ms_va_list);
+int      __cdecl vwprintf_s(const wchar_t*,__ms_va_list);
 int      __cdecl wprintf(const wchar_t*,...);
 int      __cdecl wscanf(const wchar_t*,...);
 int      __cdecl wscanf_s(const wchar_t*,...);
-- 
1.7.0.4




More information about the wine-patches mailing list