Piotr Caban : msvcrt: Added _fwscanf_s(_l) implementation.

Alexandre Julliard julliard at winehq.org
Thu Apr 22 11:24:04 CDT 2010


Module: wine
Branch: master
Commit: 3b994417702cdce37387836e097bdcde34c0be02
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3b994417702cdce37387836e097bdcde34c0be02

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Apr 22 13:52:18 2010 +0200

msvcrt: Added _fwscanf_s(_l) implementation.

---

 dlls/msvcr80/msvcr80.spec |    4 ++--
 dlls/msvcr90/msvcr90.spec |    4 ++--
 dlls/msvcrt/msvcrt.spec   |    4 ++--
 dlls/msvcrt/scanf.c       |   34 ++++++++++++++++++++++++++++++++++
 4 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 47b7076..756a56a 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -459,7 +459,7 @@
 @ stub _fwprintf_s_l
 @ stub _fwrite_nolock
 @ varargs _fwscanf_l(ptr wstr ptr) msvcrt._fwscanf_l
-@ stub _fwscanf_s_l
+@ varargs _fwscanf_s_l(ptr wstr ptr) msvcrt._fwscanf_s_l
 @ cdecl _gcvt(double long str) msvcrt._gcvt
 @ stub _gcvt_s
 @ stub _get_amblksiz
@@ -1281,7 +1281,7 @@
 @ stub fwprintf_s
 @ cdecl fwrite(ptr long long ptr) msvcrt.fwrite
 @ varargs fwscanf(ptr wstr) msvcrt.fwscanf
-@ stub fwscanf_s
+@ varargs fwscanf_s(ptr wstr) msvcrt.fwscanf_s
 @ cdecl getc(ptr) msvcrt.getc
 @ cdecl getchar() msvcrt.getchar
 @ cdecl getenv(str) msvcrt.getenv
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index c53761f..ecdcd6d 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -451,7 +451,7 @@
 @ stub _fwprintf_s_l
 @ stub _fwrite_nolock
 @ varargs _fwscanf_l(ptr wstr ptr) msvcrt._fwscanf_l
-@ stub _fwscanf_s_l
+@ varargs _fwscanf_s_l(ptr wstr ptr) msvcrt._fwscanf_s_l
 @ cdecl _gcvt(double long str) msvcrt._gcvt
 @ stub _gcvt_s
 @ stub _get_amblksiz
@@ -1265,7 +1265,7 @@
 @ stub fwprintf_s
 @ cdecl fwrite(ptr long long ptr) msvcrt.fwrite
 @ varargs fwscanf(ptr wstr) msvcrt.fwscanf
-@ stub fwscanf_s
+@ varargs fwscanf_s(ptr wstr) msvcrt.fwscanf_s
 @ cdecl getc(ptr) msvcrt.getc
 @ cdecl getchar() msvcrt.getchar
 @ cdecl getenv(str) msvcrt.getenv
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index f2cd471..d5e10cf 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -421,7 +421,7 @@
 # stub _fwprintf_p_l
 # stub _fwprintf_s_l
 @ varargs _fwscanf_l(ptr wstr ptr) MSVCRT__fwscanf_l
-# stub _fwscanf_s_l
+@ varargs _fwscanf_s_l(ptr wstr ptr) MSVCRT__fwscanf_s_l
 @ cdecl _gcvt(double long str)
 # stub _gcvt_s
 # stub _get_doserrno
@@ -1212,7 +1212,7 @@
 # stub fwprintf_s
 @ cdecl fwrite(ptr long long ptr) MSVCRT_fwrite
 @ varargs fwscanf(ptr wstr) MSVCRT_fwscanf
-# stub fwscanf_s
+@ varargs fwscanf_s(ptr wstr) MSVCRT_fwscanf_s
 @ cdecl getc(ptr) MSVCRT_getc
 @ cdecl getchar() MSVCRT_getchar
 @ cdecl getenv(str) MSVCRT_getenv
diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c
index fb2a6a1..498651e 100644
--- a/dlls/msvcrt/scanf.c
+++ b/dlls/msvcrt/scanf.c
@@ -65,6 +65,7 @@ static int wchar2digit(MSVCRT_wchar_t c, int base) {
 #undef SECURE
 #include "scanf.h"
 
+/* vfscanf_l */
 #define SECURE 1
 #include "scanf.h"
 
@@ -75,6 +76,10 @@ static int wchar2digit(MSVCRT_wchar_t c, int base) {
 #undef SECURE
 #include "scanf.h"
 
+/* vfwscanf_s_l */
+#define SECURE 1
+#include "scanf.h"
+
 /* vsscanf_l */
 #undef WIDE_SCANF
 #undef CONSOLE
@@ -241,6 +246,35 @@ int CDECL MSVCRT__fwscanf_l(MSVCRT_FILE *file, const MSVCRT_wchar_t *format,
 }
 
 /*********************************************************************
+ *		fwscanf_s (MSVCRT.@)
+ */
+int CDECL MSVCRT_fwscanf_s(MSVCRT_FILE *file, const MSVCRT_wchar_t *format, ...)
+{
+    __ms_va_list valist;
+    int res;
+
+    __ms_va_start(valist, format);
+    res = MSVCRT_vfwscanf_s_l(file, format, NULL, valist);
+    __ms_va_end(valist);
+    return res;
+}
+
+/*********************************************************************
+ *		_fwscanf_s_l (MSVCRT.@)
+ */
+int CDECL MSVCRT__fwscanf_s_l(MSVCRT_FILE *file, const MSVCRT_wchar_t *format,
+        MSVCRT__locale_t locale, ...)
+{
+    __ms_va_list valist;
+    int res;
+
+    __ms_va_start(valist, locale);
+    res = MSVCRT_vfwscanf_s_l(file, format, locale, valist);
+    __ms_va_end(valist);
+    return res;
+}
+
+/*********************************************************************
  *		wscanf (MSVCRT.@)
  */
 int CDECL MSVCRT_wscanf(const MSVCRT_wchar_t *format, ...)




More information about the wine-cvs mailing list