headers: Map more stdio functions to their counterparts in ucrtbase
Signed-off-by: Martin Storsjö <martin@martin.st>
diff --git a/mingw-w64-headers/crt/wchar.h b/mingw-w64-headers/crt/wchar.h
index 6783a22..0d56270 100644
--- a/mingw-w64-headers/crt/wchar.h
+++ b/mingw-w64-headers/crt/wchar.h
@@ -865,8 +865,283 @@
#endif /* __MSVCRT_VERSION__ >= 0x1400 */
-#endif
+#endif /* _WSTDIO_DEFINED */
+
+#if __MSVCRT_VERSION__ >= 0x1400
+ int __cdecl __stdio_common_vswprintf_p(unsigned __int64 _Options, wchar_t *_Str, size_t _Len, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
+ int __cdecl __stdio_common_vfwprintf_p(unsigned __int64 _Options, FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
+
+ __mingw_ovr int __cdecl _vfwscanf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vfwscanf(UCRTBASE_SCANF_DEFAULT_WIDE, _File, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _fwscanf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vfwscanf_l(_File, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _wscanf_l(const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vfwscanf_l(stdin, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vsnwscanf_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vswscanf(UCRTBASE_SCANF_DEFAULT_WIDE, _Src, _MaxCount, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _snwscanf_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vsnwscanf_l(_Src, _MaxCount, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _snwscanf(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Format);
+ _Ret = _vsnwscanf_l(_Src, _MaxCount, _Format, NULL, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vswscanf_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vswscanf(UCRTBASE_SCANF_DEFAULT_WIDE, _Src, (size_t)-1, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _swscanf_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vswscanf_l(_Src, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vfwprintf_p_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vfwprintf_p(UCRTBASE_PRINTF_DEFAULT_WIDE, _File, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vwprintf_p_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return _vfwprintf_p_l(stdout, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vfwprintf_p(FILE *_File, const wchar_t *_Format, va_list _ArgList)
+ {
+ return _vfwprintf_p_l(_File, _Format, NULL, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vwprintf_p(const wchar_t *_Format, va_list _ArgList)
+ {
+ return _vfwprintf_p_l(stdout, _Format, NULL, _ArgList);
+ }
+ __mingw_ovr int __cdecl _fwprintf_p_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vfwprintf_p_l(_File, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _wprintf_p_l(const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vfwprintf_p_l(stdout, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _fwprintf_p(FILE *_File, const wchar_t *_Format, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Format);
+ _Ret = _vfwprintf_p_l(_File, _Format, NULL, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _wprintf_p(const wchar_t *_Format, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Format);
+ _Ret = _vfwprintf_p_l(stdout, _Format, NULL, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vfwprintf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vfwprintf(UCRTBASE_PRINTF_DEFAULT_WIDE, _File, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vwprintf_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return _vfwprintf_l(stdout, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _fwprintf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vfwprintf_l(_File, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _wprintf_l(const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vfwprintf_l(stdout, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vswprintf_p_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vswprintf_p(UCRTBASE_PRINTF_DEFAULT_WIDE, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vswprintf_p(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, va_list _ArgList)
+ {
+ return _vswprintf_p_l(_DstBuf, _MaxCount, _Format, NULL, _ArgList);
+ }
+ __mingw_ovr int __cdecl _swprintf_p_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vswprintf_p_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _swprintf_p(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Format);
+ _Ret = _vswprintf_p_l(_DstBuf, _MaxCount, _Format, NULL, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vsnwprintf_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vswprintf(UCRTBASE_PRINTF_DEFAULT_WIDE | UCRTBASE_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _snwprintf_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vsnwprintf_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vscwprintf_p_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vswprintf_p(UCRTBASE_PRINTF_DEFAULT_WIDE | UCRTBASE_PRINTF_STANDARD_SNPRINTF_BEHAVIOUR, NULL, 0, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vscwprintf_p(const wchar_t *_Format, va_list _ArgList)
+ {
+ return _vscwprintf_p_l(_Format, NULL, _ArgList);
+ }
+ __mingw_ovr int __cdecl _scwprintf_p_l(const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vscwprintf_p_l(_Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _scwprintf_p(const wchar_t *_Format, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Format);
+ _Ret = _vscwprintf_p_l(_Format, NULL, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vscwprintf_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vswprintf(UCRTBASE_PRINTF_DEFAULT_WIDE | UCRTBASE_PRINTF_STANDARD_SNPRINTF_BEHAVIOUR, NULL, 0, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vscwprintf(const wchar_t *_Format, va_list _ArgList)
+ {
+ return _vscwprintf_l(_Format, NULL, _ArgList);
+ }
+ __mingw_ovr int __cdecl _scwprintf_l(const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vscwprintf_l(_Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+
+ __mingw_ovr int __cdecl _vswprintf_c_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return __stdio_common_vswprintf(UCRTBASE_PRINTF_DEFAULT_WIDE, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl __vswprintf_l(wchar_t *_DstBuf, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vswprintf_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
+ {
+ return _vswprintf_c_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
+ }
+ __mingw_ovr int __cdecl _vswprintf(wchar_t *_DstBuf, const wchar_t *_Format, va_list _ArgList)
+ {
+ return _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, NULL, _ArgList);
+ }
+ __mingw_ovr int __cdecl _swprintf_c_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vswprintf_c_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl __swprintf_l(wchar_t *_DstBuf, const wchar_t *_Format, _locale_t _Locale, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Locale);
+ _Ret = _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, _Locale, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+ __mingw_ovr int __cdecl _swprintf(wchar_t *_DstBuf, const wchar_t *_Format, ...)
+ {
+ __builtin_va_list _ArgList;
+ int _Ret;
+ __builtin_va_start(_ArgList, _Format);
+ _Ret = _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, NULL, _ArgList);
+ __builtin_va_end(_ArgList);
+ return _Ret;
+ }
+#else /* __MSVCRT_VERSION__ >= 0x1400 */
_CRTIMP int __cdecl _fwprintf_p(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
_CRTIMP int __cdecl _wprintf_p(const wchar_t * __restrict__ _Format,...);
_CRTIMP int __cdecl _vfwprintf_p(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
@@ -897,6 +1172,7 @@
_CRTIMP int __cdecl __swprintf_l(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,_locale_t _Plocinfo,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
_CRTIMP int __cdecl _vswprintf_l(wchar_t * __restrict__ _Dest,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
_CRTIMP int __cdecl __vswprintf_l(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,_locale_t _Plocinfo,va_list _Args) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+#endif /* __MSVCRT_VERSION__ < 0x1400 */
#ifndef RC_INVOKED
#include <swprintf.inl>
@@ -910,6 +1186,7 @@
#endif
_CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);
+#if __MSVCRT_VERSION__ < 0x1400
_CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
_CRTIMP int __cdecl _vscwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
_CRTIMP int __cdecl _fwscanf_l(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
@@ -917,6 +1194,7 @@
_CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...);
_CRTIMP int __cdecl _snwscanf_l(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
_CRTIMP int __cdecl _wscanf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+#endif /* __MSVCRT_VERSION__ < 0x1400 */
_CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode);
_CRTIMP FILE *__cdecl _wfopen(const wchar_t * __restrict__ _Filename,const wchar_t * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
_CRTIMP FILE *__cdecl _wfreopen(const wchar_t * __restrict__ _Filename,const wchar_t * __restrict__ _Mode,FILE * __restrict__ _OldFile) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;