Piotr Caban : msvcrt: Added _wscanf_s(_l) implementation.
Alexandre Julliard
julliard at winehq.org
Thu Apr 22 11:24:04 CDT 2010
Module: wine
Branch: master
Commit: 98e34c7f82b67f775d39a345dce4cde869851e0b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=98e34c7f82b67f775d39a345dce4cde869851e0b
Author: Piotr Caban <piotr at codeweavers.com>
Date: Thu Apr 22 13:52:33 2010 +0200
msvcrt: Added _wscanf_s(_l) implementation.
---
dlls/msvcr80/msvcr80.spec | 4 ++--
dlls/msvcr90/msvcr90.spec | 4 ++--
dlls/msvcrt/msvcrt.spec | 4 ++--
dlls/msvcrt/scanf.c | 29 +++++++++++++++++++++++++++++
4 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 756a56a..a6bb276 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1179,7 +1179,7 @@
@ cdecl _write(long ptr long) msvcrt._write
@ cdecl _wrmdir(wstr) msvcrt._wrmdir
@ varargs _wscanf_l(wstr ptr) msvcrt._wscanf_l
-@ stub _wscanf_s_l
+@ varargs _wscanf_s_l(wstr ptr) msvcrt._wscanf_s_l
@ cdecl _wsearchenv(wstr wstr ptr) msvcrt._wsearchenv
@ stub _wsearchenv_s
@ cdecl _wsetlocale(long wstr) msvcrt._wsetlocale
@@ -1465,4 +1465,4 @@
@ varargs wprintf(wstr) msvcrt.wprintf
@ stub wprintf_s
@ varargs wscanf(wstr) msvcrt.wscanf
-@ stub wscanf_s
+@ varargs wscanf_s(wstr) msvcrt.wscanf_s
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index ecdcd6d..311d646 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1163,7 +1163,7 @@
@ cdecl _write(long ptr long) msvcrt._write
@ cdecl _wrmdir(wstr) msvcrt._wrmdir
@ varargs _wscanf_l(wstr ptr) msvcrt._wscanf_l
-@ stub _wscanf_s_l
+@ varargs _wscanf_s_l(wstr ptr) msvcrt._wscanf_s_l
@ cdecl _wsearchenv(wstr wstr ptr) msvcrt._wsearchenv
@ stub _wsearchenv_s
@ cdecl _wsetlocale(long wstr) msvcrt._wsetlocale
@@ -1449,4 +1449,4 @@
@ varargs wprintf(wstr) msvcrt.wprintf
@ stub wprintf_s
@ varargs wscanf(wstr) msvcrt.wscanf
-@ stub wscanf_s
+@ varargs wscanf_s(wstr) msvcrt.wscanf_s
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index d5e10cf..a5f47a9 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1108,7 +1108,7 @@
@ cdecl _write(long ptr long) MSVCRT__write
@ cdecl _wrmdir(wstr)
@ varargs _wscanf_l(wstr ptr) MSVCRT__wscanf_l
-# stub _wscanf_s_l
+@ varargs _wscanf_s_l(wstr ptr) MSVCRT__wscanf_s_l
@ cdecl _wsearchenv(wstr wstr ptr)
# stub _wsearchenv_s
@ cdecl _wsetlocale(long wstr) MSVCRT__wsetlocale
@@ -1405,7 +1405,7 @@
@ varargs wprintf(wstr) MSVCRT_wprintf
# stub wprintf_s
@ varargs wscanf(wstr) MSVCRT_wscanf
-# stub wscanf_s
+@ varargs wscanf_s(wstr) MSVCRT_wscanf_s
# Functions not exported in native dll:
@ cdecl _get_invalid_parameter_handler()
diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c
index 498651e..a47a3e4 100644
--- a/dlls/msvcrt/scanf.c
+++ b/dlls/msvcrt/scanf.c
@@ -304,6 +304,35 @@ int CDECL MSVCRT__wscanf_l(const MSVCRT_wchar_t *format,
}
/*********************************************************************
+ * wscanf_s (MSVCRT.@)
+ */
+int CDECL MSVCRT_wscanf_s(const MSVCRT_wchar_t *format, ...)
+{
+ __ms_va_list valist;
+ int res;
+
+ __ms_va_start(valist, format);
+ res = MSVCRT_vfwscanf_s_l(MSVCRT_stdin, format, NULL, valist);
+ __ms_va_end(valist);
+ return res;
+}
+
+/*********************************************************************
+ * _wscanf_s_l (MSVCRT.@)
+ */
+int CDECL MSVCRT__wscanf_s_l(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(MSVCRT_stdin, format, locale, valist);
+ __ms_va_end(valist);
+ return res;
+}
+
+/*********************************************************************
* sscanf (MSVCRT.@)
*/
int CDECL MSVCRT_sscanf(const char *str, const char *format, ...)
More information about the wine-cvs
mailing list