---
mingw-w64-crt/stdio/scanf.S | 33 +++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/mingw-w64-crt/stdio/scanf.S b/mingw-w64-crt/stdio/scanf.S
index 41ff64598c59..50e628a89268 100644
--- a/mingw-w64-crt/stdio/scanf.S
+++ b/mingw-w64-crt/stdio/scanf.S
@@ -4,26 +4,27 @@
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
-/* vsscanf, vswscanf, vfscanf, and vfwscanf all come here for i386 and arm.
+/* vsscanf, vswscanf, vfscanf, and vfwscanf all come here for i386, x64, arm32
and arm64.
The goal of this routine is to turn a call to v*scanf into a call to
- s*scanf. This is needed because mingw-w64 uses msvcr100.dll, which doesn't
- support the v*scanf functions instead of msvcr120.dll which does.
+ s*scanf. This is needed for pre-msvcr120 CRT libraries, which do not
+ support the v*scanf functions.
+
+ The function prototype here is:
+
+ int __argtos (void * restrict s,
+ const void * restrict format,
+ va_list arg,
+ size_t count,
+ int (*func)(void * restrict s, const void * restrict format,
...));
+
+ Where:
+ s - may be char *, a wchar_t *, or a FILE * (depending on a function)
+ format - is a char *, or a wchar_t * (depending on a function)
+ count - is the number of pointer-wide arguments from va_list arg which are
+ expanded as variadic arguments when calling func
*/
-/* The function prototype here is (essentially):
-
- int __ms_v*scanf_internal (void *s,
- void *format,
- void *arg,
- size_t count,
- void *func);
-
- I say 'essentially' because passing a function pointer as void in ISO
- is not supported. But in the end, I take the first parameter (which
- may be a char *, a wchar_t *, or a FILE *) and put it into the newly
- formed stack, and eventually call the address in func. */
-
#if defined (__x86_64__)
.text
--
2.20.1
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public