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