Module: wine Branch: master Commit: 177d545592de1a9b5943d5de9d1f2e7886661170 URL: http://source.winehq.org/git/wine.git/?a=commit;h=177d545592de1a9b5943d5de9d...
Author: Piotr Caban piotr@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; +}