From 2ff04b9d571c30b514c450c7cafcef647e6a942a Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Tue, 20 Apr 2010 21:38:33 +0200 Subject: [PATCH] msvcrt: Added _wfopen_s implementation. --- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/file.c | 19 +++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 44507ec22d..917ac4f160 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1146,7 +1146,7 @@ @ stub _wfindnext64 @ stub _wfindnext64i32 @ cdecl _wfopen(wstr wstr) msvcrt._wfopen -@ stub _wfopen_s +@ cdecl _wfopen_s(ptr wstr wstr) msvcrt._wfopen_s @ cdecl _wfreopen(wstr wstr ptr) msvcrt._wfreopen @ stub _wfreopen_s @ cdecl _wfsopen(wstr wstr long) msvcrt._wfsopen diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 1e6731ffbe..57613015fc 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1133,7 +1133,7 @@ @ stub _wfindnext64 @ stub _wfindnext64i32 @ cdecl _wfopen(wstr wstr) msvcrt._wfopen -@ stub _wfopen_s +@ cdecl _wfopen_s(ptr wstr wstr) msvcrt._wfopen_s @ cdecl _wfreopen(wstr wstr ptr) msvcrt._wfreopen @ stub _wfreopen_s @ cdecl _wfsopen(wstr wstr long) msvcrt._wfsopen diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 6641999f4b..f9064013b3 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -2707,6 +2707,25 @@ MSVCRT_FILE * CDECL MSVCRT__wfopen(const MSVCRT_wchar_t *path, const MSVCRT_wcha return MSVCRT__wfsopen( path, mode, MSVCRT__SH_DENYNO ); } +/********************************************************************* + * _wfopen_s (MSVCRT.@) + */ +int CDECL MSVCRT__wfopen_s(MSVCRT_FILE** pFile, const MSVCRT_wchar_t *filename, + const MSVCRT_wchar_t *mode) +{ + if(!pFile) { + MSVCRT__invalid_parameter(NULL, NULL, NULL, 0, 0); + *MSVCRT__errno() = MSVCRT_EINVAL; + return MSVCRT_EINVAL; + } + + *pFile = MSVCRT__wfopen(filename, mode); + + if(!*pFile) + return *MSVCRT__errno(); + return 0; +} + /* MSVCRT_fputc calls MSVCRT__flsbuf which calls MSVCRT_fputc */ int CDECL MSVCRT__flsbuf(int c, MSVCRT_FILE* file); diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index fdd58c282a..2700895df2 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1072,7 +1072,7 @@ # stub _wfindnext64 @ cdecl _wfindnexti64(long ptr) MSVCRT__wfindnexti64 @ cdecl _wfopen(wstr wstr) MSVCRT__wfopen -# stub _wfopen_s +@ cdecl _wfopen_s(ptr wstr wstr) MSVCRT__wfopen_s @ cdecl _wfreopen(wstr wstr ptr) MSVCRT__wfreopen # stub _wfreopen_s @ cdecl _wfsopen(wstr wstr long) MSVCRT__wfsopen