2002-08-02 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@gnu.org>
Fri, 2 Aug 2002 21:04:06 +0000 (21:04 +0000)
committerRoland McGrath <roland@gnu.org>
Fri, 2 Aug 2002 21:04:06 +0000 (21:04 +0000)
* 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.

intl/loadmsgcat.c
locale/lc-ctype.c
locale/localeinfo.h
wcsmbs/wcsmbsload.h
wctype/wctrans.c
wctype/wctype.c

index 19a3e9b..b9e59f5 100644 (file)
@@ -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);
index 3fc2394..59ff701 100644 (file)
@@ -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);
 }
index 2074569..3a43469 100644 (file)
@@ -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) \
index dee2c81..1fcb42c 100644 (file)
@@ -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));
 }
index 4384c7b..0f921ef 100644 (file)
@@ -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;
 }
index fc1927c..9168929 100644 (file)
@@ -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)