Huw Davies : ucrtbase: Add __stdio_common_vswscanf().
Alexandre Julliard
julliard at winehq.org
Mon Dec 19 13:10:37 CST 2016
Module: wine
Branch: stable
Commit: 7c93deb22d874587f3b3c244284da43c8acc20a5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7c93deb22d874587f3b3c244284da43c8acc20a5
Author: Huw Davies <huw at codeweavers.com>
Date: Wed Aug 24 12:58:31 2016 +0100
ucrtbase: Add __stdio_common_vswscanf().
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit f22769f81a2384219c6cb0f6b9f6daf4ac3c8857)
Signed-off-by: Michael Stefaniuc <mstefani at 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 448311d..6e066dc 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
@ stub __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 2ebb515..a1575db 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 25dfb2f..aa4e7e0 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
@ stub __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()
More information about the wine-cvs
mailing list