]> sourceware.org Git - newlib-cygwin.git/commit
Consolidate wctomb/mbtowc calls for POSIX-1.2008
authorCorinna Vinschen <corinna@vinschen.de>
Wed, 20 Jul 2016 20:05:59 +0000 (22:05 +0200)
committerCorinna Vinschen <corinna@vinschen.de>
Mon, 15 Aug 2016 08:56:57 +0000 (10:56 +0200)
commitd16a56306d63b4d94412b479a8ea83463a3514ab
treeb37c2954976f314628637e660e039f1be4034b1c
parent88208d3735821df0f5a66c5f8781282a7f5bf284
Consolidate wctomb/mbtowc calls for POSIX-1.2008

- Remove charset parameter from low level __foo_wctomb/__foo_mbtowc calls.
- Instead, create array of function for ISO and Windows codepages to point
  to function which does not require to evaluate the charset string on
  each call.  Create matching helper functions.  I.e., __iso_wctomb,
  __iso_mbtowc, __cp_wctomb and __cp_mbtowc are functions returning the
  right function pointer now.
- Create __WCTOMB/__MBTOWC macros utilizing per-reent locale and replace
  calls to __wctomb/__mbtowc with calls to __WCTOMB/__MBTOWC.
- Drop global __wctomb/__mbtowc vars.
- Utilize aforementioned changes in Cygwin to get rid of charset in other,
  calling functions and simplify the code.
- In Cygwin restrict global cygheap locale info to the job performed
  by internal_setlocale.  Use UTF-8 instead of ASCII on the fly in
  internal conversion functions.
- In Cygwin dll_entry, make sure to initialize a TLS area with a NULL
  _REENT->_locale pointer.  Add comment to explain why.

Signed-off by: Corinna Vinschen <corinna@vinschen.de>
31 files changed:
newlib/libc/ctype/isprint.c
newlib/libc/ctype/local.h
newlib/libc/locale/locale.c
newlib/libc/locale/nl_langinfo.c
newlib/libc/locale/setlocale.h
newlib/libc/stdio/vfprintf.c
newlib/libc/stdio/vfscanf.c
newlib/libc/stdlib/btowc.c
newlib/libc/stdlib/local.h
newlib/libc/stdlib/mblen.c
newlib/libc/stdlib/mblen_r.c
newlib/libc/stdlib/mbrtowc.c
newlib/libc/stdlib/mbstowcs_r.c
newlib/libc/stdlib/mbtowc.c
newlib/libc/stdlib/mbtowc_r.c
newlib/libc/stdlib/sb_charsets.c
newlib/libc/stdlib/wcrtomb.c
newlib/libc/stdlib/wcsnrtombs.c
newlib/libc/stdlib/wcstombs_r.c
newlib/libc/stdlib/wctob.c
newlib/libc/stdlib/wctomb.c
newlib/libc/stdlib/wctomb_r.c
newlib/libc/time/strptime.c
winsup/cygwin/cygheap.cc
winsup/cygwin/cygheap.h
winsup/cygwin/fhandler.h
winsup/cygwin/fhandler_console.cc
winsup/cygwin/init.cc
winsup/cygwin/nlsfuncs.cc
winsup/cygwin/strfuncs.cc
winsup/cygwin/wchar.h
This page took 0.035644 seconds and 5 git commands to generate.