Added __lc_codepage_func wrapper to libmsvcrt.a and use __lc_codepage_func directly instead of __mingw_get_codepage extention. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@5895 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index faa5f84..70fe7dd 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am
@@ -119,6 +119,7 @@ src_msvcrt=\ misc/invalid_parameter_handler.c \ + misc/lc_locale_func.c \ secapi/_access_s.c \ secapi/_cgets_s.c \ secapi/_cgetws_s.c \ @@ -220,7 +221,7 @@ misc/feupdateenv.c misc/ftruncate.c misc/fwide.c misc/getlogin.c misc/getopt.c \ misc/gettimeofday.c misc/imaxabs.c misc/imaxdiv.c misc/isblank.c \ misc/iswblank.c misc/mb_wc_common.h misc/mbrtowc.c misc/mbsinit.c \ - misc/mempcpy.c misc/mingw-aligned-malloc.c misc/mingw-fseek.c misc/mingw_get_codepage.c misc/mingw_getsp.S \ + misc/mempcpy.c misc/mingw-aligned-malloc.c misc/mingw-fseek.c misc/mingw_getsp.S \ misc/mingw_matherr.c misc/mingw_mbwc_convert.c misc/mingw_output_format.c misc/mingw_usleep.c misc/mingw_wcstod.c \ misc/mingw_wcstof.c misc/mingw_wcstold.c misc/seterrno.c misc/sleep.c \ misc/spawnv.c misc/spawnve.c misc/spawnvp.c misc/spawnvpe.c misc/strnlen.c \
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in index cf78d02..ffaa3be 100644 --- a/mingw-w64-crt/Makefile.in +++ b/mingw-w64-crt/Makefile.in
@@ -592,15 +592,14 @@ misc/isblank.c misc/iswblank.c misc/mb_wc_common.h \ misc/mbrtowc.c misc/mbsinit.c misc/mempcpy.c \ misc/mingw-aligned-malloc.c misc/mingw-fseek.c \ - misc/mingw_get_codepage.c misc/mingw_getsp.S \ - misc/mingw_matherr.c misc/mingw_mbwc_convert.c \ - misc/mingw_output_format.c misc/mingw_usleep.c \ - misc/mingw_wcstod.c misc/mingw_wcstof.c misc/mingw_wcstold.c \ - misc/seterrno.c misc/sleep.c misc/spawnv.c misc/spawnve.c \ - misc/spawnvp.c misc/spawnvpe.c misc/strnlen.c misc/strsafe.c \ - misc/strtoimax.c misc/strtold.c misc/strtoumax.c \ - misc/tdelete.c misc/tfind.c misc/tsearch.c misc/twalk.c \ - misc/uchar_c16rtomb.c misc/uchar_c32rtomb.c \ + misc/mingw_getsp.S misc/mingw_matherr.c \ + misc/mingw_mbwc_convert.c misc/mingw_output_format.c \ + misc/mingw_usleep.c misc/mingw_wcstod.c misc/mingw_wcstof.c \ + misc/mingw_wcstold.c misc/seterrno.c misc/sleep.c \ + misc/spawnv.c misc/spawnve.c misc/spawnvp.c misc/spawnvpe.c \ + misc/strnlen.c misc/strsafe.c misc/strtoimax.c misc/strtold.c \ + misc/strtoumax.c misc/tdelete.c misc/tfind.c misc/tsearch.c \ + misc/twalk.c misc/uchar_c16rtomb.c misc/uchar_c32rtomb.c \ misc/uchar_mbrtoc16.c misc/uchar_mbrtoc32.c misc/wassert.c \ misc/wcrtomb.c misc/wcsnlen.c misc/wcstof.c misc/wcstoimax.c \ misc/wcstold.c misc/wcstoumax.c misc/wctob.c misc/wctrans.c \ @@ -923,7 +922,6 @@ misc/lib32_libmingwex_a-mempcpy.$(OBJEXT) \ misc/lib32_libmingwex_a-mingw-aligned-malloc.$(OBJEXT) \ misc/lib32_libmingwex_a-mingw-fseek.$(OBJEXT) \ - misc/lib32_libmingwex_a-mingw_get_codepage.$(OBJEXT) \ misc/lib32_libmingwex_a-mingw_getsp.$(OBJEXT) \ misc/lib32_libmingwex_a-mingw_matherr.$(OBJEXT) \ misc/lib32_libmingwex_a-mingw_mbwc_convert.$(OBJEXT) \ @@ -1068,21 +1066,22 @@ lib32_libmoldname_a_OBJECTS = $(am_lib32_libmoldname_a_OBJECTS) lib32_libmsvcrt_a_LIBADD = am__lib32_libmsvcrt_a_SOURCES_DIST = misc/invalid_parameter_handler.c \ - secapi/_access_s.c secapi/_cgets_s.c secapi/_cgetws_s.c \ - secapi/_chsize_s.c secapi/_cprintf_s.c secapi/_cprintf_s_l.c \ - secapi/_ctime32_s.c secapi/_ctime64_s.c secapi/_cwprintf_s.c \ - secapi/_cwprintf_s_l.c secapi/_gmtime32_s.c \ - secapi/_gmtime64_s.c secapi/_localtime32_s.c \ - secapi/_localtime64_s.c secapi/_mktemp_s.c secapi/_strdate_s.c \ - secapi/_strtime_s.c secapi/_umask_s.c secapi/_vcprintf_s.c \ - secapi/_vcprintf_s_l.c secapi/_vcwprintf_s.c \ - secapi/_vcwprintf_s_l.c secapi/_waccess_s.c \ - secapi/_wasctime_s.c secapi/_wctime32_s.c secapi/_wctime64_s.c \ - secapi/_wstrtime_s.c secapi/_wmktemp_s.c secapi/_wstrdate_s.c \ - secapi/asctime_s.c secapi/memcpy_s.c secapi/vsprintf_s.c \ - secapi/wmemcpy_s.c lib32/msvcrt.def.in + misc/lc_locale_func.c secapi/_access_s.c secapi/_cgets_s.c \ + secapi/_cgetws_s.c secapi/_chsize_s.c secapi/_cprintf_s.c \ + secapi/_cprintf_s_l.c secapi/_ctime32_s.c secapi/_ctime64_s.c \ + secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \ + secapi/_gmtime32_s.c secapi/_gmtime64_s.c \ + secapi/_localtime32_s.c secapi/_localtime64_s.c \ + secapi/_mktemp_s.c secapi/_strdate_s.c secapi/_strtime_s.c \ + secapi/_umask_s.c secapi/_vcprintf_s.c secapi/_vcprintf_s_l.c \ + secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \ + secapi/_waccess_s.c secapi/_wasctime_s.c secapi/_wctime32_s.c \ + secapi/_wctime64_s.c secapi/_wstrtime_s.c secapi/_wmktemp_s.c \ + secapi/_wstrdate_s.c secapi/asctime_s.c secapi/memcpy_s.c \ + secapi/vsprintf_s.c secapi/wmemcpy_s.c lib32/msvcrt.def.in am__objects_18 = \ misc/lib32_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT) \ + misc/lib32_libmsvcrt_a-lc_locale_func.$(OBJEXT) \ secapi/lib32_libmsvcrt_a-_access_s.$(OBJEXT) \ secapi/lib32_libmsvcrt_a-_cgets_s.$(OBJEXT) \ secapi/lib32_libmsvcrt_a-_cgetws_s.$(OBJEXT) \ @@ -1689,15 +1688,14 @@ misc/isblank.c misc/iswblank.c misc/mb_wc_common.h \ misc/mbrtowc.c misc/mbsinit.c misc/mempcpy.c \ misc/mingw-aligned-malloc.c misc/mingw-fseek.c \ - misc/mingw_get_codepage.c misc/mingw_getsp.S \ - misc/mingw_matherr.c misc/mingw_mbwc_convert.c \ - misc/mingw_output_format.c misc/mingw_usleep.c \ - misc/mingw_wcstod.c misc/mingw_wcstof.c misc/mingw_wcstold.c \ - misc/seterrno.c misc/sleep.c misc/spawnv.c misc/spawnve.c \ - misc/spawnvp.c misc/spawnvpe.c misc/strnlen.c misc/strsafe.c \ - misc/strtoimax.c misc/strtold.c misc/strtoumax.c \ - misc/tdelete.c misc/tfind.c misc/tsearch.c misc/twalk.c \ - misc/uchar_c16rtomb.c misc/uchar_c32rtomb.c \ + misc/mingw_getsp.S misc/mingw_matherr.c \ + misc/mingw_mbwc_convert.c misc/mingw_output_format.c \ + misc/mingw_usleep.c misc/mingw_wcstod.c misc/mingw_wcstof.c \ + misc/mingw_wcstold.c misc/seterrno.c misc/sleep.c \ + misc/spawnv.c misc/spawnve.c misc/spawnvp.c misc/spawnvpe.c \ + misc/strnlen.c misc/strsafe.c misc/strtoimax.c misc/strtold.c \ + misc/strtoumax.c misc/tdelete.c misc/tfind.c misc/tsearch.c \ + misc/twalk.c misc/uchar_c16rtomb.c misc/uchar_c32rtomb.c \ misc/uchar_mbrtoc16.c misc/uchar_mbrtoc32.c misc/wassert.c \ misc/wcrtomb.c misc/wcsnlen.c misc/wcstof.c misc/wcstoimax.c \ misc/wcstold.c misc/wcstoumax.c misc/wctob.c misc/wctrans.c \ @@ -2020,7 +2018,6 @@ misc/lib64_libmingwex_a-mempcpy.$(OBJEXT) \ misc/lib64_libmingwex_a-mingw-aligned-malloc.$(OBJEXT) \ misc/lib64_libmingwex_a-mingw-fseek.$(OBJEXT) \ - misc/lib64_libmingwex_a-mingw_get_codepage.$(OBJEXT) \ misc/lib64_libmingwex_a-mingw_getsp.$(OBJEXT) \ misc/lib64_libmingwex_a-mingw_matherr.$(OBJEXT) \ misc/lib64_libmingwex_a-mingw_mbwc_convert.$(OBJEXT) \ @@ -2165,21 +2162,22 @@ lib64_libmoldname_a_OBJECTS = $(am_lib64_libmoldname_a_OBJECTS) lib64_libmsvcrt_a_LIBADD = am__lib64_libmsvcrt_a_SOURCES_DIST = misc/invalid_parameter_handler.c \ - secapi/_access_s.c secapi/_cgets_s.c secapi/_cgetws_s.c \ - secapi/_chsize_s.c secapi/_cprintf_s.c secapi/_cprintf_s_l.c \ - secapi/_ctime32_s.c secapi/_ctime64_s.c secapi/_cwprintf_s.c \ - secapi/_cwprintf_s_l.c secapi/_gmtime32_s.c \ - secapi/_gmtime64_s.c secapi/_localtime32_s.c \ - secapi/_localtime64_s.c secapi/_mktemp_s.c secapi/_strdate_s.c \ - secapi/_strtime_s.c secapi/_umask_s.c secapi/_vcprintf_s.c \ - secapi/_vcprintf_s_l.c secapi/_vcwprintf_s.c \ - secapi/_vcwprintf_s_l.c secapi/_waccess_s.c \ - secapi/_wasctime_s.c secapi/_wctime32_s.c secapi/_wctime64_s.c \ - secapi/_wstrtime_s.c secapi/_wmktemp_s.c secapi/_wstrdate_s.c \ - secapi/asctime_s.c secapi/memcpy_s.c secapi/vsprintf_s.c \ - secapi/wmemcpy_s.c lib64/msvcrt.def.in + misc/lc_locale_func.c secapi/_access_s.c secapi/_cgets_s.c \ + secapi/_cgetws_s.c secapi/_chsize_s.c secapi/_cprintf_s.c \ + secapi/_cprintf_s_l.c secapi/_ctime32_s.c secapi/_ctime64_s.c \ + secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \ + secapi/_gmtime32_s.c secapi/_gmtime64_s.c \ + secapi/_localtime32_s.c secapi/_localtime64_s.c \ + secapi/_mktemp_s.c secapi/_strdate_s.c secapi/_strtime_s.c \ + secapi/_umask_s.c secapi/_vcprintf_s.c secapi/_vcprintf_s_l.c \ + secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \ + secapi/_waccess_s.c secapi/_wasctime_s.c secapi/_wctime32_s.c \ + secapi/_wctime64_s.c secapi/_wstrtime_s.c secapi/_wmktemp_s.c \ + secapi/_wstrdate_s.c secapi/asctime_s.c secapi/memcpy_s.c \ + secapi/vsprintf_s.c secapi/wmemcpy_s.c lib64/msvcrt.def.in am__objects_47 = \ misc/lib64_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT) \ + misc/lib64_libmsvcrt_a-lc_locale_func.$(OBJEXT) \ secapi/lib64_libmsvcrt_a-_access_s.$(OBJEXT) \ secapi/lib64_libmsvcrt_a-_cgets_s.$(OBJEXT) \ secapi/lib64_libmsvcrt_a-_cgetws_s.$(OBJEXT) \ @@ -3782,6 +3780,7 @@ src_msvcrt = \ misc/invalid_parameter_handler.c \ + misc/lc_locale_func.c \ secapi/_access_s.c \ secapi/_cgets_s.c \ secapi/_cgetws_s.c \ @@ -3882,7 +3881,7 @@ misc/feupdateenv.c misc/ftruncate.c misc/fwide.c misc/getlogin.c misc/getopt.c \ misc/gettimeofday.c misc/imaxabs.c misc/imaxdiv.c misc/isblank.c \ misc/iswblank.c misc/mb_wc_common.h misc/mbrtowc.c misc/mbsinit.c \ - misc/mempcpy.c misc/mingw-aligned-malloc.c misc/mingw-fseek.c misc/mingw_get_codepage.c misc/mingw_getsp.S \ + misc/mempcpy.c misc/mingw-aligned-malloc.c misc/mingw-fseek.c misc/mingw_getsp.S \ misc/mingw_matherr.c misc/mingw_mbwc_convert.c misc/mingw_output_format.c misc/mingw_usleep.c misc/mingw_wcstod.c \ misc/mingw_wcstof.c misc/mingw_wcstold.c misc/seterrno.c misc/sleep.c \ misc/spawnv.c misc/spawnve.c misc/spawnvp.c misc/spawnvpe.c misc/strnlen.c \ @@ -6035,8 +6034,6 @@ misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp) misc/lib32_libmingwex_a-mingw-fseek.$(OBJEXT): misc/$(am__dirstamp) \ misc/$(DEPDIR)/$(am__dirstamp) -misc/lib32_libmingwex_a-mingw_get_codepage.$(OBJEXT): \ - misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp) misc/lib32_libmingwex_a-mingw_getsp.$(OBJEXT): misc/$(am__dirstamp) \ misc/$(DEPDIR)/$(am__dirstamp) misc/lib32_libmingwex_a-mingw_matherr.$(OBJEXT): misc/$(am__dirstamp) \ @@ -6318,6 +6315,8 @@ $(AM_V_at)$(RANLIB) lib32/libmoldname.a misc/lib32_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT): \ misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp) +misc/lib32_libmsvcrt_a-lc_locale_func.$(OBJEXT): misc/$(am__dirstamp) \ + misc/$(DEPDIR)/$(am__dirstamp) secapi/$(am__dirstamp): @$(MKDIR_P) secapi @: > secapi/$(am__dirstamp) @@ -7621,8 +7620,6 @@ misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp) misc/lib64_libmingwex_a-mingw-fseek.$(OBJEXT): misc/$(am__dirstamp) \ misc/$(DEPDIR)/$(am__dirstamp) -misc/lib64_libmingwex_a-mingw_get_codepage.$(OBJEXT): \ - misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp) misc/lib64_libmingwex_a-mingw_getsp.$(OBJEXT): misc/$(am__dirstamp) \ misc/$(DEPDIR)/$(am__dirstamp) misc/lib64_libmingwex_a-mingw_matherr.$(OBJEXT): misc/$(am__dirstamp) \ @@ -7898,6 +7895,8 @@ $(AM_V_at)$(RANLIB) lib64/libmoldname.a misc/lib64_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT): \ misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp) +misc/lib64_libmsvcrt_a-lc_locale_func.$(OBJEXT): misc/$(am__dirstamp) \ + misc/$(DEPDIR)/$(am__dirstamp) secapi/lib64_libmsvcrt_a-_access_s.$(OBJEXT): secapi/$(am__dirstamp) \ secapi/$(DEPDIR)/$(am__dirstamp) secapi/lib64_libmsvcrt_a-_cgets_s.$(OBJEXT): secapi/$(am__dirstamp) \ @@ -10139,7 +10138,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-mempcpy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-mingw-aligned-malloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-mingw-fseek.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-mingw_get_codepage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-mingw_getsp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-mingw_matherr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-mingw_mbwc_convert.Po@am__quote@ @@ -10189,6 +10187,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-wmempcpy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmingwex_a-wmemset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmsvcrt_a-invalid_parameter_handler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib32_libmsvcrt_a-lc_locale_func.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-alarm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-basename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-btowc.Po@am__quote@ @@ -10229,7 +10228,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-mempcpy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-mingw-aligned-malloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-mingw-fseek.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-mingw_get_codepage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-mingw_getsp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-mingw_matherr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-mingw_mbwc_convert.Po@am__quote@ @@ -10279,6 +10277,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-wmempcpy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmingwex_a-wmemset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmsvcrt_a-invalid_parameter_handler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@misc/$(DEPDIR)/lib64_libmsvcrt_a-lc_locale_func.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@profile/$(DEPDIR)/lib32_libgmon_a-gmon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@profile/$(DEPDIR)/lib32_libgmon_a-mcount.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@profile/$(DEPDIR)/lib32_libgmon_a-mcountFunc.Po@am__quote@ @@ -17355,20 +17354,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib32_libmingwex_a-mingw-fseek.obj `if test -f 'misc/mingw-fseek.c'; then $(CYGPATH_W) 'misc/mingw-fseek.c'; else $(CYGPATH_W) '$(srcdir)/misc/mingw-fseek.c'; fi` -misc/lib32_libmingwex_a-mingw_get_codepage.o: misc/mingw_get_codepage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib32_libmingwex_a-mingw_get_codepage.o -MD -MP -MF misc/$(DEPDIR)/lib32_libmingwex_a-mingw_get_codepage.Tpo -c -o misc/lib32_libmingwex_a-mingw_get_codepage.o `test -f 'misc/mingw_get_codepage.c' || echo '$(srcdir)/'`misc/mingw_get_codepage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib32_libmingwex_a-mingw_get_codepage.Tpo misc/$(DEPDIR)/lib32_libmingwex_a-mingw_get_codepage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/mingw_get_codepage.c' object='misc/lib32_libmingwex_a-mingw_get_codepage.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib32_libmingwex_a-mingw_get_codepage.o `test -f 'misc/mingw_get_codepage.c' || echo '$(srcdir)/'`misc/mingw_get_codepage.c - -misc/lib32_libmingwex_a-mingw_get_codepage.obj: misc/mingw_get_codepage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib32_libmingwex_a-mingw_get_codepage.obj -MD -MP -MF misc/$(DEPDIR)/lib32_libmingwex_a-mingw_get_codepage.Tpo -c -o misc/lib32_libmingwex_a-mingw_get_codepage.obj `if test -f 'misc/mingw_get_codepage.c'; then $(CYGPATH_W) 'misc/mingw_get_codepage.c'; else $(CYGPATH_W) '$(srcdir)/misc/mingw_get_codepage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib32_libmingwex_a-mingw_get_codepage.Tpo misc/$(DEPDIR)/lib32_libmingwex_a-mingw_get_codepage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/mingw_get_codepage.c' object='misc/lib32_libmingwex_a-mingw_get_codepage.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib32_libmingwex_a-mingw_get_codepage.obj `if test -f 'misc/mingw_get_codepage.c'; then $(CYGPATH_W) 'misc/mingw_get_codepage.c'; else $(CYGPATH_W) '$(srcdir)/misc/mingw_get_codepage.c'; fi` - misc/lib32_libmingwex_a-mingw_matherr.o: misc/mingw_matherr.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib32_libmingwex_a-mingw_matherr.o -MD -MP -MF misc/$(DEPDIR)/lib32_libmingwex_a-mingw_matherr.Tpo -c -o misc/lib32_libmingwex_a-mingw_matherr.o `test -f 'misc/mingw_matherr.c' || echo '$(srcdir)/'`misc/mingw_matherr.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib32_libmingwex_a-mingw_matherr.Tpo misc/$(DEPDIR)/lib32_libmingwex_a-mingw_matherr.Po @@ -19091,6 +19076,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib32_libmsvcrt_a-invalid_parameter_handler.obj `if test -f 'misc/invalid_parameter_handler.c'; then $(CYGPATH_W) 'misc/invalid_parameter_handler.c'; else $(CYGPATH_W) '$(srcdir)/misc/invalid_parameter_handler.c'; fi` +misc/lib32_libmsvcrt_a-lc_locale_func.o: misc/lc_locale_func.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib32_libmsvcrt_a-lc_locale_func.o -MD -MP -MF misc/$(DEPDIR)/lib32_libmsvcrt_a-lc_locale_func.Tpo -c -o misc/lib32_libmsvcrt_a-lc_locale_func.o `test -f 'misc/lc_locale_func.c' || echo '$(srcdir)/'`misc/lc_locale_func.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib32_libmsvcrt_a-lc_locale_func.Tpo misc/$(DEPDIR)/lib32_libmsvcrt_a-lc_locale_func.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/lc_locale_func.c' object='misc/lib32_libmsvcrt_a-lc_locale_func.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib32_libmsvcrt_a-lc_locale_func.o `test -f 'misc/lc_locale_func.c' || echo '$(srcdir)/'`misc/lc_locale_func.c + +misc/lib32_libmsvcrt_a-lc_locale_func.obj: misc/lc_locale_func.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib32_libmsvcrt_a-lc_locale_func.obj -MD -MP -MF misc/$(DEPDIR)/lib32_libmsvcrt_a-lc_locale_func.Tpo -c -o misc/lib32_libmsvcrt_a-lc_locale_func.obj `if test -f 'misc/lc_locale_func.c'; then $(CYGPATH_W) 'misc/lc_locale_func.c'; else $(CYGPATH_W) '$(srcdir)/misc/lc_locale_func.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib32_libmsvcrt_a-lc_locale_func.Tpo misc/$(DEPDIR)/lib32_libmsvcrt_a-lc_locale_func.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/lc_locale_func.c' object='misc/lib32_libmsvcrt_a-lc_locale_func.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib32_libmsvcrt_a-lc_locale_func.obj `if test -f 'misc/lc_locale_func.c'; then $(CYGPATH_W) 'misc/lc_locale_func.c'; else $(CYGPATH_W) '$(srcdir)/misc/lc_locale_func.c'; fi` + secapi/lib32_libmsvcrt_a-_access_s.o: secapi/_access_s.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib32_libmsvcrt_a-_access_s.o -MD -MP -MF secapi/$(DEPDIR)/lib32_libmsvcrt_a-_access_s.Tpo -c -o secapi/lib32_libmsvcrt_a-_access_s.o `test -f 'secapi/_access_s.c' || echo '$(srcdir)/'`secapi/_access_s.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) secapi/$(DEPDIR)/lib32_libmsvcrt_a-_access_s.Tpo secapi/$(DEPDIR)/lib32_libmsvcrt_a-_access_s.Po @@ -26259,20 +26258,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib64_libmingwex_a-mingw-fseek.obj `if test -f 'misc/mingw-fseek.c'; then $(CYGPATH_W) 'misc/mingw-fseek.c'; else $(CYGPATH_W) '$(srcdir)/misc/mingw-fseek.c'; fi` -misc/lib64_libmingwex_a-mingw_get_codepage.o: misc/mingw_get_codepage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib64_libmingwex_a-mingw_get_codepage.o -MD -MP -MF misc/$(DEPDIR)/lib64_libmingwex_a-mingw_get_codepage.Tpo -c -o misc/lib64_libmingwex_a-mingw_get_codepage.o `test -f 'misc/mingw_get_codepage.c' || echo '$(srcdir)/'`misc/mingw_get_codepage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib64_libmingwex_a-mingw_get_codepage.Tpo misc/$(DEPDIR)/lib64_libmingwex_a-mingw_get_codepage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/mingw_get_codepage.c' object='misc/lib64_libmingwex_a-mingw_get_codepage.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib64_libmingwex_a-mingw_get_codepage.o `test -f 'misc/mingw_get_codepage.c' || echo '$(srcdir)/'`misc/mingw_get_codepage.c - -misc/lib64_libmingwex_a-mingw_get_codepage.obj: misc/mingw_get_codepage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib64_libmingwex_a-mingw_get_codepage.obj -MD -MP -MF misc/$(DEPDIR)/lib64_libmingwex_a-mingw_get_codepage.Tpo -c -o misc/lib64_libmingwex_a-mingw_get_codepage.obj `if test -f 'misc/mingw_get_codepage.c'; then $(CYGPATH_W) 'misc/mingw_get_codepage.c'; else $(CYGPATH_W) '$(srcdir)/misc/mingw_get_codepage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib64_libmingwex_a-mingw_get_codepage.Tpo misc/$(DEPDIR)/lib64_libmingwex_a-mingw_get_codepage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/mingw_get_codepage.c' object='misc/lib64_libmingwex_a-mingw_get_codepage.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib64_libmingwex_a-mingw_get_codepage.obj `if test -f 'misc/mingw_get_codepage.c'; then $(CYGPATH_W) 'misc/mingw_get_codepage.c'; else $(CYGPATH_W) '$(srcdir)/misc/mingw_get_codepage.c'; fi` - misc/lib64_libmingwex_a-mingw_matherr.o: misc/mingw_matherr.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib64_libmingwex_a-mingw_matherr.o -MD -MP -MF misc/$(DEPDIR)/lib64_libmingwex_a-mingw_matherr.Tpo -c -o misc/lib64_libmingwex_a-mingw_matherr.o `test -f 'misc/mingw_matherr.c' || echo '$(srcdir)/'`misc/mingw_matherr.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib64_libmingwex_a-mingw_matherr.Tpo misc/$(DEPDIR)/lib64_libmingwex_a-mingw_matherr.Po @@ -27995,6 +27980,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib64_libmsvcrt_a-invalid_parameter_handler.obj `if test -f 'misc/invalid_parameter_handler.c'; then $(CYGPATH_W) 'misc/invalid_parameter_handler.c'; else $(CYGPATH_W) '$(srcdir)/misc/invalid_parameter_handler.c'; fi` +misc/lib64_libmsvcrt_a-lc_locale_func.o: misc/lc_locale_func.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib64_libmsvcrt_a-lc_locale_func.o -MD -MP -MF misc/$(DEPDIR)/lib64_libmsvcrt_a-lc_locale_func.Tpo -c -o misc/lib64_libmsvcrt_a-lc_locale_func.o `test -f 'misc/lc_locale_func.c' || echo '$(srcdir)/'`misc/lc_locale_func.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib64_libmsvcrt_a-lc_locale_func.Tpo misc/$(DEPDIR)/lib64_libmsvcrt_a-lc_locale_func.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/lc_locale_func.c' object='misc/lib64_libmsvcrt_a-lc_locale_func.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib64_libmsvcrt_a-lc_locale_func.o `test -f 'misc/lc_locale_func.c' || echo '$(srcdir)/'`misc/lc_locale_func.c + +misc/lib64_libmsvcrt_a-lc_locale_func.obj: misc/lc_locale_func.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib64_libmsvcrt_a-lc_locale_func.obj -MD -MP -MF misc/$(DEPDIR)/lib64_libmsvcrt_a-lc_locale_func.Tpo -c -o misc/lib64_libmsvcrt_a-lc_locale_func.obj `if test -f 'misc/lc_locale_func.c'; then $(CYGPATH_W) 'misc/lc_locale_func.c'; else $(CYGPATH_W) '$(srcdir)/misc/lc_locale_func.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib64_libmsvcrt_a-lc_locale_func.Tpo misc/$(DEPDIR)/lib64_libmsvcrt_a-lc_locale_func.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc/lc_locale_func.c' object='misc/lib64_libmsvcrt_a-lc_locale_func.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o misc/lib64_libmsvcrt_a-lc_locale_func.obj `if test -f 'misc/lc_locale_func.c'; then $(CYGPATH_W) 'misc/lc_locale_func.c'; else $(CYGPATH_W) '$(srcdir)/misc/lc_locale_func.c'; fi` + secapi/lib64_libmsvcrt_a-_access_s.o: secapi/_access_s.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT secapi/lib64_libmsvcrt_a-_access_s.o -MD -MP -MF secapi/$(DEPDIR)/lib64_libmsvcrt_a-_access_s.Tpo -c -o secapi/lib64_libmsvcrt_a-_access_s.o `test -f 'secapi/_access_s.c' || echo '$(srcdir)/'`secapi/_access_s.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) secapi/$(DEPDIR)/lib64_libmsvcrt_a-_access_s.Tpo secapi/$(DEPDIR)/lib64_libmsvcrt_a-_access_s.Po
diff --git a/mingw-w64-crt/misc/btowc.c b/mingw-w64-crt/misc/btowc.c index da232cb..aaabc0c 100644 --- a/mingw-w64-crt/misc/btowc.c +++ b/mingw-w64-crt/misc/btowc.c
@@ -19,7 +19,7 @@ { unsigned char ch = c; wchar_t wc = WEOF; - MultiByteToWideChar (__mingw_get_codepage(), 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 new file mode 100644 index 0000000..3bf1543 --- /dev/null +++ b/mingw-w64-crt/misc/lc_locale_func.c
@@ -0,0 +1,43 @@ +#define __lc_codepage __dummy_lc_codepage +#include <windows.h> +#include <locale.h> + +#include "mb_wc_common.h" + +HANDLE __mingw_get_msvcrt_handle(void); + +static unsigned int *msvcrt__lc_codepage; +static unsigned int __cdecl msvcrt__lc_codepage_func(void) +{ + return *msvcrt__lc_codepage; +} + +static unsigned int __cdecl setlocale_codepage_hack(void) +{ + /* locale :: "lang[_country[.code_page]]" | ".code_page" */ + const char *cp_str = strchr (setlocale(LC_CTYPE, NULL), '.'); + return cp_str ? atoi(cp_str + 1) : 0; +} + +static unsigned int __cdecl init_codepage_func(void); +unsigned int (__cdecl *__MINGW_IMP_SYMBOL(__lc_codepage_func))(void) = init_codepage_func; + +static unsigned int __cdecl init_codepage_func(void) +{ + HMODULE msvcrt = __mingw_get_msvcrt_handle(); + unsigned int (__cdecl *func)(void) = NULL; + + if(msvcrt) { + func = (void*)GetProcAddress(msvcrt, "___lc_codepage_func"); + if(!func) { + msvcrt__lc_codepage = (unsigned int*)GetProcAddress(msvcrt, "__lc_codepage"); + if(msvcrt__lc_codepage) + func = msvcrt__lc_codepage_func; + } + } + + if(!func) + func = setlocale_codepage_hack; + + 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 64cac2d..c95243b 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> -extern unsigned int (__cdecl *__mingw_get_codepage)(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 ac66a28..df4d318 100644 --- a/mingw-w64-crt/misc/mbrtowc.c +++ b/mingw-w64-crt/misc/mbrtowc.c
@@ -101,7 +101,7 @@ wchar_t* dst = pwc ? pwc : &byte_bucket; return (size_t) __mbrtowc_cp (dst, s, n, ps ? ps : &internal_mbstate, - __mingw_get_codepage(), MB_CUR_MAX); + __lc_codepage_func(), MB_CUR_MAX); } @@ -113,7 +113,7 @@ size_t n = 0; static mbstate_t internal_mbstate = 0; mbstate_t* internal_ps = ps ? ps : &internal_mbstate; - const unsigned int cp = __mingw_get_codepage(); + 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 @@ static mbstate_t s_mbstate = 0; wchar_t byte_bucket = 0; return __mbrtowc_cp (&byte_bucket, s, n, (ps) ? ps : &s_mbstate, - __mingw_get_codepage(), MB_CUR_MAX); + __lc_codepage_func(), MB_CUR_MAX); }
diff --git a/mingw-w64-crt/misc/mingw_get_codepage.c b/mingw-w64-crt/misc/mingw_get_codepage.c deleted file mode 100644 index 8f2d493..0000000 --- a/mingw-w64-crt/misc/mingw_get_codepage.c +++ /dev/null
@@ -1,43 +0,0 @@ -#define __lc_codepage __dummy_lc_codepage -#include <windows.h> -#include <locale.h> - -#include "mb_wc_common.h" - -static unsigned int *msvcrt__lc_codepage; -static unsigned int __cdecl msvcrt__lc_codepage_func(void) -{ - return *msvcrt__lc_codepage; -} - -static unsigned int __cdecl setlocale_codepage_hack(void) -{ - /* locale :: "lang[_country[.code_page]]" | ".code_page" */ - const char *cp_str = strchr (setlocale(LC_CTYPE, NULL), '.'); - return cp_str ? atoi(cp_str + 1) : 0; -} - -HANDLE __mingw_get_msvcrt_handle(void); - -static unsigned int __cdecl init_codepage_func(void) -{ - HMODULE msvcrt = __mingw_get_msvcrt_handle(); - - if(msvcrt) { - __mingw_get_codepage = (void*)GetProcAddress(msvcrt, "___lc_codepage_func"); - if(__mingw_get_codepage) - return __mingw_get_codepage(); - - msvcrt__lc_codepage = (unsigned int*)GetProcAddress(msvcrt, "__lc_codepage"); - if(msvcrt__lc_codepage) - return (__mingw_get_codepage = msvcrt__lc_codepage_func)(); - } - - return (__mingw_get_codepage = setlocale_codepage_hack)(); -} - -unsigned int (__cdecl *__mingw_get_codepage)(void) = init_codepage_func; -#undef __lc_codepage -extern unsigned int - (*__lc_codepage)(void) __attribute__ ((alias ("__mingw_get_codepage"))); -
diff --git a/mingw-w64-crt/misc/wcrtomb.c b/mingw-w64-crt/misc/wcrtomb.c index 3cd6ce8..aae58ea 100644 --- a/mingw-w64-crt/misc/wcrtomb.c +++ b/mingw-w64-crt/misc/wcrtomb.c
@@ -49,7 +49,7 @@ { char byte_bucket [MB_LEN_MAX]; char* tmp_dst = dst ? dst : &byte_bucket[0]; - return (size_t)__wcrtomb_cp (tmp_dst, wc, __mingw_get_codepage (), + return (size_t)__wcrtomb_cp (tmp_dst, wc, __lc_codepage_func(), MB_CUR_MAX); } @@ -58,7 +58,7 @@ { int ret = 0; size_t n = 0; - const unsigned int cp = __mingw_get_codepage(); + 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 c655544..eea597b 100644 --- a/mingw-w64-crt/misc/wcstof.c +++ b/mingw-w64-crt/misc/wcstof.c
@@ -23,7 +23,7 @@ char * cse; unsigned int i; float ret; - const unsigned int cp = __mingw_get_codepage(); + 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 f35c940..e0fd352 100644 --- a/mingw-w64-crt/misc/wcstold.c +++ b/mingw-w64-crt/misc/wcstold.c
@@ -31,7 +31,7 @@ char * cse; unsigned int i; long double ret; - const unsigned int cp = __mingw_get_codepage(); + 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 a2089a5..435abf1 100644 --- a/mingw-w64-crt/misc/wctob.c +++ b/mingw-w64-crt/misc/wctob.c
@@ -19,7 +19,7 @@ wchar_t w = wc; char c; int invalid_char = 0; - if (!WideCharToMultiByte (__mingw_get_codepage(), + if (!WideCharToMultiByte (__lc_codepage_func(), 0 /* Is this correct flag? */, &w, 1, &c, 1, NULL, &invalid_char) || invalid_char)