about summary refs log tree commit diff
path: root/locale/localeinfo.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-05-15 18:36:28 +0000
committerUlrich Drepper <drepper@redhat.com>2006-05-15 18:36:28 +0000
commit9446614c28b003812b59e99ff1f38aa526234c1c (patch)
treec7109087c02a598a6d4bb5cba4f77d6e62ce7d12 /locale/localeinfo.h
parent88dbff8cf980b4b63bdbb0e987489bc20176f220 (diff)
downloadglibc-9446614c28b003812b59e99ff1f38aa526234c1c.tar.gz
glibc-9446614c28b003812b59e99ff1f38aa526234c1c.tar.xz
glibc-9446614c28b003812b59e99ff1f38aa526234c1c.zip
* locale/setlocale.c: Change _nl_category_names into a string.
	Add new _nl_category_name_idxs.  Change all users.
	* locale/localeinfo.h: Adjust declaration of _nl_category_names.
	Declare _nl_category_name_idxs.
	* locale/findlocale.c: Adjust for _nl_category_names change.
	* locale/loadlocale.c: Likewise.
	* locale/newlocale.c: Likewise.
	* intl/dcigettext.c: Likewise.
Diffstat (limited to 'locale/localeinfo.h')
-rw-r--r--locale/localeinfo.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index 3b0ed4f30b..4f746a298d 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -1,5 +1,5 @@
 /* Declarations for internal libc locale interfaces
-   Copyright (C) 1995-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003, 2005, 2006 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
@@ -172,8 +172,22 @@ enum
 #define _ISCTYPE(c, desc) \
   (((((const uint32_t *) (desc)) - 8)[(c) >> 5] >> ((c) & 0x1f)) & 1)
 
-extern const char *const _nl_category_names[__LC_LAST] attribute_hidden;
-extern const size_t _nl_category_name_sizes[__LC_LAST] attribute_hidden;
+/* Category name handling variables.  */
+#define CATNAMEMF(line) CATNAMEMF1 (line)
+#define CATNAMEMF1(line) str##line
+extern const union catnamestr_t
+{
+  struct
+  {
+#define DEFINE_CATEGORY(category, category_name, items, a) \
+    char CATNAMEMF (__LINE__)[sizeof (category_name)];
+#include "categories.def"
+#undef DEFINE_CATEGORY
+  };
+  char str[0];
+} _nl_category_names attribute_hidden;
+const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden;
+extern const uint8_t _nl_category_name_sizes[__LC_LAST] attribute_hidden;
 
 /* Name of the standard locales.  */
 extern const char _nl_C_name[] attribute_hidden;