diff options
author | Roland McGrath <roland@gnu.org> | 2002-09-02 07:09:08 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-09-02 07:09:08 +0000 |
commit | cf684340ce723e2ec50e8f82d8c10947360518d2 (patch) | |
tree | 123ff19d7fbfabf234aee0e62a0753eba16827ea /ctype/ctype-info.c | |
parent | 4032add80a847ddff3dff9d85163fc119013b9e2 (diff) |
* ctype/ctype.h (__ctype_b, __ctype_toupper, __ctype_tolower):
Variable declarations removed.
(__ctype_b_loc, __ctype_toupper_loc, __ctype_tolower_loc): Declare
these functions to replace them.
(__isctype, tolower, toupper, _tolower, _toupper): Use those accessor
functions plus an indirection rather than the old global variables.
* include/ctype.h (__isctype, tolower, _tolower, toupper, _toupper):
Macros removed.
(__ctype_b_loc, __ctype_toupper_loc, __ctype_tolower_loc): New extern
inline functions.
* ctype/ctype-info.c: Revert last reversion back the other way.
Define tsd vars CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
Define real function versions of include/ctype.h inlines here.
* ctype/Versions (libc: GLIBC_2.3): Add __ctype_b_loc,
__ctype_tolower_loc, __ctype_toupper_loc.
* locale/lc-ctype.c: Revert last reversion back the other way.
(_nl_postload_ctype): If current thread uses the global locale,
update its tsd vars.
* locale/uselocale.c (__uselocale): Update tsd vars from new locale.
* hurd/hurd/threadvar.h (enum __hurd_threadvar_index): Add CTYPE_B,
CTYPE_TOLOWER, CTYPE_TOUPPER.
* sysdeps/generic/bits/libc-tsd.h (__libc_tsd_address): New macro.
* sysdeps/mach/hurd/bits/libc-tsd.h (__libc_tsd_address): Renamed
from __libc_tsd_threadvar_location.
(__libc_tsd_set, __libc_tsd_get): Update uses.
Diffstat (limited to 'ctype/ctype-info.c')
-rw-r--r-- | ctype/ctype-info.c | 56 |
1 files changed, 25 insertions, 31 deletions
diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c index d29edb7171..30c6d55444 100644 --- a/ctype/ctype-info.c +++ b/ctype/ctype-info.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,95,96,97,99,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,95,96,97,99,2000,02 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 @@ -16,9 +16,18 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#define CTYPE_EXTERN_INLINE /* Define real functions for accessors. */ #include <ctype.h> #include <locale/localeinfo.h> +__libc_tsd_define (, CTYPE_B) +__libc_tsd_define (, CTYPE_TOLOWER) +__libc_tsd_define (, CTYPE_TOUPPER) + + +#include <shlib-compat.h> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) + /* Defined in locale/C-ctype.c. */ extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden; @@ -36,36 +45,21 @@ extern const char _nl_C_LC_CTYPE_class_blank[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_cntrl[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_punct[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_alnum[] attribute_hidden; -extern const char _nl_C_LC_CTYPE_map_toupper[] attribute_hidden; -extern const char _nl_C_LC_CTYPE_map_tolower[] attribute_hidden; -extern const char _nl_C_LC_CTYPE_width[] attribute_hidden; #define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o) -const unsigned short int *__ctype_b = b (unsigned short int, class, 128); -const __uint32_t *__ctype32_b = b (__uint32_t, class32, 0); -const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128); -const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128); -const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128); -const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128); -const char *__ctype32_wctype[12] attribute_hidden = -{ - b(char, class_upper, 32), - b(char, class_lower, 32), - b(char, class_alpha, 32), - b(char, class_digit, 32), - b(char, class_xdigit, 32), - b(char, class_space, 32), - b(char, class_print, 32), - b(char, class_graph, 32), - b(char, class_blank, 32), - b(char, class_cntrl, 32), - b(char, class_punct, 32), - b(char, class_alnum, 32) -}; -const char *__ctype32_wctrans[2] attribute_hidden = -{ - b(char, map_toupper, 0), - b(char, map_tolower, 0) -}; -const char *__ctype32_width attribute_hidden = b (char, width, 0); +const unsigned short int *__ctype_old_b = b (unsigned short int, class, 128); +const __uint32_t *__ctype32_old_b = b (__uint32_t, class32, 0); +const __int32_t *__ctype_old_tolower = b (__int32_t, tolower, 128); +const __int32_t *__ctype_old_toupper = b (__int32_t, toupper, 128); +const __uint32_t *__ctype32_old_tolower = b (__uint32_t, tolower, 128); +const __uint32_t *__ctype32_old_toupper = b (__uint32_t, toupper, 128); + +compat_symbol (libc, __ctype_old_b, __ctype_b, GLIBC_2_0); +compat_symbol (libc, __ctype_old_tolower, __ctype_tolower, GLIBC_2_0); +compat_symbol (libc, __ctype_old_toupper, __ctype_toupper, GLIBC_2_0); +compat_symbol (libc, __ctype32_old_b, __ctype32_b, GLIBC_2_0); +compat_symbol (libc, __ctype32_old_tolower, __ctype32_tolower, GLIBC_2_2); +compat_symbol (libc, __ctype32_old_toupper, __ctype32_toupper, GLIBC_2_2); + +#endif |