Catalan language locale for Andorra.
[kopensolaris-gnu/glibc.git] / locale / localeinfo.h
index 28256e9..3b0ed4f 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for internal libc locale interfaces
-   Copyright (C) 1995-2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-2001, 2002, 2003, 2005 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
 #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) (0x20000828 ^ (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
@@ -78,7 +81,7 @@ struct locale_data
   {
     const uint32_t *wstr;
     const char *string;
-    unsigned int word;
+    unsigned int word;         /* Note endian issues vs 64-bit pointers.  */
   }
   values __flexarr;    /* Items, usually pointers into `filedata'.  */
 };
@@ -215,7 +218,7 @@ __libc_tsd_define (extern, LOCALE)
    associated with this category.  */
 #define DEFINE_CATEGORY(category, category_name, items, a) \
 extern __thread struct locale_data *const *_nl_current_##category \
-  attribute_hidden;
+  attribute_hidden attribute_tls_model_ie;
 #include "categories.def"
 #undef DEFINE_CATEGORY
 
@@ -232,7 +235,7 @@ extern __thread struct locale_data *const *_nl_current_##category \
 
 /* Extract the current CATEGORY locale's word for ITEM.  */
 #define _NL_CURRENT_WORD(category, item) \
-  ((*_nl_current_##category)->values[_NL_ITEM_INDEX (item)].word)
+  ((uint32_t) (*_nl_current_##category)->values[_NL_ITEM_INDEX (item)].word)
 
 /* This is used in lc-CATEGORY.c to define _nl_current_CATEGORY.  */
 #define _NL_CURRENT_DEFINE(category) \
@@ -268,7 +271,7 @@ extern __thread struct locale_data *const *_nl_current_##category \
 
 /* Extract the current CATEGORY locale's word for ITEM.  */
 # define _NL_CURRENT_WORD(category, item) \
-  (_NL_CURRENT_DATA (category)->values[_NL_ITEM_INDEX (item)].word)
+  ((uint32_t) _NL_CURRENT_DATA (category)->values[_NL_ITEM_INDEX (item)].word)
 
 /* This is used in lc-CATEGORY.c to define _nl_current_CATEGORY.  */
 # define _NL_CURRENT_DEFINE(category) \
@@ -315,6 +318,9 @@ extern struct locale_data *_nl_load_locale_from_archive (int category,
 /* Subroutine of setlocale's __libc_subfreeres hook.  */
 extern void _nl_archive_subfreeres (void) attribute_hidden;
 
+/* Subroutine of gconv-db's __libc_subfreeres hook.  */
+extern void _nl_locale_subfreeres (void) attribute_hidden;
+
 /* Validate the contents of a locale file and set up the in-core
    data structure to point into the data.  This leaves the `alloc'
    and `name' fields uninitialized, for the caller to fill in.