Module: wine Branch: master Commit: 91bc6c52017fbdb1ef3746b006678076f320f8fe URL: http://source.winehq.org/git/wine.git/?a=commit;h=91bc6c52017fbdb1ef3746b006...
Author: Eryk Wieliczko ewdevel@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*,...);