From 1fecaae9737563ef649c7c226dfbabc747852994 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Tue, 3 Nov 2015 20:40:41 +0200 Subject: [PATCH] ucrtbase: Handle the _s variant of vsscanf. Signed-off-by: Martin Storsjo Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- 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 4ce820284d2..77f612e543e 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 b02977fe785..a19d45018b5 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); } /********************************************************************* -- 2.11.4.GIT