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>
This commit is contained in:
Martin Storsjo 2015-11-03 20:40:41 +02:00 committed by Alexandre Julliard
parent 4a79e54917
commit 1fecaae973
2 changed files with 10 additions and 2 deletions

View File

@ -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 */

View File

@ -671,8 +671,14 @@ 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));
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);
}