Catalan language locale for Andorra.
[kopensolaris-gnu/glibc.git] / locale / localeinfo.h
index 186aa71..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
@@ -64,6 +67,7 @@ struct locale_data
     {
       void *data;
       struct lc_time_data *time;
+      const struct gconv_fcts *ctype;
     };
   } private;
 
@@ -77,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'.  */
 };
@@ -147,7 +151,8 @@ struct lc_time_data
 
   const char **alt_digits;
   const wchar_t **walt_digits;
-  int alt_digits_initialized, walt_digits_initialized;
+  int alt_digits_initialized;
+  int walt_digits_initialized;
 };
 
 
@@ -177,10 +182,6 @@ extern const char _nl_POSIX_name[] attribute_hidden;
 /* The standard codeset.  */
 extern const char _nl_C_codeset[] attribute_hidden;
 
-/* Name of current locale for each individual category.
-   Each is malloc'd unless it is _nl_C_name.  */
-extern const char *_nl_current_names[] attribute_hidden;
-
 /* This is the internal locale_t object that holds the global locale
    controlled by calls to setlocale.  A thread's TSD locale pointer
    points to this when `uselocale (LC_GLOBAL_LOCALE)' is in effect.  */
@@ -217,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
 
@@ -234,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) \
@@ -270,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) \
@@ -317,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.