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

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


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

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

msvcrt: Added _scanf_s(_l) implementation.

---

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

diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 5cc1b8b..47b7076 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -852,7 +852,7 @@
 @ cdecl -arch=i386 _safe_fprem1() msvcrt._safe_fprem1
 @ cdecl _scalb( double long) msvcrt._scalb
 @ varargs _scanf_l(str ptr) msvcrt._scanf_l
-@ stub _scanf_s_l
+@ varargs _scanf_s_l(str ptr) msvcrt._scanf_s_l
 @ stub _scprintf
 @ stub _scprintf_l
 @ stub _scprintf_p
@@ -1359,7 +1359,7 @@
 @ cdecl rename(str str) msvcrt.rename
 @ cdecl rewind(ptr) msvcrt.rewind
 @ varargs scanf(str) msvcrt.scanf
-@ stub scanf_s
+@ varargs scanf_s(str) msvcrt.scanf_s
 @ cdecl setbuf(ptr ptr) msvcrt.setbuf
 @ cdecl setlocale(long str) msvcrt.setlocale
 @ cdecl setvbuf(ptr str long long) msvcrt.setvbuf
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index f630e1a..c53761f 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -838,7 +838,7 @@
 @ cdecl -arch=i386 _safe_fprem1() msvcrt._safe_fprem1
 @ cdecl _scalb( double long) msvcrt._scalb
 @ varargs _scanf_l(str ptr) msvcrt._scanf_l
-@ stub _scanf_s_l
+@ varargs _scanf_s_l(str ptr) msvcrt._scanf_s_l
 @ stub _scprintf
 @ stub _scprintf_l
 @ stub _scprintf_p
@@ -1343,7 +1343,7 @@
 @ cdecl rename(str str) msvcrt.rename
 @ cdecl rewind(ptr) msvcrt.rewind
 @ varargs scanf(str) msvcrt.scanf
-@ stub scanf_s
+@ varargs scanf_s(str) msvcrt.scanf_s
 @ cdecl setbuf(ptr ptr) msvcrt.setbuf
 @ cdecl setlocale(long str) msvcrt.setlocale
 @ cdecl setvbuf(ptr str long long) msvcrt.setvbuf
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 0fb6be3..f2cd471 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -795,7 +795,7 @@
 @ cdecl -arch=i386 _safe_fprem1()
 @ cdecl _scalb(double long) MSVCRT__scalb
 @ varargs _scanf_l(str ptr) MSVCRT__scanf_l
-# stub _scanf_s_l
+@ varargs _scanf_s_l(str ptr) MSVCRT__scanf_s_l
 # stub _scprintf
 # stub _scprintf_l
 # stub _scprintf_p_l
@@ -1293,7 +1293,7 @@
 @ cdecl rename(str str) MSVCRT_rename
 @ cdecl rewind(ptr) MSVCRT_rewind
 @ varargs scanf(str) MSVCRT_scanf
-# stub scanf_s
+@ varargs scanf_s(str) MSVCRT_scanf_s
 @ cdecl setbuf(ptr ptr) MSVCRT_setbuf
 @ cdecl -arch=x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
 @ cdecl setlocale(long str) MSVCRT_setlocale
diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c
index e1f917b..fb2a6a1 100644
--- a/dlls/msvcrt/scanf.c
+++ b/dlls/msvcrt/scanf.c
@@ -184,6 +184,34 @@ int CDECL MSVCRT__scanf_l(const char *format, MSVCRT__locale_t locale, ...)
 }
 
 /*********************************************************************
+ *		scanf_s (MSVCRT.@)
+ */
+int CDECL MSVCRT_scanf_s(const char *format, ...)
+{
+    __ms_va_list valist;
+    int res;
+
+    __ms_va_start(valist, format);
+    res = MSVCRT_vfscanf_s_l(MSVCRT_stdin, format, NULL, valist);
+    __ms_va_end(valist);
+    return res;
+}
+
+/*********************************************************************
+ *		_scanf_s_l (MSVCRT.@)
+ */
+int CDECL MSVCRT__scanf_s_l(const char *format, MSVCRT__locale_t locale, ...)
+{
+    __ms_va_list valist;
+    int res;
+
+    __ms_va_start(valist, locale);
+    res = MSVCRT_vfscanf_s_l(MSVCRT_stdin, format, locale, valist);
+    __ms_va_end(valist);
+    return res;
+}
+
+/*********************************************************************
  *		fwscanf (MSVCRT.@)
  */
 int CDECL MSVCRT_fwscanf(MSVCRT_FILE *file, const MSVCRT_wchar_t *format, ...)




More information about the wine-cvs mailing list