All CRT libraries provide fgetwc, _fgetwchar, fputwc and _fputwchar symbols. They are aliases of the C95 functions getwc, getwchar, putwc and putwchar.
CRT libraries crtdll.dll and msvcrt10.dll do not export these functions under C95 names. So define aliases in def files for C95+ compatibility. --- mingw-w64-crt/def-include/crt-aliases.def.in | 6 ++++++ mingw-w64-crt/lib32/crtdll.def.in | 1 + mingw-w64-crt/lib32/msvcrt10.def.in | 1 + 3 files changed, 8 insertions(+) diff --git a/mingw-w64-crt/def-include/crt-aliases.def.in b/mingw-w64-crt/def-include/crt-aliases.def.in index 38e1f8436b92..25eda5db9511 100644 --- a/mingw-w64-crt/def-include/crt-aliases.def.in +++ b/mingw-w64-crt/def-include/crt-aliases.def.in @@ -231,6 +231,12 @@ ADD_UNDERSCORE(y1) ADD_UNDERSCORE(yn) ; This is list of symbol aliases for C95 functions +#ifdef WITH_GET_PUT_WCHAR_ALIASES +getwc == fgetwc +getwchar == _fgetwchar +putwc == fputwc +putwchar == _fputwchar +#endif #ifdef USE_WCSTOK_S_FOR_WCSTOK wcstok == wcstok_s #endif diff --git a/mingw-w64-crt/lib32/crtdll.def.in b/mingw-w64-crt/lib32/crtdll.def.in index c8be803a4046..ac0412b663d6 100644 --- a/mingw-w64-crt/lib32/crtdll.def.in +++ b/mingw-w64-crt/lib32/crtdll.def.in @@ -632,4 +632,5 @@ _ultow #define NO_LCONV_INIT_ALIAS #define NO_SET_APP_TYPE_ALIAS #define WITH_NEXTAFTER_ALIAS +#define WITH_GET_PUT_WCHAR_ALIASES #include "crt-aliases.def.in" diff --git a/mingw-w64-crt/lib32/msvcrt10.def.in b/mingw-w64-crt/lib32/msvcrt10.def.in index ae8e105a3b49..848ca16f95ed 100644 --- a/mingw-w64-crt/lib32/msvcrt10.def.in +++ b/mingw-w64-crt/lib32/msvcrt10.def.in @@ -1302,4 +1302,5 @@ wscanf #define NO_LCONV_INIT_ALIAS #define NO_SET_APP_TYPE_ALIAS #define WITH_NEXTAFTER_ALIAS +#define WITH_GET_PUT_WCHAR_ALIASES #include "crt-aliases.def.in" -- 2.20.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public