Module: wine Branch: master Commit: 1fecaae9737563ef649c7c226dfbabc747852994 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1fecaae9737563ef649c7c226d...
Author: Martin Storsjo martin@martin.st Date: Tue Nov 3 20:40:41 2015 +0200
ucrtbase: Handle the _s variant of vsscanf.
Signed-off-by: Martin Storsjo martin@martin.st Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msvcrt/msvcrt.h | 2 ++ dlls/msvcrt/scanf.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 4ce8202..77f612e 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1139,4 +1139,6 @@ extern char* __cdecl __unDName(char *,const char*,int,malloc_func_t,free_func_t, #define UCRTBASE_SCANF_LEGACY_WIDE_SPECIFIERS (0x0002) #define UCRTBASE_SCANF_LEGACY_MSVCRT_COMPATIBILITY (0x0004)
+#define UCRTBASE_SCANF_MASK (0x0007) + #endif /* __WINE_MSVCRT_H */ diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c index b02977f..a19d450 100644 --- a/dlls/msvcrt/scanf.c +++ b/dlls/msvcrt/scanf.c @@ -671,9 +671,15 @@ int CDECL MSVCRT__stdio_common_vsscanf(unsigned __int64 options, MSVCRT__locale_t locale, __ms_va_list valist) { - if (options != UCRTBASE_SCANF_LEGACY_WIDE_SPECIFIERS) + /* LEGACY_WIDE_SPECIFIERS only has got an effect on the wide + * scanf. LEGACY_MSVCRT_COMPATIBILITY affects parsing of nan/inf, + * but parsing of those isn't implemented at all yet. */ + if (options & ~UCRTBASE_SCANF_MASK) FIXME("options %s not handled\n", wine_dbgstr_longlong(options)); - return MSVCRT_vsnscanf_l(input, length, format, locale, valist); + if (options & UCRTBASE_SCANF_SECURECRT) + return MSVCRT_vsnscanf_s_l(input, length, format, locale, valist); + else + return MSVCRT_vsnscanf_l(input, length, format, locale, valist); }
/*********************************************************************