Update.
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:
parent
3e95f6602b
commit
4a33c2f55e
16
BUGS
16
BUGS
|
@ -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
|
||||
|
|
37
ChangeLog
37
ChangeLog
|
@ -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
|
||||
|
|
12
Makeconfig
12
Makeconfig
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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: "" },
|
||||
|
|
|
@ -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: "" },
|
||||
|
|
|
@ -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 }
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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" },
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>"
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue