Modifier w for %s, %S, %c and %C is same as modifier l.
It is common that wchar_t* string is printed by %ws format by Windows
applications.
This change allows to use %ws by applications compiled by flag
-D__USE_MINGW_ANSI_STDIO=1, which is by default enabled for C99+ msvcrt.dll
builds.
Modifier w is supported by crtdll, msvcrt and UCRT libraries.
---
mingw-w64-crt/stdio/mingw_pformat.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/mingw-w64-crt/stdio/mingw_pformat.c
b/mingw-w64-crt/stdio/mingw_pformat.c
index e22ff79a3bd8..9c22aff144fd 100644
--- a/mingw-w64-crt/stdio/mingw_pformat.c
+++ b/mingw-w64-crt/stdio/mingw_pformat.c
@@ -3001,6 +3001,16 @@ __pformat (int flags, void *dest, int max, const APICHAR
*fmt, va_list argv)
state = PFORMAT_END;
break;
+ case 'w':
+ /*
+ * Identify the appropriate argument as a wide
+ * character or wide string when associated with
+ * `%c`, `%C`, `%s' or `%S`.
+ */
+ length = PFORMAT_LENGTH_LONG;
+ state = PFORMAT_END;
+ break;
+
case 'L':
/*
* Identify the appropriate argument as a `long double',
--
2.20.1
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public