From 1525d127da1d0f5eb197805e6c8e0c27eda9d520 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Fri, 20 Sep 2002 20:13:11 +0000 Subject: 2002-09-20 Jeff Johnston * libc/ctype/Makefile.am: Add new files. * libc/ctype/Makefile.in: Regenerated. * libc/ctype/ctype.tex: Add new iswxxxx, towxxxx, wctype, and wctrans functions to documentation index. * libc/ctype/iswalnum.c: New file. * libc/ctype/iswalpha.c: Ditto. * libc/ctype/iswblank.c: Ditto. * libc/ctype/iswcntrl.c: Ditto. * libc/ctype/iswctype.c: Ditto. * libc/ctype/iswdigit.c: Ditto. * libc/ctype/iswgraph.c: Ditto. * libc/ctype/iswlower.c: Ditto. * libc/ctype/iswprint.c: Ditto. * libc/ctype/iswpunct.c: Ditto. * libc/ctype/iswspace.c: Ditto. * libc/ctype/iswupper.c: Ditto. * libc/ctype/iswxdigit.c: Ditto. * libc/ctype/jp2uc.c: Ditto. * libc/ctype/jp2uc.h: Ditto. * libc/ctype/local.h: Ditto. * libc/ctype/towctrans.c: Ditto. * libc/ctype/towlower.c: Ditto. * libc/ctype/towupper.c: Ditto. * libc/ctype/utf8alpha.h: Ditto. * libc/ctype/utf8print.h: Ditto. * libc/ctype/utf8punct.h: Ditto. * libc/ctype/wctrans.c: Ditto. * libc/ctype/wctype.c: Ditto. * libc/locale/locale.c (__lc_ctype): New external array to replace static lc_ctype array. * libc/stdlib/mbtowc_r.c: Use __lc_ctype to check current lc_ctype rather than reentrancy structure's _current_locale field. * libc/stdlib/wctomb_r.c: Ditto. --- newlib/libc/stdlib/wctomb_r.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'newlib/libc/stdlib/wctomb_r.c') diff --git a/newlib/libc/stdlib/wctomb_r.c b/newlib/libc/stdlib/wctomb_r.c index 4bcabee5d..a01863246 100644 --- a/newlib/libc/stdlib/wctomb_r.c +++ b/newlib/libc/stdlib/wctomb_r.c @@ -7,6 +7,8 @@ /* for some conversions, we use the __count field as a place to store a state value */ #define __state __count +extern char __lc_ctype[12]; + int _DEFUN (_wctomb_r, (r, s, wchar, state), struct _reent *r _AND @@ -14,9 +16,9 @@ _DEFUN (_wctomb_r, (r, s, wchar, state), wchar_t wchar _AND mbstate_t *state) { - if (strlen (r->_current_locale) <= 1) + if (strlen (__lc_ctype) <= 1) { /* fall-through */ } - else if (!strcmp (r->_current_locale, "C-UTF-8")) + else if (!strcmp (__lc_ctype, "C-UTF-8")) { if (s == NULL) return 0; /* UTF-8 encoding is not state-dependent */ @@ -73,7 +75,7 @@ _DEFUN (_wctomb_r, (r, s, wchar, state), else return -1; } - else if (!strcmp (r->_current_locale, "C-SJIS")) + else if (!strcmp (__lc_ctype, "C-SJIS")) { unsigned char char2 = (unsigned char)wchar; unsigned char char1 = (unsigned char)(wchar >> 8); @@ -94,7 +96,7 @@ _DEFUN (_wctomb_r, (r, s, wchar, state), return -1; } } - else if (!strcmp (r->_current_locale, "C-EUCJP")) + else if (!strcmp (__lc_ctype, "C-EUCJP")) { unsigned char char2 = (unsigned char)wchar; unsigned char char1 = (unsigned char)(wchar >> 8); @@ -115,7 +117,7 @@ _DEFUN (_wctomb_r, (r, s, wchar, state), return -1; } } - else if (!strcmp (r->_current_locale, "C-JIS")) + else if (!strcmp (__lc_ctype, "C-JIS")) { int cnt = 0; unsigned char char2 = (unsigned char)wchar; -- cgit v1.2.3