Eryk Wieliczko : msvcrt: Implement fprintf_s and fwprintf_s.

Alexandre Julliard julliard at winehq.org
Thu Nov 25 11:18:56 CST 2010


Module: wine
Branch: master
Commit: 91bc6c52017fbdb1ef3746b006678076f320f8fe
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=91bc6c52017fbdb1ef3746b006678076f320f8fe

Author: Eryk Wieliczko <ewdevel at gmail.com>
Date:   Wed Nov 24 21:25:49 2010 +0100

msvcrt: Implement fprintf_s and fwprintf_s.

---

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

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 25467ff..4cd7f3a 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1459,7 +1459,7 @@
 @ cdecl fopen(str str) msvcrt.fopen
 @ cdecl fopen_s(ptr str str) msvcrt.fopen_s
 @ varargs fprintf(ptr str) msvcrt.fprintf
-@ stub fprintf_s
+@ varargs fprintf_s(ptr str) msvcrt.fprintf_s
 @ cdecl fputc(long ptr) msvcrt.fputc
 @ cdecl fputs(str ptr) msvcrt.fputs
 @ cdecl fputwc(long ptr) msvcrt.fputwc
@@ -1476,7 +1476,7 @@
 @ cdecl fsetpos(ptr ptr) msvcrt.fsetpos
 @ cdecl ftell(ptr) msvcrt.ftell
 @ varargs fwprintf(ptr wstr) msvcrt.fwprintf
-@ stub fwprintf_s
+@ varargs fwprintf_s(ptr str) msvcrt.fwprintf_s
 @ cdecl fwrite(ptr long long ptr) msvcrt.fwrite
 @ varargs fwscanf(ptr wstr) msvcrt.fwscanf
 @ varargs fwscanf_s(ptr wstr) msvcrt.fwscanf_s
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 742144d..ab74956 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1315,7 +1315,7 @@
 @ cdecl fopen(str str) msvcrt.fopen
 @ cdecl fopen_s(ptr str str) msvcrt.fopen_s
 @ varargs fprintf(ptr str) msvcrt.fprintf
-@ stub fprintf_s
+@ varargs fprintf_s(ptr str) msvcrt.fprintf_s
 @ cdecl fputc(long ptr) msvcrt.fputc
 @ cdecl fputs(str ptr) msvcrt.fputs
 @ cdecl fputwc(long ptr) msvcrt.fputwc
@@ -1332,7 +1332,7 @@
 @ cdecl fsetpos(ptr ptr) msvcrt.fsetpos
 @ cdecl ftell(ptr) msvcrt.ftell
 @ varargs fwprintf(ptr wstr) msvcrt.fwprintf
-@ stub fwprintf_s
+@ varargs fwprintf_s(ptr str) msvcrt.fwprintf_s
 @ cdecl fwrite(ptr long long ptr) msvcrt.fwrite
 @ varargs fwscanf(ptr wstr) msvcrt.fwscanf
 @ varargs fwscanf_s(ptr wstr) msvcrt.fwscanf_s
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 3c0279f..e6da0da 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1299,7 +1299,7 @@
 @ cdecl fopen(str str) msvcrt.fopen
 @ cdecl fopen_s(ptr str str) msvcrt.fopen_s
 @ varargs fprintf(ptr str) msvcrt.fprintf
-@ stub fprintf_s
+@ varargs fprintf_s(ptr str) msvcrt.fprintf_s
 @ cdecl fputc(long ptr) msvcrt.fputc
 @ cdecl fputs(str ptr) msvcrt.fputs
 @ cdecl fputwc(long ptr) msvcrt.fputwc
@@ -1316,7 +1316,7 @@
 @ cdecl fsetpos(ptr ptr) msvcrt.fsetpos
 @ cdecl ftell(ptr) msvcrt.ftell
 @ varargs fwprintf(ptr wstr) msvcrt.fwprintf
-@ stub fwprintf_s
+@ varargs fwprintf_s(ptr str) msvcrt.fwprintf_s
 @ cdecl fwrite(ptr long long ptr) msvcrt.fwrite
 @ varargs fwscanf(ptr wstr) msvcrt.fwscanf
 @ varargs fwscanf_s(ptr wstr) msvcrt.fwscanf_s
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index 866ea46..69ba4b8 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -3500,6 +3500,19 @@ int CDECL MSVCRT_fprintf(MSVCRT_FILE* file, const char *format, ...)
 }
 
 /*********************************************************************
+ *		fprintf_s (MSVCRT.@)
+ */
+int CDECL MSVCRT_fprintf_s(MSVCRT_FILE* file, const char *format, ...)
+{
+    __ms_va_list valist;
+    int res;
+    __ms_va_start(valist, format);
+    res = MSVCRT_vfprintf_s(file, format, valist);
+    __ms_va_end(valist);
+    return res;
+}
+
+/*********************************************************************
  *		fwprintf (MSVCRT.@)
  */
 int CDECL MSVCRT_fwprintf(MSVCRT_FILE* file, const MSVCRT_wchar_t *format, ...)
@@ -3513,6 +3526,19 @@ int CDECL MSVCRT_fwprintf(MSVCRT_FILE* file, const MSVCRT_wchar_t *format, ...)
 }
 
 /*********************************************************************
+ *		fwprintf_s (MSVCRT.@)
+ */
+int CDECL MSVCRT_fwprintf_s(MSVCRT_FILE* file, const MSVCRT_wchar_t *format, ...)
+{
+    __ms_va_list valist;
+    int res;
+    __ms_va_start(valist, format);
+    res = MSVCRT_vfwprintf_s(file, format, valist);
+    __ms_va_end(valist);
+    return res;
+}
+
+/*********************************************************************
  *		printf (MSVCRT.@)
  */
 int CDECL MSVCRT_printf(const char *format, ...)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index d528e06..efa380a 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1250,7 +1250,7 @@
 @ cdecl fopen(str str) MSVCRT_fopen
 @ cdecl fopen_s(ptr str str) MSVCRT_fopen_s
 @ varargs fprintf(ptr str) MSVCRT_fprintf
-# stub fprintf_s
+@ varargs fprintf_s(ptr str) MSVCRT_fprintf_s
 @ cdecl fputc(long ptr) MSVCRT_fputc
 @ cdecl fputs(str ptr) MSVCRT_fputs
 @ cdecl fputwc(long ptr) MSVCRT_fputwc
@@ -1267,7 +1267,7 @@
 @ cdecl fsetpos(ptr ptr) MSVCRT_fsetpos
 @ cdecl ftell(ptr) MSVCRT_ftell
 @ varargs fwprintf(ptr wstr) MSVCRT_fwprintf
-# stub fwprintf_s
+@ varargs fwprintf_s(ptr wstr) MSVCRT_fwprintf_s
 @ cdecl fwrite(ptr long long ptr) MSVCRT_fwrite
 @ varargs fwscanf(ptr wstr) MSVCRT_fwscanf
 @ varargs fwscanf_s(ptr wstr) MSVCRT_fwscanf_s
diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h
index 31ba8ca..fa5290f 100644
--- a/include/msvcrt/stdio.h
+++ b/include/msvcrt/stdio.h
@@ -131,6 +131,7 @@ char*  __cdecl fgets(char*,int,FILE*);
 FILE*  __cdecl fopen(const char*,const char*);
 errno_t __cdecl fopen_s(FILE**,const char*,const char*);
 int    __cdecl fprintf(FILE*,const char*,...);
+int    __cdecl fprintf_s(FILE*,const char*,...);
 int    __cdecl fputc(int,FILE*);
 int    __cdecl fputs(const char*,FILE*);
 size_t __cdecl fread(void*,size_t,size_t,FILE*);
@@ -200,6 +201,7 @@ wchar_t* __cdecl fgetws(wchar_t*,int,FILE*);
 wint_t   __cdecl fputwc(wint_t,FILE*);
 int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwprintf(FILE*,const wchar_t*,...);
+int      __cdecl fwprintf_s(FILE*,const wchar_t*,...);
 int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwscanf(FILE*,const wchar_t*,...);
 int      __cdecl fwscanf_s(FILE*,const wchar_t*,...);
diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h
index e753e3f..285168a 100644
--- a/include/msvcrt/wchar.h
+++ b/include/msvcrt/wchar.h
@@ -295,6 +295,7 @@ wchar_t* __cdecl fgetws(wchar_t*,int,FILE*);
 wint_t   __cdecl fputwc(wint_t,FILE*);
 int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwprintf(FILE*,const wchar_t*,...);
+int      __cdecl fwprintf_s(FILE*,const wchar_t*,...);
 int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwscanf(FILE*,const wchar_t*,...);
 int      __cdecl fwscanf_s(FILE*,const wchar_t*,...);




More information about the wine-cvs mailing list