From b02b9253e0c1770707ed791f0aa274af79886932 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 13 Feb 2000 07:40:16 +0000 Subject: Update. 2000-02-12 Ulrich Drepper * locale/nl_langinfo.h: Add casts to prevent warnings. * wctype/iswctype_l.c: Use correct types for mapped data. * wctype/wcfuncs.c: Add one more comment for clarification. * wctype/wcfuncs_l.c: Use __ctype32_tolower and __ctype32_toupper. * wctype/wctrans.c: Likewise. --- wctype/wcfuncs_l.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'wctype/wcfuncs_l.c') diff --git a/wctype/wcfuncs_l.c b/wctype/wcfuncs_l.c index 775676eb38..0c75359a41 100644 --- a/wctype/wcfuncs_l.c +++ b/wctype/wcfuncs_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,6 +18,10 @@ #define __NO_WCTYPE #include +#include + +#define USE_IN_EXTENDED_LOCALE_MODEL +#include "cname-lookup.h" /* Provide real-function versions of all the wctype macros. */ @@ -40,11 +44,31 @@ func (__iswxdigit_l, _ISwxdigit) wint_t (__towlower_l) (wint_t wc, __locale_t locale) { - return __towctrans_l (wc, locale->__ctype_tolower, locale); + const int32_t *class32_tolower; + size_t idx; + + idx = cname_lookup (wc, locale); + if (idx == ~((size_t) 0)) + return 0; + + class32_tolower = (const int32_t *) + locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_TOLOWER32)].string; + + return class32_tolower[idx]; } wint_t (__towupper_l) (wint_t wc, __locale_t locale) { - return __towctrans_l (wc, locale->__ctype_toupper, locale); + const int32_t *class32_toupper; + size_t idx; + + idx = cname_lookup (wc, locale); + if (idx == ~((size_t) 0)) + return 0; + + class32_toupper = (const int32_t *) + locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_TOUPPER32)].string; + + return class32_toupper[idx]; } -- cgit 1.4.1