I accidentally sent patches with .patch extension. I attached them here with .txt extension.
- Kirill Makurin
From f7ec8948247147b1fb59a76ff3a5aca57380698c Mon Sep 17 00:00:00 2001 From: Kirill Makurin <[email protected]> Date: Fri, 22 Aug 2025 02:31:00 +0900 Subject: [PATCH 1/7] crt: update comments for btowc and wctob functions in def files Include the reason why btowc and wctob are being replaced. Signed-off-by: Kirill Makurin <[email protected]> --- mingw-w64-crt/lib-common/api-ms-win-crt-convert-l1-1-0.def.in | 4 ++-- mingw-w64-crt/lib-common/msvcr120_app.def.in | 4 ++-- mingw-w64-crt/lib-common/msvcrt.def.in | 4 ++-- mingw-w64-crt/lib-common/ucrtbase-common.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr100.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr100d.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr110.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr110d.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr120.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr120d.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr80.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr80d.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr90.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr90d.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr100.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr100d.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr110.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr110d.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr120.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr120d.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr80.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr80d.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr90.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr90d.def.in | 4 ++-- mingw-w64-crt/libarm32/msvcr110.def.in | 4 ++-- mingw-w64-crt/libarm32/msvcr110d.def.in | 4 ++-- mingw-w64-crt/libarm32/msvcr120.def.in | 4 ++-- mingw-w64-crt/libarm32/msvcr120d.def.in | 4 ++-- 28 files changed, 56 insertions(+), 56 deletions(-) diff --git a/mingw-w64-crt/lib-common/api-ms-win-crt-convert-l1-1-0.def.in b/mingw-w64-crt/lib-common/api-ms-win-crt-convert-l1-1-0.def.in index fd49dc01d..55426497a 100644 --- a/mingw-w64-crt/lib-common/api-ms-win-crt-convert-l1-1-0.def.in +++ b/mingw-w64-crt/lib-common/api-ms-win-crt-convert-l1-1-0.def.in @@ -93,7 +93,7 @@ atof atoi atol atoll -; btowc ; use replacement +; btowc ; replaced for consistency with wctob c16rtomb c32rtomb mbrtoc16 @@ -128,7 +128,7 @@ wcstombs_s wcstoul wcstoull wcstoumax -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/lib-common/msvcr120_app.def.in b/mingw-w64-crt/lib-common/msvcr120_app.def.in index 083b1f22e..3f0e89035 100644 --- a/mingw-w64-crt/lib-common/msvcr120_app.def.in +++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in @@ -1877,7 +1877,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob cabs cabsf F_ARM32(cabsl) ; Can't use long double functions from the CRT on x86 @@ -2321,7 +2321,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index a7bb31f27..04760001f 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -1795,7 +1795,7 @@ _wtol_l _wutime32 F_I386(== _wutime) ; i386 _wutime32 replaced by alias F_ARM_ANY(asctime_s) ; i386 and x64 asctime_s replaced by emu bsearch_s -; F_ARM_ANY(btowc) ; always use replacement +; F_ARM_ANY(btowc) ; replaced for consistency with wctob clearerr_s fopen_s fprintf_s @@ -1849,7 +1849,7 @@ F_ARM_ANY(wcsnlen) ; i386 and x64 wcsnlen replaced by emu wcsrtombs_s F_ARM_ANY(wcstok_s) ; i386 and x64 wcstok_s replaced by emu wcstombs_s -; F_ARM_ANY(wctob) ; always use replacement +; F_ARM_ANY(wctob) ; replaced, CRT version may sign-extend its return value wctomb_s wprintf_s wscanf_s diff --git a/mingw-w64-crt/lib-common/ucrtbase-common.def.in b/mingw-w64-crt/lib-common/ucrtbase-common.def.in index dd4f0815b..c0a273e0f 100644 --- a/mingw-w64-crt/lib-common/ucrtbase-common.def.in +++ b/mingw-w64-crt/lib-common/ucrtbase-common.def.in @@ -2233,7 +2233,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob c16rtomb c32rtomb cabs @@ -2656,7 +2656,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index 4016060b9..58542e577 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -1662,7 +1662,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA clearerr @@ -1892,7 +1892,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib32/msvcr100d.def.in b/mingw-w64-crt/lib32/msvcr100d.def.in index 40d9e3499..8534faa32 100644 --- a/mingw-w64-crt/lib32/msvcr100d.def.in +++ b/mingw-w64-crt/lib32/msvcr100d.def.in @@ -1729,7 +1729,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ; overwritten clearerr @@ -1955,7 +1955,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index eb8c50d46..e6894b92a 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -1795,7 +1795,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA clearerr @@ -2021,7 +2021,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib32/msvcr110d.def.in b/mingw-w64-crt/lib32/msvcr110d.def.in index cae199097..38d99e2dd 100644 --- a/mingw-w64-crt/lib32/msvcr110d.def.in +++ b/mingw-w64-crt/lib32/msvcr110d.def.in @@ -1862,7 +1862,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ; overwritten clearerr @@ -2088,7 +2088,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib32/msvcr120.def.in b/mingw-w64-crt/lib32/msvcr120.def.in index 385567bc8..757146375 100644 --- a/mingw-w64-crt/lib32/msvcr120.def.in +++ b/mingw-w64-crt/lib32/msvcr120.def.in @@ -1853,7 +1853,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob cabs cabsf ; cabsl ; Can't use long double functions from the CRT on x86 @@ -2284,7 +2284,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/lib32/msvcr120d.def.in b/mingw-w64-crt/lib32/msvcr120d.def.in index eb0257866..fb75756bf 100644 --- a/mingw-w64-crt/lib32/msvcr120d.def.in +++ b/mingw-w64-crt/lib32/msvcr120d.def.in @@ -1920,7 +1920,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob cabs cabsf ; cabsl ; Can't use long double functions from the CRT on x86 @@ -2351,7 +2351,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in index f3f78df13..cbc51da18 100644 --- a/mingw-w64-crt/lib32/msvcr80.def.in +++ b/mingw-w64-crt/lib32/msvcr80.def.in @@ -1303,7 +1303,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA clearerr @@ -1526,7 +1526,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/lib32/msvcr80d.def.in b/mingw-w64-crt/lib32/msvcr80d.def.in index 0df1c1243..dc8341012 100644 --- a/mingw-w64-crt/lib32/msvcr80d.def.in +++ b/mingw-w64-crt/lib32/msvcr80d.def.in @@ -1386,7 +1386,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ; overwritten clearerr @@ -1609,7 +1609,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in index bfb97ff60..4455d1e4f 100644 --- a/mingw-w64-crt/lib32/msvcr90.def.in +++ b/mingw-w64-crt/lib32/msvcr90.def.in @@ -1296,7 +1296,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA clearerr @@ -1524,7 +1524,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in index 69f0d8e4c..19f6f4a17 100644 --- a/mingw-w64-crt/lib32/msvcr90d.def.in +++ b/mingw-w64-crt/lib32/msvcr90d.def.in @@ -1368,7 +1368,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA clearerr @@ -1596,7 +1596,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in index 24698cc8d..58d757b35 100644 --- a/mingw-w64-crt/lib64/msvcr100.def.in +++ b/mingw-w64-crt/lib64/msvcr100.def.in @@ -1612,7 +1612,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ceilf DATA @@ -1854,7 +1854,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib64/msvcr100d.def.in b/mingw-w64-crt/lib64/msvcr100d.def.in index e3c7e1b71..ff7662c31 100644 --- a/mingw-w64-crt/lib64/msvcr100d.def.in +++ b/mingw-w64-crt/lib64/msvcr100d.def.in @@ -1677,7 +1677,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ; overwritten ceilf DATA ; overwritten @@ -1919,7 +1919,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in index 8ef9f860f..4b3374c42 100644 --- a/mingw-w64-crt/lib64/msvcr110.def.in +++ b/mingw-w64-crt/lib64/msvcr110.def.in @@ -1736,7 +1736,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil ceilf @@ -1978,7 +1978,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib64/msvcr110d.def.in b/mingw-w64-crt/lib64/msvcr110d.def.in index ad13f3aad..792a504ac 100644 --- a/mingw-w64-crt/lib64/msvcr110d.def.in +++ b/mingw-w64-crt/lib64/msvcr110d.def.in @@ -1801,7 +1801,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil ceilf @@ -2043,7 +2043,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/lib64/msvcr120.def.in b/mingw-w64-crt/lib64/msvcr120.def.in index 0401dbf20..caa8aac6f 100644 --- a/mingw-w64-crt/lib64/msvcr120.def.in +++ b/mingw-w64-crt/lib64/msvcr120.def.in @@ -1793,7 +1793,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob cabs cabsf ; cabsl ; Can't use long double functions from the CRT on x86 @@ -2240,7 +2240,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/lib64/msvcr120d.def.in b/mingw-w64-crt/lib64/msvcr120d.def.in index bf914c744..8df009dda 100644 --- a/mingw-w64-crt/lib64/msvcr120d.def.in +++ b/mingw-w64-crt/lib64/msvcr120d.def.in @@ -1858,7 +1858,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob cabs cabsf ; cabsl ; Can't use long double functions from the CRT on x86 @@ -2305,7 +2305,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in index aaefaa677..affa2c86e 100644 --- a/mingw-w64-crt/lib64/msvcr80.def.in +++ b/mingw-w64-crt/lib64/msvcr80.def.in @@ -1235,7 +1235,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ceilf DATA @@ -1474,7 +1474,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/lib64/msvcr80d.def.in b/mingw-w64-crt/lib64/msvcr80d.def.in index 5888e92f9..8c5da2797 100644 --- a/mingw-w64-crt/lib64/msvcr80d.def.in +++ b/mingw-w64-crt/lib64/msvcr80d.def.in @@ -1312,7 +1312,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ; overwritten ceilf DATA ; overwritten @@ -1551,7 +1551,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in index c3524fff2..ba6640690 100644 --- a/mingw-w64-crt/lib64/msvcr90.def.in +++ b/mingw-w64-crt/lib64/msvcr90.def.in @@ -1232,7 +1232,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ceilf DATA @@ -1472,7 +1472,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in index e88cffa39..c4f5688a8 100644 --- a/mingw-w64-crt/lib64/msvcr90d.def.in +++ b/mingw-w64-crt/lib64/msvcr90d.def.in @@ -1298,7 +1298,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil DATA ceilf DATA @@ -1538,7 +1538,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wprintf diff --git a/mingw-w64-crt/libarm32/msvcr110.def.in b/mingw-w64-crt/libarm32/msvcr110.def.in index bba35f0be..a8b580d77 100644 --- a/mingw-w64-crt/libarm32/msvcr110.def.in +++ b/mingw-w64-crt/libarm32/msvcr110.def.in @@ -1722,7 +1722,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil ceilf @@ -1965,7 +1965,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/libarm32/msvcr110d.def.in b/mingw-w64-crt/libarm32/msvcr110d.def.in index 4ef8581d8..b0a5f5c3b 100644 --- a/mingw-w64-crt/libarm32/msvcr110d.def.in +++ b/mingw-w64-crt/libarm32/msvcr110d.def.in @@ -1787,7 +1787,7 @@ atoi atol bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob calloc ceil ceilf @@ -2030,7 +2030,7 @@ wcstombs wcstombs_s wcstoul wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wmemcpy_s diff --git a/mingw-w64-crt/libarm32/msvcr120.def.in b/mingw-w64-crt/libarm32/msvcr120.def.in index 32c423fa8..746913c22 100644 --- a/mingw-w64-crt/libarm32/msvcr120.def.in +++ b/mingw-w64-crt/libarm32/msvcr120.def.in @@ -1760,7 +1760,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob cabs cabsf cabsl @@ -2208,7 +2208,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans diff --git a/mingw-w64-crt/libarm32/msvcr120d.def.in b/mingw-w64-crt/libarm32/msvcr120d.def.in index 84faadae1..0473b44ed 100644 --- a/mingw-w64-crt/libarm32/msvcr120d.def.in +++ b/mingw-w64-crt/libarm32/msvcr120d.def.in @@ -1825,7 +1825,7 @@ atol atoll bsearch bsearch_s -; btowc ; use replacement +; btowc ; replaced for consistency with wctob cabs cabsf cabsl @@ -2273,7 +2273,7 @@ wcstoul wcstoull wcstoumax wcsxfrm -; wctob ; use replacement +; wctob ; replaced, CRT version may sign-extend its return value wctomb wctomb_s wctrans -- 2.50.1.windows.1
From 350180cbb363161849f2e49bc35b997ede7788fe Mon Sep 17 00:00:00 2001 From: Kirill Makurin <[email protected]> Date: Fri, 22 Aug 2025 02:32:09 +0900 Subject: [PATCH 2/7] crt: remove static helper function wcrtomb_cp wcrtomb_cp's logic has been moved to wcrtomb. wcsrtombs now directly calls wcrtomb instead of wcrtomb_cp. Signed-off-by: Kirill Makurin <[email protected]> --- mingw-w64-crt/misc/wcrtomb.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/mingw-w64-crt/misc/wcrtomb.c b/mingw-w64-crt/misc/wcrtomb.c index 71ded9cbc..e46743411 100644 --- a/mingw-w64-crt/misc/wcrtomb.c +++ b/mingw-w64-crt/misc/wcrtomb.c @@ -13,12 +13,10 @@ #include <limits.h> #include <windows.h> -static size_t wcrtomb_cp ( +size_t wcrtomb ( char *__restrict__ mbc, wchar_t wc, - mbstate_t *__restrict__ state, - unsigned cp, - int mb_cur_max + mbstate_t *__restrict__ state ) { /* Set `state` to initial state */ if (mbc == NULL) { @@ -42,6 +40,12 @@ static size_t wcrtomb_cp ( return 1; } + /* Code page used by current locale */ + unsigned cp = ___lc_codepage_func (); + + /* Maximum character length in `cp` */ + int mb_cur_max = ___mb_cur_max_func (); + /* Handle "C" locale */ if (cp == 0) { if (wc > 0xFF) { @@ -73,30 +77,12 @@ eilseq: return (size_t) -1; } -size_t wcrtomb ( - char *__restrict__ mbc, - wchar_t wc, - mbstate_t *__restrict__ state -) { - /* Code page used by current locale */ - unsigned cp = ___lc_codepage_func (); - /* Maximum character length in `cp` */ - int mb_cur_max = MB_CUR_MAX; - - return wcrtomb_cp (mbc, wc, state, cp, mb_cur_max); -} - size_t wcsrtombs ( char *__restrict__ mbs, const wchar_t **__restrict__ wcs, size_t count, mbstate_t *__restrict__ state ) { - /* Code page used by current locale */ - unsigned cp = ___lc_codepage_func (); - /* Maximum character length in `cp` */ - int mb_cur_max = MB_CUR_MAX; - /* Buffer to store single converted character */ char mbc[2]; /* Total number of bytes stored in `mbs` */ @@ -106,7 +92,7 @@ size_t wcsrtombs ( const wchar_t *wc = *wcs; while (1) { - const size_t length = wcrtomb_cp (mbc, *wc, state, cp, mb_cur_max); + const size_t length = wcrtomb (mbc, *wc, state); /* Conversion failed */ if (length == (size_t) -1) { -- 2.50.1.windows.1
From ab32979bf83c9559bf330548a1a837c17329a25c Mon Sep 17 00:00:00 2001 From: Kirill Makurin <[email protected]> Date: Fri, 22 Aug 2025 02:33:03 +0900 Subject: [PATCH 3/7] crt: split wcrtomb.c to two files wcrtomb.c and wcsrtombs.c Signed-off-by: Kirill Makurin <[email protected]> --- mingw-w64-crt/Makefile.am | 2 + mingw-w64-crt/misc/wcrtomb.c | 74 ++-------------------------------- mingw-w64-crt/misc/wcsrtombs.c | 71 ++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 70 deletions(-) create mode 100644 mingw-w64-crt/misc/wcsrtombs.c diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index 876b3431b..ab02568cb 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am @@ -350,6 +350,7 @@ src_msvcrt=\ misc/mbrtowc.c \ misc/mbsrtowcs.c \ misc/wcrtomb.c \ + misc/wcsrtombs.c \ misc/wctrans.c \ misc/wctype.c \ secapi/_vscprintf_p.c \ @@ -917,6 +918,7 @@ src_pre_msvcr80=\ misc/strnlen.c \ misc/wassert.c \ misc/wcrtomb.c \ + misc/wcsrtombs.c \ misc/wcsnlen.c \ secapi/getenv_s.c \ stdio/_fseeki64.c \ diff --git a/mingw-w64-crt/misc/wcrtomb.c b/mingw-w64-crt/misc/wcrtomb.c index e46743411..09a5f3574 100644 --- a/mingw-w64-crt/misc/wcrtomb.c +++ b/mingw-w64-crt/misc/wcrtomb.c @@ -3,14 +3,12 @@ * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif +#include <errno.h> #include <locale.h> -#include <wchar.h> #include <stdlib.h> -#include <errno.h> -#include <limits.h> +#include <wchar.h> + +#define WIN32_LEAN_AND_MEAN #include <windows.h> size_t wcrtomb ( @@ -76,67 +74,3 @@ eilseq: _set_errno (EILSEQ); return (size_t) -1; } - -size_t wcsrtombs ( - char *__restrict__ mbs, - const wchar_t **__restrict__ wcs, - size_t count, - mbstate_t *__restrict__ state -) { - /* Buffer to store single converted character */ - char mbc[2]; - /* Total number of bytes stored in `mbs` */ - size_t mbcConverted = 0; - - /* Next wide character to convert */ - const wchar_t *wc = *wcs; - - while (1) { - const size_t length = wcrtomb (mbc, *wc, state); - - /* Conversion failed */ - if (length == (size_t) -1) { - if (mbs != NULL) { - *wcs = wc; - } - return (size_t) -1; - } - - /* POSIX and ISO C are silent about this */ - if (mbs != NULL && count == 0) { - return 0; - } - - /* Terminating '\0' has been converted, stop */ - if (mbc[0] == '\0') { - if (mbs != NULL) { - *mbs = '\0'; - *wcs = NULL; - } - break; - } - - /* Storing `mbc` in `mbs` would exceed `count` */ - if (mbs != NULL && mbcConverted + length > count) { - *wcs = wc; - break; - } - - /* Write `mbc` to `mbs` */ - if (mbs != NULL) { - memcpy (mbs, mbc, length); - mbs += length; - } - - mbcConverted += length; - wc += 1; - - /* `count` bytes have been written to `mbs`, stop */ - if (mbs != NULL && mbcConverted == count) { - *wcs = wc; - break; - } - } - - return mbcConverted; -} diff --git a/mingw-w64-crt/misc/wcsrtombs.c b/mingw-w64-crt/misc/wcsrtombs.c new file mode 100644 index 000000000..7dfc5e88d --- /dev/null +++ b/mingw-w64-crt/misc/wcsrtombs.c @@ -0,0 +1,71 @@ +/** + * 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. + */ +#include <string.h> +#include <wchar.h> + +size_t wcsrtombs ( + char *__restrict__ mbs, + const wchar_t **__restrict__ wcs, + size_t count, + mbstate_t *__restrict__ state +) { + /* Buffer to store single converted character */ + char mbc[2]; + /* Total number of bytes stored in `mbs` */ + size_t mbcConverted = 0; + + /* Next wide character to convert */ + const wchar_t *wc = *wcs; + + while (1) { + const size_t length = wcrtomb (mbc, *wc, state); + + /* Conversion failed */ + if (length == (size_t) -1) { + if (mbs != NULL) { + *wcs = wc; + } + return (size_t) -1; + } + + /* POSIX and ISO C are silent about this */ + if (mbs != NULL && count == 0) { + return 0; + } + + /* Terminating '\0' has been converted, stop */ + if (mbc[0] == '\0') { + if (mbs != NULL) { + *mbs = '\0'; + *wcs = NULL; + } + break; + } + + /* Storing `mbc` in `mbs` would exceed `count` */ + if (mbs != NULL && mbcConverted + length > count) { + *wcs = wc; + break; + } + + /* Write `mbc` to `mbs` */ + if (mbs != NULL) { + memcpy (mbs, mbc, length); + mbs += length; + } + + mbcConverted += length; + wc += 1; + + /* `count` bytes have been written to `mbs`, stop */ + if (mbs != NULL && mbcConverted == count) { + *wcs = wc; + break; + } + } + + return mbcConverted; +} -- 2.50.1.windows.1
From 1421115af56aa9d994ce632885ff1c8aef4d24f9 Mon Sep 17 00:00:00 2001 From: Kirill Makurin <[email protected]> Date: Fri, 22 Aug 2025 02:34:39 +0900 Subject: [PATCH 4/7] crt: use errno instead of _set_errno() in wcrtomb.c For some old CRTs _set_errno() is emulated, while errno is always available. Signed-off-by: Kirill Makurin <[email protected]> --- mingw-w64-crt/misc/wcrtomb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt/misc/wcrtomb.c b/mingw-w64-crt/misc/wcrtomb.c index 09a5f3574..552d6bd0a 100644 --- a/mingw-w64-crt/misc/wcrtomb.c +++ b/mingw-w64-crt/misc/wcrtomb.c @@ -26,7 +26,7 @@ size_t wcrtomb ( /* Detect invalid conversion state */ if (state != NULL && *state) { - _set_errno (EINVAL); + errno = EINVAL; return (size_t) -1; } @@ -71,6 +71,6 @@ size_t wcrtomb ( return ret; eilseq: - _set_errno (EILSEQ); + errno = EILSEQ; return (size_t) -1; } -- 2.50.1.windows.1
From d0d2fe736c145f6e7f5f91ba299de81ba6d5eaea Mon Sep 17 00:00:00 2001 From: Kirill Makurin <[email protected]> Date: Fri, 22 Aug 2025 02:35:51 +0900 Subject: [PATCH 5/7] crt: fix return value of mbrlen and mbrtowc functions with DBCS code pages CRT's mbrlen and mbrtowc functions return incorrect value if previous call to either of them has returned (size_t)-2 when converting using DBCS code page. Previously, mingw-w64's implementation of those functions was implementing the same buggy behavior for compatibility with CRT. This commit fixes return value of mbrlen and mbrtowc functions. Tests for mbrlen and mbrtowc functions are updated accordingly. Signed-off-by: Kirill Makurin <[email protected]> --- mingw-w64-crt/misc/mbrtowc.c | 8 +++++++- mingw-w64-crt/testcases/t_mbrlen.c | 5 +---- mingw-w64-crt/testcases/t_mbrtowc.c | 5 +---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mingw-w64-crt/misc/mbrtowc.c b/mingw-w64-crt/misc/mbrtowc.c index be5830a00..75c9f98f0 100644 --- a/mingw-w64-crt/misc/mbrtowc.c +++ b/mingw-w64-crt/misc/mbrtowc.c @@ -68,8 +68,12 @@ size_t mbrtowc ( /* Length of potential multibyte character */ int length = 1; + /* Number of bytes consumed from `mbs` */ + int bytes_consumed = 0; + if (conversion_state.bytes[0]) { conversion_state.bytes[1] = mbs[0]; + bytes_consumed = 1; length = 2; } else if (mb_cur_max == 2 && isleadbyte (mbs[0])) { conversion_state.bytes[0] = mbs[0]; @@ -81,9 +85,11 @@ size_t mbrtowc ( } conversion_state.bytes[1] = mbs[1]; + bytes_consumed = 2; length = 2; } else { conversion_state.bytes[0] = mbs[0]; + bytes_consumed = 1; } /* Store terminating '\0' */ @@ -116,7 +122,7 @@ size_t mbrtowc ( *state = 0; } - return length; + return bytes_consumed; eilseq: errno = EILSEQ; diff --git a/mingw-w64-crt/testcases/t_mbrlen.c b/mingw-w64-crt/testcases/t_mbrlen.c index 4d297e3b7..2e723a1a5 100644 --- a/mingw-w64-crt/testcases/t_mbrlen.c +++ b/mingw-w64-crt/testcases/t_mbrlen.c @@ -118,12 +118,9 @@ int main (void) { /** * Complete multibyte character - * - * NOTE: return value does not conform to ISO C and POSIX. - * This behavior is implemented for consistency with CRT. */ - assert (mbrlen ((char *) Multibyte + 1, 1, &state) == 2); + assert (mbrlen ((char *) Multibyte + 1, 1, &state) == 1); assert (mbsinit (&state)); assert (errno == 0); diff --git a/mingw-w64-crt/testcases/t_mbrtowc.c b/mingw-w64-crt/testcases/t_mbrtowc.c index 1b94207ca..cb11b144f 100644 --- a/mingw-w64-crt/testcases/t_mbrtowc.c +++ b/mingw-w64-crt/testcases/t_mbrtowc.c @@ -136,13 +136,10 @@ int main (void) { /** * Complete multibyte character - * - * NOTE: return value does not conform to ISO C and POSIX. - * This behavior is implemented for consistency with CRT. */ wc = WEOF; - assert (mbrtowc (&wc, (char *) Multibyte + 1, 1, &state) == 2); + assert (mbrtowc (&wc, (char *) Multibyte + 1, 1, &state) == 1); assert (wc != WEOF); assert (mbsinit (&state)); assert (errno == 0); -- 2.50.1.windows.1
From 33151a0ed3553a4b0f6eea13ce9478a86f371acf Mon Sep 17 00:00:00 2001 From: Kirill Makurin <[email protected]> Date: Fri, 22 Aug 2025 02:37:59 +0900 Subject: [PATCH 6/7] crt: use replacements for C95 conversion functions with all msvcr*.dll CRTs Previously, replacements for C95 conversion functions were used only with msvcrt.dll and earlier CRTs. Comments for C95 conversion functions in msvcrt.def.in have been updated to include the reason why they are being replaced. Signed-off-by: Kirill Makurin <[email protected]> --- mingw-w64-crt/Makefile.am | 15 +++++---------- mingw-w64-crt/lib-common/msvcr120_app.def.in | 10 +++++----- mingw-w64-crt/lib-common/msvcrt.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcp60.def | 12 ++++++------ mingw-w64-crt/lib32/msvcr100.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr100d.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr110.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr110d.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr120.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr120d.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr80.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr80d.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr90.def.in | 10 +++++----- mingw-w64-crt/lib32/msvcr90d.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcp60.def | 10 +++++----- mingw-w64-crt/lib64/msvcr100.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr100d.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr110.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr110d.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr120.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr120d.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr80.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr80d.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr90.def.in | 10 +++++----- mingw-w64-crt/lib64/msvcr90d.def.in | 10 +++++----- mingw-w64-crt/libarm32/msvcp60.def | 10 +++++----- mingw-w64-crt/libarm32/msvcr110.def.in | 10 +++++----- mingw-w64-crt/libarm32/msvcr110d.def.in | 10 +++++----- mingw-w64-crt/libarm32/msvcr120.def.in | 10 +++++----- mingw-w64-crt/libarm32/msvcr120d.def.in | 10 +++++----- 30 files changed, 151 insertions(+), 156 deletions(-) diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index ab02568cb..7a986d591 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am @@ -168,9 +168,14 @@ src_libws2_32=libsrc/ws2_32.c \ src_msvcrt_common=\ misc/_onexit.c \ misc/btowc.c \ + misc/mbrlen.c \ + misc/mbrtowc.c \ misc/mbsinit.c \ + misc/mbsrtowcs.c \ misc/onexit_table.c \ misc/register_tls_atexit.c \ + misc/wcrtomb.c \ + misc/wcsrtombs.c \ misc/wctob.c \ stdio/_getc_nolock.c \ stdio/_getwc_nolock.c \ @@ -346,11 +351,6 @@ src_msvcrt=\ misc/iswblank.c \ misc/_isblank_l.c \ misc/_iswblank_l.c \ - misc/mbrlen.c \ - misc/mbrtowc.c \ - misc/mbsrtowcs.c \ - misc/wcrtomb.c \ - misc/wcsrtombs.c \ misc/wctrans.c \ misc/wctype.c \ secapi/_vscprintf_p.c \ @@ -911,14 +911,9 @@ src_pre_msvcr80=\ misc/_set_fmode.c \ misc/imaxabs.c \ misc/invalid_parameter_handler.c \ - misc/mbrlen.c \ - misc/mbrtowc.c \ - misc/mbsrtowcs.c \ misc/output_format.c \ misc/strnlen.c \ misc/wassert.c \ - misc/wcrtomb.c \ - misc/wcsrtombs.c \ misc/wcsnlen.c \ secapi/getenv_s.c \ stdio/_fseeki64.c \ diff --git a/mingw-w64-crt/lib-common/msvcr120_app.def.in b/mingw-w64-crt/lib-common/msvcr120_app.def.in index 3f0e89035..32a85cde7 100644 --- a/mingw-w64-crt/lib-common/msvcr120_app.def.in +++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in @@ -2116,9 +2116,9 @@ lroundf F_ARM32(lroundl) ; Can't use long double functions from the CRT on x86 malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2283,7 +2283,7 @@ vwprintf vwprintf_s vwscanf vwscanf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2303,7 +2303,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 04760001f..5c31c7916 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -1804,10 +1804,10 @@ fscanf_s fwprintf_s fwscanf_s F_ARM_ANY(getenv_s) ; i386 and x64 getenv_s replaced by emu -; F_ARM_ANY(mbrlen) ; always use replacement -; F_ARM_ANY(mbrtowc) ; always use replacement +; F_ARM_ANY(mbrlen) ; replaced, CRT version does not conform to C95 +; F_ARM_ANY(mbrtowc) ; replaced, CRT version does not conform to C95 mbsdup_dbg -; F_ARM_ANY(mbsrtowcs) ; always use replacement +; F_ARM_ANY(mbsrtowcs) ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs_s F_ARM_ANY(memcpy_s) ; i386 and x64 memcpy_s replaced by emu @@ -1838,14 +1838,14 @@ vprintf_s F_ARM_ANY(vsprintf_s) ; i386 and x64 vsprintf_s replaced by emu vswprintf_s vwprintf_s -; F_ARM_ANY(wcrtomb) ; always use replacement +; F_ARM_ANY(wcrtomb) ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat_s wcscpy_s wcsncat_s wcsncpy_s F_ARM_ANY(wcsnlen) ; i386 and x64 wcsnlen replaced by emu -; F_ARM_ANY(wcsrtombs) ; always use replacement +; F_ARM_ANY(wcsrtombs) ; replaced, CRT version does not report invalid conversion state wcsrtombs_s F_ARM_ANY(wcstok_s) ; i386 and x64 wcstok_s replaced by emu wcstombs_s diff --git a/mingw-w64-crt/lib32/msvcp60.def b/mingw-w64-crt/lib32/msvcp60.def index f6a5dc93f..0a16172ce 100644 --- a/mingw-w64-crt/lib32/msvcp60.def +++ b/mingw-w64-crt/lib32/msvcp60.def @@ -60,12 +60,12 @@ EXPORTS ;_Xbig btowc -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 towctrans -wcrtomb -wcsrtombs +; wcrtomb ; replaced, CRT version does not report invalid conversion state +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wctob wctrans -wctype \ No newline at end of file +wctype diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index 58542e577..2d00f87f0 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -1756,9 +1756,9 @@ log10 longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1860,7 +1860,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1880,7 +1880,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr100d.def.in b/mingw-w64-crt/lib32/msvcr100d.def.in index 8534faa32..e1f6b4770 100644 --- a/mingw-w64-crt/lib32/msvcr100d.def.in +++ b/mingw-w64-crt/lib32/msvcr100d.def.in @@ -1821,9 +1821,9 @@ log10 longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1923,7 +1923,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1943,7 +1943,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index e6894b92a..be2491f6f 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -1887,9 +1887,9 @@ log10 ; If we implement log10, we can set it to DATA only. longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1989,7 +1989,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2009,7 +2009,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr110d.def.in b/mingw-w64-crt/lib32/msvcr110d.def.in index 38d99e2dd..16d06696c 100644 --- a/mingw-w64-crt/lib32/msvcr110d.def.in +++ b/mingw-w64-crt/lib32/msvcr110d.def.in @@ -1954,9 +1954,9 @@ log10 longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2056,7 +2056,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2076,7 +2076,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr120.def.in b/mingw-w64-crt/lib32/msvcr120.def.in index 757146375..aaa965780 100644 --- a/mingw-w64-crt/lib32/msvcr120.def.in +++ b/mingw-w64-crt/lib32/msvcr120.def.in @@ -2086,9 +2086,9 @@ lroundf ; lroundl ; Can't use long double functions from the CRT on x86 malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2246,7 +2246,7 @@ vwprintf vwprintf_s vwscanf vwscanf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2266,7 +2266,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr120d.def.in b/mingw-w64-crt/lib32/msvcr120d.def.in index fb75756bf..f670d0bbf 100644 --- a/mingw-w64-crt/lib32/msvcr120d.def.in +++ b/mingw-w64-crt/lib32/msvcr120d.def.in @@ -2153,9 +2153,9 @@ lroundf ; lroundl ; Can't use long double functions from the CRT on x86 malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2313,7 +2313,7 @@ vwprintf vwprintf_s vwscanf vwscanf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2333,7 +2333,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in index cbc51da18..981870755 100644 --- a/mingw-w64-crt/lib32/msvcr80.def.in +++ b/mingw-w64-crt/lib32/msvcr80.def.in @@ -1392,9 +1392,9 @@ log10 ; If we implement log10, we can set it to DATA only. longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1494,7 +1494,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1514,7 +1514,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr80d.def.in b/mingw-w64-crt/lib32/msvcr80d.def.in index dc8341012..a98c5dd36 100644 --- a/mingw-w64-crt/lib32/msvcr80d.def.in +++ b/mingw-w64-crt/lib32/msvcr80d.def.in @@ -1475,9 +1475,9 @@ log10 longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +: mbrtowc ; replaced, CRT version does not conform to C95 +: mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1577,7 +1577,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1597,7 +1597,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in index 4455d1e4f..6f626415f 100644 --- a/mingw-w64-crt/lib32/msvcr90.def.in +++ b/mingw-w64-crt/lib32/msvcr90.def.in @@ -1388,9 +1388,9 @@ log10 longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1492,7 +1492,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1512,7 +1512,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in index 19f6f4a17..8bca8f485 100644 --- a/mingw-w64-crt/lib32/msvcr90d.def.in +++ b/mingw-w64-crt/lib32/msvcr90d.def.in @@ -1460,9 +1460,9 @@ log10 longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1564,7 +1564,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1584,7 +1584,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcp60.def b/mingw-w64-crt/lib64/msvcp60.def index b0c348a38..cef5f5195 100644 --- a/mingw-w64-crt/lib64/msvcp60.def +++ b/mingw-w64-crt/lib64/msvcp60.def @@ -4713,12 +4713,12 @@ _Wcsxfrm _Xbig __Wcrtomb_lk btowc -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 towctrans -wcrtomb -wcsrtombs +; wcrtomb ; replaced, CRT version does not report invalid conversion state +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wctob wctrans wctype diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in index 58d757b35..df860c09d 100644 --- a/mingw-w64-crt/lib64/msvcr100.def.in +++ b/mingw-w64-crt/lib64/msvcr100.def.in @@ -1712,9 +1712,9 @@ logf DATA longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1822,7 +1822,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1842,7 +1842,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr100d.def.in b/mingw-w64-crt/lib64/msvcr100d.def.in index ff7662c31..6fd09a588 100644 --- a/mingw-w64-crt/lib64/msvcr100d.def.in +++ b/mingw-w64-crt/lib64/msvcr100d.def.in @@ -1777,9 +1777,9 @@ logf DATA ; overwritten longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1887,7 +1887,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1907,7 +1907,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in index 4b3374c42..80f9fa554 100644 --- a/mingw-w64-crt/lib64/msvcr110.def.in +++ b/mingw-w64-crt/lib64/msvcr110.def.in @@ -1836,9 +1836,9 @@ logf longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1946,7 +1946,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1966,7 +1966,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr110d.def.in b/mingw-w64-crt/lib64/msvcr110d.def.in index 792a504ac..3bb047b4c 100644 --- a/mingw-w64-crt/lib64/msvcr110d.def.in +++ b/mingw-w64-crt/lib64/msvcr110d.def.in @@ -1901,9 +1901,9 @@ logf longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2011,7 +2011,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2031,7 +2031,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr120.def.in b/mingw-w64-crt/lib64/msvcr120.def.in index caa8aac6f..4f19699b1 100644 --- a/mingw-w64-crt/lib64/msvcr120.def.in +++ b/mingw-w64-crt/lib64/msvcr120.def.in @@ -2034,9 +2034,9 @@ lroundf ; lroundl ; Can't use long double functions from the CRT on x86 malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2202,7 +2202,7 @@ vwprintf vwprintf_s vwscanf vwscanf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2222,7 +2222,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr120d.def.in b/mingw-w64-crt/lib64/msvcr120d.def.in index 8df009dda..f4a1d6b24 100644 --- a/mingw-w64-crt/lib64/msvcr120d.def.in +++ b/mingw-w64-crt/lib64/msvcr120d.def.in @@ -2099,9 +2099,9 @@ lroundf ; lroundl ; Can't use long double functions from the CRT on x86 malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2267,7 +2267,7 @@ vwprintf vwprintf_s vwscanf vwscanf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2287,7 +2287,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in index affa2c86e..362ca3efe 100644 --- a/mingw-w64-crt/lib64/msvcr80.def.in +++ b/mingw-w64-crt/lib64/msvcr80.def.in @@ -1332,9 +1332,9 @@ logf DATA longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1442,7 +1442,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1462,7 +1462,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr80d.def.in b/mingw-w64-crt/lib64/msvcr80d.def.in index 8c5da2797..66ff58201 100644 --- a/mingw-w64-crt/lib64/msvcr80d.def.in +++ b/mingw-w64-crt/lib64/msvcr80d.def.in @@ -1409,9 +1409,9 @@ logf DATA ; overwritten longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1519,7 +1519,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1539,7 +1539,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in index ba6640690..d04136ed0 100644 --- a/mingw-w64-crt/lib64/msvcr90.def.in +++ b/mingw-w64-crt/lib64/msvcr90.def.in @@ -1330,9 +1330,9 @@ logf DATA longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1440,7 +1440,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1460,7 +1460,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in index c4f5688a8..1a2526443 100644 --- a/mingw-w64-crt/lib64/msvcr90d.def.in +++ b/mingw-w64-crt/lib64/msvcr90d.def.in @@ -1396,9 +1396,9 @@ logf DATA longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1506,7 +1506,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1526,7 +1526,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/libarm32/msvcp60.def b/mingw-w64-crt/libarm32/msvcp60.def index ccb242c4e..24516c830 100644 --- a/mingw-w64-crt/libarm32/msvcp60.def +++ b/mingw-w64-crt/libarm32/msvcp60.def @@ -2294,12 +2294,12 @@ _Wcrtomb _Xbig __Wcrtomb_lk btowc -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 towctrans -wcrtomb -wcsrtombs +; wcrtomb ; replaced, CRT version does not report invalid conversion state +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wctob wctrans wctype diff --git a/mingw-w64-crt/libarm32/msvcr110.def.in b/mingw-w64-crt/libarm32/msvcr110.def.in index a8b580d77..d863b6434 100644 --- a/mingw-w64-crt/libarm32/msvcr110.def.in +++ b/mingw-w64-crt/libarm32/msvcr110.def.in @@ -1823,9 +1823,9 @@ logf longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1933,7 +1933,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -1953,7 +1953,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/libarm32/msvcr110d.def.in b/mingw-w64-crt/libarm32/msvcr110d.def.in index b0a5f5c3b..699f0e8de 100644 --- a/mingw-w64-crt/libarm32/msvcr110d.def.in +++ b/mingw-w64-crt/libarm32/msvcr110d.def.in @@ -1888,9 +1888,9 @@ logf longjmp malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -1998,7 +1998,7 @@ vsprintf_s vswprintf_s vwprintf vwprintf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2018,7 +2018,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/libarm32/msvcr120.def.in b/mingw-w64-crt/libarm32/msvcr120.def.in index 746913c22..3218c4897 100644 --- a/mingw-w64-crt/libarm32/msvcr120.def.in +++ b/mingw-w64-crt/libarm32/msvcr120.def.in @@ -2002,9 +2002,9 @@ lroundf lroundl malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2170,7 +2170,7 @@ vwprintf vwprintf_s vwscanf vwscanf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2190,7 +2190,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr diff --git a/mingw-w64-crt/libarm32/msvcr120d.def.in b/mingw-w64-crt/libarm32/msvcr120d.def.in index 0473b44ed..096f4d17d 100644 --- a/mingw-w64-crt/libarm32/msvcr120d.def.in +++ b/mingw-w64-crt/libarm32/msvcr120d.def.in @@ -2067,9 +2067,9 @@ lroundf lroundl malloc mblen -mbrlen -mbrtowc -mbsrtowcs +; mbrlen ; replaced, CRT version does not conform to C95 +; mbrtowc ; replaced, CRT version does not conform to C95 +; mbsrtowcs ; replaced, CRT version does not conform to C95 mbsrtowcs_s mbstowcs mbstowcs_s @@ -2235,7 +2235,7 @@ vwprintf vwprintf_s vwscanf vwscanf_s -wcrtomb +; wcrtomb ; replaced, CRT version does not report invalid conversion state wcrtomb_s wcscat wcscat_s @@ -2255,7 +2255,7 @@ wcsncpy_s wcsnlen wcspbrk wcsrchr -wcsrtombs +; wcsrtombs ; replaced, CRT version does not report invalid conversion state wcsrtombs_s wcsspn wcsstr -- 2.50.1.windows.1
From 4ba06d9541dd2a214987ef0aca2ff5e9608d9e73 Mon Sep 17 00:00:00 2001 From: Kirill Makurin <[email protected]> Date: Fri, 22 Aug 2025 02:39:07 +0900 Subject: [PATCH 7/7] crt: run tests for C95 conversion function with all msvcr*.dll CRTs Previously, these tests were skipped for msvcr80.dll and later. Signed-off-by: Kirill Makurin <[email protected]> --- mingw-w64-crt/testcases/t_mbrlen.c | 2 +- mingw-w64-crt/testcases/t_mbrtowc.c | 2 +- mingw-w64-crt/testcases/t_mbsrtowcs.c | 2 +- mingw-w64-crt/testcases/t_wcrtomb.c | 2 +- mingw-w64-crt/testcases/t_wcsrtombs.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-crt/testcases/t_mbrlen.c b/mingw-w64-crt/testcases/t_mbrlen.c index 2e723a1a5..b66e277c0 100644 --- a/mingw-w64-crt/testcases/t_mbrlen.c +++ b/mingw-w64-crt/testcases/t_mbrlen.c @@ -23,7 +23,7 @@ char Multibyte[] = {(char) 0x81, (char) 0x81}; char InvalidMultibyte[] = {(char) 0x81, 0}; int main (void) { -#if __MSVCRT_VERSION__ >= 0x0800 +#ifdef _UCRT return 77; #endif mbstate_t state = {0}; diff --git a/mingw-w64-crt/testcases/t_mbrtowc.c b/mingw-w64-crt/testcases/t_mbrtowc.c index cb11b144f..e37986d3d 100644 --- a/mingw-w64-crt/testcases/t_mbrtowc.c +++ b/mingw-w64-crt/testcases/t_mbrtowc.c @@ -23,7 +23,7 @@ char Multibyte[] = {(char) 0x81, (char) 0x81}; char InvalidMultibyte[] = {(char) 0x81, 0}; int main (void) { -#if __MSVCRT_VERSION__ >= 0x0800 +#ifdef _UCRT return 77; #endif mbstate_t state = {0}; diff --git a/mingw-w64-crt/testcases/t_mbsrtowcs.c b/mingw-w64-crt/testcases/t_mbsrtowcs.c index ba2b83805..9cfd9c968 100644 --- a/mingw-w64-crt/testcases/t_mbsrtowcs.c +++ b/mingw-w64-crt/testcases/t_mbsrtowcs.c @@ -21,7 +21,7 @@ unsigned char MixedText[] = {0x93, 0xFA, 'n', 'i', 0x96, 0x7B, 'h', 'o', 'n', 0x unsigned char BadText[] = {0x93, 0xFA, 0x96, 0x7B, 0x8C, 0x0}; int main (void) { -#if __MSVCRT_VERSION__ >= 0x0800 +#ifdef _UCRT return 77; #endif mbstate_t state = {0}; diff --git a/mingw-w64-crt/testcases/t_wcrtomb.c b/mingw-w64-crt/testcases/t_wcrtomb.c index f6e44f410..83a89d90e 100644 --- a/mingw-w64-crt/testcases/t_wcrtomb.c +++ b/mingw-w64-crt/testcases/t_wcrtomb.c @@ -21,7 +21,7 @@ static void set_conversion_state (mbstate_t *state, int bytes) { } int main (void) { -#if __MSVCRT_VERSION__ >= 0x0800 +#ifdef _UCRT return 77; #endif mbstate_t state = {0}; diff --git a/mingw-w64-crt/testcases/t_wcsrtombs.c b/mingw-w64-crt/testcases/t_wcsrtombs.c index f2c660daa..b5f744f83 100644 --- a/mingw-w64-crt/testcases/t_wcsrtombs.c +++ b/mingw-w64-crt/testcases/t_wcsrtombs.c @@ -17,7 +17,7 @@ wchar_t MixedText[] = L"æ¥NIæ¬HONèªGO"; wchar_t BadText[] = {L'ã', L'ã', WEOF, L'ã'}; int main (void) { -#if __MSVCRT_VERSION__ >= 0x0800 +#ifdef _UCRT return 77; #endif const wchar_t *original_text = NULL; -- 2.50.1.windows.1
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
