CRT function mbrtowc() works with cp defined by current locale, so use the
CRT _ismbblead() function which returns info according to current locale
instead of WinAPI function IsDBCSLeadByteEx() which takes explicit locale.
For CRT function implementation it is always better to use CRT functions
instead of WinAPI functions.
---
 mingw-w64-crt/misc/mbrtowc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mingw-w64-crt/misc/mbrtowc.c b/mingw-w64-crt/misc/mbrtowc.c
index c2b29f64eba2..3e143e21cb6c 100644
--- a/mingw-w64-crt/misc/mbrtowc.c
+++ b/mingw-w64-crt/misc/mbrtowc.c
@@ -10,6 +10,7 @@
 #include <wchar.h>
 #include <stdlib.h>
 #include <errno.h>
+#include <mbctype.h>
 #include <windows.h>
 
 size_t mbrtowc (
@@ -71,7 +72,7 @@ size_t mbrtowc (
   if (conversion_state.bytes[0]) {
     conversion_state.bytes[1] = mbs[0];
     length = 2;
-  } else if (mb_cur_max == 2 && IsDBCSLeadByteEx (cp, (BYTE) mbs[0])) {
+  } else if (mb_cur_max == 2 && _ismbblead (mbs[0])) {
     conversion_state.bytes[0] = mbs[0];
 
     /* We need to examine mbs[1] */
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to