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

Reply via email to