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