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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public