summaryrefslogtreecommitdiff
path: root/wctype
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-02-13 07:40:16 +0000
committerUlrich Drepper <drepper@redhat.com>2000-02-13 07:40:16 +0000
commitb02b9253e0c1770707ed791f0aa274af79886932 (patch)
treec96810ca1b2a2c7cb6a5a8ed48584736b6eb3bf5 /wctype
parent65580ca855fa11f6e5bb0ab7f277abd82115151d (diff)
Update.
2000-02-12 Ulrich Drepper <drepper@redhat.com> * 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.
Diffstat (limited to 'wctype')
-rw-r--r--wctype/iswctype_l.c6
-rw-r--r--wctype/wcfuncs.c4
-rw-r--r--wctype/wcfuncs_l.c30
-rw-r--r--wctype/wctrans.c6
4 files changed, 36 insertions, 10 deletions
diff --git a/wctype/iswctype_l.c b/wctype/iswctype_l.c
index 75fb41c4c8..fa4e024fce 100644
--- a/wctype/iswctype_l.c
+++ b/wctype/iswctype_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.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@@ -27,14 +27,14 @@
int
__iswctype_l (wint_t wc, wctype_t desc, __locale_t locale)
{
- const unsigned int *class32_b;
+ const uint32_t *class32_b;
size_t idx;
idx = cname_lookup (wc, locale);
if (idx == ~((size_t) 0))
return 0;
- class32_b = (u_int32_t *)
+ class32_b = (uint32_t *)
locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_CLASS32)].string;
return class32_b[idx] & desc;
diff --git a/wctype/wcfuncs.c b/wctype/wcfuncs.c
index 2f60c4a650..fdb5dc7a70 100644
--- a/wctype/wcfuncs.c
+++ b/wctype/wcfuncs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 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
@@ -25,6 +25,8 @@
/* If the program is compiled without optimization the following declaration
is not visible in the header. */
extern unsigned int *__ctype32_b;
+
+/* These are not exported. */
extern const uint32_t *__ctype32_toupper;
extern const uint32_t *__ctype32_tolower;
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 <wctype.h>
+#include <stdint.h>
+
+#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];
}
diff --git a/wctype/wctrans.c b/wctype/wctrans.c
index 5d7b5bda38..a9f83e40b9 100644
--- a/wctype/wctrans.c
+++ b/wctype/wctrans.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@@ -45,9 +45,9 @@ wctrans (const char *property)
return 0;
if (cnt == 0)
- return (wctrans_t) __ctype_toupper;
+ return (wctrans_t) __ctype32_toupper;
else if (cnt == 1)
- return (wctrans_t) __ctype_tolower;
+ return (wctrans_t) __ctype32_tolower;
/* We have to search the table. */
result = (int32_t *) _NL_CURRENT (LC_CTYPE, _NL_NUM_LC_CTYPE + cnt - 2);