Module: wine Branch: master Commit: 2c07fad607b0d41db22bbbedf672b1023d744d01 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2c07fad607b0d41db22bbbedf6...
Author: Piotr Caban piotr@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, ...)