based on a patch by Jacek --- mingw-w64-crt/Makefile.am | 6 ++++-- mingw-w64-crt/lib32/msvcrt.def.in | 2 +- mingw-w64-crt/misc/btowc.c | 2 +- mingw-w64-crt/misc/lc_locale_func.c | 8 ++++---- mingw-w64-crt/misc/mb_wc_common.h | 2 +- mingw-w64-crt/misc/mbrtowc.c | 6 +++--- mingw-w64-crt/misc/wcrtomb.c | 4 ++-- mingw-w64-crt/misc/wcstof.c | 2 +- mingw-w64-crt/misc/wcstold.c | 2 +- mingw-w64-crt/misc/wctob.c | 2 +- 10 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index d9cd436..82b478f 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am @@ -119,7 +119,6 @@ src_libws2_32=libsrc/ws2_32.c \ src_msvcrt=\ misc/invalid_parameter_handler.c \ - misc/lc_locale_func.c \ misc/output_format.c \ secapi/_access_s.c \ secapi/_cgets_s.c \ @@ -156,6 +155,9 @@ src_msvcrt=\ secapi/vsprintf_s.c \ secapi/wmemcpy_s.c +src_msvcrt32= + $(src_msvcrt) \ + misc/lc_locale_func.c src_libmingwex=\ crt/dllentry.c crt/dllmain.c \ @@ -343,7 +345,7 @@ lib32_libkernel32_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS) lib32_libkernel32_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS) lib32_LIBRARIES += lib32/libmsvcrt.a -lib32_libmsvcrt_a_SOURCES = $(src_msvcrt) lib32/msvcrt.def.in +lib32_libmsvcrt_a_SOURCES = $(src_msvcrt32) lib32/msvcrt.def.in lib32_libmsvcrt_a_AR = $(DTDEF32) lib32/msvcrt.def && $(AR) $(ARFLAGS) lib32_libmsvcrt_a_CPPFLAGS=$(CPPFLAGS32) -D__LIBMSVCRT__ $(extra_include) $(sysincludes) EXTRA_lib32_libmsvcrt_a_DEPENDENCIES=lib32/msvcrt.def diff --git a/mingw-w64-crt/lib32/msvcrt.def.in b/mingw-w64-crt/lib32/msvcrt.def.in index ff352f1..ad8ec29 100644 --- a/mingw-w64-crt/lib32/msvcrt.def.in +++ b/mingw-w64-crt/lib32/msvcrt.def.in @@ -797,7 +797,7 @@ _wcstoi64 _wcstoui64 _wctype _wtof -___lc_codepage_func +___lc_codepage_func DATA ; provided by emu ___lc_collate_cp_func ___lc_handle_func ___mb_cur_max_func diff --git a/mingw-w64-crt/misc/btowc.c b/mingw-w64-crt/misc/btowc.c index aaabc0c..026b491 100644 --- a/mingw-w64-crt/misc/btowc.c +++ b/mingw-w64-crt/misc/btowc.c @@ -19,7 +19,7 @@ wint_t btowc (int c) { unsigned char ch = c; wchar_t wc = WEOF; - MultiByteToWideChar (__lc_codepage_func(), MB_ERR_INVALID_CHARS, + MultiByteToWideChar (___lc_codepage_func(), MB_ERR_INVALID_CHARS, (char*)&ch, 1, &wc, 1); return wc; } diff --git a/mingw-w64-crt/misc/lc_locale_func.c b/mingw-w64-crt/misc/lc_locale_func.c index 4e0fd02..3aebcdc 100644 --- a/mingw-w64-crt/misc/lc_locale_func.c +++ b/mingw-w64-crt/misc/lc_locale_func.c @@ -6,7 +6,7 @@ #include "mb_wc_common.h" static unsigned int *msvcrt__lc_codepage; -static unsigned int __cdecl msvcrt__lc_codepage_func(void) +static unsigned int __cdecl msvcrt___lc_codepage_func(void) { return *msvcrt__lc_codepage; } @@ -19,7 +19,7 @@ static unsigned int __cdecl setlocale_codepage_hack(void) } static unsigned int __cdecl init_codepage_func(void); -unsigned int (__cdecl *__MINGW_IMP_SYMBOL(__lc_codepage_func))(void) = init_codepage_func; +unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = init_codepage_func; static unsigned int __cdecl init_codepage_func(void) { @@ -31,12 +31,12 @@ static unsigned int __cdecl init_codepage_func(void) if(!func) { msvcrt__lc_codepage = (unsigned int*)GetProcAddress(msvcrt, "__lc_codepage"); if(msvcrt__lc_codepage) - func = msvcrt__lc_codepage_func; + func = msvcrt___lc_codepage_func; } } if(!func) func = setlocale_codepage_hack; - return (__MINGW_IMP_SYMBOL(__lc_codepage_func) = func)(); + return (__MINGW_IMP_SYMBOL(___lc_codepage_func) = func)(); } diff --git a/mingw-w64-crt/misc/mb_wc_common.h b/mingw-w64-crt/misc/mb_wc_common.h index c95243b..5a40013 100644 --- a/mingw-w64-crt/misc/mb_wc_common.h +++ b/mingw-w64-crt/misc/mb_wc_common.h @@ -6,4 +6,4 @@ #include <_mingw.h> -_CRTIMP unsigned int __cdecl __lc_codepage_func(void); +_CRTIMP unsigned int __cdecl ___lc_codepage_func(void); diff --git a/mingw-w64-crt/misc/mbrtowc.c b/mingw-w64-crt/misc/mbrtowc.c index df4d318..5cd106e 100644 --- a/mingw-w64-crt/misc/mbrtowc.c +++ b/mingw-w64-crt/misc/mbrtowc.c @@ -101,7 +101,7 @@ mbrtowc (wchar_t * __restrict__ pwc, const char * __restrict__ s, wchar_t* dst = pwc ? pwc : &byte_bucket; return (size_t) __mbrtowc_cp (dst, s, n, ps ? ps : &internal_mbstate, - __lc_codepage_func(), MB_CUR_MAX); + ___lc_codepage_func(), MB_CUR_MAX); } @@ -113,7 +113,7 @@ mbsrtowcs (wchar_t* __restrict__ dst, const char ** __restrict__ src, size_t n = 0; static mbstate_t internal_mbstate = 0; mbstate_t* internal_ps = ps ? ps : &internal_mbstate; - const unsigned int cp = __lc_codepage_func(); + const unsigned int cp = ___lc_codepage_func(); const unsigned int mb_max = MB_CUR_MAX; if (src == NULL || *src == NULL) /* undefined behavior */ @@ -156,5 +156,5 @@ mbrlen (const char * __restrict__ s, size_t n, static mbstate_t s_mbstate = 0; wchar_t byte_bucket = 0; return __mbrtowc_cp (&byte_bucket, s, n, (ps) ? ps : &s_mbstate, - __lc_codepage_func(), MB_CUR_MAX); + ___lc_codepage_func(), MB_CUR_MAX); } diff --git a/mingw-w64-crt/misc/wcrtomb.c b/mingw-w64-crt/misc/wcrtomb.c index aae58ea..299f67b 100644 --- a/mingw-w64-crt/misc/wcrtomb.c +++ b/mingw-w64-crt/misc/wcrtomb.c @@ -49,7 +49,7 @@ wcrtomb (char *dst, wchar_t wc, mbstate_t * __UNUSED_PARAM (ps)) { char byte_bucket [MB_LEN_MAX]; char* tmp_dst = dst ? dst : &byte_bucket[0]; - return (size_t)__wcrtomb_cp (tmp_dst, wc, __lc_codepage_func(), + return (size_t)__wcrtomb_cp (tmp_dst, wc, ___lc_codepage_func(), MB_CUR_MAX); } @@ -58,7 +58,7 @@ size_t wcsrtombs (char *dst, const wchar_t **src, size_t len, { int ret = 0; size_t n = 0; - const unsigned int cp = __lc_codepage_func(); + const unsigned int cp = ___lc_codepage_func(); const unsigned int mb_max = MB_CUR_MAX; const wchar_t *pwc = *src; diff --git a/mingw-w64-crt/misc/wcstof.c b/mingw-w64-crt/misc/wcstof.c index eea597b..2beb1ff 100644 --- a/mingw-w64-crt/misc/wcstof.c +++ b/mingw-w64-crt/misc/wcstof.c @@ -23,7 +23,7 @@ float wcstof (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse) char * cse; unsigned int i; float ret; - const unsigned int cp = __lc_codepage_func(); + const unsigned int cp = ___lc_codepage_func(); /* Allocate enough room for (possibly) mb chars */ cs = (char *) malloc ((wcslen(wcs)+1) * MB_CUR_MAX); diff --git a/mingw-w64-crt/misc/wcstold.c b/mingw-w64-crt/misc/wcstold.c index e0fd352..219d067 100644 --- a/mingw-w64-crt/misc/wcstold.c +++ b/mingw-w64-crt/misc/wcstold.c @@ -31,7 +31,7 @@ long double wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ w char * cse; unsigned int i; long double ret; - const unsigned int cp = __lc_codepage_func(); + const unsigned int cp = ___lc_codepage_func(); /* Allocate enough room for (possibly) mb chars */ cs = (char *) malloc ((wcslen(wcs)+1) * MB_CUR_MAX); diff --git a/mingw-w64-crt/misc/wctob.c b/mingw-w64-crt/misc/wctob.c index 435abf1..008e691 100644 --- a/mingw-w64-crt/misc/wctob.c +++ b/mingw-w64-crt/misc/wctob.c @@ -19,7 +19,7 @@ int wctob (wint_t wc ) wchar_t w = wc; char c; int invalid_char = 0; - if (!WideCharToMultiByte (__lc_codepage_func(), + if (!WideCharToMultiByte (___lc_codepage_func(), 0 /* Is this correct flag? */, &w, 1, &c, 1, NULL, &invalid_char) || invalid_char) -- 1.8.1.2 ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public