diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | locale/nl_langinfo.c | 4 | ||||
-rw-r--r-- | wctype/iswctype_l.c | 6 | ||||
-rw-r--r-- | wctype/wcfuncs.c | 4 | ||||
-rw-r--r-- | wctype/wcfuncs_l.c | 30 | ||||
-rw-r--r-- | wctype/wctrans.c | 6 |
6 files changed, 47 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog index 84abd3f659..fa25e1c96a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +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. + 2000-02-12 Andreas Jaeger <aj@suse.de> * sysdeps/mips/dl-machine.h (__start): Rewritten for 2.2 startup diff --git a/locale/nl_langinfo.c b/locale/nl_langinfo.c index 34772d3535..9b0b7c7e31 100644 --- a/locale/nl_langinfo.c +++ b/locale/nl_langinfo.c @@ -35,13 +35,13 @@ nl_langinfo (item) if (category < 0 || category >= LC_ALL) /* Bogus category: bogus item. */ - return ""; + return (char *) ""; data = *_nl_current[category]; if (index >= data->nstrings) /* Bogus index for this category: bogus item. */ - return ""; + return (char *) ""; /* Return the string for the specified item. */ return (char *) data->values[index].string; 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); |