Piotr Caban : msvcrt: Added _wfopen_s implementation.
Alexandre Julliard
julliard at winehq.org
Wed Apr 21 10:40:18 CDT 2010
Module: wine
Branch: master
Commit: 2ff04b9d571c30b514c450c7cafcef647e6a942a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2ff04b9d571c30b514c450c7cafcef647e6a942a
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Apr 20 21:38:33 2010 +0200
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 44507ec..917ac4f 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 1e6731f..5761301 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 6641999..f906401 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 fdd58c2..2700895 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
More information about the wine-cvs
mailing list