mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-05 12:40:55 +08:00
2002-08-02 Roland McGrath <roland@redhat.com>
* locale/localeinfo.h (_NL_CURRENT_DATA): New macro. * wcsmbs/wcsmbsload.h (update_conversion_ptrs): Use it. * locale/lc-ctype.c (_nl_postload_ctype): Likewise. * wctype/wctrans.c (wctrans): Likewise. * wctype/wctype.c (__wctype): Likewise. * intl/loadmsgcat.c (_nl_init_domain_conv): Use _NL_CURRENT.
This commit is contained in:
parent
ae309ba9e4
commit
174d73a3ba
@ -805,7 +805,7 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
|
||||
if (outcharset == NULL || outcharset[0] == '\0')
|
||||
{
|
||||
# ifdef _LIBC
|
||||
outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
|
||||
outcharset = _NL_CURRENT (LC_CTYPE, CODESET);
|
||||
# else
|
||||
# if HAVE_ICONV
|
||||
extern const char *locale_charset (void);
|
||||
|
@ -34,6 +34,8 @@ _NL_CURRENT_DEFINE (LC_CTYPE);
|
||||
void
|
||||
_nl_postload_ctype (void)
|
||||
{
|
||||
const struct locale_data *data = _NL_CURRENT_DATA (LC_CTYPE);
|
||||
|
||||
#define paste(a,b) paste1(a,b)
|
||||
#define paste1(a,b) a##b
|
||||
|
||||
@ -58,11 +60,11 @@ _nl_postload_ctype (void)
|
||||
|
||||
offset = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_CLASS_OFFSET);
|
||||
for (cnt = 0; cnt < 12; cnt++)
|
||||
__ctype32_wctype[cnt] = _nl_current_LC_CTYPE->values[offset + cnt].string;
|
||||
__ctype32_wctype[cnt] = data->values[offset + cnt].string;
|
||||
|
||||
offset = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_OFFSET);
|
||||
for (cnt = 0; cnt < 2; cnt++)
|
||||
__ctype32_wctrans[cnt] = _nl_current_LC_CTYPE->values[offset + cnt].string;
|
||||
__ctype32_wctrans[cnt] = data->values[offset + cnt].string;
|
||||
|
||||
__ctype32_width = current (char, WIDTH, 0);
|
||||
}
|
||||
|
@ -158,13 +158,17 @@ extern const char _nl_POSIX_name[] attribute_hidden;
|
||||
/* The standard codeset. */
|
||||
extern const char _nl_C_codeset[] attribute_hidden;
|
||||
|
||||
/* Return a pointer to the current `struct locale_data' for CATEGORY. */
|
||||
#define _NL_CURRENT_DATA(category) \
|
||||
((const struct locale_data *) _nl_current_##category)
|
||||
|
||||
/* Extract the current CATEGORY locale's string for ITEM. */
|
||||
#define _NL_CURRENT(category, item) \
|
||||
(_nl_current_##category->values[_NL_ITEM_INDEX (item)].string)
|
||||
|
||||
/* Extract the current CATEGORY locale's string for ITEM. */
|
||||
#define _NL_CURRENT_WSTR(category, item) \
|
||||
((wchar_t *) (_nl_current_##category->values[_NL_ITEM_INDEX (item)].wstr))
|
||||
((wchar_t *) _nl_current_##category->values[_NL_ITEM_INDEX (item)].wstr)
|
||||
|
||||
/* Extract the current CATEGORY locale's word for ITEM. */
|
||||
#define _NL_CURRENT_WORD(category, item) \
|
||||
|
@ -57,6 +57,6 @@ extern int __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name)
|
||||
static inline void
|
||||
update_conversion_ptrs (void)
|
||||
{
|
||||
if (__wcsmbs_last_locale != _nl_current_LC_CTYPE)
|
||||
__wcsmbs_load_conv (_nl_current_LC_CTYPE);
|
||||
if (__wcsmbs_last_locale != _NL_CURRENT_DATA (LC_CTYPE))
|
||||
__wcsmbs_load_conv (_NL_CURRENT_DATA (LC_CTYPE));
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996,97,99,2000,02 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
@ -44,5 +44,5 @@ wctrans (const char *property)
|
||||
return 0;
|
||||
|
||||
i = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_OFFSET) + cnt;
|
||||
return (wctrans_t) _nl_current_LC_CTYPE->values[i].string;
|
||||
return (wctrans_t) _NL_CURRENT_DATA (LC_CTYPE)->values[i].string;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996,97,98,2000,02 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
@ -44,6 +44,6 @@ __wctype (const char *property)
|
||||
}
|
||||
|
||||
i = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_CLASS_OFFSET) + result;
|
||||
return (wctype_t) _nl_current_LC_CTYPE->values[i].string;
|
||||
return (wctype_t) _NL_CURRENT_DATA (LC_CTYPE)->values[i].string;
|
||||
}
|
||||
weak_alias (__wctype, wctype)
|
||||
|
Loading…
Reference in New Issue
Block a user