Module: wine Branch: master Commit: f22769f81a2384219c6cb0f6b9f6daf4ac3c8857 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f22769f81a2384219c6cb0f6b9...
Author: Huw Davies huw@codeweavers.com Date: Wed Aug 24 12:58:31 2016 +0100
ucrtbase: Add __stdio_common_vswscanf().
Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
.../api-ms-win-crt-stdio-l1-1-0.spec | 2 +- dlls/msvcrt/scanf.c | 22 +++++++++++++++++++++- dlls/ucrtbase/ucrtbase.spec | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec b/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec index 0dc03b8..af723f7 100644 --- a/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec +++ b/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec @@ -18,7 +18,7 @@ @ cdecl __stdio_common_vswprintf(int64 ptr long wstr ptr ptr) ucrtbase.__stdio_common_vswprintf @ cdecl __stdio_common_vswprintf_p(int64 ptr long wstr ptr ptr) ucrtbase.__stdio_common_vswprintf_p @ cdecl __stdio_common_vswprintf_s(int64 ptr long wstr ptr ptr) ucrtbase.__stdio_common_vswprintf_s -@ stub __stdio_common_vswscanf +@ cdecl __stdio_common_vswscanf(int64 ptr long wstr ptr ptr) ucrtbase.__stdio_common_vswscanf @ cdecl _chsize(long long) ucrtbase._chsize @ cdecl _chsize_s(long int64) ucrtbase._chsize_s @ cdecl _close(long) ucrtbase._close diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c index 579dec5..093424a 100644 --- a/dlls/msvcrt/scanf.c +++ b/dlls/msvcrt/scanf.c @@ -66,7 +66,7 @@ static int wchar2digit(MSVCRT_wchar_t c, int base) { #undef SECURE #include "scanf.h"
-/* vfscanf_l */ +/* vfscanf_s_l */ #define SECURE 1 #include "scanf.h"
@@ -683,6 +683,26 @@ int CDECL MSVCRT__stdio_common_vsscanf(unsigned __int64 options, }
/********************************************************************* + * __stdio_common_vswscanf (MSVCRT.@) + */ +int CDECL MSVCRT__stdio_common_vswscanf(unsigned __int64 options, + const MSVCRT_wchar_t *input, MSVCRT_size_t length, + const MSVCRT_wchar_t *format, + MSVCRT__locale_t locale, + __ms_va_list valist) +{ + /* 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_vsnwscanf_s_l(input, length, format, locale, valist); + else + return MSVCRT_vsnwscanf_l(input, length, format, locale, valist); +} + +/********************************************************************* * __stdio_common_vfwscanf (MSVCRT.@) */ int CDECL MSVCRT__stdio_common_vfwscanf(unsigned __int64 options, diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index d20ef71..6ec16d9 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -163,7 +163,7 @@ @ cdecl __stdio_common_vswprintf(int64 ptr long wstr ptr ptr) MSVCRT__stdio_common_vswprintf @ cdecl __stdio_common_vswprintf_p(int64 ptr long wstr ptr ptr) MSVCRT__stdio_common_vswprintf_p @ cdecl __stdio_common_vswprintf_s(int64 ptr long wstr ptr ptr) MSVCRT__stdio_common_vswprintf_s -@ stub __stdio_common_vswscanf +@ cdecl __stdio_common_vswscanf(int64 ptr long wstr ptr ptr) MSVCRT__stdio_common_vswscanf @ stub __strncnt @ cdecl __sys_errlist() @ cdecl __sys_nerr()