I guess sticking to range [0,255] is our best choice.

I attached patches.

Now that we also use replacements for UCRT, I added code to control which flags 
are passed to MultiByteToWideChar based on code page[1].

I tried building mingw-w64-crt with --with-default-msvcrt=msvcrt and 
--with-default-msvcrt=ucrt. Things seem to work well.

- Kirill Makurin

[1] 
https://learn.microsoft.com/en-us/windows/win32/api/stringapiset/nf-stringapiset-multibytetowidechar


________________________________
From: LIU Hao
Sent: Sunday, June 8, 2025 12:19 AM
To: Kirill Makurin; mingw-w64-public
Subject: Re: [Mingw-w64-public] Inconsistent behavior of btowc with "C" locale

在 2025-6-7 18:40, Kirill Makurin 写道:
> Thank you for details.
>
> There is msvcp60.def which exports wctob and btowc, I am not sure if I should 
> touch it.
>
> If we don't take POSIX behavior for btowc with "C" locale for input in range 
> [128,255], and since we
> replace them both for all CRTs, I think we could limit range of valid input 
> to [0,127] to be consistent
> with existing implementations like glibc.
>
> Initially, the idea to allow values in range [0,255] in "C" locale was to 
> match CRTs behavior. What do you think?


Looks like that the behavior of `btowc()` is defined as:

    ```
    wint_t
    btowc(int c)
      {
        if(c == EOF)
          return WEOF;

        wchar_t wc;
        char ch = (char) c;
        mbstate_t st = { 0 };

        if(mbrtowc(&wc, &ch, 1, &st) != 1)
          return WEOF;

        return wc;
      }
    ```

The UCRT `mbrtowc()` function doesn't fail for characters in [128,255].





--
Best regards,
LIU Hao
From 3b809cbc99785bb8cf1335e950072c832a097123 Mon Sep 17 00:00:00 2001
From: Kirill Makurin <maiddais...@outlook.com>
Date: Sun, 8 Jun 2025 00:23:19 +0900
Subject: [PATCH 1/3] crt: change behavior of btowc and wctob with C locale

When current locale is "C", ___lc_codepage_func() will return 0.
When 0 (CP_ACP) is passed to MultiByteToWideChar or WideCharToMultiByte,
they will use code page returned by GetACP() during conversion.

This may lead to unexpected behavior in programs relying on "C" locale
being consistent.

Check return value of ___lc_codepage_func(), and if it returns 0,
perform simple range checking. If input value is in range [0,255],
return it as is. This matches CRT's behavior.

Signed-off-by: Kirill Makurin <maiddais...@outlook.com>
---
 mingw-w64-crt/misc/btowc.c | 22 +++++++++++++---------
 mingw-w64-crt/misc/wctob.c | 26 ++++++++++++++++----------
 2 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/mingw-w64-crt/misc/btowc.c b/mingw-w64-crt/misc/btowc.c
index c8fbd8e74..b55e28eee 100644
--- a/mingw-w64-crt/misc/btowc.c
+++ b/mingw-w64-crt/misc/btowc.c
@@ -15,14 +15,18 @@ wint_t btowc (int c)
 {
   if (c == EOF)
     return (WEOF);
-  else
-    {
-      unsigned char ch = c;
-      wchar_t wc = WEOF;
-      if (!MultiByteToWideChar (___lc_codepage_func(), MB_ERR_INVALID_CHARS,
-                                (char*)&ch, 1, &wc, 1))
-        return WEOF;
 
-      return wc;
-    }
+  unsigned cp = ___lc_codepage_func();
+
+  /* "C" locale */
+  if (cp == 0)
+    return (unsigned) c <= 0xFF ? c : WEOF;
+
+  unsigned char ch = c;
+  wchar_t wc = WEOF;
+
+  if (!MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, (char*)&ch, 1, &wc, 1))
+    return WEOF;
+
+  return wc;
 }
diff --git a/mingw-w64-crt/misc/wctob.c b/mingw-w64-crt/misc/wctob.c
index 995f6db6e..aeb0b4770 100644
--- a/mingw-w64-crt/misc/wctob.c
+++ b/mingw-w64-crt/misc/wctob.c
@@ -14,16 +14,22 @@
 #include <windows.h>
 
 /* Return just the first byte after translating to multibyte.  */
-int wctob (wint_t wc )
+int wctob (wint_t wc)
 {
-    wchar_t w = wc;
-    char c;
-    int invalid_char = 0;
-    if (!WideCharToMultiByte (___lc_codepage_func(),
-                             0 /* Is this correct flag? */,
-                             &w, 1, &c, 1, NULL, &invalid_char)
-        || invalid_char)
-      return EOF;
+  unsigned cp = ___lc_codepage_func();
 
-    return (unsigned char) c;
+  /* "C" locale */
+  if (cp == 0)
+    return wc <= 0xFF ? wc : EOF;
+
+  wchar_t w = wc;
+  char c;
+  /* Will be set to 1 if conversion failed */
+  int failed = 0;
+
+  /* Do not use WC_NO_BEST_FIT_CHARS, CRT performs best-fit conversion */
+  if (!WideCharToMultiByte (cp, 0, &w, 1, &c, 1, NULL, &failed) || failed)
+    return EOF;
+
+  return (unsigned char) c;
 }
-- 
2.46.1.windows.1

From 97149400dd65577942fa83770ddb4a3cb583225b Mon Sep 17 00:00:00 2001
From: Kirill Makurin <maiddais...@outlook.com>
Date: Sun, 8 Jun 2025 00:25:32 +0900
Subject: [PATCH 2/3] crt: btowc: control flags passed to MultiByteToWideChar

For some code pages, flags must be passed as 0 when calling
MultiByteToWideChar. Pass 0 for such code pages,
and MB_ERR_INVALID_CHARS for others.

Signed-off-by: Kirill Makurin <maiddais...@outlook.com>
---
 mingw-w64-crt/misc/btowc.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/mingw-w64-crt/misc/btowc.c b/mingw-w64-crt/misc/btowc.c
index b55e28eee..2b4688216 100644
--- a/mingw-w64-crt/misc/btowc.c
+++ b/mingw-w64-crt/misc/btowc.c
@@ -22,10 +22,38 @@ wint_t btowc (int c)
   if (cp == 0)
     return (unsigned) c <= 0xFF ? c : WEOF;
 
+  /* Flags to pass to MultiByteToWideChar */
+  unsigned flags = 0;
+
+  switch (cp)
+  {
+    case 50220: /* ISO-2022-JP */
+    case 50221: /* ISO-2022-JP */
+    case 50222: /* ISO-2022-JP */
+    case 50225: /* ISO-2022-KR */
+    case 50227: /* ISO-2022-CN */
+    case 50229: /* ISO-2022-CN */
+    case 57002: /* x-iscii-de  */
+    case 57003: /* x-iscii-be  */
+    case 57004: /* x-iscii-ta  */
+    case 57005: /* x-iscii-te  */
+    case 57006: /* x-iscii-as  */
+    case 57007: /* x-iscii-or  */
+    case 57008: /* x-iscii-ka  */
+    case 57009: /* x-iscii-ma  */
+    case 57010: /* x-iscii-gu  */
+    case 57011: /* x-iscii-pa  */
+    case 65000: /* UTF-7       */
+      /* no flags allowed */
+      break;
+    default:
+      flags |= MB_ERR_INVALID_CHARS;
+  }
+
   unsigned char ch = c;
   wchar_t wc = WEOF;
 
-  if (!MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, (char*)&ch, 1, &wc, 1))
+  if (!MultiByteToWideChar (cp, flags, (char*)&ch, 1, &wc, 1))
     return WEOF;
 
   return wc;
-- 
2.46.1.windows.1

From ca05659785a614feb2bb7043905d37eabed31c6a Mon Sep 17 00:00:00 2001
From: Kirill Makurin <maiddais...@outlook.com>
Date: Sun, 8 Jun 2025 01:18:54 +0900
Subject: [PATCH 3/3] crt: override CRT's btowc and wctob

CRT's wctob sign-extends its return value if it is outside
of range [0,127]. This behavior is non-conformant.

Override CRT's wctob and btowc with our replacements, which
were previously only used for msvcr*.dll builds.

Remove btowc and wctob from import libraries.

Signed-off-by: Kirill Makurin <maiddais...@outlook.com>
---
 mingw-w64-crt/Makefile.am                            | 12 +++++-------
 .../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/msvcp60.def                      |  6 +++---
 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/msvcp60.def                      |  6 +++---
 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/msvcp60.def                   |  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 ++--
 32 files changed, 69 insertions(+), 71 deletions(-)

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index e0924b470..75ad7d887 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -216,7 +216,9 @@ src_msvcrt_common=\
   math/sinhf.c \
   math/sqrt.c math/sqrtf.c \
   math/tanhf.c \
-  math/tgamma.c math/tgammaf.c
+  math/tgamma.c math/tgammaf.c \
+  misc/btowc.c \
+  misc/wctob.c
 
 # Arch specific files included in all libmsvcr*.a on x86
 src_msvcrt_common_add_x86=\
@@ -409,8 +411,10 @@ src_ucrtbase=\
   misc/__initenv.c \
   misc/__winitenv.c \
   misc/_onexit.c \
+  misc/btowc.c \
   misc/output_format.c \
   misc/ucrt-access.c \
+  misc/wctob.c \
   stdio/ucrt___local_stdio_printf_options.c \
   stdio/ucrt___local_stdio_scanf_options.c \
   stdio/ucrt__scprintf.c \
@@ -549,7 +553,6 @@ src_msvcrt32=\
   misc/_get_current_locale.c \
   misc/_initterm_e.c \
   misc/_time64.c \
-  misc/btowc.c \
   misc/imaxabs.c \
   misc/lc_locale_func.c \
   misc/mbrtowc.c \
@@ -564,7 +567,6 @@ src_msvcrt32=\
   misc/wcsnlen.c \
   misc/wcstoimax.c \
   misc/wcstoumax.c \
-  misc/wctob.c \
   stdio/_fseeki64.c \
   stdio/_fstat64.c \
   stdio/_fstat64i32.c \
@@ -613,7 +615,6 @@ src_msvcrt64=\
   misc/_free_locale.c \
   misc/_get_current_locale.c \
   misc/_initterm_e.c \
-  misc/btowc.c \
   misc/mbrtowc.c \
   misc/output_format.c \
   misc/_get_errno.c \
@@ -622,7 +623,6 @@ src_msvcrt64=\
   misc/wassert.c \
   misc/wcrtomb.c \
   misc/wcsnlen.c \
-  misc/wctob.c \
   stdio/_fseeki64.c \
   string/wcstok.c
 
@@ -868,7 +868,6 @@ src_pre_msvcr80=\
   misc/_initterm_e.c \
   misc/_recalloc.c \
   misc/_set_errno.c \
-  misc/btowc.c \
   misc/imaxabs.c \
   misc/invalid_parameter_handler.c \
   misc/mbrtowc.c \
@@ -877,7 +876,6 @@ src_pre_msvcr80=\
   misc/wassert.c \
   misc/wcrtomb.c \
   misc/wcsnlen.c \
-  misc/wctob.c \
   stdio/_fseeki64.c \
   stdio/_fstat64i32.c \
   stdio/_ftelli64.c \
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 d5e4f259c..517fd022e 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
+; btowc
 c16rtomb
 c32rtomb
 mbrtoc16
@@ -128,7 +128,7 @@ wcstombs_s
 wcstoul
 wcstoull
 wcstoumax
-wctob
+; wctob
 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 42c64240b..8b755607d 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
+; btowc
 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
+; wctob
 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 88c68631e..41cbacd3b 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) ; i386 and x64 btowc replaced by emu
+; F_ARM_ANY(btowc) ; i386 and x64 btowc replaced by emu
 clearerr_s
 fopen_s
 fprintf_s
@@ -1849,7 +1849,7 @@ F_ARM_ANY(wcsrtombs) ; i386 and x64 wcsrtombs replaced by 
emu
 wcsrtombs_s
 F_ARM_ANY(wcstok_s) ; i386 and x64 wcstok_s replaced by emu
 wcstombs_s
-F_ARM_ANY(wctob) ; i386 and x64 wctob replaced by emu
+; F_ARM_ANY(wctob) ; i386 and x64 wctob replaced by emu
 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 90a099306..a2854f8c7 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
+; btowc
 c16rtomb
 c32rtomb
 cabs
@@ -2656,7 +2656,7 @@ wcstoul
 wcstoull
 wcstoumax
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wctrans
diff --git a/mingw-w64-crt/lib32/msvcp60.def b/mingw-w64-crt/lib32/msvcp60.def
index f6a5dc93f..c97e9e299 100644
--- a/mingw-w64-crt/lib32/msvcp60.def
+++ b/mingw-w64-crt/lib32/msvcp60.def
@@ -59,13 +59,13 @@ EXPORTS
 ;__Wcrtomb_lk
 ;_Xbig
 
-btowc
+; btowc
 mbrlen
 mbrtowc
 mbsrtowcs
 towctrans
 wcrtomb
 wcsrtombs
-wctob
+; 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 b1d73dfb8..3375f79bb 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
+; btowc
 calloc
 ceil DATA
 clearerr
@@ -1892,7 +1892,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib32/msvcr100d.def.in 
b/mingw-w64-crt/lib32/msvcr100d.def.in
index 0ec23175a..4a04384e5 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
+; btowc
 calloc
 ceil DATA ; overwritten
 clearerr
@@ -1955,7 +1955,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib32/msvcr110.def.in 
b/mingw-w64-crt/lib32/msvcr110.def.in
index dee3662b1..0dad5ae65 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
+; btowc
 calloc
 ceil DATA
 clearerr
@@ -2021,7 +2021,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib32/msvcr110d.def.in 
b/mingw-w64-crt/lib32/msvcr110d.def.in
index 7719fbd32..4322c39eb 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
+; btowc
 calloc
 ceil DATA ; overwritten
 clearerr
@@ -2088,7 +2088,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib32/msvcr120.def.in 
b/mingw-w64-crt/lib32/msvcr120.def.in
index 2432346e8..30dc8af15 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
+; btowc
 cabs
 cabsf
 ; cabsl ; Can't use long double functions from the CRT on x86
@@ -2284,7 +2284,7 @@ wcstoul
 wcstoull
 wcstoumax
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wctrans
diff --git a/mingw-w64-crt/lib32/msvcr120d.def.in 
b/mingw-w64-crt/lib32/msvcr120d.def.in
index a5db51612..5fc4ca3c4 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
+; btowc
 cabs
 cabsf
 ; cabsl ; Can't use long double functions from the CRT on x86
@@ -2351,7 +2351,7 @@ wcstoul
 wcstoull
 wcstoumax
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wctrans
diff --git a/mingw-w64-crt/lib32/msvcr80.def.in 
b/mingw-w64-crt/lib32/msvcr80.def.in
index 9b1b5d1a0..85864b6c4 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
+; btowc
 calloc
 ceil DATA
 clearerr
@@ -1526,7 +1526,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/lib32/msvcr80d.def.in 
b/mingw-w64-crt/lib32/msvcr80d.def.in
index 1931dc3ae..9ac8080a0 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
+; btowc
 calloc
 ceil DATA ; overwritten
 clearerr
@@ -1609,7 +1609,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/lib32/msvcr90.def.in 
b/mingw-w64-crt/lib32/msvcr90.def.in
index 697b92818..4bc181a1c 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
+; btowc
 calloc
 ceil DATA
 clearerr
@@ -1524,7 +1524,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in 
b/mingw-w64-crt/lib32/msvcr90d.def.in
index f1da7b688..331e4e5ed 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
+; btowc
 calloc
 ceil DATA
 clearerr
@@ -1596,7 +1596,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/lib64/msvcp60.def b/mingw-w64-crt/lib64/msvcp60.def
index b0c348a38..2bed6d1b1 100644
--- a/mingw-w64-crt/lib64/msvcp60.def
+++ b/mingw-w64-crt/lib64/msvcp60.def
@@ -1,4 +1,4 @@
-; 
+;
 ; Exports of file msvcp60.dll
 ;
 ; Autogenerated by gen_exportdef
@@ -4712,13 +4712,13 @@ _Wcscoll
 _Wcsxfrm
 _Xbig
 __Wcrtomb_lk
-btowc
+; btowc
 mbrlen
 mbrtowc
 mbsrtowcs
 towctrans
 wcrtomb
 wcsrtombs
-wctob
+; wctob
 wctrans
 wctype
diff --git a/mingw-w64-crt/lib64/msvcr100.def.in 
b/mingw-w64-crt/lib64/msvcr100.def.in
index 9b6bc4853..7e1ba45ea 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
+; btowc
 calloc
 ceil DATA
 ceilf DATA
@@ -1854,7 +1854,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib64/msvcr100d.def.in 
b/mingw-w64-crt/lib64/msvcr100d.def.in
index 70793d26a..99992f587 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
+; btowc
 calloc
 ceil DATA ; overwritten
 ceilf DATA ; overwritten
@@ -1919,7 +1919,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib64/msvcr110.def.in 
b/mingw-w64-crt/lib64/msvcr110.def.in
index 777943609..973ae32e5 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
+; btowc
 calloc
 ceil
 ceilf
@@ -1978,7 +1978,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib64/msvcr110d.def.in 
b/mingw-w64-crt/lib64/msvcr110d.def.in
index b86002efb..aeabf9a46 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
+; btowc
 calloc
 ceil
 ceilf
@@ -2043,7 +2043,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/lib64/msvcr120.def.in 
b/mingw-w64-crt/lib64/msvcr120.def.in
index 3a6bc1a11..4f7998278 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
+; btowc
 cabs
 cabsf
 ; cabsl ; Can't use long double functions from the CRT on x86
@@ -2240,7 +2240,7 @@ wcstoul
 wcstoull
 wcstoumax
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wctrans
diff --git a/mingw-w64-crt/lib64/msvcr120d.def.in 
b/mingw-w64-crt/lib64/msvcr120d.def.in
index f0d89961d..f15a8d831 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
+; btowc
 cabs
 cabsf
 ; cabsl ; Can't use long double functions from the CRT on x86
@@ -2305,7 +2305,7 @@ wcstoul
 wcstoull
 wcstoumax
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wctrans
diff --git a/mingw-w64-crt/lib64/msvcr80.def.in 
b/mingw-w64-crt/lib64/msvcr80.def.in
index 08d972368..90460e6b0 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
+; btowc
 calloc
 ceil DATA
 ceilf DATA
@@ -1474,7 +1474,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/lib64/msvcr80d.def.in 
b/mingw-w64-crt/lib64/msvcr80d.def.in
index caeb5cec4..64cdd593c 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
+; btowc
 calloc
 ceil DATA ; overwritten
 ceilf DATA ; overwritten
@@ -1551,7 +1551,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/lib64/msvcr90.def.in 
b/mingw-w64-crt/lib64/msvcr90.def.in
index ddf7bfb86..4b12c3152 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
+; btowc
 calloc
 ceil DATA
 ceilf DATA
@@ -1472,7 +1472,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in 
b/mingw-w64-crt/lib64/msvcr90d.def.in
index c26790c9b..2f52f37e5 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
+; btowc
 calloc
 ceil DATA
 ceilf DATA
@@ -1538,7 +1538,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wprintf
diff --git a/mingw-w64-crt/libarm32/msvcp60.def 
b/mingw-w64-crt/libarm32/msvcp60.def
index ccb242c4e..6b35f0771 100644
--- a/mingw-w64-crt/libarm32/msvcp60.def
+++ b/mingw-w64-crt/libarm32/msvcp60.def
@@ -2293,13 +2293,13 @@ _Toupper
 _Wcrtomb
 _Xbig
 __Wcrtomb_lk
-btowc
+; btowc
 mbrlen
 mbrtowc
 mbsrtowcs
 towctrans
 wcrtomb
 wcsrtombs
-wctob
+; wctob
 wctrans
 wctype
diff --git a/mingw-w64-crt/libarm32/msvcr110.def.in 
b/mingw-w64-crt/libarm32/msvcr110.def.in
index f7363708e..79dfcc517 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
+; btowc
 calloc
 ceil
 ceilf
@@ -1965,7 +1965,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/libarm32/msvcr110d.def.in 
b/mingw-w64-crt/libarm32/msvcr110d.def.in
index 66a344ce8..e928c2534 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
+; btowc
 calloc
 ceil
 ceilf
@@ -2030,7 +2030,7 @@ wcstombs
 wcstombs_s
 wcstoul
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wmemcpy_s
diff --git a/mingw-w64-crt/libarm32/msvcr120.def.in 
b/mingw-w64-crt/libarm32/msvcr120.def.in
index e43e29da9..f14065714 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
+; btowc
 cabs
 cabsf
 cabsl
@@ -2208,7 +2208,7 @@ wcstoul
 wcstoull
 wcstoumax
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wctrans
diff --git a/mingw-w64-crt/libarm32/msvcr120d.def.in 
b/mingw-w64-crt/libarm32/msvcr120d.def.in
index 7241a9e7b..1b9a1676d 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
+; btowc
 cabs
 cabsf
 cabsl
@@ -2273,7 +2273,7 @@ wcstoul
 wcstoull
 wcstoumax
 wcsxfrm
-wctob
+; wctob
 wctomb
 wctomb_s
 wctrans
-- 
2.46.1.windows.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