[PATCH v3] ucrtbase: Implement vsscanf

Martin Storsjo martin at martin.st
Thu Oct 29 05:39:44 CDT 2015


Signed-off-by: Martin Storsjo <martin at martin.st>
---
This currently only implements the legacy mode (which should
behave the same as the old msvcrt versions).

v2: Added a FIXME if used with unhandled options.
v3: Wrapped the long line, fixed the function name in the comment
above it.
---
 .../api-ms-win-crt-stdio-l1-1-0.spec                      |  2 +-
 dlls/msvcrt/scanf.c                                       | 15 +++++++++++++++
 dlls/ucrtbase/Makefile.in                                 |  1 +
 dlls/ucrtbase/ucrtbase.spec                               |  2 +-
 4 files changed, 18 insertions(+), 2 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 75549a7..2db8222 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
@@ -14,7 +14,7 @@
 @ cdecl __stdio_common_vsprintf(int64 ptr long ptr ptr ptr) ucrtbase.__stdio_common_vsprintf
 @ stub __stdio_common_vsprintf_p
 @ cdecl __stdio_common_vsprintf_s(int64 ptr long ptr ptr ptr) ucrtbase.__stdio_common_vsprintf_s
-@ stub __stdio_common_vsscanf
+@ cdecl __stdio_common_vsscanf(int64 ptr long ptr ptr ptr) ucrtbase.__stdio_common_vsscanf
 @ cdecl __stdio_common_vswprintf(int64 ptr long ptr ptr ptr) ucrtbase.__stdio_common_vswprintf
 @ stub __stdio_common_vswprintf_p
 @ stub __stdio_common_vswprintf_s
diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c
index 5dc6915..9a0150f 100644
--- a/dlls/msvcrt/scanf.c
+++ b/dlls/msvcrt/scanf.c
@@ -661,6 +661,21 @@ int CDECL MSVCRT__snscanf_s_l(char *input, MSVCRT_size_t length,
     return res;
 }
 
+
+/*********************************************************************
+ *		__stdio_common_vsscanf (MSVCRT.@)
+ */
+int CDECL MSVCRT__stdio_common_vsscanf(unsigned __int64 options,
+                                       const char *input, MSVCRT_size_t length,
+                                       const char *format,
+                                       MSVCRT__locale_t locale,
+                                       __ms_va_list valist)
+{
+    if (options != 2)
+        FIXME("options %s not handled\n", wine_dbgstr_longlong(options));
+    return MSVCRT_vsnscanf_l(input, length, format, locale, valist);
+}
+
 /*********************************************************************
  *		_snwscanf (MSVCRT.@)
  */
diff --git a/dlls/ucrtbase/Makefile.in b/dlls/ucrtbase/Makefile.in
index 9e672f3..c1677ca 100644
--- a/dlls/ucrtbase/Makefile.in
+++ b/dlls/ucrtbase/Makefile.in
@@ -25,6 +25,7 @@ C_SRCS = \
 	mbcs.c \
 	misc.c \
 	process.c \
+	scanf.c \
 	string.c \
 	thread.c \
 	time.c \
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index c19c864..0e1a191 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -159,7 +159,7 @@
 @ cdecl __stdio_common_vsprintf(int64 ptr long ptr ptr ptr) MSVCRT__stdio_common_vsprintf
 @ stub __stdio_common_vsprintf_p
 @ cdecl __stdio_common_vsprintf_s(int64 ptr long ptr ptr ptr) MSVCRT__stdio_common_vsprintf_s
-@ stub __stdio_common_vsscanf
+@ cdecl __stdio_common_vsscanf(int64 ptr long ptr ptr ptr) MSVCRT__stdio_common_vsscanf
 @ cdecl __stdio_common_vswprintf(int64 ptr long ptr ptr ptr) MSVCRT__stdio_common_vswprintf
 @ stub __stdio_common_vswprintf_p
 @ stub __stdio_common_vswprintf_s
-- 
1.8.1.2




More information about the wine-patches mailing list