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

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


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

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

msvcrt: Added _cscanf_s(_l) implementation.

---

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

diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index e21da6c..938f610 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -342,8 +342,8 @@
 @ stub _crt_debugger_hook
 @ varargs _cscanf(str) msvcrt._cscanf
 @ varargs _cscanf_l(str ptr) msvcrt._cscanf_l
-@ stub _cscanf_s
-@ stub _cscanf_s_l
+@ varargs _cscanf_s(str) msvcrt._cscanf_s
+@ varargs _cscanf_s_l(str ptr) msvcrt._cscanf_s_l
 @ cdecl _ctime32(ptr) msvcrt._ctime32
 @ stub _ctime32_s
 @ cdecl _ctime64(ptr) msvcrt._ctime64
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index ad85378..3f9de55 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -334,8 +334,8 @@
 @ stub _crt_debugger_hook
 @ varargs _cscanf(str) msvcrt._cscanf
 @ varargs _cscanf_l(str ptr) msvcrt._cscanf_l
-@ stub _cscanf_s
-@ stub _cscanf_s_l
+@ varargs _cscanf_s(str) msvcrt._cscanf_s
+@ varargs _cscanf_s_l(str ptr) msvcrt._cscanf_s_l
 @ cdecl _ctime32(ptr) msvcrt._ctime32
 @ stub _ctime32_s
 @ cdecl _ctime64(ptr) msvcrt._ctime64
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 9b66898..e9b898a 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -315,8 +315,8 @@
 # stub _crtDbgFlag
 @ varargs _cscanf(str)
 @ varargs _cscanf_l(str ptr)
-# stub _cscanf_s
-# stub _cscanf_s_l
+@ varargs _cscanf_s(str)
+@ varargs _cscanf_s_l(str ptr)
 @ cdecl _ctime32(ptr) MSVCRT__ctime32
 # stub _ctime32_s
 @ cdecl _ctime64(ptr) MSVCRT__ctime64
diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c
index cfb4aa0..298d4c9 100644
--- a/dlls/msvcrt/scanf.c
+++ b/dlls/msvcrt/scanf.c
@@ -109,6 +109,10 @@ static int wchar2digit(MSVCRT_wchar_t c, int base) {
 #undef SECURE
 #include "scanf.h"
 
+/* vcscanf_s_l */
+#define SECURE 1
+#include "scanf.h"
+
 
 /*********************************************************************
  *		fscanf (MSVCRT.@)
@@ -483,3 +487,31 @@ int CDECL _cscanf_l(const char *format, MSVCRT__locale_t locale, ...)
     __ms_va_end(valist);
     return res;
 }
+
+/*********************************************************************
+ *		_cscanf_s (MSVCRT.@)
+ */
+int CDECL _cscanf_s(const char *format, ...)
+{
+    __ms_va_list valist;
+    int res;
+
+    __ms_va_start(valist, format);
+    res = MSVCRT_vcscanf_s_l(format, NULL, valist);
+    __ms_va_end(valist);
+    return res;
+}
+
+/*********************************************************************
+ *		_cscanf_s_l (MSVCRT.@)
+ */
+int CDECL _cscanf_s_l(const char *format, MSVCRT__locale_t locale, ...)
+{
+    __ms_va_list valist;
+    int res;
+
+    __ms_va_start(valist, locale);
+    res = MSVCRT_vcscanf_s_l(format, locale, valist);
+    __ms_va_end(valist);
+    return res;
+}




More information about the wine-cvs mailing list