Previously these functions failed with EOF or EILSEQ only when there was no best-fit character available and a replacement character had been substituted. Now these fail if conversion isn't lossless. --- mingw-w64-crt/misc/wcrtomb.c | 2 +- mingw-w64-crt/misc/wctob.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mingw-w64-crt/misc/wcrtomb.c b/mingw-w64-crt/misc/wcrtomb.c index c50932853..eaed5ee26 100644 --- a/mingw-w64-crt/misc/wcrtomb.c +++ b/mingw-w64-crt/misc/wcrtomb.c @@ -32,7 +32,7 @@ static int __MINGW_ATTRIB_NONNULL(1) { int invalid_char = 0; - int size = WideCharToMultiByte (cp, 0 /* Is this correct flag? */, + int size = WideCharToMultiByte (cp, WC_NO_BEST_FIT_CHARS, &wc, 1, dst, mb_max, NULL, &invalid_char); if (size == 0 || invalid_char) diff --git a/mingw-w64-crt/misc/wctob.c b/mingw-w64-crt/misc/wctob.c index 008e69117..d694cb527 100644 --- a/mingw-w64-crt/misc/wctob.c +++ b/mingw-w64-crt/misc/wctob.c @@ -20,7 +20,7 @@ int wctob (wint_t wc ) char c; int invalid_char = 0; if (!WideCharToMultiByte (___lc_codepage_func(), - 0 /* Is this correct flag? */, + WC_NO_BEST_FIT_CHARS, &w, 1, &c, 1, NULL, &invalid_char) || invalid_char) return EOF; -- 2.47.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public