Signed-off-by: Martin Storsjö <[email protected]>
---
mingw-w64-crt/Makefile.am | 6 ++++
mingw-w64-crt/stdio/ucrt_fwscanf.c | 19 ++++++++++
mingw-w64-crt/stdio/ucrt_swscanf.c | 20 +++++++++++
mingw-w64-crt/stdio/ucrt_vfwscanf.c | 14 ++++++++
mingw-w64-crt/stdio/ucrt_vswscanf.c | 14 ++++++++
mingw-w64-crt/stdio/ucrt_vwscanf.c | 14 ++++++++
mingw-w64-crt/stdio/ucrt_wscanf.c | 19 ++++++++++
mingw-w64-headers/crt/stdio.h | 54 +++++------------------------
mingw-w64-headers/crt/wchar.h | 54 +++++------------------------
9 files changed, 124 insertions(+), 90 deletions(-)
create mode 100644 mingw-w64-crt/stdio/ucrt_fwscanf.c
create mode 100644 mingw-w64-crt/stdio/ucrt_swscanf.c
create mode 100644 mingw-w64-crt/stdio/ucrt_vfwscanf.c
create mode 100644 mingw-w64-crt/stdio/ucrt_vswscanf.c
create mode 100644 mingw-w64-crt/stdio/ucrt_vwscanf.c
create mode 100644 mingw-w64-crt/stdio/ucrt_wscanf.c
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index ad8bb94f0..1fb0fd911 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -413,6 +413,7 @@ src_ucrtbase=\
stdio/ucrt_fprintf.c \
stdio/ucrt_fscanf.c \
stdio/ucrt_fwprintf.c \
+ stdio/ucrt_fwscanf.c \
stdio/ucrt_ms_fprintf.c \
stdio/ucrt_ms_fwprintf.c \
stdio/ucrt_printf.c \
@@ -422,9 +423,11 @@ src_ucrtbase=\
stdio/ucrt_sprintf.c \
stdio/ucrt_sscanf.c \
stdio/ucrt_swprintf.c \
+ stdio/ucrt_swscanf.c \
stdio/ucrt_vfprintf.c \
stdio/ucrt_vfscanf.c \
stdio/ucrt_vfwprintf.c \
+ stdio/ucrt_vfwscanf.c \
stdio/ucrt_vprintf.c \
stdio/ucrt_vscanf.c \
stdio/ucrt_vsnprintf.c \
@@ -432,8 +435,11 @@ src_ucrtbase=\
stdio/ucrt_vsprintf.c \
stdio/ucrt_vswprintf.c \
stdio/ucrt_vsscanf.c \
+ stdio/ucrt_vswscanf.c \
stdio/ucrt_vwprintf.c \
+ stdio/ucrt_vwscanf.c \
stdio/ucrt_wprintf.c \
+ stdio/ucrt_wscanf.c \
string/ucrt__wcstok.c
# Files included in libucrtapp.a
diff --git a/mingw-w64-crt/stdio/ucrt_fwscanf.c
b/mingw-w64-crt/stdio/ucrt_fwscanf.c
new file mode 100644
index 000000000..cc7d4f92c
--- /dev/null
+++ b/mingw-w64-crt/stdio/ucrt_fwscanf.c
@@ -0,0 +1,19 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#undef __MSVCRT_VERSION__
+#define _UCRT
+#include <stdio.h>
+
+int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__
_Format,...) {
+ __builtin_va_list __ap;
+ int __ret;
+ __builtin_va_start(__ap, _Format);
+ __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _File,
_Format, NULL, __ap);
+ __builtin_va_end(__ap);
+ return __ret;
+}
+int __cdecl (*__MINGW_IMP_SYMBOL(fwscanf))(FILE *__restrict__, const wchar_t
*__restrict__, ...) = fwscanf;
diff --git a/mingw-w64-crt/stdio/ucrt_swscanf.c
b/mingw-w64-crt/stdio/ucrt_swscanf.c
new file mode 100644
index 000000000..036ddcca8
--- /dev/null
+++ b/mingw-w64-crt/stdio/ucrt_swscanf.c
@@ -0,0 +1,20 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#undef __MSVCRT_VERSION__
+#define _UCRT
+#include <stdio.h>
+
+int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t *
__restrict__ _Format,...) {
+ __builtin_va_list __ap;
+ int __ret;
+ __builtin_va_start(__ap, _Format);
+ __ret = __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Src,
(size_t)-1, _Format, NULL, __ap);
+ __builtin_va_end(__ap);
+ return __ret;
+}
+
+int __cdecl (*__MINGW_IMP_SYMBOL(swscanf))(const wchar_t *__restrict__, const
wchar_t *__restrict__, ...) = swscanf;
diff --git a/mingw-w64-crt/stdio/ucrt_vfwscanf.c
b/mingw-w64-crt/stdio/ucrt_vfwscanf.c
new file mode 100644
index 000000000..ed717b145
--- /dev/null
+++ b/mingw-w64-crt/stdio/ucrt_vfwscanf.c
@@ -0,0 +1,14 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#undef __MSVCRT_VERSION__
+#define _UCRT
+#include <stdio.h>
+
+int __cdecl vfwscanf (FILE *__stream, const wchar_t *__format,
__builtin_va_list __local_argv) {
+ return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, __stream,
__format, NULL, __local_argv);
+}
+int __cdecl (*__MINGW_IMP_SYMBOL(vfwscanf))(FILE *, const wchar_t *,
__builtin_va_list) = vfwscanf;
diff --git a/mingw-w64-crt/stdio/ucrt_vswscanf.c
b/mingw-w64-crt/stdio/ucrt_vswscanf.c
new file mode 100644
index 000000000..664f75746
--- /dev/null
+++ b/mingw-w64-crt/stdio/ucrt_vswscanf.c
@@ -0,0 +1,14 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#undef __MSVCRT_VERSION__
+#define _UCRT
+#include <stdio.h>
+
+int __cdecl vswscanf (const wchar_t * __restrict__ __source, const wchar_t *
__restrict__ __format, __builtin_va_list __local_argv) {
+ return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, __source,
(size_t)-1, __format, NULL, __local_argv);
+}
+int __cdecl (*__MINGW_IMP_SYMBOL(vswscanf))(const wchar_t *__restrict, const
wchar_t *__restrict__, __builtin_va_list) = vswscanf;
diff --git a/mingw-w64-crt/stdio/ucrt_vwscanf.c
b/mingw-w64-crt/stdio/ucrt_vwscanf.c
new file mode 100644
index 000000000..758fc6643
--- /dev/null
+++ b/mingw-w64-crt/stdio/ucrt_vwscanf.c
@@ -0,0 +1,14 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#undef __MSVCRT_VERSION__
+#define _UCRT
+#include <stdio.h>
+
+int __cdecl vwscanf(const wchar_t *__format, __builtin_va_list __local_argv) {
+ return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin,
__format, NULL, __local_argv);
+}
+int __cdecl (*__MINGW_IMP_SYMBOL(vwscanf))(const wchar_t *, __builtin_va_list)
= vwscanf;
diff --git a/mingw-w64-crt/stdio/ucrt_wscanf.c
b/mingw-w64-crt/stdio/ucrt_wscanf.c
new file mode 100644
index 000000000..f45779dbb
--- /dev/null
+++ b/mingw-w64-crt/stdio/ucrt_wscanf.c
@@ -0,0 +1,19 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#undef __MSVCRT_VERSION__
+#define _UCRT
+#include <stdio.h>
+
+int __cdecl wscanf(const wchar_t * __restrict__ _Format,...) {
+ __builtin_va_list __ap;
+ int __ret;
+ __builtin_va_start(__ap, _Format);
+ __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin,
_Format, NULL, __ap);
+ __builtin_va_end(__ap);
+ return __ret;
+}
+int __cdecl (*__MINGW_IMP_SYMBOL(wscanf))(const wchar_t *__restrict__, ...) =
wscanf;
diff --git a/mingw-w64-headers/crt/stdio.h b/mingw-w64-headers/crt/stdio.h
index bc24cce39..779561588 100644
--- a/mingw-w64-headers/crt/stdio.h
+++ b/mingw-w64-headers/crt/stdio.h
@@ -1062,55 +1062,19 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const
wchar_t *__format, __builti
#else /* !__USE_MINGW_ANSI_STDIO */
#ifdef _UCRT
- __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
- int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__
_Format,...)
- {
- __builtin_va_list __ap;
- int __ret;
- __builtin_va_start(__ap, _Format);
- __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _File,
_Format, NULL, __ap);
- __builtin_va_end(__ap);
- return __ret;
- }
- __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
- int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t *
__restrict__ _Format,...)
- {
- __builtin_va_list __ap;
- int __ret;
- __builtin_va_start(__ap, _Format);
- __ret = __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Src,
(size_t)-1, _Format, NULL, __ap);
- __builtin_va_end(__ap);
- return __ret;
- }
- __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
- int __cdecl wscanf(const wchar_t * __restrict__ _Format,...)
- {
- __builtin_va_list __ap;
- int __ret;
- __builtin_va_start(__ap, _Format);
- __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin,
_Format, NULL, __ap);
- __builtin_va_end(__ap);
- return __ret;
- }
- __mingw_ovr
+ __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+ int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__
_Format,...);
+ __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+ int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t *
__restrict__ _Format,...);
+ __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+ int __cdecl wscanf(const wchar_t * __restrict__ _Format,...);
__MINGW_ATTRIB_NONNULL(2)
- int vfwscanf (FILE *__stream, const wchar_t *__format, va_list __local_argv)
- {
- return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
__stream, __format, NULL, __local_argv);
- }
+ int vfwscanf (FILE *__stream, const wchar_t *__format, va_list
__local_argv);
- __mingw_ovr
__MINGW_ATTRIB_NONNULL(2)
- int vswscanf (const wchar_t * __restrict__ __source, const wchar_t *
__restrict__ __format, va_list __local_argv)
- {
- return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
__source, (size_t)-1, __format, NULL, __local_argv);
- }
- __mingw_ovr
+ int vswscanf (const wchar_t * __restrict__ __source, const wchar_t *
__restrict__ __format, va_list __local_argv);
__MINGW_ATTRIB_NONNULL(1)
- int vwscanf(const wchar_t *__format, va_list __local_argv)
- {
- return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin,
__format, NULL, __local_argv);
- }
+ int vwscanf(const wchar_t *__format, va_list __local_argv);
int __cdecl fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__
_Format,...);
int __cdecl wprintf(const wchar_t * __restrict__ _Format,...);
diff --git a/mingw-w64-headers/crt/wchar.h b/mingw-w64-headers/crt/wchar.h
index 6c1873420..a66573981 100644
--- a/mingw-w64-headers/crt/wchar.h
+++ b/mingw-w64-headers/crt/wchar.h
@@ -433,55 +433,19 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
#else /* !__USE_MINGW_ANSI_STDIO */
#ifdef _UCRT
- __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
- int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__
_Format,...)
- {
- __builtin_va_list __ap;
- int __ret;
- __builtin_va_start(__ap, _Format);
- __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _File,
_Format, NULL, __ap);
- __builtin_va_end(__ap);
- return __ret;
- }
- __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
- int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t *
__restrict__ _Format,...)
- {
- __builtin_va_list __ap;
- int __ret;
- __builtin_va_start(__ap, _Format);
- __ret = __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Src,
(size_t)-1, _Format, NULL, __ap);
- __builtin_va_end(__ap);
- return __ret;
- }
- __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
- int __cdecl wscanf(const wchar_t * __restrict__ _Format,...)
- {
- __builtin_va_list __ap;
- int __ret;
- __builtin_va_start(__ap, _Format);
- __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin,
_Format, NULL, __ap);
- __builtin_va_end(__ap);
- return __ret;
- }
- __mingw_ovr
+ __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+ int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__
_Format,...);
+ __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+ int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t *
__restrict__ _Format,...);
+ __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+ int __cdecl wscanf(const wchar_t * __restrict__ _Format,...);
__MINGW_ATTRIB_NONNULL(2)
- int vfwscanf (FILE *__stream, const wchar_t *__format, va_list __local_argv)
- {
- return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
__stream, __format, NULL, __local_argv);
- }
+ int vfwscanf (FILE *__stream, const wchar_t *__format, va_list
__local_argv);
- __mingw_ovr
__MINGW_ATTRIB_NONNULL(2)
- int vswscanf (const wchar_t * __restrict__ __source, const wchar_t *
__restrict__ __format, va_list __local_argv)
- {
- return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
__source, (size_t)-1, __format, NULL, __local_argv);
- }
- __mingw_ovr
+ int vswscanf (const wchar_t * __restrict__ __source, const wchar_t *
__restrict__ __format, va_list __local_argv);
__MINGW_ATTRIB_NONNULL(1)
- int vwscanf(const wchar_t *__format, va_list __local_argv)
- {
- return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin,
__format, NULL, __local_argv);
- }
+ int vwscanf(const wchar_t *__format, va_list __local_argv);
int __cdecl fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__
_Format,...);
int __cdecl wprintf(const wchar_t * __restrict__ _Format,...);
--
2.43.0
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public