From 947d1bf588319383ed43920fafcf62e41cb7659e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Sun, 13 Nov 2011 18:33:47 +0100 Subject: [PATCH] msvcrt: Implement _wfreopen_s. --- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/file.c | 19 +++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 2 +- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 87cae041a42..0925c1f21b1 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1350,7 +1350,7 @@ @ cdecl _wfopen(wstr wstr) msvcrt._wfopen @ cdecl _wfopen_s(ptr wstr wstr) msvcrt._wfopen_s @ cdecl _wfreopen(wstr wstr ptr) msvcrt._wfreopen -@ stub _wfreopen_s +@ cdecl _wfreopen_s(ptr wstr wstr ptr) msvcrt._wfreopen_s @ cdecl _wfsopen(wstr wstr long) msvcrt._wfsopen @ cdecl _wfullpath(ptr wstr long) msvcrt._wfullpath @ cdecl _wgetcwd(wstr long) msvcrt._wgetcwd diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 06751ef5fa7..4cde658afd1 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1203,7 +1203,7 @@ @ cdecl _wfopen(wstr wstr) msvcrt._wfopen @ cdecl _wfopen_s(ptr wstr wstr) msvcrt._wfopen_s @ cdecl _wfreopen(wstr wstr ptr) msvcrt._wfreopen -@ stub _wfreopen_s +@ cdecl _wfreopen_s(ptr wstr wstr ptr) msvcrt._wfreopen_s @ cdecl _wfsopen(wstr wstr long) msvcrt._wfsopen @ cdecl _wfullpath(ptr wstr long) msvcrt._wfullpath @ cdecl _wgetcwd(wstr long) msvcrt._wgetcwd diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 688bdc628cc..9d0d9e63ac5 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1197,7 +1197,7 @@ @ cdecl _wfopen(wstr wstr) msvcrt._wfopen @ cdecl _wfopen_s(ptr wstr wstr) msvcrt._wfopen_s @ cdecl _wfreopen(wstr wstr ptr) msvcrt._wfreopen -@ stub _wfreopen_s +@ cdecl _wfreopen_s(ptr wstr wstr ptr) msvcrt._wfreopen_s @ cdecl _wfsopen(wstr wstr long) msvcrt._wfsopen @ cdecl _wfullpath(ptr wstr long) msvcrt._wfullpath @ cdecl _wgetcwd(wstr long) msvcrt._wgetcwd diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index f3200eba194..07fed454ef6 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -3276,6 +3276,25 @@ MSVCRT_FILE* CDECL MSVCRT__wfreopen(const MSVCRT_wchar_t *path, const MSVCRT_wch return file; } +/********************************************************************* + * _wfreopen_s (MSVCRT.@) + */ +int CDECL MSVCRT__wfreopen_s(MSVCRT_FILE** pFile, + const MSVCRT_wchar_t *path, const MSVCRT_wchar_t *mode, MSVCRT_FILE* file) +{ + if (!MSVCRT_CHECK_PMT(pFile != NULL) || !MSVCRT_CHECK_PMT(path != NULL) || + !MSVCRT_CHECK_PMT(mode != NULL) || !MSVCRT_CHECK_PMT(file != NULL)) { + *MSVCRT__errno() = MSVCRT_EINVAL; + return MSVCRT_EINVAL; + } + + *pFile = MSVCRT__wfreopen(path, mode, file); + + if(!*pFile) + return *MSVCRT__errno(); + return 0; +} + /********************************************************************* * freopen (MSVCRT.@) * diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index f2b5e330b47..fac2104a2e2 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1133,7 +1133,7 @@ @ cdecl _wfopen(wstr wstr) MSVCRT__wfopen @ cdecl _wfopen_s(ptr wstr wstr) MSVCRT__wfopen_s @ cdecl _wfreopen(wstr wstr ptr) MSVCRT__wfreopen -# stub _wfreopen_s(ptr wstr wstr ptr) +@ cdecl _wfreopen_s(ptr wstr wstr ptr) MSVCRT__wfreopen_s @ cdecl _wfsopen(wstr wstr long) MSVCRT__wfsopen @ cdecl _wfullpath(ptr wstr long) # stub _wfullpath_dbg(ptr wstr long long str long)