1999-09-13  Ulrich Drepper  <drepper@cygnus.com>

	* locale/langinfo.h: Remove byte-order dependent names.
	* locale/categories.def: Update after removal of byte-order dependent
	names.
	* locale/loadlocale.c (_nl_load_locale): Don't allow locale files
	with magic number in other byte order.
	* locale/newlocale.c (__newlocale): Remove byte-order dependent code.
	* locale/C-collate.c: Remove initializers for other byte-order.
	* locale/C-ctype.c: Likewise.
	* locale/C-monetary.c: Likewise.
	* locale/C-paper.c: Likewise.
	* locale/C-time.c: Likewise.
	* locale/lc-collate.c: Remove byte-order oriented initialization.
	* locale/lc-ctype.c: Likewise.
	* locale/lc-monetary.c: Likewise.
	* locale/lc-time.c: Likewise.
	* locale/programs/ld-address.c: Don't generate output in both
	byte-orders.
	* locale/programs/ld-ctype.c: Likewise.
	* locale/programs/ld-paper.c: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* time/strftime.c (NLW): Don't use different byte-orders.
	* wctype/cname-lookup.h (cname_lookup): Likewise.

	* Makeconfig (localedir): Define using libdir, not datadir.
	(msgcatdir): New variable.
	* catgets/Makefile (CPPFLAGS): Define NLSPATH using msgcatdir.
	* elf/Makefile (bash-ldd-rewrite): Replace @TEXTDOMAINDIR@ using
	msgcatdir.
	* intl/Makefile (install-others): Install locale.alias in msgcatdir.
	(CPPFLAGS): Define paths using msgcatdir.
	* locale/Makefile (CPPFLAGS): Define LOCALE_ALIAS_PATH using msgcatdir.
	* po/Makefile (mo-installed): Define using msgcatdir.

	* sysdeps/unix/sysv/linux/net/if_arp.h: Fix typo.
This commit is contained in:
Ulrich Drepper 1999-09-13 09:07:36 +00:00
parent 3e95f6602b
commit 4a33c2f55e
31 changed files with 357 additions and 1262 deletions

16
BUGS
View file

@ -1,7 +1,7 @@
List of known bugs (certainly very incomplete)
----------------------------------------------
Time-stamp: <1999-07-29T15:25:53-0700 drepper>
Time-stamp: <1999-09-13T02:02:34-0700 drepper>
This following list contains those bugs which I'm aware of. Please
make sure that bugs you report are not listed here. If you can fix one
@ -39,26 +39,12 @@ Severity: [ *] to [***]
symbols in <linux/limits.h> available.
[PR libc/140]
[ *] The localedef program should not generate errors if for categories
which are not used for the output there are characters referenced
which are not defined in the charmap.
[PR libc/229]
[ *] When assembling a locale definition, that uses the "copy"
directive, with localedef, not only the copied category is
checked for errors, but the whole file containing the same
category.
[PR libc/207 and PR libc/454]
[ *] The libm-ieee `gamma' function gives wrong results (at least for
-0.5).
[ *] The libm-ieee `scalb' function gives wrong results for
non-integral second parameters.
[ *] The strftime() implementation cannot handle multibyte locales really
good since the TOLOWER and TOUPPER are not prepared.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ulrich Drepper
drepper@cygnus.com

View file

@ -1,3 +1,40 @@
1999-09-13 Ulrich Drepper <drepper@cygnus.com>
* locale/langinfo.h: Remove byte-order dependent names.
* locale/categories.def: Update after removal of byte-order dependent
names.
* locale/loadlocale.c (_nl_load_locale): Don't allow locale files
with magic number in other byte order.
* locale/newlocale.c (__newlocale): Remove byte-order dependent code.
* locale/C-collate.c: Remove initializers for other byte-order.
* locale/C-ctype.c: Likewise.
* locale/C-monetary.c: Likewise.
* locale/C-paper.c: Likewise.
* locale/C-time.c: Likewise.
* locale/lc-collate.c: Remove byte-order oriented initialization.
* locale/lc-ctype.c: Likewise.
* locale/lc-monetary.c: Likewise.
* locale/lc-time.c: Likewise.
* locale/programs/ld-address.c: Don't generate output in both
byte-orders.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/ld-paper.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* time/strftime.c (NLW): Don't use different byte-orders.
* wctype/cname-lookup.h (cname_lookup): Likewise.
* Makeconfig (localedir): Define using libdir, not datadir.
(msgcatdir): New variable.
* catgets/Makefile (CPPFLAGS): Define NLSPATH using msgcatdir.
* elf/Makefile (bash-ldd-rewrite): Replace @TEXTDOMAINDIR@ using
msgcatdir.
* intl/Makefile (install-others): Install locale.alias in msgcatdir.
(CPPFLAGS): Define paths using msgcatdir.
* locale/Makefile (CPPFLAGS): Define LOCALE_ALIAS_PATH using msgcatdir.
* po/Makefile (mo-installed): Define using msgcatdir.
* sysdeps/unix/sysv/linux/net/if_arp.h: Fix typo.
1999-09-12 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Remove limitation on size of precision

View file

@ -205,13 +205,19 @@ zonedir = $(datadir)/zoneinfo
endif
inst_zonedir = $(install_root)$(zonedir)
# Where to install the locale and message catalog data files (which are
# machine-independent).
# Where to install the locale files.
ifndef localedir
localedir = $(datadir)/locale
localedir = $(libdir)/locale
endif
inst_localedir = $(install_root)$(localedir)
# Where to install the message catalog data files (which are
# machine-independent).
ifndef msgcatdir
msgcatdir = $(datadir)/locale
endif
inst_msgcatdir = $(install_root)$(msgcatdir)
# Where to install the locale charmap source files.
ifndef i18ndir
i18ndir = $(datadir)/i18n

View file

@ -1,4 +1,4 @@
# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
# Copyright (C) 1996, 1997, 1998, 1999 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
@ -38,7 +38,7 @@ include ../Rules
$(objpfx)gencat: $(gencat-modules:%=$(objpfx)%.o)
CPPFLAGS := -DNLSPATH='"$(localedir)/%L/%N:$(localedir)/%L/LC_MESSAGES/%N:$(localedir)/%l/%N:$(localedir)/%l/LC_MESSAGES/%N:"' \
CPPFLAGS := -DNLSPATH='"$(msgcatdir)/%L/%N:$(msgcatdir)/%L/LC_MESSAGES/%N:$(msgcatdir)/%l/%N:$(msgcatdir)/%l/LC_MESSAGES/%N:"' \
-DHAVE_CONFIG_H $(CPPFLAGS)
generated = de.msg de.cat test1.cat test1.h

View file

@ -165,7 +165,7 @@ common-ldd-rewrite = -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \
-e 's%@VERSION@%$(version)%g'
sh-ldd-rewrite = $(common-ldd-rewrite) -e 's%@BASH@%/bin/sh%g;s/\$$"/"/g'
bash-ldd-rewrite = $(common-ldd-rewrite) -e 's%@BASH@%$(BASH)%g' \
-e 's%@TEXTDOMAINDIR@%$(localedir)%g'
-e 's%@TEXTDOMAINDIR@%$(msgcatdir)%g'
ifneq ($(have-bash2),yes)
ldd-shell = sh

View file

@ -69,7 +69,7 @@ extern struct r_debug _r_debug;
/* This symbol refers to the "dynamic structure" in the `.dynamic' section
of whatever module refers to `_DYNAMIC'. So, to find its own
`struct r_debug', a program could do:
for (dyn = _DYNAMIC; dyn->d_tag != DT_NULL)
for (dyn = _DYNAMIC; dyn->d_tag != DT_NULL; ++dyn)
if (dyn->d_tag == DT_DEBUG)
r_debug = (struct r_debug *) dyn->d_un.d_ptr;
*/

View file

@ -1,4 +1,4 @@
# Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# Copyright (C) 1995, 1996, 1997, 1998, 1999 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
@ -25,14 +25,14 @@ routines = bindtextdom dcgettext dgettext gettext \
l10nflist explodename
distribute = gettext.h gettextP.h hash-string.h loadinfo.h locale.alias
install-others = $(inst_localedir)/locale.alias
install-others = $(inst_msgcatdir)/locale.alias
include ../Rules
CPPFLAGS += -D'GNULOCALEDIR="$(localedir)"' \
-D'LOCALE_ALIAS_PATH="$(localedir):$(i18ndir)"'
CPPFLAGS += -D'GNULOCALEDIR="$(msgcatdir)"' \
-D'LOCALE_ALIAS_PATH="$(msgcatdir):$(i18ndir)"'
$(inst_localedir)/locale.alias: locale.alias $(+force)
$(inst_msgcatdir)/locale.alias: locale.alias $(+force)
$(do-install)
ifdef gettext-srcdir

View file

@ -148,7 +148,7 @@ const struct locale_data _nl_C_LC_COLLATE =
_nl_C_name,
NULL, 0, 0, /* no file mapped */
UNDELETABLE,
21,
30,
{
{ word: 0 },
{ string: NULL },
@ -175,22 +175,10 @@ const struct locale_data _nl_C_LC_COLLATE =
{ string: NULL },
{ string: NULL },
{ word: 223 },
#if __BYTE_ORDER == __LITTLE_ENDIAN
{ string: NULL },
#endif
{ string: (const char *) _nl_C_LC_COLLATE_symbol_hash },
#if __BYTE_ORDER == __BIG_ENDIAN
{ string: NULL },
#endif
{ string: _nl_C_LC_COLLATE_symbol_strings },
{ string: NULL },
{ string: NULL },
#if __BYTE_ORDER == __LITTLE_ENDIAN
{ string: NULL },
#endif
{ string: (const char *) _nl_C_LC_COLLATE_symbol_classes },
#if __BYTE_ORDER == __BIG_ENDIAN
{ string: NULL },
#endif
{ string: (const char *) _nl_C_LC_COLLATE_symbol_classes }
}
};

View file

@ -343,29 +343,15 @@ const struct locale_data _nl_C_LC_CTYPE =
_nl_C_name,
NULL, 0, 0, /* no file mapped */
UNDELETABLE,
15,
60,
{
{ string: _nl_C_LC_CTYPE_class },
#if BYTE_ORDER == LITTLE_ENDIAN
{ string: NULL }, { string: NULL },
#endif
{ string: (const char *) _nl_C_LC_CTYPE_toupper },
{ string: (const char *) _nl_C_LC_CTYPE_tolower },
#if BYTE_ORDER == BIG_ENDIAN
{ string: NULL }, { string: NULL },
#endif
{ string: _nl_C_LC_CTYPE_class32 },
#if BYTE_ORDER == LITTLE_ENDIAN
{ string: NULL },
#endif
{ string: (const char *) _nl_C_LC_CTYPE_names },
#if BYTE_ORDER == BIG_ENDIAN
{ string: NULL },
{ word: 256 }, { word: 1 },
#endif
#if BYTE_ORDER == LITTLE_ENDIAN
{ word: 0 }, { word: 0 },
#endif
{ word: 256 },
{ word: 1 },
{ string: "upper\0" "lower\0" "alpha\0" "digit\0" "xdigit\0" "space\0"
"print\0" "graph\0" "blank\0" "cntrl\0" "punct\0" "alnum\0"
"left_to_right\0" "right_to_left\0" "num_terminator\0"
@ -378,14 +364,7 @@ const struct locale_data _nl_C_LC_CTYPE =
{ string: _nl_C_LC_CTYPE_width },
{ word: 1 },
{ string: "ANSI_X3.4-1968" },
#if BYTE_ORDER == BIG_ENDIAN
{ word: 0 }, { word: 0 },
{ word: 1 }, { word: 0 },
#endif
#if BYTE_ORDER == LITTLE_ENDIAN
{ word: 256 }, { word: 1 },
{ word: 0 }, { word: 1 },
#endif
{ word: 1 },
{ string: "0" },
{ string: "1" },
{ string: "2" },
@ -396,24 +375,7 @@ const struct locale_data _nl_C_LC_CTYPE =
{ string: "7" },
{ string: "8" },
{ string: "9" },
#if BYTE_ORDER == BIG_ENDIAN
{ word: 1 }, { word: 0 },
#endif
#if BYTE_ORDER == LITTLE_ENDIAN
{ word: 0 }, { word: 1 },
#endif
#if BYTE_ORDER == LITTLE_ENDIAN
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
#endif
{ word: 1 },
{ wstr: (uint32_t *) L"0" },
{ wstr: (uint32_t *) L"1" },
{ wstr: (uint32_t *) L"2" },
@ -424,18 +386,6 @@ const struct locale_data _nl_C_LC_CTYPE =
{ wstr: (uint32_t *) L"7" },
{ wstr: (uint32_t *) L"8" },
{ wstr: (uint32_t *) L"9" },
#if BYTE_ORDER == BIG_ENDIAN
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
{ wstr: (uint32_t *) L"" },
#endif
{ string: "0" },
{ string: "1" },
{ string: "2" },
@ -446,18 +396,6 @@ const struct locale_data _nl_C_LC_CTYPE =
{ string: "7" },
{ string: "8" },
{ string: "9" },
#if BYTE_ORDER == LITTLE_ENDIAN
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
#endif
{ word: L'0' },
{ word: L'1' },
{ word: L'2' },
@ -468,26 +406,8 @@ const struct locale_data _nl_C_LC_CTYPE =
{ word: L'7' },
{ word: L'8' },
{ word: L'9' },
#if BYTE_ORDER == BIG_ENDIAN
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
{ word: L'\0' },
#endif
{ word: 0 },
{ word: 0 },
{ word: 0 },
{ word: 0 },
{ string: "" },
{ string: "" },
{ string: "" },
{ string: "" },
{ string: "" },
{ string: "" },
{ string: "" },

View file

@ -1,6 +1,6 @@
/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@ -33,7 +33,7 @@ const struct locale_data _nl_C_LC_MONETARY =
_nl_C_name,
NULL, 0, 0, /* no file mapped */
UNDELETABLE,
49,
43,
{
{ string: "" },
{ string: "" },

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1998 Free Software Foundation, Inc.
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -29,11 +29,9 @@ const struct locale_data _nl_C_LC_PAPER =
_nl_C_name,
NULL, 0, 0, /* no file mapped */
UNDELETABLE,
4,
2,
{
{ word: 297 },
{ word: 297 },
{ word: 210 },
{ word: 210 }
}
};

View file

@ -82,7 +82,6 @@ const struct locale_data _nl_C_LC_TIME =
{ string: "" },
{ word: 0 },
{ string: "" },
{ string: "" },
{ wstr: (const uint32_t *) L"Sun" },
{ wstr: (const uint32_t *) L"Mon" },
{ wstr: (const uint32_t *) L"Tue" },

View file

@ -79,7 +79,7 @@ localepath = "$(localedir):$(i18ndir)"
CPPFLAGS := -DLOCALE_PATH='$(localepath)' \
-DLOCALEDIR='"$(localedir)"' \
-DLOCALE_ALIAS_PATH='"$(localedir):$(i18ndir)"' \
-DLOCALE_ALIAS_PATH='"$(msgcatdir):$(i18ndir)"' \
-DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
-DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
-DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \

View file

@ -46,23 +46,17 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (_NL_COLLATE_RULES, "collate-rules", std, string)
DEFINE_ELEMENT (_NL_COLLATE_HASH_SIZE, "collate-hash-size", std, word)
DEFINE_ELEMENT (_NL_COLLATE_HASH_LAYERS, "collate-hash-layers", std, word)
DEFINE_ELEMENT (_NL_COLLATE_TABLEWC_EB, "collate-tablewc-eb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_TABLEWC_EL, "collate-tablewc-el", std, string)
DEFINE_ELEMENT (_NL_COLLATE_TABLEWC, "collate-tablewc", std, string)
DEFINE_ELEMENT (_NL_COLLATE_UNDEFINED_WC, "collate-undefined-wc", std, word)
DEFINE_ELEMENT (_NL_COLLATE_EXTRAWC_EB, "collate-extrawc-eb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_EXTRAWC_EL, "collate-extrawc-el", std, string)
DEFINE_ELEMENT (_NL_COLLATE_EXTRAWC, "collate-extrawc", std, string)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_HASH_SIZE, "collate-elem-hash-size", std, word)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_HASH_EB, "collate-elem-hash-eb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_HASH_EL, "collate-elem-hash-el", std, string)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_HASH, "collate-elem-hash", std, string)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_STR_POOL, "collate-elem-str-pool", std, string)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_VAL_EB, "collate-elem-val-eb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_VAL_EL, "collate-elem-val-el", std, string)
DEFINE_ELEMENT (_NL_COLLATE_ELEM_VAL, "collate-elem-val", std, string)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_HASH_SIZE, "collate-symb-hash-size", std, word)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_HASH_EB, "collate-symb-hash-eb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_HASH_EL, "collate-symb-hash-el", std, string)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_HASH, "collate-symb-hash", std, string)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_STR_POOL, "collate-symb-str-pool", std, string)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_CLASSWC_EB, "collate-symb-classwc-eb", std, string)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_CLASSWC_EL, "collate-symb-classwc-el", std, string)
DEFINE_ELEMENT (_NL_COLLATE_SYMB_CLASSWC, "collate-symb-classwc", std, string)
), _nl_postload_collate)
@ -73,31 +67,21 @@ DEFINE_CATEGORY
(
LC_CTYPE, "LC_CTYPE",
(
DEFINE_ELEMENT (_NL_CTYPE_CLASS, "ctype-class", std, string)
DEFINE_ELEMENT (_NL_CTYPE_TOUPPER_EB, "ctype-toupper-eb", std, string)
DEFINE_ELEMENT (_NL_CTYPE_TOLOWER_EB, "ctype-tolower-eb", std, string)
DEFINE_ELEMENT (_NL_CTYPE_TOUPPER_EL, "ctype-toupper-el", std, string)
DEFINE_ELEMENT (_NL_CTYPE_TOLOWER_EL, "ctype-tolower-el", std, string)
DEFINE_ELEMENT (_NL_CTYPE_CLASS32, "ctype-class32", std, string)
DEFINE_ELEMENT (_NL_CTYPE_NAMES_EB, "ctype-names-eb", std, string)
DEFINE_ELEMENT (_NL_CTYPE_NAMES_EL, "ctype-names-el", std, string)
DEFINE_ELEMENT (_NL_CTYPE_HASH_SIZE_EB, "ctype-hash-size-eb", std, word)
DEFINE_ELEMENT (_NL_CTYPE_HASH_SIZE_EL, "ctype-hash-size-el", std, word)
DEFINE_ELEMENT (_NL_CTYPE_HASH_LAYERS_EB, "ctype-hash-layers-eb", std, word)
DEFINE_ELEMENT (_NL_CTYPE_HASH_LAYERS_EL, "ctype-hash-layers-el", std, word)
DEFINE_ELEMENT (_NL_CTYPE_CLASS_NAMES, "ctype-class-names", std, stringlist)
DEFINE_ELEMENT (_NL_CTYPE_MAP_NAMES, "ctype-map-names", std, stringlist)
DEFINE_ELEMENT (_NL_CTYPE_WIDTH, "ctype-width", std, bytearray)
DEFINE_ELEMENT (_NL_CTYPE_MB_CUR_MAX, "ctype-mb-cur-max", std, word)
DEFINE_ELEMENT (_NL_CTYPE_CODESET_NAME, "charmap", std, string)
DEFINE_ELEMENT (_NL_CTYPE_CLASS, "ctype-class", std, string)
DEFINE_ELEMENT (_NL_CTYPE_TOUPPER, "ctype-toupper", std, string)
DEFINE_ELEMENT (_NL_CTYPE_TOLOWER, "ctype-tolower", std, string)
DEFINE_ELEMENT (_NL_CTYPE_CLASS32, "ctype-class32", std, string)
DEFINE_ELEMENT (_NL_CTYPE_NAMES, "ctype-names", std, string)
DEFINE_ELEMENT (_NL_CTYPE_HASH_SIZE, "ctype-hash-size", std, word)
DEFINE_ELEMENT (_NL_CTYPE_HASH_LAYERS, "ctype-hash-layers", std, word)
DEFINE_ELEMENT (_NL_CTYPE_CLASS_NAMES, "ctype-class-names", std, stringlist)
DEFINE_ELEMENT (_NL_CTYPE_MAP_NAMES, "ctype-map-names", std, stringlist)
DEFINE_ELEMENT (_NL_CTYPE_WIDTH, "ctype-width", std, bytearray)
DEFINE_ELEMENT (_NL_CTYPE_MB_CUR_MAX, "ctype-mb-cur-max", std, word)
DEFINE_ELEMENT (_NL_CTYPE_CODESET_NAME, "charmap", std, string)
), _nl_postload_ctype)
#if __BYTE_ORDER == __BIG_ENDIAN
# define _NL_MONETARY_CONVERSION_RATE _NL_MONETARY_CONVERSION_RATE_EB
#else
# define _NL_MONETARY_CONVERSION_RATE _NL_MONETARY_CONVERSION_RATE_EL
#endif
DEFINE_CATEGORY
(
LC_MONETARY, "LC_MONETARY",
@ -143,8 +127,7 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (_NL_MONETARY_UNO_VALID_TO, "uno_valid_to", std, word)
DEFINE_ELEMENT (_NL_MONETARY_DUO_VALID_FROM, "duo_valid_from", std, word)
DEFINE_ELEMENT (_NL_MONETARY_DUO_VALID_TO, "duo_valid_to", std, word)
DEFINE_ELEMENT (_NL_MONETARY_CONVERSION_RATE_EB, "conversion_rate-eb", std, wordarray, 2, 2)
DEFINE_ELEMENT (_NL_MONETARY_CONVERSION_RATE_EL, "conversion_rate-el", std, wordarray, 2, 2)
DEFINE_ELEMENT (_NL_MONETARY_CONVERSION_RATE, "conversion_rate", std, wordarray, 2, 2)
), NO_POSTLOAD)
@ -177,38 +160,22 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (ALT_DIGITS, "alt_digits", opt, stringarray, 0, 100)
DEFINE_ELEMENT (ERA_D_T_FMT, "era_d_t_fmt", opt, string)
DEFINE_ELEMENT (ERA_T_FMT, "era_t_fmt", opt, string)
DEFINE_ELEMENT (_NL_TIME_ERA_NUM_ENTRIES_EB, "time-era-num-entries-eb", opt, word)
DEFINE_ELEMENT (_NL_TIME_ERA_NUM_ENTRIES_EL, "time-era-num-entries-el", opt, word)
DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES_EB, "time-era-entries-eb", opt, string)
DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES_EL, "time-era-entries-el", opt, string)
DEFINE_ELEMENT (_NL_WABDAY_1_EB, "wide-abday-eb", std, stringarray, 7, 7)
DEFINE_ELEMENT (_NL_WABDAY_1_EL, "wide-abday-el", std, stringarray, 7, 7)
DEFINE_ELEMENT (_NL_WDAY_1_EB, "wide-day-eb", std, stringarray, 7, 7)
DEFINE_ELEMENT (_NL_WDAY_1_EL, "wide-day-el", std, stringarray, 7, 7)
DEFINE_ELEMENT (_NL_WABMON_1_EB, "wide-abmon-eb", std, stringarray, 12, 12)
DEFINE_ELEMENT (_NL_WABMON_1_EL, "wide-abmon-el", std, stringarray, 12, 12)
DEFINE_ELEMENT (_NL_WMON_1_EB, "wide-mon-eb", std, stringarray, 12, 12)
DEFINE_ELEMENT (_NL_WMON_1_EL, "wide-mon-el", std, stringarray, 12, 12)
DEFINE_ELEMENT (_NL_WAM_STR_EB, "wide-am_pm-eb", std, stringarray, 2, 2)
DEFINE_ELEMENT (_NL_WAM_STR_EL, "wide-am_pm-el", std, stringarray, 2, 2)
DEFINE_ELEMENT (_NL_WD_T_FMT_EB, "wide-d_t_fmt-eb", std, string)
DEFINE_ELEMENT (_NL_WD_T_FMT_EL, "wide-d_t_fmt-el", std, string)
DEFINE_ELEMENT (_NL_WD_FMT_EB, "wide-d_fmt-eb", std, string)
DEFINE_ELEMENT (_NL_WD_FMT_EL, "wide-d_fmt-el", std, string)
DEFINE_ELEMENT (_NL_WT_FMT_EB, "wide-t_fmt-eb", std, string)
DEFINE_ELEMENT (_NL_WT_FMT_EL, "wide-t_fmt-el", std, string)
DEFINE_ELEMENT (_NL_WT_FMT_AMPM_EB, "wide-t_fmt_ampm-eb", std, string)
DEFINE_ELEMENT (_NL_WT_FMT_AMPM_EL, "wide-t_fmt_ampm-el", std, string)
DEFINE_ELEMENT (_NL_WERA_YEAR_EB, "wide-era_year-eb", opt, string)
DEFINE_ELEMENT (_NL_WERA_YEAR_EL, "wide-era_year-el", opt, string)
DEFINE_ELEMENT (_NL_WERA_D_FMT_EB, "wide-era_d_fmt-eb", opt, string)
DEFINE_ELEMENT (_NL_WERA_D_FMT_EL, "wide-era_d_fmt-el", opt, string)
DEFINE_ELEMENT (_NL_WALT_DIGITS_EB, "wide-alt_digits-eb", opt, stringarray, 0, 100)
DEFINE_ELEMENT (_NL_WALT_DIGITS_EL, "wide-alt_digits-el", opt, stringarray, 0, 100)
DEFINE_ELEMENT (_NL_WERA_D_T_FMT_EB, "wide-era_d_t_fmt-eb", opt, string)
DEFINE_ELEMENT (_NL_WERA_D_T_FMT_EL, "wide-era_d_t_fmt-el", opt, string)
DEFINE_ELEMENT (_NL_WERA_T_FMT_EB, "wide-era_t_fmt-eb", opt, string)
DEFINE_ELEMENT (_NL_WERA_T_FMT_EL, "wide-era_t_fmt-el", opt, string)
DEFINE_ELEMENT (_NL_TIME_ERA_NUM_ENTRIES, "time-era-num-entries", opt, word)
DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES, "time-era-entries", opt, string)
DEFINE_ELEMENT (_NL_WABDAY_1, "wide-abday", std, stringarray, 7, 7)
DEFINE_ELEMENT (_NL_WDAY_1, "wide-day", std, stringarray, 7, 7)
DEFINE_ELEMENT (_NL_WABMON_1, "wide-abmon", std, stringarray, 12, 12)
DEFINE_ELEMENT (_NL_WMON_1, "wide-mon", std, stringarray, 12, 12)
DEFINE_ELEMENT (_NL_WAM_STR, "wide-am_pm", std, stringarray, 2, 2)
DEFINE_ELEMENT (_NL_WD_T_FMT, "wide-d_t_fmt", std, string)
DEFINE_ELEMENT (_NL_WD_FMT, "wide-d_fmt", std, string)
DEFINE_ELEMENT (_NL_WT_FMT, "wide-t_fmt", std, string)
DEFINE_ELEMENT (_NL_WT_FMT_AMPM, "wide-t_fmt_ampm", std, string)
DEFINE_ELEMENT (_NL_WERA_YEAR, "wide-era_year", opt, string)
DEFINE_ELEMENT (_NL_WERA_D_FMT, "wide-era_d_fmt", opt, string)
DEFINE_ELEMENT (_NL_WALT_DIGITS, "wide-alt_digits", opt, stringarray, 0, 100)
DEFINE_ELEMENT (_NL_WERA_D_T_FMT, "wide-era_d_t_fmt", opt, string)
DEFINE_ELEMENT (_NL_WERA_T_FMT, "wide-era_t_fmt", opt, string)
DEFINE_ELEMENT (_NL_TIME_WEEK_NDAYS, "week-ndays", std, byte)
DEFINE_ELEMENT (_NL_TIME_WEEK_1STDAY, "week-1stday", std, word)
DEFINE_ELEMENT (_NL_TIME_WEEK_1STWEEK, "week-1stweek", std, byte)
@ -233,10 +200,8 @@ DEFINE_CATEGORY
(
LC_PAPER, "LC_PAPER",
(
DEFINE_ELEMENT (_NL_PAPER_HEIGHT_EB, "height-eb", std, word)
DEFINE_ELEMENT (_NL_PAPER_HEIGHT_EL, "height-el", std, word)
DEFINE_ELEMENT (_NL_PAPER_WIDTH_EB, "width-eb", std, word)
DEFINE_ELEMENT (_NL_PAPER_WIDTH_EL, "width-el", std, word)
DEFINE_ELEMENT (_NL_PAPER_HEIGHT, "height", std, word)
DEFINE_ELEMENT (_NL_PAPER_WIDTH, "width", std, word)
), NO_POSTLOAD)
DEFINE_CATEGORY
@ -261,8 +226,7 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_AB2, "country_ab2", std, string)
DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_AB3, "country_ab3", std, string)
DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_CAR, "country_car", std, string)
DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_NUM_EB, "country_num-eb", std, word)
DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_NUM_EL, "country_num-el", std, word)
DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_NUM, "country_num", std, word)
DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_ISBN, "country_isbn", std, string)
DEFINE_ELEMENT (_NL_ADDRESS_LANG_NAME, "lang_name", std, string)
DEFINE_ELEMENT (_NL_ADDRESS_LANG_AB, "lang_ab", std, string)

View file

@ -155,118 +155,67 @@ enum
ERA_T_FMT, /* Time in alternate era format. */
#define ERA_T_FMT ERA_T_FMT
_NL_TIME_ERA_NUM_ENTRIES_EB, /* Number entries in the era arrays. */
_NL_TIME_ERA_NUM_ENTRIES_EL, /* Number entries in the era arrays. */
_NL_TIME_ERA_ENTRIES_EB, /* Structure with era entries in usable form.*/
_NL_TIME_ERA_ENTRIES_EL,
_NL_TIME_ERA_NUM_ENTRIES, /* Number entries in the era arrays. */
_NL_TIME_ERA_ENTRIES, /* Structure with era entries in usable form.*/
_NL_WABDAY_1_EB, /* Sun */
_NL_WABDAY_2_EB,
_NL_WABDAY_3_EB,
_NL_WABDAY_4_EB,
_NL_WABDAY_5_EB,
_NL_WABDAY_6_EB,
_NL_WABDAY_7_EB,
_NL_WABDAY_1_EL, /* Sun */
_NL_WABDAY_2_EL,
_NL_WABDAY_3_EL,
_NL_WABDAY_4_EL,
_NL_WABDAY_5_EL,
_NL_WABDAY_6_EL,
_NL_WABDAY_7_EL,
_NL_WABDAY_1, /* Sun */
_NL_WABDAY_2,
_NL_WABDAY_3,
_NL_WABDAY_4,
_NL_WABDAY_5,
_NL_WABDAY_6,
_NL_WABDAY_7,
/* Long-named days of the week. */
_NL_WDAY_1_EB, /* Sunday */
_NL_WDAY_2_EB, /* Monday */
_NL_WDAY_3_EB, /* Tuesday */
_NL_WDAY_4_EB, /* Wednesday */
_NL_WDAY_5_EB, /* Thursday */
_NL_WDAY_6_EB, /* Friday */
_NL_WDAY_7_EB, /* Saturday */
_NL_WDAY_1_EL, /* Sunday */
_NL_WDAY_2_EL, /* Monday */
_NL_WDAY_3_EL, /* Tuesday */
_NL_WDAY_4_EL, /* Wednesday */
_NL_WDAY_5_EL, /* Thursday */
_NL_WDAY_6_EL, /* Friday */
_NL_WDAY_7_EL, /* Saturday */
_NL_WDAY_1, /* Sunday */
_NL_WDAY_2, /* Monday */
_NL_WDAY_3, /* Tuesday */
_NL_WDAY_4, /* Wednesday */
_NL_WDAY_5, /* Thursday */
_NL_WDAY_6, /* Friday */
_NL_WDAY_7, /* Saturday */
/* Abbreviated month names. */
_NL_WABMON_1_EB, /* Jan */
_NL_WABMON_2_EB,
_NL_WABMON_3_EB,
_NL_WABMON_4_EB,
_NL_WABMON_5_EB,
_NL_WABMON_6_EB,
_NL_WABMON_7_EB,
_NL_WABMON_8_EB,
_NL_WABMON_9_EB,
_NL_WABMON_10_EB,
_NL_WABMON_11_EB,
_NL_WABMON_12_EB,
_NL_WABMON_1_EL, /* Jan */
_NL_WABMON_2_EL,
_NL_WABMON_3_EL,
_NL_WABMON_4_EL,
_NL_WABMON_5_EL,
_NL_WABMON_6_EL,
_NL_WABMON_7_EL,
_NL_WABMON_8_EL,
_NL_WABMON_9_EL,
_NL_WABMON_10_EL,
_NL_WABMON_11_EL,
_NL_WABMON_12_EL,
_NL_WABMON_1, /* Jan */
_NL_WABMON_2,
_NL_WABMON_3,
_NL_WABMON_4,
_NL_WABMON_5,
_NL_WABMON_6,
_NL_WABMON_7,
_NL_WABMON_8,
_NL_WABMON_9,
_NL_WABMON_10,
_NL_WABMON_11,
_NL_WABMON_12,
/* Long month names. */
_NL_WMON_1_EB, /* January */
_NL_WMON_2_EB,
_NL_WMON_3_EB,
_NL_WMON_4_EB,
_NL_WMON_5_EB,
_NL_WMON_6_EB,
_NL_WMON_7_EB,
_NL_WMON_8_EB,
_NL_WMON_9_EB,
_NL_WMON_10_EB,
_NL_WMON_11_EB,
_NL_WMON_12_EB,
_NL_WMON_1_EL, /* January */
_NL_WMON_2_EL,
_NL_WMON_3_EL,
_NL_WMON_4_EL,
_NL_WMON_5_EL,
_NL_WMON_6_EL,
_NL_WMON_7_EL,
_NL_WMON_8_EL,
_NL_WMON_9_EL,
_NL_WMON_10_EL,
_NL_WMON_11_EL,
_NL_WMON_12_EL,
_NL_WMON_1, /* January */
_NL_WMON_2,
_NL_WMON_3,
_NL_WMON_4,
_NL_WMON_5,
_NL_WMON_6,
_NL_WMON_7,
_NL_WMON_8,
_NL_WMON_9,
_NL_WMON_10,
_NL_WMON_11,
_NL_WMON_12,
_NL_WAM_STR_EB, /* Ante meridian string. */
_NL_WPM_STR_EB, /* Post meridian string. */
_NL_WAM_STR_EL, /* Ante meridian string. */
_NL_WPM_STR_EL, /* Post meridian string. */
_NL_WAM_STR, /* Ante meridian string. */
_NL_WPM_STR, /* Post meridian string. */
_NL_WD_T_FMT_EB, /* Date and time format for strftime. */
_NL_WD_FMT_EB, /* Date format for strftime. */
_NL_WT_FMT_EB, /* Time format for strftime. */
_NL_WT_FMT_AMPM_EB, /* 12-hour time format for strftime. */
_NL_WD_T_FMT_EL, /* Date and time format for strftime. */
_NL_WD_FMT_EL, /* Date format for strftime. */
_NL_WT_FMT_EL, /* Time format for strftime. */
_NL_WT_FMT_AMPM_EL, /* 12-hour time format for strftime. */
_NL_WD_T_FMT, /* Date and time format for strftime. */
_NL_WD_FMT, /* Date format for strftime. */
_NL_WT_FMT, /* Time format for strftime. */
_NL_WT_FMT_AMPM, /* 12-hour time format for strftime. */
_NL_WERA_YEAR_EB, /* Year in alternate era format. */
_NL_WERA_D_FMT_EB, /* Date in alternate era format. */
_NL_WALT_DIGITS_EB, /* Alternate symbols for digits. */
_NL_WERA_D_T_FMT_EB, /* Date and time in alternate era format. */
_NL_WERA_T_FMT_EB, /* Time in alternate era format. */
_NL_WERA_YEAR_EL, /* Year in alternate era format. */
_NL_WERA_D_FMT_EL, /* Date in alternate era format. */
_NL_WALT_DIGITS_EL, /* Alternate symbols for digits. */
_NL_WERA_D_T_FMT_EL, /* Date and time in alternate era format. */
_NL_WERA_T_FMT_EL, /* Time in alternate era format. */
_NL_WERA_YEAR, /* Year in alternate era format. */
_NL_WERA_D_FMT, /* Date in alternate era format. */
_NL_WALT_DIGITS, /* Alternate symbols for digits. */
_NL_WERA_D_T_FMT, /* Date and time in alternate era format. */
_NL_WERA_T_FMT, /* Time in alternate era format. */
_NL_TIME_WEEK_NDAYS,
_NL_TIME_WEEK_1STDAY,
@ -285,49 +234,35 @@ enum
_NL_COLLATE_RULES,
_NL_COLLATE_HASH_SIZE,
_NL_COLLATE_HASH_LAYERS,
_NL_COLLATE_TABLEMB_EB,
_NL_COLLATE_TABLEMB_EL,
_NL_COLLATE_TABLEWC_EB,
_NL_COLLATE_TABLEWC_EL,
_NL_COLLATE_TABLEMB,
_NL_COLLATE_TABLEWC,
_NL_COLLATE_UNDEFINED_MB,
_NL_COLLATE_UNDEFINED_WC,
_NL_COLLATE_EXTRAMB_EB,
_NL_COLLATE_EXTRAMB_EL,
_NL_COLLATE_EXTRAWC_EB,
_NL_COLLATE_EXTRAWC_EL,
_NL_COLLATE_EXTRAMB,
_NL_COLLATE_EXTRAWC,
_NL_COLLATE_ELEM_HASH_SIZE,
_NL_COLLATE_ELEM_HASH_EB,
_NL_COLLATE_ELEM_HASH_EL,
_NL_COLLATE_ELEM_HASH,
_NL_COLLATE_ELEM_STR_POOL,
_NL_COLLATE_ELEM_VAL_EB,
_NL_COLLATE_ELEM_VAL_EL,
_NL_COLLATE_ELEM_VALMB_EB,
_NL_COLLATE_ELEM_VALMB_EL,
_NL_COLLATE_ELEM_VALWC_EB,
_NL_COLLATE_ELEM_VALWC_EL,
_NL_COLLATE_ELEM_VAL,
_NL_COLLATE_ELEM_VALMB,
_NL_COLLATE_ELEM_VALWC,
_NL_COLLATE_SYMB_HASH_SIZE,
_NL_COLLATE_SYMB_HASH_EB,
_NL_COLLATE_SYMB_HASH_EL,
_NL_COLLATE_SYMB_HASH,
_NL_COLLATE_SYMB_STR_POOL,
_NL_COLLATE_SYMB_CLASSMB_EB,
_NL_COLLATE_SYMB_CLASSMB_EL,
_NL_COLLATE_SYMB_CLASSWC_EB,
_NL_COLLATE_SYMB_CLASSWC_EL,
_NL_COLLATE_SYMB_CLASSMB,
_NL_COLLATE_SYMB_CLASSWC,
_NL_NUM_LC_COLLATE,
/* LC_CTYPE category: character classification.
This information is accessed by the functions in <ctype.h>.
These `nl_langinfo' names are used only internally. */
_NL_CTYPE_CLASS = _NL_ITEM (LC_CTYPE, 0),
_NL_CTYPE_TOUPPER_EB,
_NL_CTYPE_TOLOWER_EB,
_NL_CTYPE_TOUPPER_EL,
_NL_CTYPE_TOLOWER_EL,
_NL_CTYPE_TOUPPER,
_NL_CTYPE_TOLOWER,
_NL_CTYPE_CLASS32,
_NL_CTYPE_NAMES_EB,
_NL_CTYPE_NAMES_EL,
_NL_CTYPE_HASH_SIZE_EB,
_NL_CTYPE_HASH_LAYERS_EB,
_NL_CTYPE_NAMES,
_NL_CTYPE_HASH_SIZE,
_NL_CTYPE_HASH_LAYERS,
_NL_CTYPE_CLASS_NAMES,
_NL_CTYPE_MAP_NAMES,
_NL_CTYPE_WIDTH,
@ -336,10 +271,7 @@ enum
#ifdef __USE_XOPEN
CODESET = _NL_CTYPE_CODESET_NAME,
#endif
_NL_CTYPE_HASH_SIZE_EL,
_NL_CTYPE_HASH_LAYERS_EL,
_NL_CTYPE_INDIGITS_MB_LEN_EB,
_NL_CTYPE_INDIGITS_MB_LEN_EL,
_NL_CTYPE_INDIGITS_MB_LEN,
_NL_CTYPE_INDIGITS0_MB,
_NL_CTYPE_INDIGITS1_MB,
_NL_CTYPE_INDIGITS2_MB,
@ -350,28 +282,17 @@ enum
_NL_CTYPE_INDIGITS7_MB,
_NL_CTYPE_INDIGITS8_MB,
_NL_CTYPE_INDIGITS9_MB,
_NL_CTYPE_INDIGITS_WC_LEN_EB,
_NL_CTYPE_INDIGITS_WC_LEN_EL,
_NL_CTYPE_INDIGITS0_WC_EB,
_NL_CTYPE_INDIGITS1_WC_EB,
_NL_CTYPE_INDIGITS2_WC_EB,
_NL_CTYPE_INDIGITS3_WC_EB,
_NL_CTYPE_INDIGITS4_WC_EB,
_NL_CTYPE_INDIGITS5_WC_EB,
_NL_CTYPE_INDIGITS6_WC_EB,
_NL_CTYPE_INDIGITS7_WC_EB,
_NL_CTYPE_INDIGITS8_WC_EB,
_NL_CTYPE_INDIGITS9_WC_EB,
_NL_CTYPE_INDIGITS0_WC_EL,
_NL_CTYPE_INDIGITS1_WC_EL,
_NL_CTYPE_INDIGITS2_WC_EL,
_NL_CTYPE_INDIGITS3_WC_EL,
_NL_CTYPE_INDIGITS4_WC_EL,
_NL_CTYPE_INDIGITS5_WC_EL,
_NL_CTYPE_INDIGITS6_WC_EL,
_NL_CTYPE_INDIGITS7_WC_EL,
_NL_CTYPE_INDIGITS8_WC_EL,
_NL_CTYPE_INDIGITS9_WC_EL,
_NL_CTYPE_INDIGITS_WC_LEN,
_NL_CTYPE_INDIGITS0_WC,
_NL_CTYPE_INDIGITS1_WC,
_NL_CTYPE_INDIGITS2_WC,
_NL_CTYPE_INDIGITS3_WC,
_NL_CTYPE_INDIGITS4_WC,
_NL_CTYPE_INDIGITS5_WC,
_NL_CTYPE_INDIGITS6_WC,
_NL_CTYPE_INDIGITS7_WC,
_NL_CTYPE_INDIGITS8_WC,
_NL_CTYPE_INDIGITS9_WC,
_NL_CTYPE_OUTDIGIT0_MB,
_NL_CTYPE_OUTDIGIT1_MB,
_NL_CTYPE_OUTDIGIT2_MB,
@ -382,38 +303,22 @@ enum
_NL_CTYPE_OUTDIGIT7_MB,
_NL_CTYPE_OUTDIGIT8_MB,
_NL_CTYPE_OUTDIGIT9_MB,
_NL_CTYPE_OUTDIGIT0_WC_EB,
_NL_CTYPE_OUTDIGIT1_WC_EB,
_NL_CTYPE_OUTDIGIT2_WC_EB,
_NL_CTYPE_OUTDIGIT3_WC_EB,
_NL_CTYPE_OUTDIGIT4_WC_EB,
_NL_CTYPE_OUTDIGIT5_WC_EB,
_NL_CTYPE_OUTDIGIT6_WC_EB,
_NL_CTYPE_OUTDIGIT7_WC_EB,
_NL_CTYPE_OUTDIGIT8_WC_EB,
_NL_CTYPE_OUTDIGIT9_WC_EB,
_NL_CTYPE_OUTDIGIT0_WC_EL,
_NL_CTYPE_OUTDIGIT1_WC_EL,
_NL_CTYPE_OUTDIGIT2_WC_EL,
_NL_CTYPE_OUTDIGIT3_WC_EL,
_NL_CTYPE_OUTDIGIT4_WC_EL,
_NL_CTYPE_OUTDIGIT5_WC_EL,
_NL_CTYPE_OUTDIGIT6_WC_EL,
_NL_CTYPE_OUTDIGIT7_WC_EL,
_NL_CTYPE_OUTDIGIT8_WC_EL,
_NL_CTYPE_OUTDIGIT9_WC_EL,
_NL_CTYPE_TRANSLIT_HASH_SIZE_EB,
_NL_CTYPE_TRANSLIT_HASH_SIZE_EL,
_NL_CTYPE_TRANSLIT_HASH_LAYERS_EB,
_NL_CTYPE_TRANSLIT_HASH_LAYERS_EL,
_NL_CTYPE_TRANSLIT_FROM_IDX_EB,
_NL_CTYPE_TRANSLIT_FROM_IDX_EL,
_NL_CTYPE_TRANSLIT_FROM_TBL_EB,
_NL_CTYPE_TRANSLIT_FROM_TBL_EL,
_NL_CTYPE_TRANSLIT_TO_IDX_EB,
_NL_CTYPE_TRANSLIT_TO_IDX_EL,
_NL_CTYPE_TRANSLIT_TO_TBL_EB,
_NL_CTYPE_TRANSLIT_TO_TBL_EL,
_NL_CTYPE_OUTDIGIT0_WC,
_NL_CTYPE_OUTDIGIT1_WC,
_NL_CTYPE_OUTDIGIT2_WC,
_NL_CTYPE_OUTDIGIT3_WC,
_NL_CTYPE_OUTDIGIT4_WC,
_NL_CTYPE_OUTDIGIT5_WC,
_NL_CTYPE_OUTDIGIT6_WC,
_NL_CTYPE_OUTDIGIT7_WC,
_NL_CTYPE_OUTDIGIT8_WC,
_NL_CTYPE_OUTDIGIT9_WC,
_NL_CTYPE_TRANSLIT_HASH_SIZE,
_NL_CTYPE_TRANSLIT_HASH_LAYERS,
_NL_CTYPE_TRANSLIT_FROM_IDX,
_NL_CTYPE_TRANSLIT_FROM_TBL,
_NL_CTYPE_TRANSLIT_TO_IDX,
_NL_CTYPE_TRANSLIT_TO_TBL,
_NL_NUM_LC_CTYPE,
/* LC_MONETARY category: formatting of monetary quantities.
@ -479,8 +384,7 @@ enum
_NL_MONETARY_UNO_VALID_TO,
_NL_MONETARY_DUO_VALID_FROM,
_NL_MONETARY_DUO_VALID_TO,
_NL_MONETARY_CONVERSION_RATE_EB,
_NL_MONETARY_CONVERSION_RATE_EL,
_NL_MONETARY_CONVERSION_RATE,
_NL_NUM_LC_MONETARY,
/* LC_NUMERIC category: formatting of numbers.
@ -511,10 +415,8 @@ enum
#define NOSTR NOSTR
_NL_NUM_LC_MESSAGES,
_NL_PAPER_HEIGHT_EB = _NL_ITEM (LC_PAPER, 0),
_NL_PAPER_HEIGHT_EL,
_NL_PAPER_WIDTH_EB,
_NL_PAPER_WIDTH_EL,
_NL_PAPER_HEIGHT = _NL_ITEM (LC_PAPER, 0),
_NL_PAPER_WIDTH,
_NL_NUM_LC_PAPER,
_NL_NAME_NAME_FMT = _NL_ITEM (LC_NAME, 0),
@ -531,8 +433,7 @@ enum
_NL_ADDRESS_COUNTRY_AB2,
_NL_ADDRESS_COUNTRY_AB3,
_NL_ADDRESS_COUNTRY_CAR,
_NL_ADDRESS_COUNTRY_NUM_EB,
_NL_ADDRESS_COUNTRY_NUM_EL,
_NL_ADDRESS_COUNTRY_NUM,
_NL_ADDRESS_COUNTRY_ISBN,
_NL_ADDRESS_LANG_NAME,
_NL_ADDRESS_LANG_AB,

View file

@ -45,27 +45,20 @@ const u_int32_t *__collate_symbol_classeswc = _nl_C_LC_COLLATE_symbol_classes;
void
_nl_postload_collate (void)
{
#if BYTE_ORDER == BIG_ENDIAN
#define bo(x) x##_EB
#elif BYTE_ORDER == LITTLE_ENDIAN
#define bo(x) x##_EL
#else
#error bizarre byte order
#endif
#define paste(a,b) paste1(a,b)
#define paste1(a,b) a##b
#define current(x) \
((const unsigned int *) _NL_CURRENT (LC_COLLATE, paste(_NL_COLLATE_,x)))
__collate_tablewc = current (bo (TABLEWC));
__collate_extrawc = current (bo (EXTRAWC));
__collate_tablewc = current (TABLEWC);
__collate_extrawc = current (EXTRAWC);
__collate_element_hash = current (bo (ELEM_HASH));
__collate_element_hash = current (ELEM_HASH);
__collate_element_strings = (const char *) current (ELEM_STR_POOL);
__collate_element_values = (const uint32_t *) current (bo (ELEM_VAL));
__collate_element_values = (const uint32_t *) current (ELEM_VAL);
__collate_symbol_hash = current (bo (SYMB_HASH));
__collate_symbol_hash = current (SYMB_HASH);
__collate_symbol_strings = (const char *) current (SYMB_STR_POOL);
__collate_symbol_classeswc = current (bo (SYMB_CLASSWC));
__collate_symbol_classeswc = current (SYMB_CLASSWC);
}

View file

@ -1,5 +1,5 @@
/* Define current locale data for LC_CTYPE category.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997, 1998, 1999 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
@ -34,13 +34,6 @@ _NL_CURRENT_DEFINE (LC_CTYPE);
void
_nl_postload_ctype (void)
{
#if BYTE_ORDER == BIG_ENDIAN
#define bo(x) x##_EB
#elif BYTE_ORDER == LITTLE_ENDIAN
#define bo(x) x##_EL
#else
#error bizarre byte order
#endif
#define paste(a,b) paste1(a,b)
#define paste1(a,b) a##b
@ -52,9 +45,9 @@ _nl_postload_ctype (void)
extern const unsigned char *__ctype_width;
__ctype_b = current (uint16_t, CLASS, 128);
__ctype_toupper = current (uint32_t, bo (TOUPPER), 128);
__ctype_tolower = current (uint32_t, bo (TOLOWER), 128);
__ctype_toupper = current (uint32_t, TOUPPER, 128);
__ctype_tolower = current (uint32_t, TOLOWER, 128);
__ctype32_b = current (uint32_t, CLASS32, 0);
__ctype_names = current (uint32_t, bo (NAMES), 0);
__ctype_names = current (uint32_t, NAMES, 0);
__ctype_width = current (unsigned char, WIDTH, 0);
}

View file

@ -1,5 +1,5 @@
/* Define current locale data for LC_MONETARY category.
Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1995, 1997, 1998, 1999 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
@ -20,24 +20,3 @@
#include "localeinfo.h"
_NL_CURRENT_DEFINE (LC_MONETARY);
const uint32_t *__monetary_conversion_rate;
void
_nl_postload_monetary (void)
{
#if BYTE_ORDER == BIG_ENDIAN
#define bo(x) x##_EB
#elif BYTE_ORDER == LITTLE_ENDIAN
#define bo(x) x##_EL
#else
#error bizarre byte order
#endif
#define paste(a,b) paste1(a,b)
#define paste1(a,b) a##b
#define current(type,x,offset) \
((const type *) _NL_CURRENT (LC_MONETARY, paste(_NL_MONETARY_,x)) + offset)
__monetary_conversion_rate = current (uint32_t, bo (CONVERSION_RATE), 0);
}

View file

@ -64,13 +64,8 @@ _nl_get_era_entry (const struct tm *tp)
if (era_initialized == 0)
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
size_t new_num_eras = _NL_CURRENT_WORD (LC_TIME,
_NL_TIME_ERA_NUM_ENTRIES_EL);
#else
size_t new_num_eras = _NL_CURRENT_WORD (LC_TIME,
_NL_TIME_ERA_NUM_ENTRIES_EB);
#endif
_NL_TIME_ERA_NUM_ENTRIES);
if (eras != NULL && new_num_eras == 0)
{
@ -86,11 +81,7 @@ _nl_get_era_entry (const struct tm *tp)
num_eras = 0;
else
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
const char *ptr = _NL_CURRENT (LC_TIME, _NL_TIME_ERA_ENTRIES_EL);
#else
const char *ptr = _NL_CURRENT (LC_TIME, _NL_TIME_ERA_ENTRIES_EB);
#endif
const char *ptr = _NL_CURRENT (LC_TIME, _NL_TIME_ERA_ENTRIES);
num_eras = new_num_eras;
for (cnt = 0; cnt < num_eras; ++cnt)
@ -193,11 +184,7 @@ _nl_get_walt_digit (unsigned int number)
if (walt_digits != NULL)
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
const wchar_t *ptr = _NL_CURRENT_WSTR (LC_TIME, _NL_WALT_DIGITS_EL);
#else
const wchar_t *ptr = _NL_CURRENT_WSTR (LC_TIME, _NL_WALT_DIGITS_EB);
#endif
const wchar_t *ptr = _NL_CURRENT_WSTR (LC_TIME, _NL_WALT_DIGITS);
size_t cnt;
for (cnt = 0; cnt < 100; ++cnt)

View file

@ -18,7 +18,6 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <byteswap.h>
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
@ -70,15 +69,8 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
struct stat st;
struct locale_data *newdata;
int save_err;
int swap = 0;
int mmaped = 1;
size_t cnt;
inline unsigned int SWAP (const unsigned int *inw)
{
if (!swap)
return *inw;
return bswap_32 (*inw);
}
file->decided = 1;
file->data = NULL;
@ -164,28 +156,18 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
/* This cannot be a locale data file since it's too small. */
goto puntfd;
if (filedata->magic == LIMAGIC (category))
/* Good data file in our byte order. */
swap = 0;
else
if (filedata->magic != LIMAGIC (category))
/* Bad data file in either byte order. */
{
/* Try the other byte order. */
swap = 1;
if (SWAP (&filedata->magic) != LIMAGIC (category))
/* Bad data file in either byte order. */
{
puntmap:
__munmap ((caddr_t) filedata, st.st_size);
puntfd:
__close (fd);
return;
}
puntmap:
__munmap ((caddr_t) filedata, st.st_size);
puntfd:
__close (fd);
return;
}
#define W(word) SWAP (&(word))
if (W (filedata->nstrings) < _nl_category_num_items[category] ||
(sizeof *filedata + W (filedata->nstrings) * sizeof (unsigned int)
if (filedata->nstrings < _nl_category_num_items[category] ||
(sizeof *filedata + filedata->nstrings * sizeof (unsigned int)
>= (size_t) st.st_size))
{
/* Insufficient data. */
@ -207,7 +189,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
newdata->nstrings = _nl_category_num_items[category];
for (cnt = 0; cnt < newdata->nstrings; ++cnt)
{
off_t idx = W (filedata->strindex[cnt]);
off_t idx = filedata->strindex[cnt];
if (idx >= newdata->filesize)
{
free (newdata);
@ -215,8 +197,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
goto puntmap;
}
if (_nl_value_types[category][cnt] == word)
newdata->values[cnt].word = W (*((u_int32_t *) (newdata->filedata
+ idx)));
newdata->values[cnt].word = *((u_int32_t *) (newdata->filedata + idx));
else
newdata->values[cnt].string = newdata->filedata + idx;
}

View file

@ -177,19 +177,10 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
union locale_data_value *ctypes = result_ptr->__locales[LC_CTYPE]->values;
result_ptr->__ctype_b = (const unsigned short int *)
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_CLASS)] .string);
#if BYTE_ORDER == BIG_ENDIAN
result_ptr->__ctype_tolower = (const int *)
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOLOWER_EB)].string);
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOLOWER)].string);
result_ptr->__ctype_toupper = (const int *)
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOUPPER_EB)].string);
#elif BYTE_ORDER == LITTLE_ENDIAN
result_ptr->__ctype_tolower = (const int *)
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOLOWER_EL)].string);
result_ptr->__ctype_toupper = (const int *)
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOUPPER_EL)].string);
#else
#error bizarre byte order
#endif
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOUPPER)].string);
}
return result_ptr;

View file

@ -68,7 +68,6 @@ struct locale_address_t
const char *country_ab2;
const char *country_ab3;
uint32_t country_num;
uint32_t country_num_ob;
const char *country_car;
const char *country_isbn;
const char *lang_name;
@ -295,7 +294,6 @@ address_finish (struct localedef_t *locale, struct charmap_t *charmap)
%s: numeric country code `%d' not valid"),
"LC_ADDRESS", address->country_num);
}
address->country_num_ob = bswap_32 (address->country_num);
if (address->country_ab2 == NULL)
{
@ -373,21 +371,8 @@ address_output (struct localedef_t *locale, struct charmap_t *charmap,
iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1;
++cnt;
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define country_num_eb country_num_ob
# define country_num_el country_num
#else
# define country_num_eb country_num
# define country_num_el country_num_ob
#endif
idx[cnt - 2] = idx[cnt - 3] + iov[cnt - 1].iov_len;
iov[cnt].iov_base = (void *) address->country_num_eb;
iov[cnt].iov_len = sizeof (uint32_t);
++cnt;
idx[cnt - 2] = idx[cnt - 3] + iov[cnt - 1].iov_len;
iov[cnt].iov_base = (void *) address->country_num_el;
iov[cnt].iov_base = (void *) address->country_num;
iov[cnt].iov_len = sizeof (uint32_t);
++cnt;

View file

@ -65,9 +65,7 @@
the number of bits for character classes to 16. When compatibility
is not necessary anymore increase the number to 32. */
#define char_class_t uint16_t
#define CHAR_CLASS_TRANS bswap_16
#define char_class32_t uint32_t
#define CHAR_CLASS32_TRANS bswap_32
/* Type to describe a transliteration action. We have a possibly
@ -144,27 +142,19 @@ struct locale_ctype_t
uint32_t plane_cnt;
char_class_t *ctype_b;
char_class32_t *ctype32_b;
uint32_t *names_el;
uint32_t *names_eb;
uint32_t **map_eb;
uint32_t **map_el;
uint32_t *names;
uint32_t **map;
uint32_t *class_name_ptr;
uint32_t *map_name_ptr;
unsigned char *width;
uint32_t mb_cur_max;
const char *codeset_name;
uint32_t translit_hash_size_eb;
uint32_t translit_hash_size_el;
uint32_t translit_hash_layers_eb;
uint32_t translit_hash_layers_el;
uint32_t *translit_from_idx_eb;
uint32_t *translit_from_idx_el;
uint32_t *translit_from_tbl_eb;
uint32_t *translit_from_tbl_el;
uint32_t *translit_to_idx_eb;
uint32_t *translit_to_idx_el;
uint32_t *translit_to_tbl_eb;
uint32_t *translit_to_tbl_el;
uint32_t translit_hash_size;
uint32_t translit_hash_layers;
uint32_t *translit_from_idx;
uint32_t *translit_from_tbl;
uint32_t *translit_to_idx;
uint32_t *translit_to_tbl;
size_t translit_idx_size;
size_t translit_from_tbl_size;
size_t translit_to_tbl_size;
@ -740,21 +730,12 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
ctype->ctype_b,
(256 + 128) * sizeof (char_class_t));
CTYPE_DATA (_NL_CTYPE_TOUPPER_EB,
ctype->map_eb[0],
CTYPE_DATA (_NL_CTYPE_TOUPPER,
ctype->map[0],
(ctype->plane_size * ctype->plane_cnt + 128)
* sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TOLOWER_EB,
ctype->map_eb[1],
(ctype->plane_size * ctype->plane_cnt + 128)
* sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TOUPPER_EL,
ctype->map_el[0],
(ctype->plane_size * ctype->plane_cnt + 128)
* sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TOLOWER_EL,
ctype->map_el[1],
CTYPE_DATA (_NL_CTYPE_TOLOWER,
ctype->map[1],
(ctype->plane_size * ctype->plane_cnt + 128)
* sizeof (uint32_t));
@ -763,90 +744,34 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
(ctype->plane_size * ctype->plane_cnt
* sizeof (char_class32_t)));
CTYPE_DATA (_NL_CTYPE_NAMES_EB,
ctype->names_eb, (ctype->plane_size * ctype->plane_cnt
* sizeof (uint32_t)));
CTYPE_DATA (_NL_CTYPE_NAMES_EL,
ctype->names_el, (ctype->plane_size * ctype->plane_cnt
* sizeof (uint32_t)));
CTYPE_DATA (_NL_CTYPE_NAMES,
ctype->names, (ctype->plane_size * ctype->plane_cnt
* sizeof (uint32_t)));
CTYPE_DATA (_NL_CTYPE_TRANSLIT_HASH_SIZE_EB,
&ctype->translit_hash_size_eb, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TRANSLIT_HASH_SIZE_EL,
&ctype->translit_hash_size_el, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TRANSLIT_HASH_LAYERS_EB,
&ctype->translit_hash_layers_eb, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TRANSLIT_HASH_LAYERS_EL,
&ctype->translit_hash_layers_el, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TRANSLIT_HASH_SIZE,
&ctype->translit_hash_size, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TRANSLIT_HASH_LAYERS,
&ctype->translit_hash_layers, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_TRANSLIT_FROM_IDX_EB,
ctype->translit_from_idx_eb,
ctype->translit_idx_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_FROM_IDX_EL,
ctype->translit_from_idx_el,
CTYPE_DATA (_NL_CTYPE_TRANSLIT_FROM_IDX,
ctype->translit_from_idx,
ctype->translit_idx_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_FROM_TBL_EB,
ctype->translit_from_tbl_eb,
ctype->translit_from_tbl_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_FROM_TBL_EL,
ctype->translit_from_tbl_el,
CTYPE_DATA (_NL_CTYPE_TRANSLIT_FROM_TBL,
ctype->translit_from_tbl,
ctype->translit_from_tbl_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_TO_IDX_EB,
ctype->translit_to_idx_eb,
ctype->translit_idx_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_TO_IDX_EL,
ctype->translit_to_idx_el,
CTYPE_DATA (_NL_CTYPE_TRANSLIT_TO_IDX,
ctype->translit_to_idx,
ctype->translit_idx_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_TO_TBL_EB,
ctype->translit_to_tbl_eb, ctype->translit_to_tbl_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_TO_TBL_EL,
ctype->translit_to_tbl_el, ctype->translit_to_tbl_size);
CTYPE_DATA (_NL_CTYPE_TRANSLIT_TO_TBL,
ctype->translit_to_tbl, ctype->translit_to_tbl_size);
#if __BYTE_ORDER == __BIG_ENDIAN
CTYPE_DATA (_NL_CTYPE_HASH_SIZE_EB,
CTYPE_DATA (_NL_CTYPE_HASH_SIZE,
&ctype->plane_size, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_HASH_LAYERS_EB,
CTYPE_DATA (_NL_CTYPE_HASH_LAYERS,
&ctype->plane_cnt, sizeof (uint32_t));
#else
case _NL_ITEM_INDEX (_NL_CTYPE_HASH_SIZE_EB):
iov[2 + elem + offset].iov_base =
(uint32_t *) alloca (sizeof (uint32_t));
*(uint32_t *) iov[2 + elem + offset].iov_base =
bswap_32 (ctype->plane_size);
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
break;
case _NL_ITEM_INDEX (_NL_CTYPE_HASH_LAYERS_EB):
iov[2 + elem + offset].iov_base =
(uint32_t *) alloca (sizeof (uint32_t));
*(uint32_t *) iov[2 + elem + offset].iov_base =
bswap_32 (ctype->plane_cnt);
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
break;
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
CTYPE_DATA (_NL_CTYPE_HASH_SIZE_EL,
&ctype->plane_size, sizeof (uint32_t));
CTYPE_DATA (_NL_CTYPE_HASH_LAYERS_EL,
&ctype->plane_cnt, sizeof (uint32_t));
#else
case _NL_ITEM_INDEX (_NL_CTYPE_HASH_SIZE_EL):
iov[2 + elem + offset].iov_base =
(uint32_t *) alloca (sizeof (uint32_t));
*(uint32_t *) iov[2 + elem + offset].iov_base =
bswap_32 (ctype->plane_size);
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
break;
case _NL_ITEM_INDEX (_NL_CTYPE_HASH_LAYERS_EL):
iov[2 + elem + offset].iov_base =
(uint32_t *) alloca (sizeof (uint32_t));
*(uint32_t *) iov[2 + elem + offset].iov_base =
bswap_32 (ctype->plane_cnt);
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
break;
#endif
case _NL_ITEM_INDEX (_NL_CTYPE_CLASS_NAMES):
/* The class name array. */
@ -906,34 +831,18 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len;
break;
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN_EB):
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN_EL):
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN):
iov[2 + elem + offset].iov_base = alloca (sizeof (uint32_t));
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
if ((elem == _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN_EB)
&& __BYTE_ORDER == __BIG_ENDIAN)
|| (elem == _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN_EL)
&& __BYTE_ORDER == __LITTLE_ENDIAN))
*(uint32_t *) iov[2 + elem + offset].iov_base =
ctype->mbdigits_act / 10;
else
*(uint32_t *) iov[2 + elem + offset].iov_base =
bswap_32 (ctype->mbdigits_act / 10);
*(uint32_t *) iov[2 + elem + offset].iov_base =
ctype->mbdigits_act / 10;
break;
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_WC_LEN_EB):
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_WC_LEN_EL):
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_WC_LEN):
iov[2 + elem + offset].iov_base = alloca (sizeof (uint32_t));
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
if ((elem == _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_WC_LEN_EB)
&& __BYTE_ORDER == __BIG_ENDIAN)
|| (elem == _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_WC_LEN_EL)
&& __BYTE_ORDER == __LITTLE_ENDIAN))
*(uint32_t *) iov[2 + elem + offset].iov_base =
ctype->wcdigits_act / 10;
else
*(uint32_t *) iov[2 + elem + offset].iov_base =
bswap_32 (ctype->wcdigits_act / 10);
*(uint32_t *) iov[2 + elem + offset].iov_base =
ctype->wcdigits_act / 10;
break;
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_MB) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_MB):
@ -973,59 +882,25 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
ctype->mbdigits[cnt]->nbytes) = '\0';
break;
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_WC_EB) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_WC_EB):
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_WC) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_WC):
total = ctype->wcdigits_act / 10;
iov[2 + elem + offset].iov_base =
(uint32_t *) alloca (total * sizeof (uint32_t));
iov[2 + elem + offset].iov_len = total * sizeof (uint32_t);
for (cnt = elem - _NL_CTYPE_INDIGITS0_WC_EB;
for (cnt = elem - _NL_CTYPE_INDIGITS0_WC;
cnt < ctype->wcdigits_act; cnt += 10)
((uint32_t *) iov[2 + elem + offset].iov_base)[cnt / 10]
= (__BYTE_ORDER == __LITTLE_ENDIAN
? bswap_32 (ctype->wcdigits[cnt]) : ctype->wcdigits[cnt]);
= ctype->wcdigits[cnt];
break;
case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_WC_EL) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_WC_EL):
total = ctype->wcdigits_act / 10;
iov[2 + elem + offset].iov_base =
(uint32_t *) alloca (total * sizeof (uint32_t));
iov[2 + elem + offset].iov_len = total * sizeof (uint32_t);
for (cnt = elem - _NL_CTYPE_INDIGITS0_WC_EL;
cnt < ctype->wcdigits_act; cnt += 10)
((uint32_t *) iov[2 + elem + offset].iov_base)[cnt / 10]
= (__BYTE_ORDER == __BIG_ENDIAN
? bswap_32 (ctype->wcdigits[cnt]) : ctype->wcdigits[cnt]);
break;
#if __BYTE_ORDER == __BIG_ENDIAN
case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_WC_EB) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_WC_EB):
cnt = elem - _NL_CTYPE_OUTDIGIT0_WC_EB;
#else
case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_WC_EL) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_WC_EL):
cnt = elem - _NL_CTYPE_OUTDIGIT0_WC_EL;
#endif
case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_WC) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_WC):
cnt = elem - _NL_CTYPE_OUTDIGIT0_WC;
iov[2 + elem + offset].iov_base = &ctype->wcoutdigits[cnt];
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
break;
#if __BYTE_ORDER == __LITTLE_ENDIAN
case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_WC_EB) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_WC_EB):
cnt = elem - _NL_CTYPE_OUTDIGIT0_WC_EB;
#else
case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_WC_EL) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_WC_EL):
cnt = elem - _NL_CTYPE_OUTDIGIT0_WC_EL;
#endif
iov[2 + elem + offset].iov_base =
(uint32_t *) alloca (sizeof (uint32_t));
*(uint32_t *) iov[2 + elem + offset].iov_base =
bswap_32 (ctype->wcoutdigits[cnt]);
iov[2 + elem + offset].iov_len = sizeof (uint32_t);
break;
default:
assert (! "unknown CTYPE element");
}
@ -1034,11 +909,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
/* Handle extra maps. */
size_t nr = (elem - _NL_ITEM_INDEX (_NL_NUM_LC_CTYPE)) >> 1;
if (((elem - _NL_ITEM_INDEX (_NL_NUM_LC_CTYPE)) & 1) == 0)
iov[2 + elem + offset].iov_base = ctype->map_eb[nr];
else
iov[2 + elem + offset].iov_base = ctype->map_el[nr];
iov[2 + elem + offset].iov_base = ctype->map[nr];
iov[2 + elem + offset].iov_len = ((ctype->plane_size
* ctype->plane_cnt + 128)
* sizeof (uint32_t));
@ -2976,45 +2847,31 @@ Computing table size for character classes might take a while..."),
fputs (_(" done\n"), stderr);
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define NAMES_B1 ctype->names_el
# define NAMES_B2 ctype->names_eb
#else
# define NAMES_B1 ctype->names_eb
# define NAMES_B2 ctype->names_el
#endif
ctype->names_eb = (uint32_t *) xcalloc (ctype->plane_size
* ctype->plane_cnt,
sizeof (uint32_t));
ctype->names_el = (uint32_t *) xcalloc (ctype->plane_size
* ctype->plane_cnt,
sizeof (uint32_t));
ctype->names = (uint32_t *) xcalloc (ctype->plane_size
* ctype->plane_cnt,
sizeof (uint32_t));
for (idx = 1; idx < 256; ++idx)
NAMES_B1[idx] = idx;
ctype->names[idx] = idx;
/* Trick: change the 0th entry's name to 1 to mark the cell occupied. */
NAMES_B1[0] = 1;
ctype->names[0] = 1;
for (idx = 256; idx < ctype->charnames_act; ++idx)
{
size_t nr = (ctype->charnames[idx] % ctype->plane_size);
size_t depth = 0;
while (NAMES_B1[nr + depth * ctype->plane_size])
while (ctype->names[nr + depth * ctype->plane_size])
++depth;
assert (depth < ctype->plane_cnt);
NAMES_B1[nr + depth * ctype->plane_size] = ctype->charnames[idx];
ctype->names[nr + depth * ctype->plane_size] = ctype->charnames[idx];
/* Now for faster access remember the index in the NAMES_B array. */
ctype->charnames[idx] = nr + depth * ctype->plane_size;
}
NAMES_B1[0] = 0;
for (idx = 0; idx < ctype->plane_size * ctype->plane_cnt; ++idx)
NAMES_B2[idx] = bswap_32 (NAMES_B1[idx]);
ctype->names[0] = 0;
/* You wonder about this amount of memory? This is only because some
@ -3028,18 +2885,9 @@ Computing table size for character classes might take a while..."),
* ctype->plane_cnt,
sizeof (char_class32_t));
/* Fill in the character class information. */
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define TRANS(w) CHAR_CLASS_TRANS (w)
# define TRANS32(w) CHAR_CLASS32_TRANS (w)
#else
# define TRANS(w) (w)
# define TRANS32(w) (w)
#endif
/* This is the array accessed usig the multibyte string elements. */
/* This is the array accessed using the multibyte string elements. */
for (idx = 0; idx < 256; ++idx)
ctype->ctype_b[128 + idx] = TRANS (ctype->class256_collection[idx]);
ctype->ctype_b[128 + idx] = ctype->class256_collection[idx];
/* Mirror first 127 entries. We must take care that entry -1 is not
mirrored because EOF == -1. */
@ -3048,14 +2896,11 @@ Computing table size for character classes might take a while..."),
/* The 32 bit array contains all characters. */
for (idx = 0; idx < ctype->class_collection_act; ++idx)
ctype->ctype32_b[ctype->charnames[idx]]
= TRANS32 (ctype->class_collection[idx]);
ctype->ctype32_b[ctype->charnames[idx]] = ctype->class_collection[idx];
/* Room for table of mappings. */
ctype->map_eb = (uint32_t **) xmalloc (ctype->map_collection_nr
* sizeof (uint32_t *));
ctype->map_el = (uint32_t **) xmalloc (ctype->map_collection_nr
* sizeof (uint32_t *));
ctype->map = (uint32_t **) xmalloc (ctype->map_collection_nr
* sizeof (uint32_t *));
/* Fill in all mappings. */
for (idx = 0; idx < ctype->map_collection_nr; ++idx)
@ -3063,40 +2908,25 @@ Computing table size for character classes might take a while..."),
unsigned int idx2;
/* Allocate table. */
ctype->map_eb[idx] = (uint32_t *) xmalloc ((ctype->plane_size
* ctype->plane_cnt + 128)
* sizeof (uint32_t));
ctype->map_el[idx] = (uint32_t *) xmalloc ((ctype->plane_size
* ctype->plane_cnt + 128)
* sizeof (uint32_t));
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define MAP_B1 ctype->map_el
# define MAP_B2 ctype->map_eb
#else
# define MAP_B1 ctype->map_eb
# define MAP_B2 ctype->map_el
#endif
ctype->map[idx] = (uint32_t *) xmalloc ((ctype->plane_size
* ctype->plane_cnt + 128)
* sizeof (uint32_t));
/* Copy default value (identity mapping). */
memcpy (&MAP_B1[idx][128], NAMES_B1,
memcpy (&ctype->map[idx][128], ctype->names,
ctype->plane_size * ctype->plane_cnt * sizeof (uint32_t));
/* Copy values from collection. */
for (idx2 = 0; idx2 < 256; ++idx2)
MAP_B1[idx][128 + idx2] = ctype->map256_collection[idx][idx2];
ctype->map[idx][128 + idx2] = ctype->map256_collection[idx][idx2];
/* Mirror first 127 entries. We must take care not to map entry
-1 because EOF == -1. */
for (idx2 = 0; idx2 < 127; ++idx2)
MAP_B1[idx][idx2] = MAP_B1[idx][256 + idx2];
ctype->map[idx][idx2] = ctype->map[idx][256 + idx2];
/* EOF must map to EOF. */
MAP_B1[idx][127] = EOF;
/* And now the other byte order. */
for (idx2 = 0; idx2 < ctype->plane_size * ctype->plane_cnt + 128; ++idx2)
MAP_B2[idx][idx2] = bswap_32 (MAP_B1[idx][idx2]);
ctype->map[idx][127] = EOF;
}
/* Extra array for class and map names. */
@ -3126,7 +2956,7 @@ Computing table size for character classes might take a while..."),
size_t nr = idx % ctype->plane_size;
size_t depth = 0;
while (NAMES_B1[nr + depth * ctype->plane_size] != nr)
while (ctype->names[nr + depth * ctype->plane_size] != nr)
++depth;
assert (depth < ctype->plane_cnt);
@ -3269,33 +3099,10 @@ Computing table size for character classes might take a while..."),
}
/* We can allocate the arrays for the results. */
#if BYTE_ORDER == LITTLE_ENDIAN
# define from_idx translit_from_idx_el
# define from_tbl translit_from_tbl_el
# define to_idx translit_to_idx_el
# define to_tbl translit_to_tbl_el
# define from_idx_ob translit_from_idx_eb
# define from_tbl_ob translit_from_tbl_eb
# define to_idx_ob translit_to_idx_eb
# define to_tbl_ob translit_to_tbl_eb
#else
# define from_idx translit_from_idx_eb
# define from_tbl translit_from_tbl_eb
# define to_idx translit_to_idx_eb
# define to_tbl translit_to_tbl_eb
# define from_idx_ob translit_from_idx_el
# define from_tbl_ob translit_from_tbl_el
# define to_idx_ob translit_to_idx_el
# define to_tbl_ob translit_to_tbl_el
#endif
ctype->from_idx = xmalloc (number * sizeof (uint32_t));
ctype->from_idx_ob = xmalloc (number * sizeof (uint32_t));
ctype->from_tbl = xmalloc (from_len * sizeof (uint32_t));
ctype->from_tbl_ob = xmalloc (from_len * sizeof (uint32_t));
ctype->to_idx = xmalloc (number * sizeof (uint32_t));
ctype->to_idx_ob = xmalloc (number * sizeof (uint32_t));
ctype->to_tbl = xmalloc (to_len * sizeof (uint32_t));
ctype->to_tbl_ob = xmalloc (to_len * sizeof (uint32_t));
ctype->translit_from_idx = xmalloc (number * sizeof (uint32_t));
ctype->translit_from_tbl = xmalloc (from_len * sizeof (uint32_t));
ctype->translit_to_idx = xmalloc (number * sizeof (uint32_t));
ctype->translit_to_tbl = xmalloc (to_len * sizeof (uint32_t));
from_len = 0;
to_len = 0;
@ -3304,38 +3111,27 @@ Computing table size for character classes might take a while..."),
size_t len;
struct translit_to_t *srunp;
ctype->from_idx[cnt] = from_len;
ctype->to_idx[cnt] = to_len;
ctype->translit_from_idx[cnt] = from_len;
ctype->translit_to_idx[cnt] = to_len;
len = wcslen ((const wchar_t *) sorted[cnt]->from) + 1;
wmemcpy ((wchar_t *) &ctype->from_tbl[from_len],
wmemcpy ((wchar_t *) &ctype->translit_from_tbl[from_len],
(const wchar_t *) sorted[cnt]->from, len);
from_len += len;
ctype->to_idx[cnt] = to_len;
ctype->translit_to_idx[cnt] = to_len;
srunp = sorted[cnt]->to;
while (srunp != NULL)
{
len = wcslen ((const wchar_t *) srunp->str) + 1;
wmemcpy ((wchar_t *) &ctype->to_tbl[to_len],
wmemcpy ((wchar_t *) &ctype->translit_to_tbl[to_len],
(const wchar_t *) srunp->str, len);
to_len += len;
srunp = srunp->next;
}
ctype->to_tbl[to_len++] = L'\0';
ctype->translit_to_tbl[to_len++] = L'\0';
}
/* Now create the tables for the other endianess. */
for (cnt = 0; cnt < number; ++cnt)
{
ctype->from_idx_ob[cnt] = bswap_32 (ctype->from_idx[cnt]);
ctype->to_idx_ob[cnt] = bswap_32 (ctype->to_idx[cnt]);
}
for (cnt = 0; cnt < from_len; ++cnt)
ctype->from_tbl[cnt] = bswap_32 (ctype->from_tbl_ob[cnt]);
for (cnt = 0; cnt < to_len; ++cnt)
ctype->to_tbl[cnt] = bswap_32 (ctype->to_tbl_ob[cnt]);
/* Store the information about the length. */
ctype->translit_idx_size = number * sizeof (uint32_t);
ctype->translit_from_tbl_size = from_len * sizeof (uint32_t);
@ -3346,12 +3142,9 @@ Computing table size for character classes might take a while..."),
/* Provide some dummy pointers since we have nothing to write out. */
static uint32_t no_str = { 0 };
ctype->translit_from_idx_el = &no_str;
ctype->translit_from_idx_eb = &no_str;
ctype->translit_from_tbl_el = &no_str;
ctype->translit_from_tbl_eb = &no_str;
ctype->translit_to_tbl_el = &no_str;
ctype->translit_to_tbl_eb = &no_str;
ctype->translit_from_idx = &no_str;
ctype->translit_from_tbl = &no_str;
ctype->translit_to_tbl = &no_str;
ctype->translit_idx_size = 0;
ctype->translit_from_tbl_size = 0;
ctype->translit_to_tbl_size = 0;

View file

@ -21,7 +21,6 @@
# include <config.h>
#endif
#include <byteswap.h>
#include <error.h>
#include <langinfo.h>
#include <string.h>
@ -37,9 +36,7 @@
struct locale_paper_t
{
uint32_t height;
uint32_t height_ob;
uint32_t width;
uint32_t width_ob;
};
@ -104,7 +101,6 @@ paper_finish (struct localedef_t *locale, struct charmap_t *charmap)
/* Use as default values the values from the i18n locale. */
paper->height = 297;
}
paper->height_ob = bswap_32 (paper->height);
if (paper->width == 0)
{
@ -113,7 +109,6 @@ paper_finish (struct localedef_t *locale, struct charmap_t *charmap)
/* Use as default values the values from the i18n locale. */
paper->width = 210;
}
paper->width_ob = bswap_32 (paper->width);
}
@ -133,39 +128,17 @@ paper_output (struct localedef_t *locale, struct charmap_t *charmap,
iov[cnt].iov_len = sizeof (data);
++cnt;
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define height_eb height_ob
# define height_el height
# define width_eb width_ob
# define width_el width
#else
# define height_eb height
# define height_el height_ob
# define width_eb width
# define width_el width_ob
#endif
iov[cnt].iov_base = (void *) idx;
iov[cnt].iov_len = sizeof (idx);
++cnt;
idx[cnt - 2] = iov[0].iov_len + iov[1].iov_len;
iov[cnt].iov_base = &paper->height_eb;
iov[cnt].iov_base = &paper->height;
iov[cnt].iov_len = 4;
++cnt;
idx[cnt - 2] = iov[0].iov_len + iov[1].iov_len;
iov[cnt].iov_base = &paper->height_el;
iov[cnt].iov_len = 4;
++cnt;
idx[cnt - 2] = iov[0].iov_len + iov[1].iov_len;
iov[cnt].iov_base = &paper->width_eb;
iov[cnt].iov_len = 4;
++cnt;
idx[cnt - 2] = iov[0].iov_len + iov[1].iov_len;
iov[cnt].iov_base = &paper->width_el;
iov[cnt].iov_base = &paper->width;
iov[cnt].iov_len = 4;
++cnt;

View file

@ -55,55 +55,40 @@ struct locale_time_t
{
const char *abday[7];
const uint32_t *wabday[7];
const uint32_t *wabday_ob[7];
int abday_defined;
const char *day[7];
const uint32_t *wday[7];
const uint32_t *wday_ob[7];
int day_defined;
const char *abmon[12];
const uint32_t *wabmon[12];
const uint32_t *wabmon_ob[12];
int abmon_defined;
const char *mon[12];
const uint32_t *wmon[12];
const uint32_t *wmon_ob[12];
int mon_defined;
const char *am_pm[2];
const uint32_t *wam_pm[2];
const uint32_t *wam_pm_ob[2];
int am_pm_defined;
const char *d_t_fmt;
const uint32_t *wd_t_fmt;
const uint32_t *wd_t_fmt_ob;
const char *d_fmt;
const uint32_t *wd_fmt;
const uint32_t *wd_fmt_ob;
const char *t_fmt;
const uint32_t *wt_fmt;
const uint32_t *wt_fmt_ob;
const char *t_fmt_ampm;
const uint32_t *wt_fmt_ampm;
const uint32_t *wt_fmt_ampm_ob;
const char **era;
const uint32_t **wera;
const uint32_t **wera_ob;
uint32_t num_era;
const char *era_year;
const uint32_t *wera_year;
const uint32_t *wera_year_ob;
const char *era_d_t_fmt;
const uint32_t *wera_d_t_fmt;
const uint32_t *wera_d_t_fmt_ob;
const char *era_t_fmt;
const uint32_t *wera_t_fmt;
const uint32_t *wera_t_fmt_ob;
const char *era_d_fmt;
const uint32_t *wera_d_fmt;
const uint32_t *wera_d_fmt_ob;
const char *alt_digits[100];
const uint32_t *walt_digits[100];
const uint32_t *walt_digits_ob[100];
int alt_digits_defined;
unsigned char week_ndays;
uint32_t week_1stday;
@ -115,7 +100,6 @@ struct locale_time_t
const uint32_t *wtimezone;
struct era_data *era_entries;
struct era_data *era_entries_ob;
};
@ -143,7 +127,6 @@ void
time_finish (struct localedef_t *locale, struct charmap_t *charmap)
{
struct locale_time_t *time = locale->categories[LC_TIME].time;
size_t cnt;
int nothing = 0;
/* Now resolve copying and also handle completely missing definitions. */
@ -183,22 +166,6 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
{ \
if(! be_quiet && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), "LC_TIME", #cat); \
} \
else if (time->w##cat != NULL) \
{ \
size_t n; \
for (n = 0; n < sizeof (time->w##cat) / sizeof (time->w##cat[0]); ++n) \
{ \
size_t len = wcslen ((wchar_t *) time->w##cat[n]) + 1; \
uint32_t *wstr = (uint32_t *) xmalloc (len * sizeof (uint32_t)); \
do \
{ \
--len; \
wstr[len] = bswap_32 (time->w##cat[n][len]); \
} \
while (len > 0); \
time->w##cat##_ob[n] = wstr; \
} \
}
TESTARR_ELEM (abday);
@ -212,18 +179,6 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
{ \
if (! be_quiet && ! nothing) \
error (0, 0, _("%s: field `%s' not defined"), "LC_TIME", #cat); \
} \
else if (time->w##cat != NULL) \
{ \
size_t len = wcslen ((wchar_t *) time->w##cat) + 1; \
uint32_t *wstr = (uint32_t *) xmalloc (len * sizeof (uint32_t)); \
do \
{ \
--len; \
wstr[len] = bswap_32 (time->w##cat[len]); \
} \
while (len > 0); \
time->w##cat##_ob = wstr; \
}
TEST_ELEM (d_t_fmt);
@ -237,20 +192,6 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
/* Use the 24h format as default. */
time->t_fmt_ampm = time->t_fmt;
time->wt_fmt_ampm = time->wt_fmt;
time->wt_fmt_ampm_ob = time->wt_fmt_ob;
}
else
{
/* Convert the byte order. */
size_t len = wcslen ((wchar_t *) time->wt_fmt_ampm) + 1;
uint32_t *wstr = (uint32_t *) xmalloc (len * sizeof (uint32_t));
do
{
--len;
wstr[len] = bswap_32 (time->wt_fmt_ampm[len]);
}
while (len > 0);
time->wt_fmt_ampm_ob = wstr;
}
/* Now process the era entries. */
@ -499,60 +440,6 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
wstr = wstr ? wcschr (wstr, L':') : NULL; /* end name */
time->era_entries[idx].wformat = (uint32_t *) wstr;
}
/* Construct the array for the other byte order. */
time->era_entries_ob =
(struct era_data *) xmalloc (time->num_era * sizeof (struct era_data));
for (idx = 0; idx < time->num_era; ++idx)
{
time->era_entries_ob[idx].direction =
bswap_32 (time->era_entries[idx].direction);
time->era_entries_ob[idx].offset =
bswap_32 (time->era_entries[idx].offset);
time->era_entries_ob[idx].start_date[0] =
bswap_32 (time->era_entries[idx].start_date[0]);
time->era_entries_ob[idx].start_date[1] =
bswap_32 (time->era_entries[idx].start_date[1]);
time->era_entries_ob[idx].start_date[2] =
bswap_32 (time->era_entries[idx].stop_date[2]);
time->era_entries_ob[idx].stop_date[0] =
bswap_32 (time->era_entries[idx].stop_date[0]);
time->era_entries_ob[idx].stop_date[1] =
bswap_32 (time->era_entries[idx].stop_date[1]);
time->era_entries_ob[idx].stop_date[2] =
bswap_32 (time->era_entries[idx].stop_date[2]);
time->era_entries_ob[idx].name =
time->era_entries[idx].name;
time->era_entries_ob[idx].format =
time->era_entries[idx].format;
if (time->era_entries[idx].wname != NULL)
{
size_t inner = (wcslen ((wchar_t *) time->era_entries[idx].wname)
+ 1);
time->era_entries_ob[idx].wname = xmalloc (inner
* sizeof (uint32_t));
do
time->era_entries_ob[idx].wname[inner - 1]
= bswap_32 (time->era_entries[idx].wname[inner - 1]);
while (inner-- > 0);
}
else
time->era_entries_ob[idx].wname = NULL;
if (time->era_entries[idx].wformat != NULL)
{
size_t inner
= wcslen ((wchar_t *) time->era_entries[idx].wformat) + 1;
time->era_entries_ob[idx].wformat = xmalloc (inner
* sizeof (uint32_t));
do
time->era_entries_ob[idx].wformat[inner - 1]
= bswap_32 (time->era_entries[idx].wformat[inner - 1]);
while (inner-- > 0);
}
else
time->era_entries_ob[idx].wformat = NULL;
}
}
if (time->week_ndays == 0)
@ -594,18 +481,6 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
simply useless, stupid $&$!@... */
if (time->timezone == NULL)
time->timezone = "";
/* Generate alt digits in other byte order. */
for (cnt = 0; cnt < 100; ++cnt)
if (time->walt_digits[cnt] != NULL)
{
size_t len = wcslen ((wchar_t *) time->walt_digits[cnt]) + 1;
uint32_t *wstr = xmalloc (len * sizeof (uint32_t));
do
wstr[len - 1] = bswap_32 (time->walt_digits[cnt][len - 1]);
while (len-- > 0);
time->walt_digits_ob[cnt] = wstr;
}
}
@ -621,8 +496,6 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
struct locale_file data;
uint32_t idx[_NL_ITEM_INDEX (_NL_NUM_LC_TIME)];
size_t cnt, last_idx, num, n;
uint32_t num_era_eb;
uint32_t num_era_el;
data.magic = LIMAGIC (LC_TIME);
data.n = _NL_ITEM_INDEX (_NL_NUM_LC_TIME);
@ -749,66 +622,46 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
++cnt;
/* The `era' data in usable form. */
#if __BYTE_ORDER == __LITTLE_ENDIAN
num_era_eb = bswap_32 (time->num_era);
num_era_el = time->num_era;
#else
num_era_eb = time->num_era;
num_era_el = bswap_32 (time->num_era);
#endif
iov[2 + cnt].iov_base = (void *) &num_era_eb;
iov[2 + cnt].iov_base = (void *) &time->num_era;
iov[2 + cnt].iov_len = sizeof (uint32_t);
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) &num_era_el;
iov[2 + cnt].iov_len = sizeof (uint32_t);
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define ERA_B1 time->era_entries_ob
# define ERA_B2 time->era_entries
#else
# define ERA_B1 time->era_entries
# define ERA_B2 time->era_entries_ob
#endif
idx[1 + last_idx] = idx[last_idx];
for (num = 0; num < time->num_era; ++num)
{
size_t l;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].direction;
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].direction;
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].offset;
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].offset;
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].start_date[0];
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].start_date[0];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].start_date[1];
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].start_date[1];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].start_date[2];
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].start_date[2];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].stop_date[0];
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].stop_date[0];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].stop_date[1];
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].stop_date[1];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B1[num].stop_date[2];
iov[2 + cnt].iov_base = (void *) &time->era_entries[num].stop_date[2];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
l = (strchr (ERA_B1[num].format, '\0') - ERA_B1[num].name) + 1;
l = (strchr (time->era_entries[num].format, '\0')
- time->era_entries[num].name) + 1;
l = (l + 3) & ~3;
iov[2 + cnt].iov_base = (void *) ERA_B1[num].name;
iov[2 + cnt].iov_base = (void *) time->era_entries[num].name;
iov[2 + cnt].iov_len = l;
++cnt;
@ -816,9 +669,9 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
assert (idx[1 + last_idx] % 4 == 0);
iov[2 + cnt].iov_base = (void *) ERA_B1[num].wname;
iov[2 + cnt].iov_len = ((wcschr ((wchar_t *) ERA_B1[cnt].wformat, L'\0')
- (wchar_t *) ERA_B1[num].wname + 1)
iov[2 + cnt].iov_base = (void *) time->era_entries[num].wname;
iov[2 + cnt].iov_len = ((wcschr ((wchar_t *) time->era_entries[cnt].wformat, L'\0')
- (wchar_t *) time->era_entries[num].wname + 1)
* sizeof (uint32_t));
++cnt;
@ -826,127 +679,11 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
}
++last_idx;
idx[1 + last_idx] = idx[last_idx];
for (num = 0; num < time->num_era; ++num)
{
size_t l;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].direction;
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].offset;
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].start_date[0];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].start_date[1];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].start_date[2];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].stop_date[0];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].stop_date[1];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
iov[2 + cnt].iov_base = (void *) &ERA_B2[num].stop_date[2];
iov[2 + cnt].iov_len = sizeof (int32_t);
++cnt;
l = (strchr (ERA_B2[num].format, '\0') - ERA_B2[num].name) + 1;
l = (l + 3) & ~3;
iov[2 + cnt].iov_base = (void *) ERA_B2[num].name;
iov[2 + cnt].iov_len = l;
++cnt;
idx[1 + last_idx] += 8 * sizeof (int32_t) + l;
iov[2 + cnt].iov_base = (void *) ERA_B1[num].wname;
iov[2 + cnt].iov_len = ((wcschr ((wchar_t *) ERA_B1[cnt].wformat, L'\0')
- (wchar_t *) ERA_B1[num].wname + 1)
* sizeof (uint32_t));
++cnt;
idx[1 + last_idx] += iov[2 + cnt].iov_len;
}
++last_idx;
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define WABDAY_B1 wabday_ob
# define WDAY_B1 wday_ob
# define WABMON_B1 wabmon_ob
# define WMON_B1 wmon_ob
# define WAM_PM_B1 wam_pm_ob
# define WD_T_FMT_B1 wd_t_fmt_ob
# define WD_FMT_B1 wd_fmt_ob
# define WT_FMT_B1 wt_fmt_ob
# define WT_FMT_AMPM_B1 wt_fmt_ampm_ob
# define WERA_YEAR_B1 wera_year_ob
# define WERA_D_FMT_B1 wera_d_fmt_ob
# define WALT_DIGITS_B1 walt_digits_ob
# define WERA_D_T_FMT_B1 wera_d_t_fmt_ob
# define WERA_T_FMT_B1 wera_t_fmt_ob
# define WABDAY_B2 wabday
# define WDAY_B2 wday
# define WABMON_B2 wabmon
# define WMON_B2 wmon
# define WAM_PM_B2 wam_pm
# define WD_T_FMT_B2 wd_t_fmt
# define WD_FMT_B2 wd_fmt
# define WT_FMT_B2 wt_fmt
# define WT_FMT_AMPM_B2 wt_fmt_ampm
# define WERA_YEAR_B2 wera_year
# define WERA_D_FMT_B2 wera_d_fmt
# define WALT_DIGITS_B2 walt_digits
# define WERA_D_T_FMT_B2 wera_d_t_fmt
# define WERA_T_FMT_B2 wera_t_fmt
#else
# define WABDAY_B1 wabday
# define WDAY_B1 wday
# define WABMON_B1 wabmon
# define WMON_B1 wmon
# define WAM_PM_B1 wam_pm
# define WD_T_FMT_B1 wd_t_fmt
# define WD_FMT_B1 wd_fmt
# define WT_FMT_B1 wt_fmt
# define WT_FMT_AMPM_B1 wt_fmt_ampm
# define WERA_YEAR_B1 wera_year
# define WERA_D_FMT_B1 wera_d_fmt
# define WALT_DIGITS_B1 walt_digits
# define WERA_D_T_FMT_B1 wera_d_t_fmt
# define WERA_T_FMT_B1 wera_t_fmt
# define WABDAY_B2 wabday_ob
# define WDAY_B2 wday_ob
# define WABMON_B2 wabmon_ob
# define WMON_B2 wmon_ob
# define WAM_PM_B2 wam_pm_ob
# define WD_T_FMT_B2 wd_t_fmt_ob
# define WD_FMT_B2 wd_fmt_ob
# define WT_FMT_B2 wt_fmt_ob
# define WT_FMT_AMPM_B2 wt_fmt_ampm_ob
# define WERA_YEAR_B2 wera_year_ob
# define WERA_D_FMT_B2 wera_d_fmt_ob
# define WALT_DIGITS_B2 walt_digits_ob
# define WERA_D_T_FMT_B2 wera_d_t_fmt_ob
# define WERA_T_FMT_B2 wera_t_fmt_ob
#endif
/* The wide character ab'days. */
for (n = 0; n < 7; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WABDAY_B1[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
}
for (n = 0; n < 7; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WABDAY_B2[n] ?: empty_wstr);
(void *) (time->wabday[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
@ -956,15 +693,7 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
for (n = 0; n < 7; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WDAY_B1[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
}
for (n = 0; n < 7; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WDAY_B2[n] ?: empty_wstr);
(void *) (time->wday[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
@ -974,15 +703,7 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
for (n = 0; n < 12; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WABMON_B1[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
}
for (n = 0; n < 12; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WABMON_B2[n] ?: empty_wstr);
(void *) (time->wabmon[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
@ -992,15 +713,7 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
for (n = 0; n < 12; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WMON_B1[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
}
for (n = 0; n < 12; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WMON_B2[n] ?: empty_wstr);
(void *) (time->wmon[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
@ -1010,84 +723,48 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
for (n = 0; n < 2; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WAM_PM_B1[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
}
for (n = 0; n < 2; ++n, ++cnt, ++last_idx)
{
iov[2 + cnt].iov_base =
(void *) (time->WAM_PM_B2[n] ?: empty_wstr);
(void *) (time->wam_pm[n] ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
}
iov[2 + cnt].iov_base = (void *) (time->WD_T_FMT_B1 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wd_t_fmt ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WD_FMT_B1 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wd_fmt ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WT_FMT_B1 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wt_fmt ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WT_FMT_AMPM_B1 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wt_fmt_ampm ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WD_T_FMT_B2 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wera_year ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WD_FMT_B2 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WT_FMT_B2 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WT_FMT_AMPM_B2 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_YEAR_B2 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_D_FMT_B2 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wera_d_fmt ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
@ -1097,7 +774,7 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
idx[1 + last_idx] = idx[last_idx];
for (num = 0; num < 100; ++num, ++cnt)
{
iov[2 + cnt].iov_base = (void *) (time->WALT_DIGITS_B2[num]
iov[2 + cnt].iov_base = (void *) (time->walt_digits[num]
?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
@ -1105,53 +782,14 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap,
}
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_D_T_FMT_B2 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wera_d_t_fmt ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_T_FMT_B2 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_YEAR_B1 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_D_FMT_B1 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
idx[1 + last_idx] = idx[last_idx];
for (num = 0; num < 100; ++num, ++cnt)
{
iov[2 + cnt].iov_base = (void *) (time->WALT_DIGITS_B1[num]
?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] += iov[2 + cnt].iov_len;
}
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_D_T_FMT_B1 ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
++last_idx;
iov[2 + cnt].iov_base = (void *) (time->WERA_T_FMT_B1 ?: empty_wstr);
iov[2 + cnt].iov_base = (void *) (time->wera_t_fmt ?: empty_wstr);
iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
* sizeof (uint32_t));
idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;

View file

@ -1,3 +1,7 @@
1999-09-13 Ulrich Drepper <drepper@cygnus.com>
* locales/id_ID: Fix typo.
1999-08-31 Ulrich Drepper <drepper@cygnus.com>
* locales/en_DK: Add Euro symbol to collation and characterization

View file

@ -1,5 +1,6 @@
escape_char /
comment_char %
repertoiremap mnemonic.ds
% Indonesian language locale for Indonesia
% Source:
@ -10,8 +11,8 @@ comment_char %
% Fax:
% Language: id
% Territory: ID
% Revision: 0.3
% Date: 1999-04-10
% Revision: 0.5
% Date: 1999-09-08
% Application: general
% Users: general
% Repertoiremap:
@ -79,7 +80,7 @@ mon "<J><a><n><u><a><r><i>";/
"<A><g><u><s><t><u><s>";/
"<S><e><p><t><e><m><b><e><r>";/
"<O><k><t><o><b><e><r>";/
"<N><o><p><e><m><b><e><r>";/
"<N><o><v><e><m><b><e><r>";/
"<D><e><s><e><m><b><e><r>"
d_t_fmt "<%><a><SP><%><d><SP><%><b><SP><%><Y><SP><%><r><SP><%><Z>"
d_fmt "<%><d><//><%><m><//><%><y>"

View file

@ -1,4 +1,4 @@
# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
# Copyright (C) 1996, 1997, 1998, 1999 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
@ -39,7 +39,7 @@ all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig
# Pattern for where message catalog object for language % gets installed.
mo-installed = $(inst_localedir)/%/LC_MESSAGES/$(domainname).mo
mo-installed = $(inst_msgcatdir)/%/LC_MESSAGES/$(domainname).mo
# Files to install: a $(domainname).mo file for each language.
install-others = $(LINGUAS:%=$(mo-installed))

View file

@ -113,7 +113,7 @@ struct arphdr
#define ARPHRD_HIPPI 780 /* High Performance Parallel I'face. */
#define ARPHRD_ASH 781 /* (Nexus Electronics) Ash. */
#define ARPHRD_ECONET 782 /* Acorn Econet. */
#define ARPHRD_IRDA 783 /* Linux/IR. */
#define ARPHRD_IRDA 783 /* Linux-IrDA. */
#define ARPHRD_FCPP 784 /* Point to point fibrechanel. */
#define ARPHRD_FCAL 785 /* Fibrechanel arbitrated loop. */
#define ARPHRD_FCPL 786 /* Fibrechanel public loop. */

View file

@ -90,11 +90,7 @@ extern char *tzname[];
# define CHAR_T wchar_t
# define UCHAR_T unsigned int
# define L_(Str) L##Str
# if __BYTE_ORDER == __LITTLE_ENDIAN
# define NLW(Sym) _NL_W##Sym##_EL
# else
# define NLW(Sym) _NL_W##Sym##_EB
# endif
# define NLW(Sym) _NL_W##Sym
# define MEMCPY(d, s, n) wmemcpy (d, s, n)
# define STRLEN(s) wcslen (s)

View file

@ -37,35 +37,17 @@ cname_lookup (wint_t wc, __locale_t locale)
#ifndef USE_IN_EXTENDED_LOCALE_MODEL
extern unsigned int *__ctype_names;
# if BYTE_ORDER == BIG_ENDIAN
hash_size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_SIZE_EB);
hash_layers = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_LAYERS_EB);
# elif BYTE_ORDER == LITTLE_ENDIAN
hash_size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_SIZE_EL);
hash_layers = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_LAYERS_EL);
# else
# error bizarre byte order
# endif
hash_size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_SIZE);
hash_layers = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_LAYERS);
#else
struct locale_data *current = locale->__locales[LC_CTYPE];
# if BYTE_ORDER == BIG_ENDIAN
unsigned int *__ctype_names =
(unsigned int *) current->values[_NL_ITEM_INDEX (_NL_CTYPE_NAMES_EB)].string;
(unsigned int *) current->values[_NL_ITEM_INDEX (_NL_CTYPE_NAMES)].string;
hash_size =
current->values[_NL_ITEM_INDEX (_NL_CTYPE_HASH_SIZE_EB)].word;
current->values[_NL_ITEM_INDEX (_NL_CTYPE_HASH_SIZE)].word;
hash_layers =
current->values[_NL_ITEM_INDEX (_NL_CTYPE_HASH_LAYERS_EB)].word;
# elif BYTE_ORDER == LITTLE_ENDIAN
unsigned int *__ctype_names =
(unsigned int *) current->values[_NL_ITEM_INDEX (_NL_CTYPE_NAMES_EL)].string;
hash_size =
current->values[_NL_ITEM_INDEX (_NL_CTYPE_HASH_SIZE_EL)].word;
hash_layers =
current->values[_NL_ITEM_INDEX (_NL_CTYPE_HASH_LAYERS_EL)].word;
# else
# error bizarre byte order
# endif
current->values[_NL_ITEM_INDEX (_NL_CTYPE_HASH_LAYERS)].word;
#endif
result = wc % hash_size;