aboutsummaryrefslogtreecommitdiff
path: root/locale/localeinfo.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
committerJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
commit0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (patch)
tree2ea1f8305970753e4a657acb2ccc15ca3eec8e2c /locale/localeinfo.h
parent7d58530341304d403a6626d7f7a1913165fe2f32 (diff)
downloadglibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.zip
glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.gz
glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.bz2
2.5-18.1
Diffstat (limited to 'locale/localeinfo.h')
-rw-r--r--locale/localeinfo.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index 065ee18..4f746a2 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 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
@@ -31,7 +31,10 @@
#include <intl/loadinfo.h> /* For loaded_l10nfile definition. */
/* Magic number at the beginning of a locale data file for CATEGORY. */
-#define LIMAGIC(category) ((unsigned int) (0x20031115 ^ (category)))
+#define LIMAGIC(category) \
+ (category == LC_COLLATE \
+ ? ((unsigned int) (0x20051014 ^ (category))) \
+ : ((unsigned int) (0x20031115 ^ (category))))
/* Two special weight constants for the collation data. */
#define IGNORE_CHAR 2
@@ -169,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;