summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-10-03 19:32:28 +0000
committerJakub Jelinek <jakub@redhat.com>2007-10-03 19:32:28 +0000
commit75cb5a0d471729d28a59b693441e2d527c9e962e (patch)
treeabac9733c1b6c0a7a9c760b7cfe2d21c672e9e90
parent441097af93882803bbb3296dd1fdbdd4a7773deb (diff)
Updated to fedora-glibc-20071003T1908cvs/fedora-glibc-2_6_90-17
-rw-r--r--ChangeLog59
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in8
-rw-r--r--iconvdata/Makefile7
-rw-r--r--iconvdata/TESTS1
-rw-r--r--iconvdata/gconv-modules7
-rw-r--r--iconvdata/iso8859-9e.c28
-rwxr-xr-xiconvdata/tst-tables.sh1
-rw-r--r--include/stdio_ext.h17
-rw-r--r--locale/iso-639.def14
-rw-r--r--locale/programs/ld-collate.c24
-rw-r--r--localedata/ChangeLog73
-rw-r--r--localedata/Makefile4
-rw-r--r--localedata/SUPPORTED20
-rw-r--r--localedata/charmaps/ISO-8859-9E263
-rw-r--r--localedata/charmaps/UTF-8445
-rw-r--r--localedata/de_DE.in6
-rw-r--r--localedata/fr_FR.in96
-rw-r--r--localedata/locales/am_ET8
-rw-r--r--localedata/locales/ber_DZ311
-rw-r--r--localedata/locales/ber_MA229
-rw-r--r--localedata/locales/cs_CZ4
-rw-r--r--localedata/locales/da_DK4
-rw-r--r--localedata/locales/en_GB3
-rw-r--r--localedata/locales/et_EE3
-rw-r--r--localedata/locales/fa_IR1
-rw-r--r--localedata/locales/fil_PH184
-rw-r--r--localedata/locales/fr_FR2
-rw-r--r--localedata/locales/fur_IT134
-rw-r--r--localedata/locales/fy_DE131
-rw-r--r--localedata/locales/ha_NG307
-rw-r--r--localedata/locales/ig_NG499
-rw-r--r--localedata/locales/ik_CA230
-rw-r--r--localedata/locales/is_IS3
-rw-r--r--localedata/locales/iso14651_t1_common216
-rw-r--r--localedata/locales/iu_CA139
-rw-r--r--localedata/locales/li_BE130
-rw-r--r--localedata/locales/li_NL131
-rw-r--r--localedata/locales/lo_LA9
-rw-r--r--localedata/locales/lv_LV1
-rw-r--r--localedata/locales/nb_NO4
-rw-r--r--localedata/locales/nds_DE129
-rw-r--r--localedata/locales/nds_NL128
-rw-r--r--localedata/locales/nn_NO3
-rw-r--r--localedata/locales/oc_FR6
-rw-r--r--localedata/locales/pap_AN153
-rw-r--r--localedata/locales/sa_IN254
-rw-r--r--localedata/locales/sc_IT134
-rw-r--r--localedata/locales/sr_CS349
-rw-r--r--localedata/locales/tk_TM448
-rw-r--r--localedata/locales/ug_CN333
-rw-r--r--localedata/locales/yo_NG511
-rw-r--r--malloc/malloc.c4
-rw-r--r--misc/sys/cdefs.h28
-rw-r--r--po/pt_BR.po2
-rw-r--r--string/bits/string3.h130
-rw-r--r--string/strcoll_l.c24
-rw-r--r--wcsmbs/bits/wchar2.h16
58 files changed, 5658 insertions, 754 deletions
diff --git a/ChangeLog b/ChangeLog
index 90fbcf68f4..cb019c5586 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,62 @@
+2007-10-03 Jakub Jelinek
+
+ * string/bits/string3.h (memcpy, memmove, mempcpy, memset, bcopy,
+ bzero, strcpy, stpcpy, strncpy, strcat, strncat): Use
+ __extern_always_inline functions unconditionally, drop macros.
+
+ * misc/sys/cdefs.h (__REDIRECT_LDBL, __REDIRECT_NTH_LDBL): New macros.
+ * wcsmbs/bits/wchar2.h (__swprintf_alias, __vswprintf_alias): Use
+ __REDIRECT_NTH_LDBL macro rather than __REDIRECT_NTH.
+
+ * misc/sys/cdefs.h (__extern_always_inline): For GCC 4.3+
+ add __artificial__ attribute.
+
+2007-10-02 Ulrich Drepper <drepper@redhat.com>
+
+ * string/strcoll_l.c (STRCOLL): Correct handling of switching from
+ backward to forward direction.
+
+ * string/strcoll_l.c (STRCOLL): Correct test for alloca use.
+
+ [BZ #645]
+ * locale/programs/ld-collate.c (collate_finish): Compare against last
+ used section which is known to have rules defined.
+ (collate_read): After order_start, correctly record order of sections
+ and queue sections up.
+
+2007-10-01 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #5071]
+ * malloc/malloc.c (mremap_chunk): Avoid resizing of new block has
+ the same number of pages.
+ Patch by Tomash Brechko <tomash.brechko@gmail.com>.
+
+ * locale/programs/ld-collate.c (collate_read): After initial copy
+ statement, continue in state 0.
+
+ * include/stdio_ext.h (__fsetlocking): Define as macro.
+
+2007-09-30 Ulrich Drepper <drepper@redhat.com>
+
+ * locale/programs/ld-collate.c (collate_finish): Compare all bytes
+ of section order.
+
+ * po/pt_BR.po: Fix typo.
+
+2007-09-29 Ulrich Drepper <drepper@redhat.com>
+
+ * iconvdata/Makefile (modules): Add ISO8859-9E.
+ (distribute): Add iso8859-9e.c.
+ (gen-8bit-gap-modules): Add iso8859-9e.
+ * iconvdata/iso8859-9e.c: New file.
+ * iconvdata/gconv-modules: Add entries for ISO-8859-9E.
+ * iconvdata/TESTS: Likewise.
+ * iconvdata/tst-tables.sh: Likewise.
+
+ * iconvdata/koi8-r.c (HAS_HOLES): Define to 0.
+
+ * locale/iso-639.def: Add several new entries.
+
2007-09-24 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/ldsodefs.h (struct dl_scope_free_list): Store
diff --git a/fedora/branch.mk b/fedora/branch.mk
index fa022f3404..29da99837f 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
glibc-base := HEAD
DIST_BRANCH := devel
COLLECTION := dist-f8
-fedora-sync-date := 2007-09-29 18:59 UTC
-fedora-sync-tag := fedora-glibc-20070929T1859
+fedora-sync-date := 2007-10-03 19:08 UTC
+fedora-sync-tag := fedora-glibc-20071003T1908
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 77bcca7199..7610eabdc0 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 16
+%define glibcrelease 17
%define run_glibc_tests 1
%define auxarches i586 i686 athlon sparcv9v sparc64v alphaev6
%define xenarches i686 athlon
@@ -1010,6 +1010,12 @@ rm -f *.filelist*
%endif
%changelog
+* Wed Oct 3 2007 Jakub Jelinek <jakub@redhat.com> 2.6.90-17
+- fix {,v}swprintf with -D_FORTIFY_SOURCE=1 -mlong-double-64 on ppc*/s390*/sparc*
+- strcoll fixes
+- misc fixes (BZ#645, BZ#5071)
+- locale fixes (BZ#4941, #299321, #203364, #196711, #236212)
+
* Sat Sep 29 2007 Jakub Jelinek <jakub@redhat.com> 2.6.90-16
- misc fixes (BZ#4963, BZ#4972, BZ#5028, BZ#5043, BZ#5058)
- improve -D_FORTIFY_SOURCE{,=2} diagnostic through warning/error
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 8256bca2fc..bf52d52f8f 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -59,7 +59,7 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
IBM1149 IBM1166 IBM1167 IBM4517 IBM4899 IBM4909 IBM4971 \
IBM5347 IBM9030 IBM9066 IBM9448 IBM12712 IBM16804 \
IBM1364 IBM1371 IBM1388 IBM1390 IBM1399 ISO_11548-1 MIK BRF \
- MAC-CENTRALEUROPE KOI8-RU
+ MAC-CENTRALEUROPE KOI8-RU ISO8859-9E
modules.so := $(addsuffix .so, $(modules))
@@ -166,7 +166,7 @@ distribute := gconv-modules extra-module.mk gap.awk gaptab.awk gconv.map \
inis-cyrillic.c iso-2022-jp.c iso-2022-kr.c iso646.c \
iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c \
iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c \
- iso8859-11.c iso8859-13.c iso8859-14.c \
+ iso8859-11.c iso8859-13.c iso8859-14.c iso8859-9e.c \
iso8859-15.c iso_2033.c iso_5427-ext.c iso_5427.c iso_5428.c \
iso_6937.c iso_6937-2.c iso_10367-box.c jis0201.c jis0201.h \
jis0208.c jis0208.h jis0212.c jis0212.h johab.c koi-8.c \
@@ -222,7 +222,8 @@ gen-8bit-modules := iso8859-2 iso8859-3 iso8859-4 iso8859-6 iso8859-9 koi-8 \
ebcdic-es-s ebcdic-fi-se ebcdic-fi-se-a ebcdic-fr \
ebcdic-is-friss ebcdic-it ebcdic-pt ebcdic-uk ebcdic-us \
ibm037 ibm038 ibm274 ibm275 ibm423 ibm500 ibm870 ibm871 \
- ibm891 ibm903 ibm904 ibm905 ibm1047 iso8859-16 viscii
+ ibm891 ibm903 ibm904 ibm905 ibm1047 iso8859-16 viscii \
+ iso8859-9e
gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \
ibm277 ibm278 ibm280 ibm281 ibm284 ibm285 ibm290 \
diff --git a/iconvdata/TESTS b/iconvdata/TESTS
index 4e1fdcd264..9284b448ef 100644
--- a/iconvdata/TESTS
+++ b/iconvdata/TESTS
@@ -39,6 +39,7 @@ ISO-8859-6 ISO-8859-6 Y UTF8
ISO-8859-7 ISO-8859-7 Y UTF8
ISO-8859-8 ISO-8859-8 Y UTF8
ISO-8859-9 ISO-8859-9 Y UTF8
+ISO-8859-9E ISO-8859-9E Y UTF8
ISO-8859-10 ISO-8859-10 Y UCS-2BE UTF8
ISO-8859-14 ISO-8859-14 Y UTF8
ISO-8859-15 ISO-8859-15 Y UTF8
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index ae4cf5fdc9..a8fcd8f0b3 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -1920,3 +1920,10 @@ module INTERNAL MAC-CENTRALEUROPE// MAC-CENTRALEUROPE 1
# from to module cost
module KOI8-RU// INTERNAL KOI8-RU 1
module INTERNAL KOI8-RU// KOI8-RU 1
+
+# from to module cost
+alias ISO_8859-9E// ISO-8859-9E//
+alias ISO8859-9E// ISO-8859-9E//
+alias ISO88599E// ISO-8859-9E//
+module ISO-8859-9E// INTERNAL ISO8859-9E 1
+module INTERNAL ISO-8859-9E// ISO8859-9E 1
diff --git a/iconvdata/iso8859-9e.c b/iconvdata/iso8859-9e.c
new file mode 100644
index 0000000000..7048edac6f
--- /dev/null
+++ b/iconvdata/iso8859-9e.c
@@ -0,0 +1,28 @@
+/* Conversion from and to ISO 8859-9E.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Get the conversion table. */
+#include <stdint.h>
+#include <iso8859-9e.h>
+
+#define CHARSET_NAME "ISO-8859-9E//"
+#define HAS_HOLES 0 /* All 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh
index b9eecd0683..f240e51f36 100755
--- a/iconvdata/tst-tables.sh
+++ b/iconvdata/tst-tables.sh
@@ -65,6 +65,7 @@ cat <<EOF |
ISO-8859-7
ISO-8859-8
ISO-8859-9
+ ISO-8859-9E
ISO-8859-10
ISO-8859-11
ISO-8859-13
diff --git a/include/stdio_ext.h b/include/stdio_ext.h
index 31c7a4e7a1..c7b77246b7 100644
--- a/include/stdio_ext.h
+++ b/include/stdio_ext.h
@@ -4,8 +4,19 @@
extern int __fsetlocking_internal (FILE *__fp, int __type) attribute_hidden;
-#ifndef NOT_IN_libc
-# define __fsetlocking(fp, type) INTUSE(__fsetlocking) (fp, type)
-#endif
+#define __fsetlocking(fp, type) \
+ ({ int __result = ((fp->_flags & _IO_USER_LOCK) \
+ ? FSETLOCKING_BYCALLER : FSETLOCKING_INTERNAL); \
+ \
+ if (type != FSETLOCKING_QUERY) \
+ { \
+ fp->_flags &= ~_IO_USER_LOCK; \
+ if (type == FSETLOCKING_BYCALLER) \
+ fp->_flags |= _IO_USER_LOCK; \
+ } \
+ \
+ __result; \
+ })
+
#endif
diff --git a/locale/iso-639.def b/locale/iso-639.def
index 0507ba5c91..80b61a35f9 100644
--- a/locale/iso-639.def
+++ b/locale/iso-639.def
@@ -17,13 +17,16 @@ DEFINE_LANGUAGE_CODE ("Afar", aa, aar, aar)
DEFINE_LANGUAGE_CODE3 ("Afrihili", afh, afh)
DEFINE_LANGUAGE_CODE ("Afrikaans", af, afr, afr)
DEFINE_LANGUAGE_CODE3 ("Afro-Asiatic (Other)", afa, afa)
+DEFINE_LANGUAGE_CODE3 ("Ainu", ain, ain)
DEFINE_LANGUAGE_CODE ("Akan", ak, aka, aka)
DEFINE_LANGUAGE_CODE3 ("Akkadian", akk, akk)
DEFINE_LANGUAGE_CODE ("Albanian", sq, sqi, alb)
DEFINE_LANGUAGE_CODE3 ("Aleut", ale, ale)
DEFINE_LANGUAGE_CODE3 ("Algonquian languages", alg, alg)
+DEFINE_LANGUAGE_CODE3 ("Southern Altai", alt, alt)
DEFINE_LANGUAGE_CODE3 ("Altaic (Other)", tut, tut)
DEFINE_LANGUAGE_CODE ("Amharic", am, amh, amh)
+DEFINE_LANGUAGE_CODE3 ("Angika", anp, anp)
DEFINE_LANGUAGE_CODE3 ("Apache languages", apa, apa)
DEFINE_LANGUAGE_CODE ("Arabic", ar, ara, ara)
DEFINE_LANGUAGE_CODE ("Aragonese", an, arg, arg)
@@ -32,6 +35,7 @@ DEFINE_LANGUAGE_CODE3 ("Arapaho", arp, arp)
DEFINE_LANGUAGE_CODE3 ("Araucanian", arn, arn)
DEFINE_LANGUAGE_CODE3 ("Arawak", arw, arw)
DEFINE_LANGUAGE_CODE ("Armenian", hy, hye, arm)
+DEFINE_LANGUAGE_CODE3 ("Aromanian; Arumanian; Macedo-Romanian", rup, rup)
DEFINE_LANGUAGE_CODE3 ("Artificial (Other)", art, art)
DEFINE_LANGUAGE_CODE ("Assamese", as, asm, asm)
DEFINE_LANGUAGE_CODE3 ("Asturian; Bable", ast, ast)
@@ -146,7 +150,9 @@ DEFINE_LANGUAGE_CODE3 ("Fon", fon, fon)
DEFINE_LANGUAGE_CODE3 ("French, Middle (ca.1400-1800)", frm, frm)
DEFINE_LANGUAGE_CODE3 ("French, Old (842-ca.1400)", fro, fro)
DEFINE_LANGUAGE_CODE ("French", fr, fra, fre)
-DEFINE_LANGUAGE_CODE ("Frisian", fy, fry, fry)
+DEFINE_LANGUAGE_CODE3 ("Northern Frisian", frr, frr)
+DEFINE_LANGUAGE_CODE3 ("Eastern Frisian", frs, frs)
+DEFINE_LANGUAGE_CODE ("Western Frisian", fy, fry, fry)
DEFINE_LANGUAGE_CODE3 ("Friulian", fur, fur)
DEFINE_LANGUAGE_CODE ("Fulah", ff, ful, ful)
DEFINE_LANGUAGE_CODE ("Gaelic; Scottish Gaelic", gd, gla, gla)
@@ -161,6 +167,7 @@ DEFINE_LANGUAGE_CODE3 ("German, Middle High (ca.1050-1500)", gmh, gmh)
DEFINE_LANGUAGE_CODE3 ("German, Old High (ca.750-1050)", goh, goh)
DEFINE_LANGUAGE_CODE3 ("Germanic (Other)", gem, gem)
DEFINE_LANGUAGE_CODE ("German", de, deu, ger)
+DEFINE_LANGUAGE_CODE3 ("Swiss German; Alemannic", gsw, gsw)
DEFINE_LANGUAGE_CODE3 ("Gilbertese", gil, gil)
DEFINE_LANGUAGE_CODE3 ("Gondi", gon, gon)
DEFINE_LANGUAGE_CODE3 ("Gorontalo", gor, gor)
@@ -220,6 +227,7 @@ DEFINE_LANGUAGE_CODE ("Kannada", kn, kan, kan)
DEFINE_LANGUAGE_CODE ("Kanuri", kr, kau, kau)
DEFINE_LANGUAGE_CODE3 ("Kara-Kalpak", kaa, kaa)
DEFINE_LANGUAGE_CODE3 ("Karachay-Balkar", krc, krc)
+DEFINE_LANGUAGE_CODE3 ("Karelian", krl, krl)
DEFINE_LANGUAGE_CODE3 ("Karen", kar, kar)
DEFINE_LANGUAGE_CODE ("Kashmiri", ks, kas, kas)
DEFINE_LANGUAGE_CODE3 ("Kashubian", csb, csb)
@@ -317,6 +325,7 @@ DEFINE_LANGUAGE_CODE3 ("Nias", nia, nia)
DEFINE_LANGUAGE_CODE3 ("Niger-Kordofanian (Other)", nic, nic)
DEFINE_LANGUAGE_CODE3 ("Nilo-Saharan (Other)", ssa, ssa)
DEFINE_LANGUAGE_CODE3 ("Niuean", niu, niu)
+DEFINE_LANGUAGE_CODE3 ("N'Ko", nqo, nqo)
DEFINE_LANGUAGE_CODE3 ("Nogai", nog, nog)
DEFINE_LANGUAGE_CODE3 ("Norse, Old", non, non)
DEFINE_LANGUAGE_CODE3 ("North American Indian", nai, nai)
@@ -405,6 +414,7 @@ DEFINE_LANGUAGE_CODE ("Sotho, Southern", st, sot, sot)
DEFINE_LANGUAGE_CODE3 ("South American Indian (Other)", sai, sai)
DEFINE_LANGUAGE_CODE3 ("Southern Sami", sma, sma)
DEFINE_LANGUAGE_CODE ("Spanish; Castilian", es, spa, spa)
+DEFINE_LANGUAGE_CODE3 ("Sranan Tongo", srn, srn)
DEFINE_LANGUAGE_CODE3 ("Sukuma", suk, suk)
DEFINE_LANGUAGE_CODE3 ("Sumerian", sux, sux)
DEFINE_LANGUAGE_CODE ("Sundanese", su, sun, sun)
@@ -412,6 +422,7 @@ DEFINE_LANGUAGE_CODE3 ("Susu", sus, sus)
DEFINE_LANGUAGE_CODE ("Swahili", sw, swa, swa)
DEFINE_LANGUAGE_CODE ("Swati", ss, ssw, ssw)
DEFINE_LANGUAGE_CODE ("Swedish", sv, swe, swe)
+DEFINE_LANGUAGE_CODE3 ("Classical Syriac", syc, syc)
DEFINE_LANGUAGE_CODE3 ("Syriac", syr, syr)
DEFINE_LANGUAGE_CODE ("Tagalog", tl, tgl, tgl)
DEFINE_LANGUAGE_CODE ("Tahitian", ty, tah, tah)
@@ -479,3 +490,4 @@ DEFINE_LANGUAGE_CODE3 ("Zenaga", zen, zen)
DEFINE_LANGUAGE_CODE ("Zhuang; Chuang", za, zha, zha)
DEFINE_LANGUAGE_CODE ("Zulu", zu, zul, zul)
DEFINE_LANGUAGE_CODE3 ("Zuni", zun, zun)
+DEFINE_LANGUAGE_CODE3 ("Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki", zza, zza)
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index feab034740..d6c3de0147 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -1545,9 +1545,10 @@ collate_finish (struct localedef_t *locale, const struct charmap_t *charmap)
or in none. */
for (i = 0; i < nrules; ++i)
for (sect = collate->sections; sect != NULL; sect = sect->next)
- if (sect->rules != NULL
+ if (sect != collate->current_section
+ && sect->rules != NULL
&& ((sect->rules[i] & sort_position)
- != (collate->sections->rules[i] & sort_position)))
+ != (collate->current_section->rules[i] & sort_position)))
{
WITH_CUR_LOCALE (error (0, 0, _("\
%s: `position' must be used for a specific level in all sections or none"),
@@ -1842,7 +1843,8 @@ symbol `%s' has the same encoding as"), (*eptr)->name);
while (osect != sect)
if (osect->rules != NULL
- && memcmp (osect->rules, sect->rules, nrules) == 0)
+ && memcmp (osect->rules, sect->rules,
+ nrules * sizeof (osect->rules[0])) == 0)
break;
else
osect = osect->next;
@@ -2659,7 +2661,6 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
if (nowtok == tok_copy)
{
- state = 2;
now = lr_token (ldfile, charmap, result, NULL, verbose);
if (now->tok != tok_string)
{
@@ -3214,13 +3215,16 @@ error while adding equivalent collating symbol"));
{
/* Insert sp in the collate->sections list,
right after collate->current_section. */
- if (collate->current_section == NULL)
- collate->current_section = sp;
- else
+ if (collate->current_section != NULL)
{
sp->next = collate->current_section->next;
collate->current_section->next = sp;
}
+ else if (collate->sections == NULL)
+ /* This is the first section to be defined. */
+ collate->sections = sp;
+
+ collate->current_section = sp;
}
/* Next should come the end of the line or a semicolon. */
@@ -3326,7 +3330,9 @@ error while adding equivalent collating symbol"));
was_ellipsis = tok_none;
}
}
- else if (state != 2 && state != 3)
+ else if (state == 0 && copy_locale == NULL)
+ goto err_label;
+ else if (state != 0 && state != 2 && state != 3)
goto err_label;
state = 3;
@@ -3795,7 +3801,7 @@ error while adding equivalent collating symbol"));
/* Next we assume `LC_COLLATE'. */
if (!ignore_content)
{
- if (state == 0)
+ if (state == 0 && copy_locale == NULL)
/* We must either see a copy statement or have
ordering values. */
lr_error (ldfile,
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 8312856633..db32361702 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,76 @@
+2007-10-02 Ulrich Drepper <drepper@redhat.com>
+
+ * charmaps/UTF-8: Fix U06FF definition. Remove double U074A
+ definition. Add U0B71 and U27C0 to U27CA definitions.
+
+ * de_DE.in: Adjust for correct handling of backward direction sorting.
+
+ * fr_FR.in: New file.
+ * Makefile: Add rules to run fr_FR sorting test.
+
+2007-10-01 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #4941]
+ * locales/oc_FR: Fix Thursday abday and August mon and abmon data.
+
+ * SUPPORTED (SUPPORTED-LOCALES): Add ber_MA.UTF-8.
+
+ * locales/am_ET (LC_COLLATE): Define new script after copy.
+
+2007-09-30 Ulrich Drepper <drepper@redhat.com>
+
+ * locales/cs_SR: Removed.
+
+ * locales/lo_LA: Add missing collating element o-e.
+
+ * locales/is_IS: Cleanup. Remove invalid collation entries.
+ * locales/lv_LV: Likewise.
+
+ * locales/fa_IR: Add missing collating element Alef-Hamza.
+
+ * locales/da_DK: Add missing collating symbol ETH.
+ * locales/nb_NO: Likewise.
+
+ * locales/sa_IN: New file.
+ * SUPPORTED (SUPPORTED-LOCALES): Add sa_IN.
+
+ * locales/fr_FR: Change thousands_sep to U0020.
+
+ * locales/cs_CZ: Sort lowercase before uppercase.
+
+ * locales/en_GB: Change first weekday and workday to Monday.
+ * locales/nb_NO: Likewise.
+ * locales/nn_NO: Likewise.
+ [BZ #4833]
+ * locales/da_DK: Likewise.
+ [BZ #4705]
+ * locales/et_EE: Likewise.
+
+ * locales/iso14651_t1_common: Add rules for Georgian.
+
+ * locales/ber_DZ: New file.
+ * locales/fil_PH: New file.
+ * locales/fur_IT: New file.
+ * locales/fy_DE: New file.
+ * locales/ha_NG: New file.
+ * locales/ig_NG: New file.
+ * locales/ik_CA: New file.
+ * locales/iu_CA: New file.
+ * locales/li_BE: New file.
+ * locales/li_NL: New file.
+ * locales/nds_DE: New file.
+ * locales/nds_NL: New file.
+ * locales/pap_AN: New file.
+ * locales/sc_IT: New file.
+ * locales/tk_TM: New file.
+ * locales/ug_CN: New file.
+ * locales/yo_NG: New file.
+ * SUPPORTED: Add the new locales.
+
+2007-09-29 Ulrich Drepper <drepper@redhat.com>
+
+ * charmaps/ISO-8859-9E: New file.
+
2007-09-28 Ulrich Drepper <drepper@redhat.com>
* charmaps/KOI8-RU: New file.
diff --git a/localedata/Makefile b/localedata/Makefile
index f599cff6eb..8d51b5a4d8 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -41,7 +41,7 @@ test-srcs := collate-test xfrm-test tst-fmon tst-rpmatch tst-trans \
tst-mbswcs1 tst-mbswcs2 tst-mbswcs3 tst-mbswcs4 tst-mbswcs5 \
tst-ctype tst-wctype tst-langinfo tst-numeric
test-input := de_DE.ISO-8859-1 en_US.ISO-8859-1 da_DK.ISO-8859-1 \
- hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 tr_TR.UTF-8
+ hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 tr_TR.UTF-8 fr_FR.UTF-8
test-input-data = $(addsuffix .in, $(basename $(test-input)))
test-output := $(foreach s, .out .xout, \
$(addsuffix $s, $(basename $(test-input))))
@@ -133,7 +133,7 @@ LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \
en_US.ISO-8859-1 ja_JP.EUC-JP da_DK.ISO-8859-1 \
hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \
vi_VN.TCVN5712-1 nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 \
- tr_TR.UTF-8 cs_CZ.UTF-8 zh_TW.EUC-TW fa_IR.UTF-8
+ tr_TR.UTF-8 cs_CZ.UTF-8 zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8
LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g')
CHARMAPS := $(shell echo "$(LOCALES)" | \
sed -e 's/[^ .]*[.]\([^ ]*\)/\1/g' -e s/SJIS/SHIFT_JIS/g)
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index 5836db2adb..44a76a0c94 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -53,6 +53,8 @@ ast_ES/ISO-8859-15 \
be_BY.UTF-8/UTF-8 \
be_BY/CP1251 \
be_BY@latin/UTF-8 \
+ber_DZ/UTF-8 \
+ber_MA/UTF-8 \
bg_BG.UTF-8/UTF-8 \
bg_BG/CP1251 \
bn_BD/UTF-8 \
@@ -117,6 +119,7 @@ en_IE.UTF-8/UTF-8 \
en_IE/ISO-8859-1 \
en_IE@euro/ISO-8859-15 \
en_IN/UTF-8 \
+en_NG/UTF-8 \
en_NZ.UTF-8/UTF-8 \
en_NZ/ISO-8859-1 \
en_PH.UTF-8/UTF-8 \
@@ -181,6 +184,7 @@ fa_IR/UTF-8 \
fi_FI.UTF-8/UTF-8 \
fi_FI/ISO-8859-1 \
fi_FI@euro/ISO-8859-15 \
+fil_PH/UTF-8 \
fo_FO.UTF-8/UTF-8 \
fo_FO/ISO-8859-1 \
fr_BE.UTF-8/UTF-8 \
@@ -196,7 +200,9 @@ fr_FR@euro/ISO-8859-15 \
fr_LU.UTF-8/UTF-8 \
fr_LU/ISO-8859-1 \
fr_LU@euro/ISO-8859-15 \
+fur_IT/UTF-8 \
fy_NL/UTF-8 \
+fy_DE/UTF-8 \
ga_IE.UTF-8/UTF-8 \
ga_IE/ISO-8859-1 \
ga_IE@euro/ISO-8859-15 \
@@ -212,6 +218,7 @@ gl_ES@euro/ISO-8859-15 \
gu_IN/UTF-8 \
gv_GB.UTF-8/UTF-8 \
gv_GB/ISO-8859-1 \
+ha_NG/UTF-8 \
he_IL.UTF-8/UTF-8 \
he_IL/ISO-8859-8 \
hi_IN/UTF-8 \
@@ -225,6 +232,8 @@ hy_AM/UTF-8 \
hy_AM.ARMSCII-8/ARMSCII-8 \
id_ID.UTF-8/UTF-8 \
id_ID/ISO-8859-1 \
+ig_NG/UTF-8 \
+ik_CA/UTF-8 \
is_IS.UTF-8/UTF-8 \
is_IS/ISO-8859-1 \
it_CH.UTF-8/UTF-8 \
@@ -232,6 +241,7 @@ it_CH/ISO-8859-1 \
it_IT.UTF-8/UTF-8 \
it_IT/ISO-8859-1 \
it_IT@euro/ISO-8859-15 \
+iu_CA/UTF-8 \
iw_IL.UTF-8/UTF-8 \
iw_IL/ISO-8859-8 \
ja_JP.EUC-JP/EUC-JP \
@@ -253,6 +263,8 @@ kw_GB/ISO-8859-1 \
ky_KG/UTF-8 \
lg_UG.UTF-8/UTF-8 \
lg_UG/ISO-8859-10 \
+li_BE/UTF-8 \
+li_NL/UTF-8 \
lo_LA/UTF-8 \
lt_LT.UTF-8/UTF-8 \
lt_LT/ISO-8859-13 \
@@ -274,6 +286,8 @@ mt_MT.UTF-8/UTF-8 \
mt_MT/ISO-8859-3 \
nb_NO.UTF-8/UTF-8 \
nb_NO/ISO-8859-1 \
+nds_DE/UTF-8 \
+nds_NL/UTF-8 \
ne_NP/UTF-8 \
nl_BE.UTF-8/UTF-8 \
nl_BE/ISO-8859-1 \
@@ -295,6 +309,7 @@ om_KE/ISO-8859-1 \
or_IN/UTF-8 \
pa_IN/UTF-8 \
pa_PK/UTF-8 \
+pap_AN/UTF-8 \
pl_PL.UTF-8/UTF-8 \
pl_PL/ISO-8859-2 \
pt_BR.UTF-8/UTF-8 \
@@ -310,6 +325,8 @@ ru_RU/ISO-8859-5 \
ru_UA.UTF-8/UTF-8 \
ru_UA/KOI8-U \
rw_RW/UTF-8 \
+sa_IN/UTF-8 \
+sc_IT/UTF-8 \
se_NO/UTF-8 \
si_LK/UTF-8 \
sid_ET/UTF-8 \
@@ -347,6 +364,7 @@ th_TH/TIS-620 \
ti_ER/UTF-8 \
ti_ET/UTF-8 \
tig_ER/UTF-8 \
+tk_TM/UTF-8 \
tl_PH.UTF-8/UTF-8 \
tl_PH/ISO-8859-1 \
tn_ZA/UTF-8 \
@@ -357,6 +375,7 @@ tr_TR/ISO-8859-9 \
ts_ZA/UTF-8 \
tt_RU.UTF-8/UTF-8 \
tt_RU@iqtelif.UTF-8/UTF-8 \
+ug_CN/UTF-8 \
uk_UA.UTF-8/UTF-8 \
uk_UA/KOI8-U \
ur_PK/UTF-8 \
@@ -373,6 +392,7 @@ xh_ZA.UTF-8/UTF-8 \
xh_ZA/ISO-8859-1 \
yi_US.UTF-8/UTF-8 \
yi_US/CP1255 \
+yo_NG/UTF-8 \
zh_CN.GB18030/GB18030 \
zh_CN.GBK/GBK \
zh_CN.UTF-8/UTF-8 \
diff --git a/localedata/charmaps/ISO-8859-9E b/localedata/charmaps/ISO-8859-9E
new file mode 100644
index 0000000000..005f1de6d3
--- /dev/null
+++ b/localedata/charmaps/ISO-8859-9E
@@ -0,0 +1,263 @@
+<code_set_name> ISO-8859-9E
+<comment_char> %
+<escape_char> /
+% version: 1.2
+
+CHARMAP
+<U0000> /x00 NULL (NUL)
+<U0001> /x01 START OF HEADING (SOH)
+<U0002> /x02 START OF TEXT (STX)
+<U0003> /x03 END OF TEXT (ETX)
+<U0004> /x04 END OF TRANSMISSION (EOT)
+<U0005> /x05 ENQUIRY (ENQ)
+<U0006> /x06 ACKNOWLEDGE (ACK)
+<U0007> /x07 BELL (BEL)
+<U0008> /x08 BACKSPACE (BS)
+<U0009> /x09 CHARACTER TABULATION (HT)
+<U000A> /x0a LINE FEED (LF)
+<U000B> /x0b LINE TABULATION (VT)
+<U000C> /x0c FORM FEED (FF)
+<U000D> /x0d CARRIAGE RETURN (CR)
+<U000E> /x0e SHIFT OUT (SO)
+<U000F> /x0f SHIFT IN (SI)
+<U0010> /x10 DATALINK ESCAPE (DLE)
+<U0011> /x11 DEVICE CONTROL ONE (DC1)
+<U0012> /x12 DEVICE CONTROL TWO (DC2)
+<U0013> /x13 DEVICE CONTROL THREE (DC3)
+<U0014> /x14 DEVICE CONTROL FOUR (DC4)
+<U0015> /x15 NEGATIVE ACKNOWLEDGE (NAK)
+<U0016> /x16 SYNCHRONOUS IDLE (SYN)
+<U0017> /x17 END OF TRANSMISSION BLOCK (ETB)
+<U0018> /x18 CANCEL (CAN)
+<U0019> /x19 END OF MEDIUM (EM)
+<U001A> /x1a SUBSTITUTE (SUB)
+<U001B> /x1b ESCAPE (ESC)
+<U001C> /x1c FILE SEPARATOR (IS4)
+<U001D> /x1d GROUP SEPARATOR (IS3)
+<U001E> /x1e RECORD SEPARATOR (IS2)
+<U001F> /x1f UNIT SEPARATOR (IS1)
+<U0020> /x20 SPACE
+<U0021> /x21 EXCLAMATION MARK
+<U0022> /x22 QUOTATION MARK
+<U0023> /x23 NUMBER SIGN
+<U0024> /x24 DOLLAR SIGN
+<U0025> /x25 PERCENT SIGN
+<U0026> /x26 AMPERSAND
+<U0027> /x27 APOSTROPHE
+<U0028> /x28 LEFT PARENTHESIS
+<U0029> /x29 RIGHT PARENTHESIS
+<U002A> /x2a ASTERISK
+<U002B> /x2b PLUS SIGN
+<U002C> /x2c COMMA
+<U002D> /x2d HYPHEN-MINUS
+<U002E> /x2e FULL STOP
+<U002F> /x2f SOLIDUS
+<U0030> /x30 DIGIT ZERO
+<U0031> /x31 DIGIT ONE
+<U0032> /x32 DIGIT TWO
+<U0033> /x33 DIGIT THREE
+<U0034> /x34 DIGIT FOUR
+<U0035> /x35 DIGIT FIVE
+<U0036> /x36 DIGIT SIX
+<U0037> /x37 DIGIT SEVEN
+<U0038> /x38 DIGIT EIGHT
+<U0039> /x39 DIGIT NINE
+<U003A> /x3a COLON
+<U003B> /x3b SEMICOLON
+<U003C> /x3c LESS-THAN SIGN
+<U003D> /x3d EQUALS SIGN
+<U003E> /x3e GREATER-THAN SIGN
+<U003F> /x3f QUESTION MARK
+<U0040> /x40 COMMERCIAL AT
+<U0041> /x41 LATIN CAPITAL LETTER A
+<U0042> /x42 LATIN CAPITAL LETTER B
+<U0043> /x43 LATIN CAPITAL LETTER C
+<U0044> /x44 LATIN CAPITAL LETTER D
+<U0045> /x45 LATIN CAPITAL LETTER E
+<U0046> /x46 LATIN CAPITAL LETTER F
+<U0047> /x47 LATIN CAPITAL LETTER G
+<U0048> /x48 LATIN CAPITAL LETTER H
+<U0049> /x49 LATIN CAPITAL LETTER I
+<U004A> /x4a LATIN CAPITAL LETTER J
+<U004B> /x4b LATIN CAPITAL LETTER K
+<U004C> /x4c LATIN CAPITAL LETTER L
+<U004D> /x4d LATIN CAPITAL LETTER M
+<U004E> /x4e LATIN CAPITAL LETTER N
+<U004F> /x4f LATIN CAPITAL LETTER O
+<U0050> /x50 LATIN CAPITAL LETTER P
+<U0051> /x51 LATIN CAPITAL LETTER Q
+<U0052> /x52 LATIN CAPITAL LETTER R
+<U0053> /x53 LATIN CAPITAL LETTER S
+<U0054> /x54 LATIN CAPITAL LETTER T
+<U0055> /x55 LATIN CAPITAL LETTER U
+<U0056> /x56 LATIN CAPITAL LETTER V
+<U0057> /x57 LATIN CAPITAL LETTER W
+<U0058> /x58 LATIN CAPITAL LETTER X
+<U0059> /x59 LATIN CAPITAL LETTER Y
+<U005A> /x5a LATIN CAPITAL LETTER Z
+<U005B> /x5b LEFT SQUARE BRACKET
+<U005C> /x5c REVERSE SOLIDUS
+<U005D> /x5d RIGHT SQUARE BRACKET
+<U005E> /x5e CIRCUMFLEX ACCENT
+<U005F> /x5f LOW LINE
+<U0060> /x60 GRAVE ACCENT
+<U0061> /x61 LATIN SMALL LETTER A
+<U0062> /x62 LATIN SMALL LETTER B
+<U0063> /x63 LATIN SMALL LETTER C
+<U0064> /x64 LATIN SMALL LETTER D
+<U0065> /x65 LATIN SMALL LETTER E
+<U0066> /x66 LATIN SMALL LETTER F
+<U0067> /x67 LATIN SMALL LETTER G
+<U0068> /x68 LATIN SMALL LETTER H
+<U0069> /x69 LATIN SMALL LETTER I
+<U006A> /x6a LATIN SMALL LETTER J
+<U006B> /x6b LATIN SMALL LETTER K
+<U006C> /x6c LATIN SMALL LETTER L
+<U006D> /x6d LATIN SMALL LETTER M
+<U006E> /x6e LATIN SMALL LETTER N
+<U006F> /x6f LATIN SMALL LETTER O
+<U0070> /x70 LATIN SMALL LETTER P
+<U0071> /x71 LATIN SMALL LETTER Q
+<U0072> /x72 LATIN SMALL LETTER R
+<U0073> /x73 LATIN SMALL LETTER S
+<U0074> /x74 LATIN SMALL LETTER T
+<U0075> /x75 LATIN SMALL LETTER U
+<U0076> /x76 LATIN SMALL LETTER V
+<U0077> /x77 LATIN SMALL LETTER W
+<U0078> /x78 LATIN SMALL LETTER X
+<U0079> /x79 LATIN SMALL LETTER Y
+<U007A> /x7a LATIN SMALL LETTER Z
+<U007B> /x7b LEFT CURLY BRACKET
+<U007C> /x7c VERTICAL LINE
+<U007D> /x7d RIGHT CURLY BRACKET
+<U007E> /x7e TILDE
+<U007F> /x7f DELETE (DEL)
+<U0080> /x80 PADDING CHARACTER (PAD)
+<U0081> /x81 HIGH OCTET PRESET (HOP)
+<U0082> /x82 BREAK PERMITTED HERE (BPH)
+<U0083> /x83 NO BREAK HERE (NBH)
+<U0084> /x84 INDEX (IND)
+<U0085> /x85 NEXT LINE (NEL)
+<U0086> /x86 START OF SELECTED AREA (SSA)
+<U0087> /x87 END OF SELECTED AREA (ESA)
+<U0088> /x88 CHARACTER TABULATION SET (HTS)
+<U0089> /x89 CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+<U008A> /x8a LINE TABULATION SET (VTS)
+<U008B> /x8b PARTIAL LINE FORWARD (PLD)
+<U008C> /x8c PARTIAL LINE BACKWARD (PLU)
+<U008D> /x8d REVERSE LINE FEED (RI)
+<U008E> /x8e SINGLE-SHIFT TWO (SS2)
+<U008F> /x8f SINGLE-SHIFT THREE (SS3)
+<U0090> /x90 DEVICE CONTROL STRING (DCS)
+<U0091> /x91 PRIVATE USE ONE (PU1)
+<U0092> /x92 PRIVATE USE TWO (PU2)
+<U0093> /x93 SET TRANSMIT STATE (STS)
+<U0094> /x94 CANCEL CHARACTER (CCH)
+<U0095> /x95 MESSAGE WAITING (MW)
+<U0096> /x96 START OF GUARDED AREA (SPA)
+<U0097> /x97 END OF GUARDED AREA (EPA)
+<U0098> /x98 START OF STRING (SOS)
+<U0099> /x99 SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+<U009A> /x9a SINGLE CHARACTER INTRODUCER (SCI)
+<U009B> /x9b CONTROL SEQUENCE INTRODUCER (CSI)
+<U009C> /x9c STRING TERMINATOR (ST)
+<U009D> /x9d OPERATING SYSTEM COMMAND (OSC)
+<U009E> /x9e PRIVACY MESSAGE (PM)
+<U009F> /x9f APPLICATION PROGRAM COMMAND (APC)
+<U00A0> /xa0 NO-BREAK SPACE
+<U017D> /xa1 LATIN CAPITAL LETTER Z WITH CARON
+<U00A2> /xa2 CENT SIGN
+<U00A3> /xa3 POUND SIGN
+<U20AC> /xa4 EURO SIGN
+<U00A5> /xa5 YEN SIGN
+<U012C> /xa6 LATIN CAPITAL LETTER I WITH BREVE
+<U00A7> /xa7 SECTION SIGN
+<U016C> /xa8 LATIN CAPITAL LETTER U WITH BREVE
+<U00A9> /xa9 COPYRIGHT SIGN
+<U01E6> /xaa LATIN CAPITAL LETTER G WITH CARON
+<U00AB> /xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U014A> /xac LATIN CAPITAL LETTER ENG
+<U00AD> /xad SOFT HYPHEN
+<U00AE> /xae REGISTERED SIGN
+<U01D1> /xaf LATIN CAPITAL LETTER O WITH CARON
+<U00B0> /xb0 DEGREE SIGN
+<U017E> /xb1 LATIN SMALL LETTER Z WITH CARON
+<U00B2> /xb2 SUPERSCRIPT TWO
+<U00B3> /xb3 SUPERSCRIPT THREE
+<U00B4> /xb4 ACUTE ACCENT
+<U00B5> /xb5 MICRO SIGN
+<U012D> /xb6 LATIN SMALL LETTER I WITH BREVE
+<U00B7> /xb7 MIDDLE DOT
+<U016D> /xb8 LATIN SMALL LETTER U WITH BREVE
+<U00B9> /xb9 SUPERSCRIPT ONE
+<U01E7> /xba LATIN SMALL LETTER G WITH CARON
+<U00BB> /xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U014B> /xbc LATIN SMALL LETTER ENG
+<U00BD> /xbd VULGAR FRACTION ONE HALF
+<U0178> /xbe LATIN CAPITAL LETTER Y WITH DIAERESIS
+<U01D2> /xbf LATIN SMALL LETTER O WITH CARON
+<U00C0> /xc0 LATIN CAPITAL LETTER A WITH GRAVE
+<U00C1> /xc1 LATIN CAPITAL LETTER A WITH ACUTE
+<U00C2> /xc2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<U00C3> /xc3 LATIN CAPITAL LETTER A WITH TILDE
+<U00C4> /xc4 LATIN CAPITAL LETTER A WITH DIAERESIS
+<U00C5> /xc5 LATIN CAPITAL LETTER A WITH RING ABOVE
+<U018F> /xc6 LATIN CAPITAL LETTER SCHWA
+<U00C7> /xc7 LATIN CAPITAL LETTER C WITH CEDILLA
+<U00C8> /xc8 LATIN CAPITAL LETTER E WITH GRAVE
+<U00C9> /xc9 LATIN CAPITAL LETTER E WITH ACUTE
+<U00CA> /xca LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<U00CB> /xcb LATIN CAPITAL LETTER E WITH DIAERESIS
+<U00CC> /xcc LATIN CAPITAL LETTER I WITH GRAVE
+<U00CD> /xcd LATIN CAPITAL LETTER I WITH ACUTE
+<U00CE> /xce LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<U00CF> /xcf LATIN CAPITAL LETTER I WITH DIAERESIS
+<U011E> /xd0 LATIN CAPITAL LETTER G WITH BREVE
+<U00D1> /xd1 LATIN CAPITAL LETTER N WITH TILDE
+<U00D2> /xd2 LATIN CAPITAL LETTER O WITH GRAVE
+<U00D3> /xd3 LATIN CAPITAL LETTER O WITH ACUTE
+<U00D4> /xd4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<U00D5> /xd5 LATIN CAPITAL LETTER O WITH TILDE
+<U00D6> /xd6 LATIN CAPITAL LETTER O WITH DIAERESIS
+<U00DD> /xd7 LATIN CAPITAL LETTER Y WITH ACUTE
+<U019F> /xd8 LATIN CAPITAL LETTER BARRED O
+<U00D9> /xd9 LATIN CAPITAL LETTER U WITH GRAVE
+<U00DA> /xda LATIN CAPITAL LETTER U WITH ACUTE
+<U00DB> /xdb LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<U00DC> /xdc LATIN CAPITAL LETTER U WITH DIAERESIS
+<U0130> /xdd LATIN CAPITAL LETTER I WITH DOT ABOVE
+<U015E> /xde LATIN CAPITAL LETTER S WITH CEDILLA
+<U00DF> /xdf LATIN SMALL LETTER SHARP S (German)
+<U00E0> /xe0 LATIN SMALL LETTER A WITH GRAVE
+<U00E1> /xe1 LATIN SMALL LETTER A WITH ACUTE
+<U00E2> /xe2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+<U00E3> /xe3 LATIN SMALL LETTER A WITH TILDE
+<U00E4> /xe4 LATIN SMALL LETTER A WITH DIAERESIS
+<U00E5> /xe5 LATIN SMALL LETTER A WITH RING ABOVE
+<U0259> /xe6 LATIN SMALL LETTER SCHWA
+<U00E7> /xe7 LATIN SMALL LETTER C WITH CEDILLA
+<U00E8> /xe8 LATIN SMALL LETTER E WITH GRAVE
+<U00E9> /xe9 LATIN SMALL LETTER E WITH ACUTE
+<U00EA> /xea LATIN SMALL LETTER E WITH CIRCUMFLEX
+<U00EB> /xeb LATIN SMALL LETTER E WITH DIAERESIS
+<U00EC> /xec LATIN SMALL LETTER I WITH GRAVE
+<U00ED> /xed LATIN SMALL LETTER I WITH ACUTE
+<U00EE> /xee LATIN SMALL LETTER I WITH CIRCUMFLEX
+<U00EF> /xef LATIN SMALL LETTER I WITH DIAERESIS
+<U011F> /xf0 LATIN SMALL LETTER G WITH BREVE
+<U00F1> /xf1 LATIN SMALL LETTER N WITH TILDE
+<U00F2> /xf2 LATIN SMALL LETTER O WITH GRAVE
+<U00F3> /xf3 LATIN SMALL LETTER O WITH ACUTE
+<U00F4> /xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U00F5> /xf5 LATIN SMALL LETTER O WITH TILDE
+<U00F6> /xf6 LATIN SMALL LETTER O WITH DIAERESIS
+<U00FD> /xf7 LATIN SMALL LETTER Y WITH ACUTE
+<U0275> /xf8 LATIN SMALL LETTER BARRED O
+<U00F9> /xf9 LATIN SMALL LETTER U WITH GRAVE
+<U00FA> /xfa LATIN SMALL LETTER U WITH ACUTE
+<U00FB> /xfb LATIN SMALL LETTER U WITH CIRCUMFLEX
+<U00FC> /xfc LATIN SMALL LETTER U WITH DIAERESIS
+<U0131> /xfd LATIN SMALL LETTER DOTLESS I
+<U015F> /xfe LATIN SMALL LETTER S WITH CEDILLA
+<U00FF> /xff LATIN SMALL LETTER Y WITH DIAERESIS
+END CHARMAP
diff --git a/localedata/charmaps/UTF-8 b/localedata/charmaps/UTF-8
index 9ab3e6cd9d..05bd81d98e 100644
--- a/localedata/charmaps/UTF-8
+++ b/localedata/charmaps/UTF-8
@@ -551,7 +551,7 @@ CHARMAP
<U021E> /xc8/x9e LATIN CAPITAL LETTER H WITH CARON
<U021F> /xc8/x9f LATIN SMALL LETTER H WITH CARON
<U0220> /xc8/xa0 LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-<U0221> /xc8/xa1 LATIN SMALL LETTER D WITH CURL
+<U0221> /xc8/xa1 LATIN SMALL LETTER D WITH CURL
<U0222> /xc8/xa2 LATIN CAPITAL LETTER OU
<U0223> /xc8/xa3 LATIN SMALL LETTER OU
<U0224> /xc8/xa4 LATIN CAPITAL LETTER Z WITH HOOK
@@ -570,34 +570,34 @@ CHARMAP
<U0231> /xc8/xb1 LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
<U0232> /xc8/xb2 LATIN CAPITAL LETTER Y WITH MACRON
<U0233> /xc8/xb3 LATIN SMALL LETTER Y WITH MACRON
-<U0234> /xc8/xb4 LATIN SMALL LETTER L WITH CURL
-<U0235> /xc8/xb5 LATIN SMALL LETTER N WITH CURL
-<U0236> /xc8/xb6 LATIN SMALL LETTER T WITH CURL
-<U0237> /xc8/xb7 LATIN SMALL LETTER DOTLESS J
-<U0238> /xc8/xb8 LATIN SMALL LETTER DB DIGRAPH
-<U0239> /xc8/xb9 LATIN SMALL LETTER QP DIGRAPH
-<U023A> /xc8/xba LATIN CAPITAL LETTER A WITH STROKE
-<U023B> /xc8/xbb LATIN CAPITAL LETTER C WITH STROKE
-<U023C> /xc8/xbc LATIN SMALL LETTER C WITH STROKE
-<U023D> /xc8/xbd LATIN CAPITAL LETTER L WITH BAR
-<U023E> /xc8/xbe LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-<U023F> /xc8/xbf LATIN SMALL LETTER S WITH SWASH TAIL
-<U0240> /xc9/x80 LATIN SMALL LETTER Z WITH SWASH TAIL
-<U0241> /xc9/x81 LATIN CAPITAL LETTER GLOTTAL STOP
-<U0242> /xc9/x82 LATIN SMALL LETTER GLOTTAL STOP
-<U0243> /xc9/x83 LATIN CAPITAL LETTER B WITH STROKE
-<U0244> /xc9/x84 LATIN CAPITAL LETTER U BAR
-<U0245> /xc9/x85 LATIN CAPITAL LETTER TURNED V
-<U0246> /xc9/x86 LATIN CAPITAL LETTER E WITH STROKE
-<U0247> /xc9/x87 LATIN SMALL LETTER E WITH STROKE
-<U0248> /xc9/x88 LATIN CAPITAL LETTER J WITH STROKE
-<U0249> /xc9/x89 LATIN SMALL LETTER J WITH STROKE
-<U024A> /xc9/x8a LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-<U024B> /xc9/x8b LATIN SMALL LETTER Q WITH HOOK TAIL
-<U024C> /xc9/x8c LATIN CAPITAL LETTER R WITH STROKE
-<U024D> /xc9/x8d LATIN SMALL LETTER R WITH STROKE
-<U024E> /xc9/x8e LATIN CAPITAL LETTER Y WITH STROKE
-<U024F> /xc9/x8f LATIN SMALL LETTER Y WITH STROKE
+<U0234> /xc8/xb4 LATIN SMALL LETTER L WITH CURL
+<U0235> /xc8/xb5 LATIN SMALL LETTER N WITH CURL
+<U0236> /xc8/xb6 LATIN SMALL LETTER T WITH CURL
+<U0237> /xc8/xb7 LATIN SMALL LETTER DOTLESS J
+<U0238> /xc8/xb8 LATIN SMALL LETTER DB DIGRAPH
+<U0239> /xc8/xb9 LATIN SMALL LETTER QP DIGRAPH
+<U023A> /xc8/xba LATIN CAPITAL LETTER A WITH STROKE
+<U023B> /xc8/xbb LATIN CAPITAL LETTER C WITH STROKE
+<U023C> /xc8/xbc LATIN SMALL LETTER C WITH STROKE
+<U023D> /xc8/xbd LATIN CAPITAL LETTER L WITH BAR
+<U023E> /xc8/xbe LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+<U023F> /xc8/xbf LATIN SMALL LETTER S WITH SWASH TAIL
+<U0240> /xc9/x80 LATIN SMALL LETTER Z WITH SWASH TAIL
+<U0241> /xc9/x81 LATIN CAPITAL LETTER GLOTTAL STOP
+<U0242> /xc9/x82 LATIN SMALL LETTER GLOTTAL STOP
+<U0243> /xc9/x83 LATIN CAPITAL LETTER B WITH STROKE
+<U0244> /xc9/x84 LATIN CAPITAL LETTER U BAR
+<U0245> /xc9/x85 LATIN CAPITAL LETTER TURNED V
+<U0246> /xc9/x86 LATIN CAPITAL LETTER E WITH STROKE
+<U0247> /xc9/x87 LATIN SMALL LETTER E WITH STROKE
+<U0248> /xc9/x88 LATIN CAPITAL LETTER J WITH STROKE
+<U0249> /xc9/x89 LATIN SMALL LETTER J WITH STROKE
+<U024A> /xc9/x8a LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+<U024B> /xc9/x8b LATIN SMALL LETTER Q WITH HOOK TAIL
+<U024C> /xc9/x8c LATIN CAPITAL LETTER R WITH STROKE
+<U024D> /xc9/x8d LATIN SMALL LETTER R WITH STROKE
+<U024E> /xc9/x8e LATIN CAPITAL LETTER Y WITH STROKE
+<U024F> /xc9/x8f LATIN SMALL LETTER Y WITH STROKE
<U0250> /xc9/x90 LATIN SMALL LETTER TURNED A
<U0251> /xc9/x91 LATIN SMALL LETTER ALPHA
<U0252> /xc9/x92 LATIN SMALL LETTER TURNED ALPHA
@@ -692,8 +692,8 @@ CHARMAP
<U02AB> /xca/xab LATIN SMALL LETTER LZ DIGRAPH
<U02AC> /xca/xac LATIN LETTER BILABIAL PERCUSSIVE
<U02AD> /xca/xad LATIN LETTER BIDENTAL PERCUSSIVE
-<U02AE> /xca/xae LATIN SMALL LETTER TURNED H WITH FISHHOOK
-<U02AF> /xca/xaf LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+<U02AE> /xca/xae LATIN SMALL LETTER TURNED H WITH FISHHOOK
+<U02AF> /xca/xaf LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
<U02B0> /xca/xb0 MODIFIER LETTER SMALL H
<U02B1> /xca/xb1 MODIFIER LETTER SMALL H WITH HOOK
<U02B2> /xca/xb2 MODIFIER LETTER SMALL J
@@ -757,23 +757,23 @@ CHARMAP
<U02EC> /xcb/xac MODIFIER LETTER VOICING
<U02ED> /xcb/xad MODIFIER LETTER UNASPIRATED
<U02EE> /xcb/xae MODIFIER LETTER DOUBLE APOSTROPHE
-<U02EF> /xcb/xaf MODIFIER LETTER LOW DOWN ARROWHEAD
-<U02F0> /xcb/xb0 MODIFIER LETTER LOW UP ARROWHEAD
-<U02F1> /xcb/xb1 MODIFIER LETTER LOW LEFT ARROWHEAD
-<U02F2> /xcb/xb2 MODIFIER LETTER LOW RIGHT ARROWHEAD
-<U02F3> /xcb/xb3 MODIFIER LETTER LOW RING
-<U02F4> /xcb/xb4 MODIFIER LETTER MIDDLE GRAVE ACCENT
-<U02F5> /xcb/xb5 MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
-<U02F6> /xcb/xb6 MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
-<U02F7> /xcb/xb7 MODIFIER LETTER LOW TILDE
-<U02F8> /xcb/xb8 MODIFIER LETTER RAISED COLON
-<U02F9> /xcb/xb9 MODIFIER LETTER BEGIN HIGH TONE
-<U02FA> /xcb/xba MODIFIER LETTER END HIGH TONE
-<U02FB> /xcb/xbb MODIFIER LETTER BEGIN LOW TONE
-<U02FC> /xcb/xbc MODIFIER LETTER END LOW TONE
-<U02FD> /xcb/xbd MODIFIER LETTER SHELF
-<U02FE> /xcb/xbe MODIFIER LETTER OPEN SHELF
-<U02FF> /xcb/xbf MODIFIER LETTER LOW LEFT ARROW
+<U02EF> /xcb/xaf MODIFIER LETTER LOW DOWN ARROWHEAD
+<U02F0> /xcb/xb0 MODIFIER LETTER LOW UP ARROWHEAD
+<U02F1> /xcb/xb1 MODIFIER LETTER LOW LEFT ARROWHEAD
+<U02F2> /xcb/xb2 MODIFIER LETTER LOW RIGHT ARROWHEAD
+<U02F3> /xcb/xb3 MODIFIER LETTER LOW RING
+<U02F4> /xcb/xb4 MODIFIER LETTER MIDDLE GRAVE ACCENT
+<U02F5> /xcb/xb5 MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
+<U02F6> /xcb/xb6 MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
+<U02F7> /xcb/xb7 MODIFIER LETTER LOW TILDE
+<U02F8> /xcb/xb8 MODIFIER LETTER RAISED COLON
+<U02F9> /xcb/xb9 MODIFIER LETTER BEGIN HIGH TONE
+<U02FA> /xcb/xba MODIFIER LETTER END HIGH TONE
+<U02FB> /xcb/xbb MODIFIER LETTER BEGIN LOW TONE
+<U02FC> /xcb/xbc MODIFIER LETTER END LOW TONE
+<U02FD> /xcb/xbd MODIFIER LETTER SHELF
+<U02FE> /xcb/xbe MODIFIER LETTER OPEN SHELF
+<U02FF> /xcb/xbf MODIFIER LETTER LOW LEFT ARROW
<U0300> /xcc/x80 COMBINING GRAVE ACCENT
<U0301> /xcc/x81 COMBINING ACUTE ACCENT
<U0302> /xcc/x82 COMBINING CIRCUMFLEX ACCENT
@@ -854,22 +854,22 @@ CHARMAP
<U034D> /xcd/x8d COMBINING LEFT RIGHT ARROW BELOW
<U034E> /xcd/x8e COMBINING UPWARDS ARROW BELOW
<U034F> /xcd/x8f COMBINING GRAPHEME JOINER
-<U0350> /xcd/x90 COMBINING RIGHT ARROWHEAD ABOVE
-<U0351> /xcd/x91 COMBINING LEFT HALF RING ABOVE
-<U0352> /xcd/x92 COMBINING FERMATA
-<U0353> /xcd/x93 COMBINING X BELOW
-<U0354> /xcd/x94 COMBINING LEFT ARROWHEAD BELOW
-<U0355> /xcd/x95 COMBINING RIGHT ARROWHEAD BELOW
-<U0356> /xcd/x96 COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
-<U0357> /xcd/x97 COMBINING RIGHT HALF RING ABOVE
-<U0358> /xcd/x98 COMBINING DOT ABOVE RIGHT
-<U0359> /xcd/x99 COMBINING ASTERISK BELOW
-<U035A> /xcd/x9a COMBINING DOUBLE RING BELOW
-<U035B> /xcd/x9b COMBINING ZIGZAG ABOVE
-<U035C> /xcd/x9c COMBINING DOUBLE BREVE BELOW
-<U035D> /xcd/x9d COMBINING DOUBLE BREVE
-<U035E> /xcd/x9e COMBINING DOUBLE MACRON
-<U035F> /xcd/x9f COMBINING DOUBLE MACRON BELOW
+<U0350> /xcd/x90 COMBINING RIGHT ARROWHEAD ABOVE
+<U0351> /xcd/x91 COMBINING LEFT HALF RING ABOVE
+<U0352> /xcd/x92 COMBINING FERMATA
+<U0353> /xcd/x93 COMBINING X BELOW
+<U0354> /xcd/x94 COMBINING LEFT ARROWHEAD BELOW
+<U0355> /xcd/x95 COMBINING RIGHT ARROWHEAD BELOW
+<U0356> /xcd/x96 COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
+<U0357> /xcd/x97 COMBINING RIGHT HALF RING ABOVE
+<U0358> /xcd/x98 COMBINING DOT ABOVE RIGHT
+<U0359> /xcd/x99 COMBINING ASTERISK BELOW
+<U035A> /xcd/x9a COMBINING DOUBLE RING BELOW
+<U035B> /xcd/x9b COMBINING ZIGZAG ABOVE
+<U035C> /xcd/x9c COMBINING DOUBLE BREVE BELOW
+<U035D> /xcd/x9d COMBINING DOUBLE BREVE
+<U035E> /xcd/x9e COMBINING DOUBLE MACRON
+<U035F> /xcd/x9f COMBINING DOUBLE MACRON BELOW
<U0360> /xcd/xa0 COMBINING DOUBLE TILDE
<U0361> /xcd/xa1 COMBINING DOUBLE INVERTED BREVE
<U0362> /xcd/xa2 COMBINING DOUBLE RIGHTWARDS ARROW BELOW
@@ -889,9 +889,9 @@ CHARMAP
<U0374> /xcd/xb4 GREEK NUMERAL SIGN
<U0375> /xcd/xb5 GREEK LOWER NUMERAL SIGN
<U037A> /xcd/xba GREEK YPOGEGRAMMENI
-<U037B> /xcd/xbb GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-<U037C> /xcd/xbc GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-<U037D> /xcd/xbd GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+<U037B> /xcd/xbb GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
+<U037C> /xcd/xbc GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
+<U037D> /xcd/xbd GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
<U037E> /xcd/xbe GREEK QUESTION MARK
<U0384> /xce/x84 GREEK TONOS
<U0385> /xce/x85 GREEK DIALYTIKA TONOS
@@ -1004,15 +1004,15 @@ CHARMAP
<U03F4> /xcf/xb4 GREEK CAPITAL THETA SYMBOL
<U03F5> /xcf/xb5 GREEK LUNATE EPSILON SYMBOL
<U03F6> /xcf/xb6 GREEK REVERSED LUNATE EPSILON SYMBOL
-<U03F7> /xcf/xb7 GREEK CAPITAL LETTER SHO
-<U03F8> /xcf/xb8 GREEK SMALL LETTER SHO
-<U03F9> /xcf/xb9 GREEK CAPITAL LUNATE SIGMA SYMBOL
-<U03FA> /xcf/xba GREEK CAPITAL LETTER SAN
-<U03FB> /xcf/xbb GREEK SMALL LETTER SAN
-<U03FC> /xcf/xbc GREEK RHO WITH STROKE SYMBOL
-<U03FD> /xcf/xbd GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-<U03FE> /xcf/xbe GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-<U03FF> /xcf/xbf GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+<U03F7> /xcf/xb7 GREEK CAPITAL LETTER SHO
+<U03F8> /xcf/xb8 GREEK SMALL LETTER SHO
+<U03F9> /xcf/xb9 GREEK CAPITAL LUNATE SIGMA SYMBOL
+<U03FA> /xcf/xba GREEK CAPITAL LETTER SAN
+<U03FB> /xcf/xbb GREEK SMALL LETTER SAN
+<U03FC> /xcf/xbc GREEK RHO WITH STROKE SYMBOL
+<U03FD> /xcf/xbd GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+<U03FE> /xcf/xbe GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+<U03FF> /xcf/xbf GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
<U0400> /xd0/x80 CYRILLIC CAPITAL LETTER IE WITH GRAVE
<U0401> /xd0/x81 CYRILLIC CAPITAL LETTER IO
<U0402> /xd0/x82 CYRILLIC CAPITAL LETTER DJE
@@ -1219,7 +1219,7 @@ CHARMAP
<U04CC> /xd3/x8c CYRILLIC SMALL LETTER KHAKASSIAN CHE
<U04CD> /xd3/x8d CYRILLIC CAPITAL LETTER EM WITH TAIL
<U04CE> /xd3/x8e CYRILLIC SMALL LETTER EM WITH TAIL
-<U04CF> /xd3/x8f CYRILLIC SMALL LETTER PALOCHKA
+<U04CF> /xd3/x8f CYRILLIC SMALL LETTER PALOCHKA
<U04D0> /xd3/x90 CYRILLIC CAPITAL LETTER A WITH BREVE
<U04D1> /xd3/x91 CYRILLIC SMALL LETTER A WITH BREVE
<U04D2> /xd3/x92 CYRILLIC CAPITAL LETTER A WITH DIAERESIS
@@ -1258,16 +1258,16 @@ CHARMAP
<U04F3> /xd3/xb3 CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
<U04F4> /xd3/xb4 CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
<U04F5> /xd3/xb5 CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-<U04F6> /xd3/xb6 CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-<U04F7> /xd3/xb7 CYRILLIC SMALL LETTER GHE WITH DESCENDER
+<U04F6> /xd3/xb6 CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+<U04F7> /xd3/xb7 CYRILLIC SMALL LETTER GHE WITH DESCENDER
<U04F8> /xd3/xb8 CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
<U04F9> /xd3/xb9 CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-<U04FA> /xd3/xba CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-<U04FB> /xd3/xbb CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-<U04FC> /xd3/xbc CYRILLIC CAPITAL LETTER HA WITH HOOK
-<U04FD> /xd3/xbd CYRILLIC SMALL LETTER HA WITH HOOK
-<U04FE> /xd3/xbe CYRILLIC CAPITAL LETTER HA WITH STROKE
-<U04FF> /xd3/xbf CYRILLIC SMALL LETTER HA WITH STROKE
+<U04FA> /xd3/xba CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+<U04FB> /xd3/xbb CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+<U04FC> /xd3/xbc CYRILLIC CAPITAL LETTER HA WITH HOOK
+<U04FD> /xd3/xbd CYRILLIC SMALL LETTER HA WITH HOOK
+<U04FE> /xd3/xbe CYRILLIC CAPITAL LETTER HA WITH STROKE
+<U04FF> /xd3/xbf CYRILLIC SMALL LETTER HA WITH STROKE
<U0500> /xd4/x80 CYRILLIC CAPITAL LETTER KOMI DE
<U0501> /xd4/x81 CYRILLIC SMALL LETTER KOMI DE
<U0502> /xd4/x82 CYRILLIC CAPITAL LETTER KOMI DJE
@@ -1284,10 +1284,10 @@ CHARMAP
<U050D> /xd4/x8d CYRILLIC SMALL LETTER KOMI SJE
<U050E> /xd4/x8e CYRILLIC CAPITAL LETTER KOMI TJE
<U050F> /xd4/x8f CYRILLIC SMALL LETTER KOMI TJE
-<U0510> /xd4/x90 CYRILLIC CAPITAL LETTER REVERSED ZE
-<U0511> /xd4/x91 CYRILLIC SMALL LETTER REVERSED ZE
-<U0512> /xd4/x92 CYRILLIC CAPITAL LETTER EL WITH HOOK
-<U0513> /xd4/x93 CYRILLIC SMALL LETTER EL WITH HOOK
+<U0510> /xd4/x90 CYRILLIC CAPITAL LETTER REVERSED ZE
+<U0511> /xd4/x91 CYRILLIC SMALL LETTER REVERSED ZE
+<U0512> /xd4/x92 CYRILLIC CAPITAL LETTER EL WITH HOOK
+<U0513> /xd4/x93 CYRILLIC SMALL LETTER EL WITH HOOK
<U0531> /xd4/xb1 ARMENIAN CAPITAL LETTER AYB
<U0532> /xd4/xb2 ARMENIAN CAPITAL LETTER BEN
<U0533> /xd4/xb3 ARMENIAN CAPITAL LETTER GIM
@@ -1391,7 +1391,7 @@ CHARMAP
<U059F> /xd6/x9f HEBREW ACCENT QARNEY PARA
<U05A0> /xd6/xa0 HEBREW ACCENT TELISHA GEDOLA
<U05A1> /xd6/xa1 HEBREW ACCENT PAZER
-<U05A2> /xd6/xa2 HEBREW ACCENT ATNAH HAFUKH
+<U05A2> /xd6/xa2 HEBREW ACCENT ATNAH HAFUKH
<U05A3> /xd6/xa3 HEBREW ACCENT MUNAH
<U05A4> /xd6/xa4 HEBREW ACCENT MAHAPAKH
<U05A5> /xd6/xa5 HEBREW ACCENT MERKHA
@@ -1415,7 +1415,7 @@ CHARMAP
<U05B7> /xd6/xb7 HEBREW POINT PATAH
<U05B8> /xd6/xb8 HEBREW POINT QAMATS
<U05B9> /xd6/xb9 HEBREW POINT HOLAM
-<U05BA> /xd6/xba HEBREW POINT HOLAM HASER FOR VAV
+<U05BA> /xd6/xba HEBREW POINT HOLAM HASER FOR VAV
<U05BB> /xd6/xbb HEBREW POINT QUBUTS
<U05BC> /xd6/xbc HEBREW POINT DAGESH OR MAPIQ
<U05BD> /xd6/xbd HEBREW POINT METEG
@@ -1426,9 +1426,9 @@ CHARMAP
<U05C2> /xd7/x82 HEBREW POINT SIN DOT
<U05C3> /xd7/x83 HEBREW PUNCTUATION SOF PASUQ
<U05C4> /xd7/x84 HEBREW MARK UPPER DOT
-<U05C5> /xd7/x85 HEBREW MARK LOWER DOT
-<U05C6> /xd7/x86 HEBREW PUNCTUATION NUN HAFUKHA
-<U05C7> /xd7/x87 HEBREW POINT QAMATS QATAN
+<U05C5> /xd7/x85 HEBREW MARK LOWER DOT
+<U05C6> /xd7/x86 HEBREW PUNCTUATION NUN HAFUKHA
+<U05C7> /xd7/x87 HEBREW POINT QAMATS QATAN
<U05D0> /xd7/x90 HEBREW LETTER ALEF
<U05D1> /xd7/x91 HEBREW LETTER BET
<U05D2> /xd7/x92 HEBREW LETTER GIMEL
@@ -1461,23 +1461,23 @@ CHARMAP
<U05F2> /xd7/xb2 HEBREW LIGATURE YIDDISH DOUBLE YOD
<U05F3> /xd7/xb3 HEBREW PUNCTUATION GERESH
<U05F4> /xd7/xb4 HEBREW PUNCTUATION GERSHAYIM
-<U0600> /xd8/x80 ARABIC NUMBER SIGN
-<U0601> /xd8/x81 ARABIC SIGN SANAH
-<U0602> /xd8/x82 ARABIC FOOTNOTE MARKER
-<U0603> /xd8/x83 ARABIC SIGN SAFHA
-<U060B> /xd8/x8B AFGHANI SIGN
+<U0600> /xd8/x80 ARABIC NUMBER SIGN
+<U0601> /xd8/x81 ARABIC SIGN SANAH
+<U0602> /xd8/x82 ARABIC FOOTNOTE MARKER
+<U0603> /xd8/x83 ARABIC SIGN SAFHA
+<U060B> /xd8/x8B AFGHANI SIGN
<U060C> /xd8/x8c ARABIC COMMA
-<U060D> /xd8/x8d ARABIC DATE SEPARATOR
-<U060E> /xd8/x8e ARABIC POETIC VERSE SIGN
-<U060F> /xd8/x8f ARABIC SIGN MISRA
-<U0610> /xd8/x90 ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
-<U0611> /xd8/x91 ARABIC SIGN ALAYHE ASSALLAM
-<U0612> /xd8/x92 ARABIC SIGN RAHMATULLAH ALAYHE
-<U0613> /xd8/x93 ARABIC SIGN RADI ALLAHOU ANHU
-<U0614> /xd8/x94 ARABIC SIGN TAKHALLUS
-<U0615> /xd8/x95 ARABIC SMALL HIGH TAH
+<U060D> /xd8/x8d ARABIC DATE SEPARATOR
+<U060E> /xd8/x8e ARABIC POETIC VERSE SIGN
+<U060F> /xd8/x8f ARABIC SIGN MISRA
+<U0610> /xd8/x90 ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
+<U0611> /xd8/x91 ARABIC SIGN ALAYHE ASSALLAM
+<U0612> /xd8/x92 ARABIC SIGN RAHMATULLAH ALAYHE
+<U0613> /xd8/x93 ARABIC SIGN RADI ALLAHOU ANHU
+<U0614> /xd8/x94 ARABIC SIGN TAKHALLUS
+<U0615> /xd8/x95 ARABIC SMALL HIGH TAH
<U061B> /xd8/x9b ARABIC SEMICOLON
-<U061E> /xd8/x9e ARABIC TRIPLE DOT PUNCTUATION MARK
+<U061E> /xd8/x9e ARABIC TRIPLE DOT PUNCTUATION MARK
<U061F> /xd8/x9f ARABIC QUESTION MARK
<U0621> /xd8/xa1 ARABIC LETTER HAMZA
<U0622> /xd8/xa2 ARABIC LETTER ALEF WITH MADDA ABOVE
@@ -1527,15 +1527,15 @@ CHARMAP
<U0653> /xd9/x93 ARABIC MADDAH ABOVE
<U0654> /xd9/x94 ARABIC HAMZA ABOVE
<U0655> /xd9/x95 ARABIC HAMZA BELOW
-<U0656> /xd9/x96 ARABIC SUBSCRIPT ALEF
-<U0657> /xd9/x97 ARABIC INVERTED DAMMA
-<U0658> /xd9/x98 ARABIC MARK NOON GHUNNA
-<U0659> /xd9/x99 ARABIC ZWARAKAY
-<U065A> /xd9/x9a ARABIC VOWEL SIGN SMALL V ABOVE
-<U065B> /xd9/x9b ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
-<U065C> /xd9/x9c ARABIC VOWEL SIGN DOT BELOW
-<U065D> /xd9/x9d ARABIC REVERSED DAMMA
-<U065E> /xd9/x9e ARABIC FATHA WITH TWO DOTS
+<U0656> /xd9/x96 ARABIC SUBSCRIPT ALEF
+<U0657> /xd9/x97 ARABIC INVERTED DAMMA
+<U0658> /xd9/x98 ARABIC MARK NOON GHUNNA
+<U0659> /xd9/x99 ARABIC ZWARAKAY
+<U065A> /xd9/x9a ARABIC VOWEL SIGN SMALL V ABOVE
+<U065B> /xd9/x9b ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
+<U065C> /xd9/x9c ARABIC VOWEL SIGN DOT BELOW
+<U065D> /xd9/x9d ARABIC REVERSED DAMMA
+<U065E> /xd9/x9e ARABIC FATHA WITH TWO DOTS
<U0660> /xd9/xa0 ARABIC-INDIC DIGIT ZERO
<U0661> /xd9/xa1 ARABIC-INDIC DIGIT ONE
<U0662> /xd9/xa2 ARABIC-INDIC DIGIT TWO
@@ -1678,8 +1678,8 @@ CHARMAP
<U06EB> /xdb/xab ARABIC EMPTY CENTRE HIGH STOP
<U06EC> /xdb/xac ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
<U06ED> /xdb/xad ARABIC SMALL LOW MEEM
-<U06EE> /xdb/xae ARABIC LETTER DAL WITH INVERTED V
-<U06EF> /xdb/xaf ARABIC LETTER REH WITH INVERTED V
+<U06EE> /xdb/xae ARABIC LETTER DAL WITH INVERTED V
+<U06EF> /xdb/xaf ARABIC LETTER REH WITH INVERTED V
<U06F0> /xdb/xb0 EXTENDED ARABIC-INDIC DIGIT ZERO
<U06F1> /xdb/xb1 EXTENDED ARABIC-INDIC DIGIT ONE
<U06F2> /xdb/xb2 EXTENDED ARABIC-INDIC DIGIT TWO
@@ -1695,7 +1695,7 @@ CHARMAP
<U06FC> /xdb/xbc ARABIC LETTER GHAIN WITH DOT BELOW
<U06FD> /xdb/xbd ARABIC SIGN SINDHI AMPERSAND
<U06FE> /xdb/xbe ARABIC SIGN SINDHI POSTPOSITION MEN
-<U066F> /xdb/xbf ARABIC LETTER DOTLESS QAF
+<U06FF> /xdb/xbf ARABIC LETTER HEH WITH INVERTED V
<U0700> /xdc/x80 SYRIAC END OF PARAGRAPH
<U0701> /xdc/x81 SYRIAC SUPRALINEAR FULL STOP
<U0702> /xdc/x82 SYRIAC SUBLINEAR FULL STOP
@@ -1740,9 +1740,9 @@ CHARMAP
<U072A> /xdc/xaa SYRIAC LETTER RISH
<U072B> /xdc/xab SYRIAC LETTER SHIN
<U072C> /xdc/xac SYRIAC LETTER TAW
-<U072D> /xdc/xad SYRIAC LETTER PERSIAN BHETH
-<U072E> /xdc/xae SYRIAC LETTER PERSIAN GHAMAL
-<U072F> /xdc/xaf SYRIAC LETTER PERSIAN DHALATH
+<U072D> /xdc/xad SYRIAC LETTER PERSIAN BHETH
+<U072E> /xdc/xae SYRIAC LETTER PERSIAN GHAMAL
+<U072F> /xdc/xaf SYRIAC LETTER PERSIAN DHALATH
<U0730> /xdc/xb0 SYRIAC PTHAHA ABOVE
<U0731> /xdc/xb1 SYRIAC PTHAHA BELOW
<U0732> /xdc/xb2 SYRIAC PTHAHA DOTTED
@@ -1770,40 +1770,39 @@ CHARMAP
<U0748> /xdd/x88 SYRIAC OBLIQUE LINE BELOW
<U0749> /xdd/x89 SYRIAC MUSIC
<U074A> /xdd/x8a SYRIAC BARREKH
-<U074A> /xdd/x8a SYRIAC BARREKH
-<U074D> /xdd/x8d SYRIAC LETTER SOGDIAN ZHAIN
-<U074E> /xdd/x8e SYRIAC LETTER SOGDIAN KHAPH
-<U074F> /xdd/x8f SYRIAC LETTER SOGDIAN FE
-<U0750> /xdd/x90 ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
-<U0751> /xdd/x91 ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
-<U0752> /xdd/x92 ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
-<U0753> /xdd/x93 ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
-<U0754> /xdd/x94 ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
-<U0755> /xdd/x95 ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
-<U0756> /xdd/x96 ARABIC LETTER BEH WITH SMALL V
-<U0757> /xdd/x97 ARABIC LETTER HAH WITH TWO DOTS ABOVE
-<U0758> /xdd/x98 ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-<U0759> /xdd/x99 ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
-<U075A> /xdd/x9a ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
-<U075B> /xdd/x9b ARABIC LETTER REH WITH STROKE
-<U075C> /xdd/x9c ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
-<U075D> /xdd/x9d ARABIC LETTER AIN WITH TWO DOTS ABOVE
-<U075E> /xdd/x9e ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
-<U075F> /xdd/x9f ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
-<U0760> /xdd/xa0 ARABIC LETTER FEH WITH TWO DOTS BELOW
-<U0761> /xdd/xa1 ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
-<U0762> /xdd/xa2 ARABIC LETTER KEHEH WITH DOT ABOVE
-<U0763> /xdd/xa3 ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
-<U0764> /xdd/xa4 ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
-<U0765> /xdd/xa5 ARABIC LETTER MEEM WITH DOT ABOVE
-<U0766> /xdd/xa6 ARABIC LETTER MEEM WITH DOT BELOW
-<U0767> /xdd/xa7 ARABIC LETTER NOON WITH TWO DOTS BELOW
-<U0768> /xdd/xa8 ARABIC LETTER NOON WITH SMALL TAH
-<U0769> /xdd/xa9 ARABIC LETTER NOON WITH SMALL V
-<U076A> /xdd/xaa ARABIC LETTER LAM WITH BAR
-<U076B> /xdd/xab ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
-<U076C> /xdd/xac ARABIC LETTER REH WITH HAMZA ABOVE
-<U076D> /xdd/xad ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
+<U074D> /xdd/x8d SYRIAC LETTER SOGDIAN ZHAIN
+<U074E> /xdd/x8e SYRIAC LETTER SOGDIAN KHAPH
+<U074F> /xdd/x8f SYRIAC LETTER SOGDIAN FE
+<U0750> /xdd/x90 ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
+<U0751> /xdd/x91 ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
+<U0752> /xdd/x92 ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
+<U0753> /xdd/x93 ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
+<U0754> /xdd/x94 ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
+<U0755> /xdd/x95 ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
+<U0756> /xdd/x96 ARABIC LETTER BEH WITH SMALL V
+<U0757> /xdd/x97 ARABIC LETTER HAH WITH TWO DOTS ABOVE
+<U0758> /xdd/x98 ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
+<U0759> /xdd/x99 ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
+<U075A> /xdd/x9a ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
+<U075B> /xdd/x9b ARABIC LETTER REH WITH STROKE
+<U075C> /xdd/x9c ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
+<U075D> /xdd/x9d ARABIC LETTER AIN WITH TWO DOTS ABOVE
+<U075E> /xdd/x9e ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
+<U075F> /xdd/x9f ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
+<U0760> /xdd/xa0 ARABIC LETTER FEH WITH TWO DOTS BELOW
+<U0761> /xdd/xa1 ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
+<U0762> /xdd/xa2 ARABIC LETTER KEHEH WITH DOT ABOVE
+<U0763> /xdd/xa3 ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
+<U0764> /xdd/xa4 ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
+<U0765> /xdd/xa5 ARABIC LETTER MEEM WITH DOT ABOVE
+<U0766> /xdd/xa6 ARABIC LETTER MEEM WITH DOT BELOW
+<U0767> /xdd/xa7 ARABIC LETTER NOON WITH TWO DOTS BELOW
+<U0768> /xdd/xa8 ARABIC LETTER NOON WITH SMALL TAH
+<U0769> /xdd/xa9 ARABIC LETTER NOON WITH SMALL V
+<U076A> /xdd/xaa ARABIC LETTER LAM WITH BAR
+<U076B> /xdd/xab ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
+<U076C> /xdd/xac ARABIC LETTER REH WITH HAMZA ABOVE
+<U076D> /xdd/xad ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
<U0780> /xde/x80 THAANA LETTER HAA
<U0781> /xde/x81 THAANA LETTER SHAVIYANI
<U0782> /xde/x82 THAANA LETTER NOONU
@@ -1854,65 +1853,65 @@ CHARMAP
<U07AF> /xde/xaf THAANA OABOAFILI
<U07B0> /xde/xb0 THAANA SUKUN
<U07B1> /xde/xb1 THAANA LETTER NAA
-<U07C0> /xdf/x80 NKO DIGIT ZERO
-<U07C1> /xdf/x81 NKO DIGIT ONE
-<U07C2> /xdf/x82 NKO DIGIT TWO
-<U07C3> /xdf/x83 NKO DIGIT THREE
-<U07C4> /xdf/x84 NKO DIGIT FOUR
-<U07C5> /xdf/x85 NKO DIGIT FIVE
-<U07C6> /xdf/x86 NKO DIGIT SIX
-<U07C7> /xdf/x87 NKO DIGIT SEVEN
-<U07C8> /xdf/x88 NKO DIGIT EIGHT
-<U07C9> /xdf/x89 NKO DIGIT NINE
-<U07CA> /xdf/x8a NKO LETTER A
-<U07CB> /xdf/x8b NKO LETTER EE
-<U07CC> /xdf/x8c NKO LETTER I
-<U07CD> /xdf/x8d NKO LETTER E
-<U07CE> /xdf/x8e NKO LETTER U
-<U07CF> /xdf/x8f NKO LETTER OO
-<U07D0> /xdf/x90 NKO LETTER O
-<U07D1> /xdf/x91 NKO LETTER DAGBASINNA
-<U07D2> /xdf/x92 NKO LETTER N
-<U07D3> /xdf/x93 NKO LETTER BA
-<U07D4> /xdf/x94 NKO LETTER PA
-<U07D5> /xdf/x95 NKO LETTER TA
-<U07D6> /xdf/x96 NKO LETTER JA
-<U07D7> /xdf/x97 NKO LETTER CHA
-<U07D8> /xdf/x98 NKO LETTER DA
-<U07D9> /xdf/x99 NKO LETTER RA
-<U07DA> /xdf/x9a NKO LETTER RRA
-<U07DB> /xdf/x9b NKO LETTER SA
-<U07DC> /xdf/x9c NKO LETTER GBA
-<U07DD> /xdf/x9d NKO LETTER FA
-<U07DE> /xdf/x9e NKO LETTER KA
-<U07DF> /xdf/x9f NKO LETTER LA
-<U07E0> /xdf/xa0 NKO LETTER NA WOLOSO
-<U07E1> /xdf/xa1 NKO LETTER MA
-<U07E2> /xdf/xa2 NKO LETTER NYA
-<U07E3> /xdf/xa3 NKO LETTER NA
-<U07E4> /xdf/xa4 NKO LETTER HA
-<U07E5> /xdf/xa5 NKO LETTER WA
-<U07E6> /xdf/xa6 NKO LETTER YA
-<U07E7> /xdf/xa7 NKO LETTER NYA WOLOSO
-<U07E8> /xdf/xa8 NKO LETTER JONA JA
-<U07E9> /xdf/xa9 NKO LETTER JONA CHA
-<U07EA> /xdf/xaa NKO LETTER JONA RA
-<U07EB> /xdf/xab NKO COMBINING SHORT HIGH TONE
-<U07EC> /xdf/xac NKO COMBINING SHORT LOW TONE
-<U07ED> /xdf/xad NKO COMBINING SHORT RISING TONE
-<U07EE> /xdf/xae NKO COMBINING LONG DESCENDING TONE
-<U07EF> /xdf/xaf NKO COMBINING LONG HIGH TONE
-<U07F0> /xdf/xb0 NKO COMBINING LONG LOW TONE
-<U07F1> /xdf/xb1 NKO COMBINING LONG RISING TONE
-<U07F2> /xdf/xb2 NKO COMBINING NASALIZATION MARK
-<U07F3> /xdf/xb3 NKO COMBINING DOUBLE DOT ABOVE
-<U07F4> /xdf/xb4 NKO HIGH TONE APOSTROPHE
-<U07F5> /xdf/xb5 NKO LOW TONE APOSTROPHE
-<U07F6> /xdf/xb6 NKO SYMBOL OO DENNEN
-<U07F7> /xdf/xb7 NKO SYMBOL GBAKURUNEN
-<U07F8> /xdf/xb8 NKO COMMA
-<U07F9> /xdf/xb9 NKO EXCLAMATION MARK
-<U07FA> /xdf/xba NKO LAJANYALAN
+<U07C0> /xdf/x80 NKO DIGIT ZERO
+<U07C1> /xdf/x81 NKO DIGIT ONE
+<U07C2> /xdf/x82 NKO DIGIT TWO
+<U07C3> /xdf/x83 NKO DIGIT THREE
+<U07C4> /xdf/x84 NKO DIGIT FOUR
+<U07C5> /xdf/x85 NKO DIGIT FIVE
+<U07C6> /xdf/x86 NKO DIGIT SIX
+<U07C7> /xdf/x87 NKO DIGIT SEVEN
+<U07C8> /xdf/x88 NKO DIGIT EIGHT
+<U07C9> /xdf/x89 NKO DIGIT NINE
+<U07CA> /xdf/x8a NKO LETTER A
+<U07CB> /xdf/x8b NKO LETTER EE
+<U07CC> /xdf/x8c NKO LETTER I
+<U07CD> /xdf/x8d NKO LETTER E
+<U07CE> /xdf/x8e NKO LETTER U
+<U07CF> /xdf/x8f NKO LETTER OO
+<U07D0> /xdf/x90 NKO LETTER O
+<U07D1> /xdf/x91 NKO LETTER DAGBASINNA
+<U07D2> /xdf/x92 NKO LETTER N
+<U07D3> /xdf/x93 NKO LETTER BA
+<U07D4> /xdf/x94 NKO LETTER PA
+<U07D5> /xdf/x95 NKO LETTER TA
+<U07D6> /xdf/x96 NKO LETTER JA
+<U07D7> /xdf/x97 NKO LETTER CHA
+<U07D8> /xdf/x98 NKO LETTER DA
+<U07D9> /xdf/x99 NKO LETTER RA
+<U07DA> /xdf/x9a NKO LETTER RRA
+<U07DB> /xdf/x9b NKO LETTER SA
+<U07DC> /xdf/x9c NKO LETTER GBA
+<U07DD> /xdf/x9d NKO LETTER FA
+<U07DE> /xdf/x9e NKO LETTER KA
+<U07DF> /xdf/x9f NKO LETTER LA
+<U07E0> /xdf/xa0 NKO LETTER NA WOLOSO
+<U07E1> /xdf/xa1 NKO LETTER MA
+<U07E2> /xdf/xa2 NKO LETTER NYA
+<U07E3> /xdf/xa3 NKO LETTER NA
+<U07E4> /xdf/xa4 NKO LETTER HA
+<U07E5> /xdf/xa5 NKO LETTER WA
+<U07E6> /xdf/xa6 NKO LETTER YA
+<U07E7> /xdf/xa7 NKO LETTER NYA WOLOSO
+<U07E8> /xdf/xa8 NKO LETTER JONA JA
+<U07E9> /xdf/xa9 NKO LETTER JONA CHA
+<U07EA> /xdf/xaa NKO LETTER JONA RA
+<U07EB> /xdf/xab NKO COMBINING SHORT HIGH TONE
+<U07EC> /xdf/xac NKO COMBINING SHORT LOW TONE
+<U07ED> /xdf/xad NKO COMBINING SHORT RISING TONE
+<U07EE> /xdf/xae NKO COMBINING LONG DESCENDING TONE
+<U07EF> /xdf/xaf NKO COMBINING LONG HIGH TONE
+<U07F0> /xdf/xb0 NKO COMBINING LONG LOW TONE
+<U07F1> /xdf/xb1 NKO COMBINING LONG RISING TONE
+<U07F2> /xdf/xb2 NKO COMBINING NASALIZATION MARK
+<U07F3> /xdf/xb3 NKO COMBINING DOUBLE DOT ABOVE
+<U07F4> /xdf/xb4 NKO HIGH TONE APOSTROPHE
+<U07F5> /xdf/xb5 NKO LOW TONE APOSTROPHE
+<U07F6> /xdf/xb6 NKO SYMBOL OO DENNEN
+<U07F7> /xdf/xb7 NKO SYMBOL GBAKURUNEN
+<U07F8> /xdf/xb8 NKO COMMA
+<U07F9> /xdf/xb9 NKO EXCLAMATION MARK
+<U07FA> /xdf/xba NKO LAJANYALAN
<U0901> /xe0/xa4/x81 DEVANAGARI SIGN CANDRABINDU
<U0902> /xe0/xa4/x82 DEVANAGARI SIGN ANUSVARA
<U0903> /xe0/xa4/x83 DEVANAGARI SIGN VISARGA
@@ -2354,6 +2353,7 @@ CHARMAP
<U0B6E> /xe0/xad/xae ORIYA DIGIT EIGHT
<U0B6F> /xe0/xad/xaf ORIYA DIGIT NINE
<U0B70> /xe0/xad/xb0 ORIYA ISSHAR
+<U0B71> /xe0/xad/xb1 ORIYA LETTER WA
<U0B82> /xe0/xae/x82 TAMIL SIGN ANUSVARA
<U0B83> /xe0/xae/x83 TAMIL SIGN VISARGA
<U0B85> /xe0/xae/x85 TAMIL LETTER A
@@ -7841,6 +7841,17 @@ CHARMAP
<U27BC> /xe2/x9e/xbc WEDGE-TAILED RIGHTWARDS ARROW
<U27BD> /xe2/x9e/xbd HEAVY WEDGE-TAILED RIGHTWARDS ARROW
<U27BE> /xe2/x9e/xbe OPEN-OUTLINED RIGHTWARDS ARROW
+<U27C0> /xe2/x9f/x80 THREE DIMENSIONAL ANGLE
+<U27C1> /xe2/x9f/x81 WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+<U27C2> /xe2/x9f/x82 PERPENDICULAR
+<U27C3> /xe2/x9f/x83 OPEN SUBSET
+<U27C4> /xe2/x9f/x84 OPEN SUPERSET
+<U27C5> /xe2/x9f/x85 LEFT S-SHAPED BAG DELIMITER
+<U27C6> /xe2/x9f/x86 RIGHT S-SHAPED BAG DELIMITER
+<U27C7> /xe2/x9f/x87 OR WITH DOT INSIDE
+<U27C8> /xe2/x9f/x88 REVERSE SOLIDUS PRECEDING SUBSET
+<U27C9> /xe2/x9f/x89 SUPERSET PRECEDING SOLIDUS
+<U27CA> /xe2/x9f/x8a VERTICAL BAR WITH HORIZONTAL STROKE
<U27D0> /xe2/x9f/x90 WHITE DIAMOND WITH CENTRED DOT
<U27D1> /xe2/x9f/x91 AND WITH DOT
<U27D2> /xe2/x9f/x92 ELEMENT OF OPENING UPWARDS
diff --git a/localedata/de_DE.in b/localedata/de_DE.in
index c56f401f64..b3b0dac29e 100644
--- a/localedata/de_DE.in
+++ b/localedata/de_DE.in
@@ -40,8 +40,8 @@ Fe (pl. of "Fu") : feet
Fussel : fluff
fusseln : to wear of fluff
feln : play footsie [under the table]
-fuen : to be based [on]
Fssen : Fssen (town)
+fuen : to be based [on]
Fen (dat. pl. of "Fu") : [to the] feet
in Massen : in large numbers
in Maen : moderately
@@ -49,9 +49,9 @@ Masern : measels
Mass. (Massachusetts) : Massachusetts (state)
Ma : measure
Masse : mass
-Mass : (particular billard stroke)
Mae (pl. of "Ma") : measures
me (pres. conj. of "messen") : take measure (e.g. in indirect speech)
+Mass : (particular billard stroke)
Massen- : mass; wholesale; bulk (in compound nouns)
massig : massive
mig : moderate; modest
@@ -60,8 +60,8 @@ Mi : Miss
Passe : yoke (of dress)
pass : over, gone
Schlagerforderung : claim, demanded in a pop song
-Schlagerfrderung : promotion of pop music
Schlgerforderung : demand of a hooligan
+Schlagerfrderung : promotion of pop music
Schlgerfrderung : promotion of hooliganism :-)
Schurz : apron
Schrze : apron
diff --git a/localedata/fr_FR.in b/localedata/fr_FR.in
new file mode 100644
index 0000000000..dd5c5330d5
--- /dev/null
+++ b/localedata/fr_FR.in
@@ -0,0 +1,96 @@
+@@@@@
+0000
+9999
+Aalborg
+aide
+aïeul
+air
+@@@air
+air@@@
+Ålborg
+août
+bohème
+Bohême
+Bohémien
+caennais
+cæsium
+çà et là
+C.A.F.
+Canon
+cañon
+casanier
+cølibat
+colon
+côlon
+coop
+co-op
+COOP
+CO-OP
+Copenhagen
+cote
+COTE
+côte
+CÔTE
+coté
+COTÉ
+côté
+CÔTÉ
+du
+dû
+élève
+élevé
+gène
+gêne
+gêné
+Größe
+Grossist
+haie
+haïe
+île
+Île d'Orléans
+lame
+l'âme
+lamé
+les
+LÈS
+lèse
+lésé
+L'Haÿ-les-Roses
+MÂCON
+maçon
+McArthur
+Mc Arthur
+Mc Mahon
+MODÈLE
+modelé
+Noël
+NOËL
+notre
+nôtre
+ode
+œil
+ou
+OÙ
+ovoïde
+pèche
+pêche
+péché
+PÉCHÉ
+pêché
+pécher
+pêcher
+pechère
+péchère
+relève
+relevé
+resume
+resumé
+résumé
+révèle
+révélé
+vice-president
+vice-président
+vice-president's offices
+vice-presidents' offices
+vice versa
+VICE-VERSA
diff --git a/localedata/locales/am_ET b/localedata/locales/am_ET
index eb40a9eac2..5aa2ca110a 100644
--- a/localedata/locales/am_ET
+++ b/localedata/locales/am_ET
@@ -56,14 +56,14 @@ END LC_IDENTIFICATION
LC_COLLATE
%
-% The ETHIOPIC script declaration must come first.
-%
-script <ETHIOPIC>
-%
% Copy the template from ISO/IEC 14651
%
copy "iso14651_t1"
%
+% The ETHIOPIC script declaration must come first.
+%
+script <ETHIOPIC>
+%
% Correcting Unicode's linguistic ordering to the traditional.
%
collating-symbol <HOY>
diff --git a/localedata/locales/ber_DZ b/localedata/locales/ber_DZ
new file mode 100644
index 0000000000..c354a05234
--- /dev/null
+++ b/localedata/locales/ber_DZ
@@ -0,0 +1,311 @@
+comment_char %
+escape_char /
+%
+% Amazigh Language Locale for Algeria (latin)
+% Source:
+% Contact: Pablo Saratxaga
+% Email: <pablo@mandrakesoft.com>
+% Language: ber
+% Territory: DZ
+% Revision: 0.1
+% Date: 2002-04-16
+% Application: general
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Amazigh language locale for Algeria (latin)"
+source ""
+address ""
+contact "Pablo Saratxaga"
+email "pablo@mandrakesoft.com"
+tel ""
+fax ""
+language "Amazigh"
+territory "Algeria"
+revision "0.1"
+date "2002-04-16"
+
+category ber_DZ:2000;LC_IDENTIFICATION
+category ber_DZ:2000;LC_CTYPE
+category ber_DZ:2000;LC_COLLATE
+category ber_DZ:2000;LC_TIME
+category ber_DZ:2000;LC_NUMERIC
+category ber_DZ:2000;LC_PAPER
+category ber_DZ:2000;LC_TELEPHONE
+category ber_DZ:2000;LC_MEASUREMENT
+category ber_DZ:2000;LC_ADDRESS
+category ber_DZ:2000;LC_MONETARY
+category ber_DZ:2000;LC_MESSAGES
+
+END LC_IDENTIFICATION
+
+%
+% TODO: check LC_COLLATE
+% TODO: fix LC_TIME, LC_MONETARY, LC_MESSAGES, LC_NAME, LC_ADDRESS
+
+LC_COLLATE
+% The latin amazigh alphabet is:
+% <a>, <eps>, <b>, <b*>, <c>, <c<>, <d>, <d-.>, <e>, <f>, <g>, <g*>, <g(>,
+% <h>, <h-.>, <i>, <j>, <k>, <k*>, <l>, <m>, <n>, <q>, <q*>, <gam>, <gam*>,
+% <r>, <r-.>, <s>, <s-.>, <t>, <t-.>, <u>, <w>, <x>, <x*>, <y>, <z>, <z-.>
+%
+% arabic alphabet:
+
+copy "iso14651_t1"
+
+collating-symbol <eps>
+%collating-symbol <b*>
+collating-symbol <c<>
+collating-symbol <d-.>
+%collating-symbol <g*>
+collating-symbol <g(>
+collating-symbol <h-.>
+%collating-symbol <k*>
+%collating-symbol <q*>
+collating-symbol <gam>
+%collating-symbol <gam*>
+collating-symbol <r-.>
+collating-symbol <s-.>
+collating-symbol <t-.>
+%collating-symbol <x*>
+collating-symbol <z-.>
+
+reorder-after <a>
+<eps>
+%reorder-after <b>
+%<b*>
+reorder-after <c>
+<c<>
+reorder-after <d>
+<d-.>
+reorder-after <g>
+%<g*>
+<g(>
+reorder-after <h>
+<h-.>
+%reorder-after <k>
+%<k*>
+reorder-after <q>
+%<q*>
+<gam>
+%<gam*>
+reorder-after <r>
+<r-.>
+reorder-after <s>
+<s-.>
+reorder-after <t>
+<t-.>
+%reorder-after <x>
+%<x*>
+reorder-after <z>
+<z-.>
+
+reorder-after <U0061>
+<U025B> <eps>;<PCL>;<MIN>;IGNORE
+reorder-after <U0041>
+<U0190> <eps>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U0063>
+<U010D> <c<>;<CAR>;<MIN>;IGNORE
+reorder-after <U0043>
+<U010C> <c<>;<CAR>;<CAP>;IGNORE
+
+reorder-after <U0064>
+<U1E0D> <d-.>;<PCT>;<MIN>;IGNORE
+reorder-after <U0044>
+<U1E0C> <d-.>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U0067>
+<U011F> <g(>;<BRE>;<MIN>;IGNORE
+reorder-after <U0047>
+<U011E> <g(>;<BRE>;<CAP>;IGNORE
+
+reorder-after <U0068>
+<U1E25> <h-.>;<PCT>;<MIN>;IGNORE
+reorder-after <U0048>
+<U1E24> <h-.>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U0071>
+<U0263> <gam>;<PCL>;<MIN>;IGNORE
+reorder-after <U0051>
+<U0194> <gam>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U0072>
+<U1E5B> <r-.>;<PCT>;<MIN>;IGNORE
+reorder-after <U0052>
+<U1E5A> <r-.>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U0073>
+<U1E63> <s-.>;<PCT>;<MIN>;IGNORE
+reorder-after <U0053>
+<U1E62> <s-.>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U0074>
+<U1E6D> <t-.>;<PCT>;<MIN>;IGNORE
+reorder-after <U0054>
+<U1E6C> <t-.>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U007A>
+<U1E93> <z-.>;<PCT>;<MIN>;IGNORE
+reorder-after <U005A>
+<U1E92> <z-.>;<PCT>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_MESSAGES
+% FIXME: yes/no
+yesstr "<U0062><U0259><U006C><U0069>"
+nostr "<U0079><U006F><U0078>"
+yesexpr "<U005E><U005B><U0042><U0062><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U0059><U0079><U004E><U006E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+% This is the POSIX Locale definition the LC_MONETARY category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+int_curr_symbol "<U0044><U005A><U0044><U0020>"
+currency_symbol "<U062F><U002E><U062C><U002E>"
+mon_decimal_point "<U002E>"
+mon_thousands_sep "<U002C>"
+mon_grouping 3
+positive_sign ""
+negative_sign "<U002D>"
+int_frac_digits 3
+frac_digits 3
+p_cs_precedes 1
+p_sep_by_space 1
+n_cs_precedes 1
+n_sep_by_space 1
+p_sign_posn 1
+n_sign_posn 2
+%
+END LC_MONETARY
+
+
+LC_NUMERIC
+% This is the POSIX Locale definition for the LC_NUMERIC category.
+%
+decimal_point "<U002E>"
+thousands_sep "<U002C>"
+grouping 3
+%
+END LC_NUMERIC
+
+% FIXME
+LC_TIME
+day "<U0062><U0061><U007A><U0061><U0072><U0020><U0067><U00FC><U006E><U00FC>";/
+ "<U0062><U0069><U0072><U0069><U006E><U0063><U0069><U0020><U0067><U00FC><U006E>";/
+ "<U0069><U006B><U0069><U006E><U0063><U0069><U0020><U0067><U00FC><U006E>";/
+ "<U00FC><U00E7><U00FC><U006E><U0063><U00FC><U0020><U0067><U00FC><U006E>";/
+ "<U0064><U00F6><U0072><U0064><U00FC><U006E><U0063><U00FC><U0020><U0067><U00FC><U006E>";/
+ "<U0062><U0065><U015F><U0069><U006E><U0063><U0069><U0020><U0067><U00FC><U006E>";/
+ "<U0061><U006C><U0074><U0131><U006E><U0063><U0131><U0020><U0067><U00FC><U006E>"
+abday "<U0062><U0061><U007A>";/
+ "<U0062><U0069><U0072>";/
+ "<U0069><U006B><U0069>";/
+ "<U00FC><U00E7><U00FC>";/
+ "<U0064><U00F6><U0072>";/
+ "<U0062><U0065><U015F>";/
+ "<U0061><U006C><U0074>"
+mon "<U0079><U0061><U006E><U0076><U0061><U0072>";/
+ "<U0066><U0065><U0076><U0072><U0061><U006C>";/
+ "<U006D><U0061><U0072><U0074>";/
+ "<U0061><U0070><U0072><U0065><U006C>";/
+ "<U006D><U0061><U0079>";/
+ "<U0069><U0079><U0075><U006E>";/
+ "<U0069><U0079><U0075><U006C>";/
+ "<U0061><U0076><U0071><U0075><U0073><U0074>";/
+ "<U0073><U0065><U006E><U0074><U0079><U0061><U0062><U0072>";/
+ "<U006F><U006B><U0074><U0079><U0061><U0062><U0072>";/
+ "<U006E><U006F><U0079><U0061><U0062><U0072>";/
+ "<U0064><U0065><U006B><U0061><U0062><U0072>"
+abmon "<U0059><U0061><U006E>";/
+ "<U0046><U0065><U0076>";/
+ "<U004D><U0061><U0072>";/
+ "<U0041><U0070><U0072>";/
+ "<U004D><U0061><U0079>";/
+ "<U0130><U0079><U006E>";/
+ "<U0130><U0079><U006C>";/
+ "<U0041><U0076><U0071>";/
+ "<U0053><U0065><U006E>";/
+ "<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0079>";/
+ "<U0044><U0065><U006B>"
+d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+END LC_TIME
+
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_NAME category.
+%
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen "<U002D><U0073><U0061><U006E>"
+name_mr "<U004D><U0072><U002E>"
+name_mrs "<U004D><U0072><U0073><U002E>"
+name_miss "<U004D><U0069><U0073><U0073><U002E>"
+name_ms "<U004D><U0073><U002E>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_ADDRESS
+postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+
+%country_name ""
+%country_post ""
+country_ab2 "<U0044><U005A>"
+country_ab3 "<U0044><U005A><U0041>"
+country_num 12
+%country_isbn ""
+%country_car ""
+lang_name "<U0074><U0061><U006D><U0061><U007A><U0069><U0067><U0068><U0074>"
+%lang_ab
+lang_term "<U0062><U0065><U0072>"
+lang_lib "<U0062><U0065><U0072>"
+
+
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+% This is the ISO_IEC TR14652 Locale definition for the
+%
+tel_int_fmt "<U002B><U0025><U0063><U0020><U003B><U0025><U0061><U0020>/
+<U003B><U0025><U006C>"
+int_prefix "<U0032><U0031><U0033>"
+
+END LC_TELEPHONE
+
+
diff --git a/localedata/locales/ber_MA b/localedata/locales/ber_MA
new file mode 100644
index 0000000000..31ce069138
--- /dev/null
+++ b/localedata/locales/ber_MA
@@ -0,0 +1,229 @@
+comment_char %
+escape_char /
+%
+% Amazigh Language Locale for Morocco (tifinagh)
+% Source:
+% Contact: Pablo Saratxaga
+% Email: <pablo@mandrakesoft.com>
+% Language: ber
+% Territory: MA
+% Revision: 0.1
+% Date: 2004-06-26
+% Application: general
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Amazigh language locale for Morocco (tifinagh)"
+source ""
+address ""
+contact "Pablo Saratxaga"
+email "pablo@mandrakesoft.com"
+tel ""
+fax ""
+language "Amazigh"
+territory "Morocco"
+revision "0.1"
+date "2002-06-26"
+
+category ber_MA:2000;LC_IDENTIFICATION
+category ber_MA:2000;LC_CTYPE
+category ber_MA:2000;LC_COLLATE
+category ber_MA:2000;LC_TIME
+category ber_MA:2000;LC_NUMERIC
+category ber_MA:2000;LC_PAPER
+category ber_MA:2000;LC_TELEPHONE
+category ber_MA:2000;LC_MEASUREMENT
+category ber_MA:2000;LC_ADDRESS
+category ber_MA:2000;LC_MONETARY
+category ber_MA:2000;LC_MESSAGES
+
+END LC_IDENTIFICATION
+
+%
+% TODO: fix LC_TIME, LC_MONETARY, LC_MESSAGES, LC_NAME, LC_ADDRESS
+
+LC_COLLATE
+
+copy "iso14651_t1"
+
+collating-symbol <TIF-GW>
+collating-symbol <TIF-KW>
+
+collating-element <TIF-G-W> from "<U2D33><U2D6F>"
+collating-element <TIF-K-W> from "<U2D3D><U2D6F>"
+
+reorder-after <TIF-G>
+<TIF-GW>
+reorder-after <TIF-K>
+<TIF-KW>
+reorder-after <U2D33>
+<TIF-G-W> <TIF-GW>;<PCT>;<MIN>;IGNORE
+reorder-after <U2D37>
+<U2D35> "<TIF-D><TIF-J>";"<LIG><PCL>";"<MIN><MIN>";IGNORE
+<U2D36> "<TIF-D><TIF-J>";"<LIG><LIG>";"<MIN><MIN>";IGNORE
+reorder-after <U2D3D>
+<TIF-K-W> <TIF-KW>;<PCT>;<MIN>;IGNORE
+reorder-after <U2D5C>
+<U2D5E> "<TIF-T><TIF-C>";"<LIG><LIG>";"<MIN><MIN>";IGNORE
+reorder-end
+
+% Moroccan sorting standard requires tifinagh to come
+% before latin script
+reorder-sections-after <SPECIAL>
+<TIFINAGH>
+reorder-sections-end
+END LC_COLLATE
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_MESSAGES
+% FIXME: yes/no
+yesstr "<U0062><U0259><U006C><U0069>"
+nostr "<U0079><U006F><U0078>"
+yesexpr "<U005E><U005B><U0042><U0062><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U0059><U0079><U004E><U006E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+% This is the POSIX Locale definition the LC_MONETARY category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+int_curr_symbol "<U004D><U0041><U0044><U0020>"
+currency_symbol "<U2D37><U002E><U2D4E><U002E>"
+mon_decimal_point "<U002E>"
+mon_thousands_sep "<U002C>"
+mon_grouping 3
+positive_sign ""
+negative_sign "<U002D>"
+int_frac_digits 3
+frac_digits 3
+p_cs_precedes 1
+p_sep_by_space 1
+n_cs_precedes 1
+n_sep_by_space 1
+p_sign_posn 1
+n_sign_posn 2
+%
+END LC_MONETARY
+
+
+LC_NUMERIC
+% This is the POSIX Locale definition for the LC_NUMERIC category.
+%
+decimal_point "<U002E>"
+thousands_sep "<U002C>"
+grouping 3
+%
+END LC_NUMERIC
+
+% FIXME
+LC_TIME
+day "<U0062><U0061><U007A><U0061><U0072><U0020><U0067><U00FC><U006E><U00FC>";/
+ "<U0062><U0069><U0072><U0069><U006E><U0063><U0069><U0020><U0067><U00FC><U006E>";/
+ "<U0069><U006B><U0069><U006E><U0063><U0069><U0020><U0067><U00FC><U006E>";/
+ "<U00FC><U00E7><U00FC><U006E><U0063><U00FC><U0020><U0067><U00FC><U006E>";/
+ "<U0064><U00F6><U0072><U0064><U00FC><U006E><U0063><U00FC><U0020><U0067><U00FC><U006E>";/
+ "<U0062><U0065><U015F><U0069><U006E><U0063><U0069><U0020><U0067><U00FC><U006E>";/
+ "<U0061><U006C><U0074><U0131><U006E><U0063><U0131><U0020><U0067><U00FC><U006E>"
+abday "<U0062><U0061><U007A>";/
+ "<U0062><U0069><U0072>";/
+ "<U0069><U006B><U0069>";/
+ "<U00FC><U00E7><U00FC>";/
+ "<U0064><U00F6><U0072>";/
+ "<U0062><U0065><U015F>";/
+ "<U0061><U006C><U0074>"
+mon "<U0079><U0061><U006E><U0076><U0061><U0072>";/
+ "<U0066><U0065><U0076><U0072><U0061><U006C>";/
+ "<U006D><U0061><U0072><U0074>";/
+ "<U0061><U0070><U0072><U0065><U006C>";/
+ "<U006D><U0061><U0079>";/
+ "<U0069><U0079><U0075><U006E>";/
+ "<U0069><U0079><U0075><U006C>";/
+ "<U0061><U0076><U0071><U0075><U0073><U0074>";/
+ "<U0073><U0065><U006E><U0074><U0079><U0061><U0062><U0072>";/
+ "<U006F><U006B><U0074><U0079><U0061><U0062><U0072>";/
+ "<U006E><U006F><U0079><U0061><U0062><U0072>";/
+ "<U0064><U0065><U006B><U0061><U0062><U0072>"
+abmon "<U0059><U0061><U006E>";/
+ "<U0046><U0065><U0076>";/
+ "<U004D><U0061><U0072>";/
+ "<U0041><U0070><U0072>";/
+ "<U004D><U0061><U0079>";/
+ "<U0130><U0079><U006E>";/
+ "<U0130><U0079><U006C>";/
+ "<U0041><U0076><U0071>";/
+ "<U0053><U0065><U006E>";/
+ "<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0079>";/
+ "<U0044><U0065><U006B>"
+d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+END LC_TIME
+
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_NAME category.
+%
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen "<U002D><U0073><U0061><U006E>"
+name_mr "<U004D><U0072><U002E>"
+name_mrs "<U004D><U0072><U0073><U002E>"
+name_miss "<U004D><U0069><U0073><U0073><U002E>"
+name_ms "<U004D><U0073><U002E>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_ADDRESS
+postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+
+%country_name ""
+%country_post ""
+country_ab2 "<U004D><U0041>"
+country_ab3 "<U004D><U0041><U0052>"
+country_num 504
+%country_isbn ""
+%country_car ""
+lang_name "<U2D5C><U2D30><U2D4E><U2D30><U2D49><U2D56><U2D5C>"
+% lang_ab
+lang_term "<U0062><U0065><U0072>"
+lang_lib "<U0062><U0065><U0072>"
+
+
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+% This is the ISO_IEC TR14652 Locale definition for the
+%
+tel_int_fmt "<U002B><U0025><U0063><U0020><U003B><U0025><U0061><U0020>/
+<U003B><U0025><U006C>"
+int_prefix "<U0032><U0031><U0032>"
+
+END LC_TELEPHONE
diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ
index 5d279187eb..059776a054 100644
--- a/localedata/locales/cs_CZ
+++ b/localedata/locales/cs_CZ
@@ -301,10 +301,10 @@ order_start forward;forward;forward;forward
% <CAPITAL> or <SMALL> letters first:
-<CAPITAL>
-<CAPITAL-SMALL>
<SMALL-CAPITAL>
<SMALL>
+<CAPITAL>
+<CAPITAL-SMALL>
% Accents:
% Poad akcent: nahoe, dole, vzadu, vpedu, uvnit nebo pes psmeno
diff --git a/localedata/locales/da_DK b/localedata/locales/da_DK
index 6f792a6c9f..ce77e72071 100644
--- a/localedata/locales/da_DK
+++ b/localedata/locales/da_DK
@@ -66,6 +66,7 @@ collating-symbol <MIN-CAP>
collating-symbol <ae>
collating-symbol <o-stroke>
collating-symbol <a-ring>
+collating-symbol <ETH>
reorder-after <RES-1>
<CAP>
@@ -208,6 +209,9 @@ t_fmt_ampm ""
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971201;4
+first_weekday 1
+first_workday 1
END LC_TIME
LC_MESSAGES
diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB
index a42fb6a8d9..d984f42ca8 100644
--- a/localedata/locales/en_GB
+++ b/localedata/locales/en_GB
@@ -121,6 +121,9 @@ t_fmt_ampm "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U00
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971201;4
+first_weekday 1
+first_workday 1
END LC_TIME
LC_MESSAGES
diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE
index e44e0c88c7..e4bfcd5570 100644
--- a/localedata/locales/et_EE
+++ b/localedata/locales/et_EE
@@ -2196,6 +2196,9 @@ t_fmt_ampm ""
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971201;4
+first_weekday 1
+first_workday 1
END LC_TIME
LC_MESSAGES
diff --git a/localedata/locales/fa_IR b/localedata/locales/fa_IR
index 8250d7b0dc..23e5dbd93b 100644
--- a/localedata/locales/fa_IR
+++ b/localedata/locales/fa_IR
@@ -101,6 +101,7 @@ collating-symbol <ALT1>
collating-symbol <ALT2>
collating-element <Alef-Madda> from "<U0627><U0653>"
+collating-element <Alef-Hamza> from "<U0627><U0654>"
collating-element <Alef-HamzaBelow> from "<U0627><U0655>"
collating-element <Waw-Hamza> from "<U0648><U0654>"
collating-element <AlefMaksura-Hamza> from "<U0649><U0654>"
diff --git a/localedata/locales/fil_PH b/localedata/locales/fil_PH
new file mode 100644
index 0000000000..799a43c3de
--- /dev/null
+++ b/localedata/locales/fil_PH
@@ -0,0 +1,184 @@
+comment_char %
+escape_char /
+%
+% Filipino Language Locale for Philippines
+% Source:
+% Contact: Rene Torres, Pablo Saratxaga
+% Email: <rgtorre@rocketmail.com>, <pablo@mandrakesoft.com>
+% Language: fil
+% Territory: PH
+% Revision: 0.5
+% Date: 2005-02-02
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Filipino language locale for Philippines"
+source "Rene Torres"
+address ""
+contact "Rene Torres, Pablo Saratxaga"
+email "rgtorre@rocketmail.com, pablo@mandrakesoft.com"
+tel ""
+fax ""
+language "Filipino"
+territory "Philippines"
+revision "0.5"
+date "2005-02-02"
+
+category ph_PH:2000;LC_IDENTIFICATION
+category ph_PH:2000;LC_CTYPE
+category ph_PH:2000;LC_COLLATE
+category ph_PH:2000;LC_TIME
+category ph_PH:2000;LC_NUMERIC
+category ph_PH:2000;LC_PAPER
+category ph_PH:2000;LC_TELEPHONE
+category ph_PH:2000;LC_MEASUREMENT
+category ph_PH:2000;LC_ADDRESS
+category ph_PH:2000;LC_MESSAGES
+category ph_PH:2000;LC_MONETARY
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "tl_PH"
+END LC_CTYPE
+
+LC_COLLATE
+copy "iso14651_t1"
+
+% a b c d e f g h i j k l m n n~ ng o p q r s t u v w x y z
+
+collating-symbol <n-g-ph>
+collating-element <N-G> from "<U004E><U0047>"
+collating-element <n-g> from "<U006E><U0067>"
+collating-element <N-g> from "<U004E><U0067>"
+collating-element <n-G> from "<U006E><U0047>"
+collating-symbol <ntilde>
+
+collating-symbol <CAP-MIN>
+collating-symbol <MIN-CAP>
+
+reorder-after <MIN>
+<MIN-CAP>
+reorder-after <CAP>
+<CAP-MIN>
+
+reorder-after <n>
+<ntilde>
+<n-g-ph>
+
+reorder-after <U006E>
+<U00F1> <ntilde>;<TIL>;<MIN>;IGNORE
+<n-g> <n-g-ph>;<PCT>;<MIN>;IGNORE
+<n-G> <n-g-ph>;<PCT>;<MIN-CAP>;IGNORE
+reorder-after <U004E>
+<U00D1> <ntilde>;<TIL>;<CAP>;IGNORE
+<N-G> <n-g-ph>;<PCT>;<CAP>;IGNORE
+<N-g> <n-g-ph>;<PCT>;<CAP-MIN>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_MONETARY
+int_curr_symbol "<U0050><U0048><U0050><U0020>"
+currency_symbol "<U0050><U0068><U0050>"
+mon_decimal_point "<U002E>"
+mon_thousands_sep "<U002C>"
+mon_grouping 3;3
+positive_sign ""
+negative_sign "<U002D>"
+int_frac_digits 2
+frac_digits 2
+p_cs_precedes 1
+p_sep_by_space 0
+n_cs_precedes 1
+n_sep_by_space 1
+p_sign_posn 1
+n_sign_posn 1
+END LC_MONETARY
+
+LC_NUMERIC
+copy "tl_PH"
+END LC_NUMERIC
+
+LC_TIME
+abday "<U004C><U0069><U006E>";"<U004C><U0075><U006E>";/
+ "<U004D><U0061><U0072>";"<U004D><U0069><U0079>";/
+ "<U0048><U0075><U0077>";"<U0042><U0069><U0079>";/
+ "<U0053><U0061><U0062>"
+day "<U004C><U0069><U006E><U0067><U0067><U006F>";/
+ "<U004C><U0075><U006E><U0065><U0073>";/
+ "<U004D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U004D><U0069><U0079><U0065><U0072><U006B><U006F><U006C><U0065><U0073>";/
+ "<U0048><U0075><U0077><U0065><U0062><U0065><U0073>";/
+ "<U0042><U0069><U0079><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0053><U0061><U0062><U0061><U0064><U006F>"
+abmon "<U0045><U006E><U0065>";"<U0050><U0065><U0062>";/
+ "<U004D><U0061><U0072>";"<U0041><U0062><U0072>";/
+ "<U004D><U0061><U0079>";"<U0048><U0075><U006E>";/
+ "<U0048><U0075><U006C>";"<U0041><U0067><U006F>";/
+ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0062>";"<U0044><U0069><U0073>"
+mon "<U0045><U006E><U0065><U0072><U006F>";/
+ "<U0050><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U004D><U0061><U0072><U0073><U006F>";/
+ "<U0041><U0062><U0072><U0069><U006C>";/
+ "<U004D><U0061><U0079><U006F>";/
+ "<U0048><U0075><U006E><U0079><U006F>";/
+ "<U0048><U0075><U006C><U0079><U006F>";/
+ "<U0041><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0053><U0065><U0070><U0074><U0069><U0079><U0065><U006D><U0062><U0072><U0065>";/
+ "<U004F><U006B><U0074><U0075><U0062><U0072><U0065>";/
+ "<U004E><U006F><U0062><U0069><U0079><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0044><U0069><U0073><U0079><U0065><U006D><U0062><U0072><U0065>"
+%
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
+t_fmt "<U0025><U0072>"
+am_pm "<U004E><U002E><U0055><U002E>";"<U004E><U002E><U0048><U002E>"
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+END LC_TIME
+
+LC_MESSAGES
+yesstr "<U006F><U006F>"
+nostr "<U0068><U0069><U006E><U0064><U0069>"
+yesexpr "<U005B><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005B><U0068><U0048><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_NAME
+% format: %d%t%g%t%m%t%f
+name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% empty
+name_gen ""
+% "G."
+name_mr "<U0047><U002E>"
+% "Gng."
+name_mrs "<U0047><U006E><U0067><U002E>"
+% "Bb."
+name_ms "<U0042><U0062><U002E>"
+% "Bb."
+name_miss "<U0042><U0062><U002E>"
+END LC_NAME
+
+LC_ADDRESS
+copy "tl_PH"
+END LC_ADDRESS
+
+LC_TELEPHONE
+copy "tl_PH"
+END LC_TELEPHONE
+
diff --git a/localedata/locales/fr_FR b/localedata/locales/fr_FR
index e1de5da920..a9845fda11 100644
--- a/localedata/locales/fr_FR
+++ b/localedata/locales/fr_FR
@@ -87,7 +87,7 @@ END LC_MONETARY
LC_NUMERIC
decimal_point "<U002C>"
-thousands_sep ""
+thousands_sep "<U0020>"
grouping 0;0
END LC_NUMERIC
diff --git a/localedata/locales/fur_IT b/localedata/locales/fur_IT
new file mode 100644
index 0000000000..f9c4bd3fc9
--- /dev/null
+++ b/localedata/locales/fur_IT
@@ -0,0 +1,134 @@
+comment_char %
+escape_char /
+%
+% Furlan Language Locale for Italy
+% Language: fur
+% Territory: IT
+% Revision: 0.3
+% Date: 2004-04-26
+% Users: general
+% Charset: ISO-8859-1
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Furlan locale for Italy"
+source ""
+address ""
+contact "Pablo Saratxaga"
+email "pablo@mandrakesoft.com"
+tel ""
+fax ""
+language "Furlan"
+territory "Italy"
+revision "0.3"
+date "2004-04-26"
+%
+category "fur_IT:2000";LC_IDENTIFICATION
+category "fur_IT:2000";LC_CTYPE
+category "fur_IT:2000";LC_COLLATE
+category "fur_IT:2000";LC_TIME
+category "fur_IT:2000";LC_NUMERIC
+category "fur_IT:2000";LC_MONETARY
+category "fur_IT:2000";LC_MESSAGES
+category "fur_IT:2000";LC_PAPER
+category "fur_IT:2000";LC_NAME
+category "fur_IT:2000";LC_ADDRESS
+category "fur_IT:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "it_IT"
+END LC_CTYPE
+
+LC_COLLATE
+copy "iso14651_t1"
+
+collating-symbol <c,>
+
+reorder-after <c>
+<c,>
+
+reorder-after <U0063>
+<U00E7> <c,>;<CDI>;<MIN>;IGNORE
+reorder-after <U0043>
+<U00C7> <c,>;<CDI>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0073><U0053><U006A><U004A><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "it_IT"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "it_IT"
+END LC_NUMERIC
+
+LC_TIME
+abday "<U0044><U006F><U006D>";"<U004C><U0075><U006E>";/
+ "<U004D><U0061><U0072>";"<U004D><U0069><U0061>";/
+ "<U004A><U006F><U0069>";"<U0056><U0069><U006E>";/
+ "<U0053><U0061><U0062>"
+day "<U0044><U006F><U006D><U0065><U006E><U0069><U0065>";/
+ "<U004C><U0075><U006E><U0069><U0073>";/
+ "<U004D><U0061><U0072><U0074><U0061><U0072><U0073>";/
+ "<U004D><U0069><U0061><U0072><U0063><U0075><U0073>";/
+ "<U004A><U006F><U0069><U0062><U0065>";/
+ "<U0056><U0069><U006E><U0061><U0072><U0073>";/
+ "<U0053><U0061><U0062><U0069><U0064><U0065>"
+abmon "<U005A><U0065><U006E>";"<U0046><U0065><U0076>";/
+ "<U004D><U0061><U0072>";"<U0041><U0076><U0072>";/
+ "<U004D><U0061><U0069>";"<U004A><U0075><U0067>";/
+ "<U004C><U0075><U0069>";"<U0041><U0076><U006F>";/
+ "<U0053><U0065><U0074>";"<U004F><U0074><U0075>";/
+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
+mon "<U005A><U0065><U006E><U00E2><U0072>";/
+ "<U0046><U0065><U0076><U0072><U00E2><U0072>";/
+ "<U004D><U0061><U0072><U00E7>";/
+ "<U0041><U0076><U0072><U00EE><U006C>";/
+ "<U004D><U0061><U0069>";/
+ "<U004A><U0075><U0067><U006E>";/
+ "<U004C><U0075><U0069>";/
+ "<U0041><U0076><U006F><U0073><U0074>";/
+ "<U0053><U0065><U0074><U0065><U006D><U0062><U0061><U0072>";/
+ "<U004F><U0074><U0075><U0062><U0061><U0072>";/
+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0061><U0072>";/
+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0061><U0072>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971201;4
+END LC_TIME
+
+LC_PAPER
+copy "it_IT"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "it_IT"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "it_IT"
+END LC_MEASUREMENT
+
+LC_NAME
+copy "it_IT"
+END LC_NAME
+
+LC_ADDRESS
+copy "it_IT"
+END LC_ADDRESS
diff --git a/localedata/locales/fy_DE b/localedata/locales/fy_DE
new file mode 100644
index 0000000000..ec37f2f770
--- /dev/null
+++ b/localedata/locales/fy_DE
@@ -0,0 +1,131 @@
+comment_char %
+escape_char /
+% charset "ISO_8859-1:1987"
+% Distribution and use is
+
+LC_IDENTIFICATION
+title "Sater Frisian and North Frisian Locale for Germany"
+source "information from Kenneth Christiansen"
+address ""
+contact "Kenneth Christiansen, Pablo Saratxaga"
+email "kenneth@gnu.org, pablo@mandriva.com"
+tel ""
+% Fax
+language "fy"
+territory "DE"
+revision "0.1"
+date "2003-11-30"
+
+category i18n:2000;LC_IDENTIFICATION
+category i18n:2000;LC_COLLATE
+category i18n:2000;LC_CTYPE
+category i18n:2000;LC_MESSAGES
+category i18n:2000;LC_MONETARY
+category i18n:2000;LC_NUMERIC
+category i18n:2000;LC_TIME
+category i18n:2000;LC_PAPER
+category i18n:2000;LC_NAME
+category i18n:2000;LC_MEASUREMENT
+category i18n:2000;LC_TELEPHONE
+category i18n:2000;LC_ADDRESS
+
+% ISO/IEC 14652: Converted comments to LC_IDENTIFICATION
+% added LC_PAPER, LC_MEASUREMENT, LC_TELEPHONE, LC_ADDRESS
+% copied LC_MONETARY, LC_NUMERIC from de_DE for simplicity
+% -- mckinstry@computer.org, 2000-07-03
+
+END LC_IDENTIFICATION
+
+LC_ADDRESS
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_post "<U0044>"
+country_ab2 "<U0044><U0045>"
+country_ab3 "<U0044><U0045><U0055>"
+country_car "<U0044>"
+country_num 276
+country_isbn "3"
+% FIXME country_name in Low Saxon ?
+lang_name "Frisian"
+lang_ab "fy"
+% FIXME lang_term for Low Saxon ?
+% FIXME lang_lib for Low Saxon ?
+END LC_ADDRESS
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_DK"
+END LC_CTYPE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U006A><U004A><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "de_DE"
+END LC_MONETARY
+
+LC_PAPER
+copy "de_DE"
+END LC_PAPER
+
+LC_NAME
+copy "de_DE"
+END LC_NAME
+
+LC_TELEPHONE
+copy "de_DE"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "de_DE"
+END LC_MEASUREMENT
+
+LC_NUMERIC
+copy "de_DE"
+END LC_NUMERIC
+
+LC_TIME
+abday "<U0053><U0064><U0067>";"<U004D><U0064><U0067>";/
+ "<U0044><U0073><U0067>";"<U004D><U0077><U006B>";/
+ "<U0044><U0064><U0067>";"<U0046><U0064><U0067>";/
+ "<U0053><U0077><U0064>"
+day "<U0053><U0069><U006E><U006E><U0064><U0061><U0067>";/
+ "<U004D><U006F><U006E><U0064><U0061><U0067>";/
+ "<U0044><U0069><U006E><U0067><U0073><U0064><U0061><U0067>";/
+ "<U004D><U0065><U0064><U0064><U0077><U00E4><U0061><U006B><U006A>";/
+ "<U0044><U006F><U006E><U006E><U0061><U0064><U0061><U0067>";/
+ "<U0046><U0072><U0069><U0065><U0064><U0061><U0067>";/
+ "<U0053><U0069><U006E><U006E><U006F><U0077><U0065><U006E><U0064>"
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+ "<U004D><U006F><U007A>";"<U0041><U0070><U0072>";/
+ "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0077>";"<U0044><U0065><U007A>"
+mon "<U004A><U0061><U0075><U006E><U0075><U0077><U006F><U0061>";/
+ "<U0046><U0065><U0062><U0072><U0075><U0077><U006F><U0061>";/
+ "<U004D><U006F><U0061><U007A>";/
+ "<U0041><U0070><U0072><U0065><U006C><U006C>";/
+ "<U004D><U0061><U0069>";/
+ "<U004A><U0075><U006E><U0069>";/
+ "<U004A><U0075><U006C><U0069>";/
+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+ "<U0053><U0065><U0070><U0074><U0061><U006D><U0062><U0061>";/
+ "<U004F><U006B><U0074><U006F><U0062><U0061>";/
+ "<U004E><U006F><U0077><U0061><U006D><U0062><U0061>";/
+ "<U0044><U0065><U007A><U0061><U006D><U0062><U0061>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U002E><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+week 7;19971201;4
+END LC_TIME
diff --git a/localedata/locales/ha_NG b/localedata/locales/ha_NG
new file mode 100644
index 0000000000..1a7640dfde
--- /dev/null
+++ b/localedata/locales/ha_NG
@@ -0,0 +1,307 @@
+escape_char /
+comment_char %
+%
+% Hausa language locale for Nigeria
+% Source:
+% Contact: Pablo Saratxaga
+% Email: pablo@mandriva.com
+% Language: ha
+% Territory: NG
+% Revision: 0.2
+% Date: 2006-02-01
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Hausa locale for Nigeria"
+source ""
+address ""
+contact ""
+email "pablo@mandriva.com"
+tel ""
+fax ""
+language "Hausa"
+territory "Nigeria"
+revision "0.2"
+date "2006-02-01"
+%
+category "ha_NG:2000";LC_IDENTIFICATION
+category "ha_NG:2000";LC_CTYPE
+category "ha_NG:2000";LC_COLLATE
+category "ha_NG:2000";LC_TIME
+category "ha_NG:2000";LC_NUMERIC
+category "ha_NG:2000";LC_MONETARY
+category "ha_NG:2000";LC_MESSAGES
+category "ha_NG:2000";LC_PAPER
+category "ha_NG:2000";LC_NAME
+category "ha_NG:2000";LC_ADDRESS
+category "ha_NG:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_COLLATE
+
+% Hausa uses the following extra letters:
+% bhook, dhook, khook, rtilde.
+% accent marks?%
+%
+% ' is used as glotal stop (should it count on sorting?)
+%
+% Hausa in Niger uses also yhook; implemented here too
+% so it sorts as 'y
+%
+% order: a, b, b+, c, d, d+, e, f, g, h, i, j, k, k+, l, m, n, o, p
+% q, r, r~, s, sh, t, ts, u, [v], w, [x], 'y, y, z
+
+copy "iso14651_t1"
+
+collating-symbol <s-h-ha>
+collating-element <S-H> from "<U0053><U0048>"
+collating-element <s-h> from "<U0073><U0068>"
+collating-element <S-h> from "<U0053><U0068>"
+collating-element <s-H> from "<U0073><U0048>"
+collating-symbol <t-s-ha>
+collating-element <T-S> from "<U0054><U0053>"
+collating-element <t-s> from "<U0074><U0073>"
+collating-element <T-s> from "<U0054><U0073>"
+collating-element <t-S> from "<U0074><U0053>"
+collating-symbol <'-y-ha>
+collating-element <'1y> from "<U0027><U0079>"
+collating-element <'1Y> from "<U0027><U0059>"
+collating-element <'2y> from "<U2019><U0079>"
+collating-element <'2Y> from "<U2019><U0059>"
+collating-symbol <rtilde>
+collating-element <r?> from "<U0072><U0303>"
+collating-element <R?> from "<U0052><U0303>"
+collating-symbol <bcurl>
+collating-symbol <dcurl>
+collating-symbol <kcurl>
+
+collating-symbol <CAP-MIN>
+collating-symbol <MIN-CAP>
+
+reorder-after <MIN>
+<MIN-CAP>
+
+reorder-after <CAP>
+<CAP-MIN>
+
+reorder-after <b>
+<bcurl>
+reorder-after <d>
+<dcurl>
+reorder-after <k>
+<kcurl>
+reorder-after <r>
+<rtilde>
+<s>
+<s-h-ha>
+<t>
+<t-s-ha>
+reorder-after <x>
+<'-y-ha>
+
+reorder-after <U0062>
+<U0253> <bcurl>;<BAS>;<MIN>;IGNORE
+reorder-after <U0042>
+<U0181> <bcurl>;<BAS>;<CAP>;IGNORE
+
+reorder-after <U0064>
+<U0257> <dcurl>;<BAS>;<MIN>;IGNORE
+reorder-after <U0044>
+<U018A> <dcurl>;<BAS>;<CAP>;IGNORE
+
+reorder-after <U006B>
+<U0199> <kcurl>;<BAS>;<MIN>;IGNORE
+reorder-after <U004B>
+<U0198> <kcurl>;<BAS>;<CAP>;IGNORE
+
+reorder-after <U0072>
+<r?> <rtilde>;<ACA>;<MIN>;IGNORE
+reorder-after <U0052>
+<R?> <rtilde>;<ACA>;<CAP>;IGNORE
+
+reorder-after <U0073>
+<s-h> <s-h-ha>;<PCL>;<MIN>;IGNORE
+<s-H> <s-h-ha>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U0053>
+<S-H> <s-h-ha>;<PCL>;<CAP>;IGNORE
+<S-h> <s-h-ha>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U0074>
+<t-s> <t-s-ha>;<PCL>;<MIN>;IGNORE
+<t-S> <t-s-ha>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U0054>
+<T-S> <t-s-ha>;<PCL>;<CAP>;IGNORE
+<T-s> <t-s-ha>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U0078>
+<'1y> <'-y-ha>;<PCL>;<MIN>;IGNORE
+<'2y> <'-y-ha>;<PCL>;<MIN>;IGNORE
+<U01B4> <'-y-ha>;<PCL>;<MIN>;IGNORE
+reorder-after <U0058>
+<'1Y> <'-y-ha>;<PCL>;<CAP>;IGNORE
+<'2Y> <'-y-ha>;<PCL>;<CAP>;IGNORE
+<U01B3> <'-y-ha>;<PCL>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_NG"
+END LC_CTYPE
+
+LC_MONETARY
+copy "en_NG"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_NG"
+END LC_NUMERIC
+
+LC_TELEPHONE
+copy "en_NG"
+END LC_TELEPHONE
+
+LC_TIME
+% Lah, Lit, Tal, Lar, Alh, Jum, Asa
+% maybe "Lhd" "Lrb" => "Lh"/"Lb" on 2letter tables?
+abday "<U004C><U0061><U0068>";"<U004C><U0069><U0074>";/
+ "<U0054><U0061><U006C>";"<U004C><U0061><U0072>";/
+ "<U0041><U006C><U0068>";"<U004A><U0075><U006D>";/
+ "<U0041><U0073><U0061>"
+% Lahadi, Litini, Talata, Laraba, Alhamis, Juma'a, Asabar
+day "<U004C><U0061><U0068><U0061><U0064><U0069>";/
+ "<U004C><U0069><U0074><U0069><U006E><U0069>";/
+ "<U0054><U0061><U006C><U0061><U0074><U0061>";/
+ "<U004C><U0061><U0072><U0061><U0062><U0061>";/
+ "<U0041><U006C><U0068><U0061><U006D><U0069><U0073>";/
+ "<U004A><U0075><U006D><U0061><U0027><U0061>";/
+ "<U0041><U0073><U0061><U0062><U0061><U0072>"
+% Jan, Fab, Mar, Afr, May, Yun, Yul, Agu, Sat, Okt, Nuw, Dis
+abmon "<U004A><U0061><U006E>";"<U0046><U0061><U0062>";/
+ "<U004D><U0061><U0072>";"<U0041><U0066><U0072>";/
+ "<U004D><U0061><U0079>";"<U0059><U0075><U006E>";/
+ "<U0059><U0075><U006C>";"<U0041><U0067><U0075>";/
+ "<U0053><U0061><U0074>";"<U004F><U006B><U0074>";/
+ "<U004E><U0075><U0077>";"<U0044><U0069><U0073>"
+% Janairu, Fabrairu, Maris, Afrilu, Mayu, Yuni,
+% Yuli, Agusta, Satumba, Oktoba, Nuwamba, Disamba
+mon "<U004A><U0061><U006E><U0061><U0069><U0072><U0075>";/
+ "<U0046><U0061><U0062><U0072><U0061><U0069><U0072><U0075>";/
+ "<U004D><U0061><U0072><U0069><U0073>";/
+ "<U0041><U0066><U0072><U0069><U006C><U0075>";/
+ "<U004D><U0061><U0079><U0075>";/
+ "<U0059><U0075><U006E><U0069>";/
+ "<U0059><U0075><U006C><U0069>";/
+ "<U0041><U0067><U0075><U0073><U0074><U0061>";/
+ "<U0053><U0061><U0074><U0075><U006D><U0062><U0061>";/
+ "<U004F><U006B><U0074><U006F><U0062><U0061>";/
+ "<U004E><U0075><U0077><U0061><U006D><U0062><U0061>";/
+ "<U0044><U0069><U0073><U0061><U006D><U0062><U0061>"
+% ranar %A, %d ga %B cikin %Y %r %Z
+d_t_fmt "<U0072><U0061><U006E><U0061><U0072><U0020><U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0067><U0061><U0020><U0025><U0042><U0020><U0063><U0069><U006B><U0069><U006E><U0020><U0025><U0072><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+t_fmt "<U0025><U0072>"
+am_pm "<U0041><U004D>";"<U0050><U004D>"
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+END LC_TIME
+
+% FIXME
+LC_MESSAGES
+% yes: Toh, Ii
+yesstr "<U0054><U006F><U0068>"
+% ^[TtIiYy].*
+yesexpr "<U005E><U005B><U0054><U0074><U0069><U0049><U0059><U0079><U005D><U002E><U002A>"
+% no: Babu, A'a
+nostr "<U0042><U0061><U0062><U0075>"
+% ^[BbAaNn].*
+noexpr "<U005E><U005B><U0062><U0042><U0061><U0041><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_NG"
+END LC_PAPER
+
+LC_MEASUREMENT
+copy "en_NG"
+END LC_MEASUREMENT
+
+LC_NAME
+% FIXME
+copy "en_NG"
+END LC_NAME
+
+% FIXME
+LC_ADDRESS
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+%
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+
+% Country name in Hausa - "Nigeria"
+country_name "<U004E><U0069><U0067><U0065><U0072><U0069><U0061>"
+
+% Language name in Hausa - "Hausa"
+lang_name "<U0048><U0061><U0075><U0073><U0061>"
+
+% CEPT MAILCODES are suggested
+% Alternatively use the code found on your countries postal item tracking number
+% "NG"?
+%country_post "<U004E><U0047>"
+
+% UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
+% http://www.unece.org/trans/conventn/Distsigns_Sept2003.pdf
+% "WAN"
+country_car "<U0057><U0041><U004E>"
+
+% ISO 2108
+% http://www.isbn-international.org/
+country_isbn 978
+
+% ISO 639 language abbreviations:
+% 639-1 2 letter, 639-2 3 letter terminology
+% http://www.loc.gov/standards/iso639-2/englagn.html
+% "ha", "hau"
+lang_ab "<U0068><U0061>"
+lang_term "<U0068><U0061><U0075>"
+lang_lib "<U0068><U0061><U0075>"
+
+% ISO 3166 country number and 2 and 3 letter abreviations
+% http://www.unicode.org/onlinedat/countries.html
+% "NG", "NGA"
+country_ab2 "<U004E><U0047>"
+country_ab3 "<U004E><U0047><U0041>"
+country_num 566
+
+END LC_ADDRESS
+
diff --git a/localedata/locales/ig_NG b/localedata/locales/ig_NG
new file mode 100644
index 0000000000..ed871ec563
--- /dev/null
+++ b/localedata/locales/ig_NG
@@ -0,0 +1,499 @@
+escape_char /
+comment_char %
+%
+% Igbo language locale for Nigeria
+% Source:
+% Contact: Pablo Saratxaga
+% Email: pablo@mandriva.com
+% Language: ig
+% Territory: NG
+% Revision: 0.2
+% Date: 2005-12-14
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Igbo locale for Nigeria"
+source ""
+address ""
+contact ""
+email "pablo@mandriva.com"
+tel ""
+fax ""
+language "Igbo"
+territory "Nigeria"
+revision "0.2"
+date "2005-12-14"
+%
+category "ig_NG:2000";LC_IDENTIFICATION
+category "ig_NG:2000";LC_CTYPE
+category "ig_NG:2000";LC_COLLATE
+category "ig_NG:2000";LC_TIME
+category "ig_NG:2000";LC_NUMERIC
+category "ig_NG:2000";LC_MONETARY
+category "ig_NG:2000";LC_MESSAGES
+category "ig_NG:2000";LC_PAPER
+category "ig_NG:2000";LC_NAME
+category "ig_NG:2000";LC_ADDRESS
+category "ig_NG:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_COLLATE
+
+% Igbo uses the following extra letters:
+% idotbelow, odotbelow, udotbelow, nabovedot
+% plus acute and grave combining marks over vowels and n
+% of those, the following have precombined forms:
+% aacute, eacute, iacute, oacute, uacute, nacute
+% agrave, egrave, igrave, ograve, ugrave, ngrave
+%
+% order: a, b, [c], ch, d, e, f, g, gb, gh, gw, h, i, i., j, k, kp, kw,
+% l, m, n, n., nw, ny, o, o., p, [q], r, s, sh, t, u, u., v, w, [x], y, z
+
+copy "iso14651_t1"
+
+collating-symbol <c-h-ig>
+collating-element <C-H> from "<U0043><U0048>"
+collating-element <c-h> from "<U0063><U0068>"
+collating-element <C-h> from "<U0043><U0068>"
+collating-element <c-H> from "<U0063><U0048>"
+collating-symbol <g-b-ig>
+collating-element <G-B> from "<U0047><U0042>"
+collating-element <g-b> from "<U0067><U0062>"
+collating-element <G-b> from "<U0047><U0062>"
+collating-element <g-B> from "<U0067><U0042>"
+collating-symbol <g-h-ig>
+collating-element <G-H> from "<U0047><U0048>"
+collating-element <g-h> from "<U0067><U0068>"
+collating-element <G-h> from "<U0047><U0068>"
+collating-element <g-H> from "<U0067><U0048>"
+collating-symbol <g-w-ig>
+collating-element <G-W> from "<U0047><U0057>"
+collating-element <g-w> from "<U0067><U0077>"
+collating-element <G-w> from "<U0047><U0077>"
+collating-element <g-W> from "<U0067><U0057>"
+collating-symbol <k-p-ig>
+collating-element <K-P> from "<U004B><U0050>"
+collating-element <k-p> from "<U006B><U0070>"
+collating-element <K-p> from "<U004B><U0070>"
+collating-element <k-P> from "<U006B><U0050>"
+collating-symbol <k-w-ig>
+collating-element <K-W> from "<U004B><U0057>"
+collating-element <k-w> from "<U006B><U0077>"
+collating-element <K-w> from "<U004B><U0077>"
+collating-element <k-W> from "<U006B><U0057>"
+collating-symbol <n-w-ig>
+collating-element <N-W> from "<U004E><U0057>"
+collating-element <n-w> from "<U006E><U0077>"
+collating-element <N-w> from "<U004E><U0077>"
+collating-element <n-W> from "<U006E><U0057>"
+collating-symbol <n-y-ig>
+collating-element <N-Y> from "<U004E><U0059>"
+collating-element <n-y> from "<U006E><U0079>"
+collating-element <N-y> from "<U004E><U0079>"
+collating-element <n-Y> from "<U006E><U0059>"
+collating-symbol <ibelowdot>
+collating-element <I_> from "<U0049><U0323>"
+collating-element <i_> from "<U0069><U0323>"
+collating-element <I_'> from "<U0049><U0323><U0301>"
+collating-element <i_'> from "<U0069><U0323><U0301>"
+collating-element <I_`> from "<U0049><U0323><U0300>"
+collating-element <i_`> from "<U0069><U0323><U0300>"
+collating-element <I_2'> from "<U1ECA><U0301>"
+collating-element <i_2'> from "<U1ECB><U0301>"
+collating-element <I_2`> from "<U1ECA><U0300>"
+collating-element <i_2`> from "<U1ECB><U0300>"
+collating-symbol <obelowdot>
+collating-element <O_> from "<U004F><U0323>"
+collating-element <o_> from "<U006F><U0323>"
+collating-element <O_'> from "<U004F><U0323><U0301>"
+collating-element <o_'> from "<U006F><U0323><U0301>"
+collating-element <O_`> from "<U004F><U0323><U0300>"
+collating-element <o_`> from "<U006F><U0323><U0300>"
+collating-element <O_2'> from "<U1ECC><U0301>"
+collating-element <o_2'> from "<U1ECD><U0301>"
+collating-element <O_2`> from "<U1ECC><U0300>"
+collating-element <o_2`> from "<U1ECD><U0300>"
+collating-symbol <ubelowdot>
+collating-element <U_> from "<U0055><U0323>"
+collating-element <u_> from "<U0075><U0323>"
+collating-element <U_'> from "<U0055><U0323><U0301>"
+collating-element <u_'> from "<U0075><U0323><U0301>"
+collating-element <U_`> from "<U0075><U0323><U0300>"
+collating-element <u_`> from "<U0055><U0323><U0300>"
+collating-element <U_2'> from "<U1EE4><U0301>"
+collating-element <u_2'> from "<U1EE5><U0301>"
+collating-element <U_2`> from "<U1EE4><U0300>"
+collating-element <u_2`> from "<U1EE5><U0300>"
+collating-symbol <nabovedot>
+collating-element <N.> from "<U004E><U0307>"
+collating-element <n.> from "<U006E><U0307>"
+collating-symbol <aacute>
+collating-element <A'> from "<U0041><U0301>"
+collating-element <a'> from "<U0061><U0301>"
+collating-symbol <eacute>
+collating-element <E'> from "<U0045><U0301>"
+collating-element <e'> from "<U0065><U0301>"
+collating-symbol <iacute>
+collating-element <I'> from "<U0049><U0301>"
+collating-element <i'> from "<U0069><U0301>"
+collating-symbol <oacute>
+collating-element <O'> from "<U004F><U0301>"
+collating-element <o'> from "<U006F><U0301>"
+collating-symbol <uacute>
+collating-element <U'> from "<U0055><U0301>"
+collating-element <u'> from "<U0075><U0301>"
+collating-symbol <agrave>
+collating-element <A`> from "<U0041><U0300>"
+collating-element <a`> from "<U0061><U0300>"
+collating-symbol <egrave>
+collating-element <E`> from "<U0045><U0300>"
+collating-element <e`> from "<U0065><U0300>"
+collating-symbol <igrave>
+collating-element <I`> from "<U0049><U0300>"
+collating-element <i`> from "<U0069><U0300>"
+collating-symbol <ograve>
+collating-element <O`> from "<U004F><U0300>"
+collating-element <o`> from "<U006F><U0300>"
+collating-symbol <ugrave>
+collating-element <U`> from "<U0055><U0300>"
+collating-element <u`> from "<U0075><U0300>"
+
+collating-symbol <CAP-MIN>
+collating-symbol <MIN-CAP>
+
+reorder-after <MIN>
+<MIN-CAP>
+
+reorder-after <CAP>
+<CAP-MIN>
+
+reorder-after <c>
+<c-h-ig>
+reorder-after <g>
+<g-b-ig>
+<g-h-ig>
+<g-w-ig>
+reorder-after <i>
+<ibelowdot>
+reorder-after <k>
+<k-p-ig>
+<k-w-ig>
+reorder-after <n>
+<nabovedot>
+<n-w-ig>
+<n-y-ig>
+<o>
+<obelowdot>
+reorder-after <s>
+<s-h-ig>
+reorder-after <u>
+<ubelowdot>
+
+reorder-after <U0061>
+<U00E1> <a>;<ACA>;<MIN>;IGNORE
+<a'> <a>;<ACA>;<MIN>;IGNORE
+<U00E0> <a>;<GRA>;<MIN>;IGNORE
+<a`> <a>;<GRA>;<MIN>;IGNORE
+reorder-after <U0041>
+<U00C1> <a>;<ACA>;<CAP>;IGNORE
+<A'> <a>;<ACA>;<CAP>;IGNORE
+<U00C0> <a>;<GRA>;<CAP>;IGNORE
+<A`> <a>;<GRA>;<CAP>;IGNORE
+
+reorder-after <U0063>
+<c-h> <c-h-ig>;<PCL>;<MIN>;IGNORE
+<c-H> <c-h-ig>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U0043>
+<C-H> <c-h-ig>;<PCL>;<CAP>;IGNORE
+<C-h> <c-h-ig>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U0065>
+<U00E9> <e>;<ACA>;<MIN>;IGNORE
+<e'> <e>;<ACA>;<MIN>;IGNORE
+<U00E8> <e>;<GRA>;<MIN>;IGNORE
+<e`> <e>;<GRA>;<MIN>;IGNORE
+reorder-after <U0045>
+<U00C9> <e>;<ACA>;<CAP>;IGNORE
+<E'> <e>;<ACA>;<CAP>;IGNORE
+<U00C8> <e>;<GRA>;<CAP>;IGNORE
+<E`> <e>;<GRA>;<CAP>;IGNORE
+
+reorder-after <U0067>
+<g-b> <g-b-ig>;<PCL>;<MIN>;IGNORE
+<g-B> <g-b-ig>;<PCL>;<MIN-CAP>;IGNORE
+<g-h> <g-h-ig>;<PCL>;<MIN>;IGNORE
+<g-H> <g-h-ig>;<PCL>;<MIN-CAP>;IGNORE
+<g-w> <g-w-ig>;<PCL>;<MIN>;IGNORE
+<g-W> <g-w-ig>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U0047>
+<G-B> <g-b-ig>;<PCL>;<CAP>;IGNORE
+<G-b> <g-b-ig>;<PCL>;<CAP-MIN>;IGNORE
+<G-H> <g-h-ig>;<PCL>;<CAP>;IGNORE
+<G-h> <g-h-ig>;<PCL>;<CAP-MIN>;IGNORE
+<G-W> <g-w-ig>;<PCL>;<CAP>;IGNORE
+<G-w> <g-w-ig>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U0069>
+<U00ED> <i>;<ACA>;<MIN>;IGNORE
+<i'> <i>;<ACA>;<MIN>;IGNORE
+<U00EC> <i>;<GRA>;<MIN>;IGNORE
+<i`> <i>;<GRA>;<MIN>;IGNORE
+<U1ECB> <ibelowdot>;<BAS>;<MIN>;IGNORE
+<i_> <ibelowdot>;<BAS>;<MIN>;IGNORE
+<i_'> <ibelowdot>;<ACA>;<MIN>;IGNORE
+<i_2'> <ibelowdot>;<ACA>;<MIN>;IGNORE
+<i_`> <ibelowdot>;<GRA>;<MIN>;IGNORE
+<i_2`> <ibelowdot>;<GRA>;<MIN>;IGNORE
+reorder-after <U0049>
+<U00CD> <i>;<ACA>;<CAP>;IGNORE
+<I'> <i>;<ACA>;<CAP>;IGNORE
+<U00CC> <i>;<GRA>;<CAP>;IGNORE
+<I`> <i>;<GRA>;<CAP>;IGNORE
+<U1ECA> <ibelowdot>;<BAS>;<CAP>;IGNORE
+<I_> <ibelowdot>;<CAP>;<CAP>;IGNORE
+<I_'> <ibelowdot>;<ACA>;<CAP>;IGNORE
+<I_2'> <ibelowdot>;<ACA>;<CAP>;IGNORE
+<I_`> <ibelowdot>;<GRA>;<CAP>;IGNORE
+<I_2`> <ibelowdot>;<GRA>;<CAP>;IGNORE
+
+reorder-after <U0067>
+<k-p> <k-p-ig>;<PCL>;<MIN>;IGNORE
+<k-P> <k-p-ig>;<PCL>;<MIN-CAP>;IGNORE
+<k-w> <k-w-ig>;<PCL>;<MIN>;IGNORE
+<k-W> <k-w-ig>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U0047>
+<K-P> <k-p-ig>;<PCL>;<CAP>;IGNORE
+<K-p> <k-p-ig>;<PCL>;<CAP-MIN>;IGNORE
+<K-W> <k-w-ig>;<PCL>;<CAP>;IGNORE
+<K-w> <k-w-ig>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U006E>
+<U1E45> <nabovedot>;<BAS>;<MIN>;IGNORE
+<n.> <nabovedot>;<BAS>;<MIN>;IGNORE
+<n-w> <n-w-ig>;<PCL>;<MIN>;IGNORE
+<n-W> <n-w-ig>;<PCL>;<MIN-CAP>;IGNORE
+<n-y> <n-y-ig>;<PCL>;<MIN>;IGNORE
+<n-Y> <n-y-ig>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U004E>
+<U1E44> <nabovedot>;<BAS>;<CAP>;IGNORE
+<N.> <nabovedot>;<BAS>;<CAP>;IGNORE
+<N-W> <n-w-ig>;<PCL>;<CAP>;IGNORE
+<N-w> <n-w-ig>;<PCL>;<CAP-MIN>;IGNORE
+<N-Y> <n-y-ig>;<PCL>;<CAP>;IGNORE
+<N-y> <n-y-ig>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U006F>
+<U00F3> <o>;<ACA>;<MIN>;IGNORE
+<o'> <o>;<ACA>;<MIN>;IGNORE
+<U00F2> <o>;<GRA>;<MIN>;IGNORE
+<o`> <o>;<GRA>;<MIN>;IGNORE
+<U1ECD> <obelowdot>;<BAS>;<MIN>;IGNORE
+<o_> <obelowdot>;<BAS>;<MIN>;IGNORE
+<o_'> <obelowdot>;<ACA>;<MIN>;IGNORE
+<o_2'> <obelowdot>;<ACA>;<MIN>;IGNORE
+<o_`> <obelowdot>;<GRA>;<MIN>;IGNORE
+<o_2`> <obelowdot>;<GRA>;<MIN>;IGNORE
+reorder-after <U004F>
+<U00D3> <o>;<ACA>;<CAP>;IGNORE
+<O'> <o>;<ACA>;<CAP>;IGNORE
+<U00D2> <o>;<GRA>;<CAP>;IGNORE
+<O`> <o>;<GRA>;<CAP>;IGNORE
+<U1ECC> <obelowdot>;<BAS>;<CAP>;IGNORE
+<O_> <obelowdot>;<BAS>;<CAP>;IGNORE
+<O_'> <obelowdot>;<ACA>;<CAP>;IGNORE
+<O_2'> <obelowdot>;<ACA>;<CAP>;IGNORE
+<O_`> <obelowdot>;<GRA>;<CAP>;IGNORE
+<O_2`> <obelowdot>;<GRA>;<CAP>;IGNORE
+
+reorder-after <U0073>
+<s-h> <s-h-ig>;<PCL>;<MIN>;IGNORE
+<s-H> <s-h-ig>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U0053>
+<S-H> <s-h-ig>;<PCL>;<CAP>;IGNORE
+<S-h> <s-h-ig>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U0075>
+<U00FA> <u>;<ACA>;<MIN>;IGNORE
+<u'> <u>;<ACA>;<MIN>;IGNORE
+<U00F9> <u>;<GRA>;<MIN>;IGNORE
+<u`> <u>;<GRA>;<MIN>;IGNORE
+<U1EE5> <ubelowdot>;<BAS>;<MIN>;IGNORE
+<u_> <ubelowdot>;<BAS>;<MIN>;IGNORE
+<u_'> <ubelowdot>;<ACA>;<MIN>;IGNORE
+<u_2'> <ubelowdot>;<ACA>;<MIN>;IGNORE
+<u_`> <ubelowdot>;<GRA>;<MIN>;IGNORE
+<u_2`> <ubelowdot>;<GRA>;<MIN>;IGNORE
+reorder-after <U0055>
+<U00DA> <u>;<ACA>;<CAP>;IGNORE
+<U'> <u>;<ACA>;<CAP>;IGNORE
+<U00D9> <u>;<GRA>;<CAP>;IGNORE
+<U`> <u>;<GRA>;<CAP>;IGNORE
+<U1EE4> <ubelowdot>;<BAS>;<CAP>;IGNORE
+<U_> <ubelowdot>;<BAS>;<CAP>;IGNORE
+<U_'> <ubelowdot>;<ACA>;<CAP>;IGNORE
+<U_2'> <ubelowdot>;<ACA>;<CAP>;IGNORE
+<U_`> <ubelowdot>;<GRA>;<CAP>;IGNORE
+<U_2`> <ubelowdot>;<GRA>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_NG"
+END LC_CTYPE
+
+LC_MONETARY
+copy "en_NG"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_NG"
+END LC_NUMERIC
+
+LC_TELEPHONE
+copy "en_NG"
+END LC_TELEPHONE
+
+LC_TIME
+% sọn, mọn, tuz, wen, tọs, fra, sat
+abday "<U0073><U1ECD><U006E>";"<U006D><U1ECD><U006E>";/
+ "<U0074><U0075><U007A>";"<U0077><U0065><U006E>";/
+ "<U0074><U1ECD><U0073>";"<U0066><U0072><U0061>";/
+ "<U0073><U0061><U0074>"
+% sọnde, mọnde, tuzde, wenzde, tọsde, fraịde, satọde
+day "<U0073><U1ECD><U006E><U0064><U0065>";/
+ "<U006D><U1ECD><U006E><U0064><U0065>";/
+ "<U0074><U0075><U007A><U0064><U0065>";/
+ "<U0077><U0065><U006E><U007A><U0064><U0065>";/
+ "<U0074><U1ECD><U0073><U0064><U0065>";/
+ "<U0066><U0072><U0061><U1ECB><U0064><U0065>";/
+ "<U0073><U0061><U0074><U1ECD><U0064><U0065>"
+% jen, feb, mach, epr, mee, juu, jul, ọgọ, sep, ọkt, nọv, dis
+abmon "<U006A><U0065><U006E>";"<U0066><U0065><U0062>";/
+ "<U006D><U0061><U0061>";"<U0065><U0070><U0072>";/
+ "<U006D><U0065><U0065>";"<U006A><U0075><U0075>";/
+ "<U006A><U0075><U006C>";"<U1ECD><U0067><U1ECD>";/
+ "<U0073><U0065><U0070>";"<U1ECD><U006B><U0074>";/
+ "<U006E><U1ECD><U0076>";"<U0064><U0069><U0073>"
+% jenụwarị, febụrụwarị, maachị, epreel, mee, juun,
+% julaị, ọgọstụ, septemba, ọktoba, nọvemba, disemba
+mon "<U006A><U0065><U006E><U1EE5><U0077><U0061><U0072><U1ECB>";/
+ "<U0066><U0065><U0062><U1EE5><U0072><U1EE5><U0077><U0061><U0072><U1ECB>";/
+ "<U006D><U0061><U0061><U0063><U0068><U1ECB>";/
+ "<U0065><U0070><U0072><U0065><U0065><U006C>";/
+ "<U006D><U0065><U0065>";/
+ "<U006A><U0075><U0075><U006E>";/
+ "<U006A><U0075><U006C><U0061><U1ECB>";/
+ "<U1ECD><U0067><U1ECD><U0073><U0074><U1EE5>";/
+ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0061>";/
+ "<U1ECD><U006B><U0074><U006F><U0062><U0061>";/
+ "<U006E><U1ECD><U0076><U0065><U006D><U0062><U0061>";/
+ "<U0064><U0069><U0073><U0065><U006D><U0062><U0061>"
+% FIXME
+% %A, %d %B %Y %T %Z
+d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+t_fmt "<U0025><U0072>"
+am_pm "<U0041><U004D>";"<U0050><U004D>"
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+END LC_TIME
+
+LC_MESSAGES
+% yes: Ee
+yesstr "<U0045><U0065>"
+% ^[EeIiYy].*
+yesexpr "<U005E><U005B><U0045><U0065><U0049><U0069><U0059><U0079><U005D><U002E><U002A>"
+% Mba
+nostr "<U004D><U0062><U0061>"
+% ^[MmNn].*
+noexpr "<U005E><U005B><U0030><U004D><U006D><U004E><U006E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_NG"
+END LC_PAPER
+
+LC_MEASUREMENT
+copy "en_NG"
+END LC_MEASUREMENT
+
+LC_NAME
+% FIXME
+copy "en_NG"
+END LC_NAME
+
+% FIXME
+LC_ADDRESS
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+%
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+
+% Country name in Igbo - "Nigeria"
+country_name "<U004E><U0069><U0067><U0065><U0072><U0069><U0061>"
+
+% Language name in Igbo - "Igbo"
+lang_name "<U0049><U0067><U0062><U006F>"
+
+% CEPT MAILCODES are suggested
+% Alternatively use the code found on your countries postal item tracking number
+% "NG"?
+%country_post "<U004E><U0047>"
+
+% UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
+% http://www.unece.org/trans/conventn/Distsigns_Sept2003.pdf
+% "WAN"
+country_car "<U0057><U0041><U004E>"
+
+% ISO 2108
+% http://www.isbn-international.org/
+country_isbn 978
+
+% ISO 639 language abbreviations:
+% 639-1 2 letter, 639-2 3 letter terminology
+% http://www.loc.gov/standards/iso639-2/englagn.html
+% "ig", "ibo"
+lang_ab "<U0069><U0067>"
+lang_term "<U0069><U0062><U006F>"
+lang_lib "<U0069><U0062><U006F>"
+
+% ISO 3166 country number and 2 and 3 letter abreviations
+% http://www.unicode.org/onlinedat/countries.html
+% "NG", "NGA"
+country_ab2 "<U004E><U0047>"
+country_ab3 "<U004E><U0047><U0041>"
+country_num 566
+
+END LC_ADDRESS
+
diff --git a/localedata/locales/ik_CA b/localedata/locales/ik_CA
new file mode 100644
index 0000000000..fe02028270
--- /dev/null
+++ b/localedata/locales/ik_CA
@@ -0,0 +1,230 @@
+escape_char /
+comment_char %
+%
+% Inupiaq language locale for Canada
+% Source:
+% Contact: Pablo Saratxaga
+% Email: pablo@mandriva.com
+% Language: ik
+% Territory: CA
+% Revision: 0.2
+% Date: 2004-08-01
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Inupiaq locale for Canada"
+source ""
+address ""
+contact ""
+email "pablo@mandriva.com"
+tel ""
+fax ""
+language "Inupiaq"
+territory "Canada"
+revision "0.2"
+date "2004-08-01"
+%
+category "ik_CA:2000";LC_IDENTIFICATION
+category "ik_CA:2000";LC_CTYPE
+category "ik_CA:2000";LC_COLLATE
+category "ik_CA:2000";LC_TIME
+category "ik_CA:2000";LC_NUMERIC
+category "ik_CA:2000";LC_MONETARY
+category "ik_CA:2000";LC_MESSAGES
+category "ik_CA:2000";LC_PAPER
+category "ik_CA:2000";LC_NAME
+category "ik_CA:2000";LC_ADDRESS
+category "ik_CA:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_COLLATE
+
+% Inupiaq uses the following extra letters:
+% gdotabove, ldotbelow, lbarred, lbarreddotbelow (not in unicode,
+% has to be composed as lbarred+composingdotbelow), eng, ntilde
+%
+% sorting order from
+% http://www.nsbsd.org/anep/public/index.cfm/17,459,html
+% however I'm not
+% sure if all letters are to be considered as separate items for
+% sorting purposes...
+%
+% order: a, [b], [c], ch, [d], [e], [f], g, g., h, i, [j], k, l,
+% l/, l-., l/-., m, n, n?, ng, [o], p, q, r, s, sr, t, u, v, [w],
+% [x], y, [z]
+
+copy "iso14651_t1"
+
+collating-symbol <c-h-ik>
+collating-element <C-H> from "<U0043><U0048>"
+collating-element <c-h> from "<U0063><U0068>"
+collating-element <C-h> from "<U0043><U0068>"
+collating-element <c-H> from "<U0063><U0048>"
+collating-symbol <s-r-ik>
+collating-element <S-R> from "<U0053><U0052>"
+collating-element <s-r> from "<U0073><U0072>"
+collating-element <S-r> from "<U0053><U0072>"
+collating-element <s-R> from "<U0073><U0052>"
+collating-symbol <l-dotbelow-ik>
+collating-element <L-dot> from "<U004C><U0323>"
+collating-element <l-dot> from "<U006C><U0323>"
+collating-symbol <lbar-dotbelow-ik>
+collating-element <Lbar-dot> from "<U0141><U0323>"
+collating-element <lbar-dot> from "<U0142><U0323>"
+collating-symbol <gdot>
+collating-symbol <lbar>
+collating-symbol <ntilde>
+collating-symbol <eng>
+
+collating-symbol <CAP-MIN>
+collating-symbol <MIN-CAP>
+
+reorder-after <MIN>
+<MIN-CAP>
+
+reorder-after <CAP>
+<CAP-MIN>
+
+reorder-after <c>
+<c-h-ik>
+reorder-after <g>
+<gdot>
+reorder-after <l>
+<lbar>
+<l-dotbelow-ik>
+<lbar-dotbelow-ik>
+reorder-after <n>
+<ntilde>
+<eng>
+reorder-after <s>
+<s-r-ik>
+
+reorder-after <U0063>
+<c-h> <c-h-ik>;<PCT>;<MIN>;IGNORE
+<c-H> <c-h-ik>;<PCT>;<MIN-CAP>;IGNORE
+reorder-after <U0043>
+<C-H> <c-h-ik>;<PCT>;<CAP>;IGNORE
+<C-h> <c-h-ik>;<PCT>;<CAP-MIN>;IGNORE
+
+reorder-after <U0067>
+<U0121> <gdot>;<PCT>;<MIN>;IGNORE
+reorder-after <U0047>
+<U0120> <gdot>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U006C>
+<U0142> <lbar>;<BAS>;<MIN>;IGNORE
+<l-dot> <l-dotbelow-ik>;<PCT>;<MIN>;IGNORE
+<U1E37> <l-dotbelow-ik>;<PCT>;<MIN>;IGNORE
+<U1E39> <l-dotbelow-ik>;<PCT>;<MIN>;IGNORE
+<lbar-dot> <lbar-dotbelow-ik>;<PCT>;<MIN>;IGNORE
+reorder-after <U004C>
+<U0141> <lbar>;<BAS>;<CAP>;IGNORE
+<L-dot> <l-dotbelow-ik>;<PCT>;<CAP>;IGNORE
+<U1E36> <l-dotbelow-ik>;<PCT>;<CAP>;IGNORE
+<U1E38> <l-dotbelow-ik>;<PCT>;<CAP>;IGNORE
+<Lbar-dot> <lbar-dotbelow-ik>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U006E>
+<U00F1> <ntilde>;<TIL>;<MIN>;IGNORE
+<U014B> <eng>;<PCL>;<MIN>;IGNORE
+reorder-after <U004E>
+<U00D1> <ntilde>;<TIL>;<CAP>;IGNORE
+<U014A> <eng>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U0073>
+<s-r> <s-r-ik>;<PCT>;<MIN>;IGNORE
+<s-R> <s-r-ik>;<PCT>;<MIN-CAP>;IGNORE
+reorder-after <U0053>
+<S-R> <s-r-ik>;<PCT>;<CAP>;IGNORE
+<S-r> <s-r-ik>;<PCT>;<CAP-MIN>;IGNORE
+
+
+reorder-end
+
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_CA"
+END LC_CTYPE
+
+LC_MONETARY
+copy "en_CA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_CA"
+END LC_NUMERIC
+
+LC_TELEPHONE
+copy "en_CA"
+END LC_TELEPHONE
+
+LC_TIME
+abday "<U004D><U0069><U006E>";"<U0053><U0061><U0076>";/
+ "<U0049><U006C><U0061>";"<U0051><U0069><U0074>";/
+ "<U0053><U0069><U0073>";"<U0054><U0061><U006C>";/
+ "<U004D><U0061><U0071>"
+day "<U004D><U0069><U006E><U0121><U0075><U0069><U0071><U0073><U0069><U006F><U0069><U0071>";/
+ "<U0053><U0061><U0076><U0061><U0142><U0142><U0069><U0071>";/
+ "<U0049><U006C><U0061><U0071><U0074><U0063><U0068><U0069><U0069><U006F><U0069><U0071>";/
+ "<U0051><U0069><U0074><U0063><U0068><U0069><U0069><U006F><U0069><U0071>";/
+ "<U0053><U0069><U0073><U0061><U006D><U0069><U0069><U006F><U0069><U0071>";/
+ "<U0054><U0061><U006C><U006C><U0069><U006D><U006D><U0069><U0069><U006F><U0069><U0071>";/
+ "<U004D><U0061><U0071><U0069><U006E><U0121><U0075><U006F><U0069><U0071>"
+abmon "<U0053><U00F1><U0074>";"<U0053><U00F1><U0073>";/
+ "<U0050><U0061><U006E>";"<U0051><U0069><U006C>";/
+ "<U0053><U0075><U0070>";"<U0049><U0121><U00F1>";/
+ "<U0049><U0074><U0063>";"<U0054><U0069><U00F1>";/
+ "<U0041><U006D><U0069>";"<U0053><U0069><U006B>";/
+ "<U004E><U0069><U0070>";"<U0053><U0069><U0071>"
+mon "<U0053><U0069><U0071><U0069><U00F1><U00F1><U0061><U0061><U0074><U0063><U0068><U0069><U0061><U0071>";/
+ "<U0053><U0069><U0071><U0069><U00F1><U00F1><U0061><U0061><U0073><U0072><U0075><U0067><U0072><U0075><U006B>";/
+ "<U0050><U0061><U006E><U0069><U0071><U0073><U0069><U0071><U0073><U0069><U0069><U0076><U0069><U006B>";/
+ "<U0051><U0069><U006C><U0121><U0069><U0063><U0068><U0020><U0054><U0061><U0074><U0071><U0069><U0061><U0074>";/
+ "<U0053><U0075><U0070><U0070><U0069><U0076><U0069><U006B>";/
+ "<U0049><U0121><U00F1><U0069><U0076><U0069><U006B>";/
+ "<U0049><U0074><U0063><U0068><U0061><U0076><U0069><U006B>";/
+ "<U0054><U0069><U00F1><U00F1><U0069><U0076><U0069><U006B>";/
+ "<U0041><U006D><U0069><U0121><U0061><U0069><U0071><U0073><U0069><U0076><U0069><U006B>";/
+ "<U0053><U0069><U006B><U006B><U0075><U0076><U0069><U006B>";/
+ "<U004E><U0069><U0070><U0070><U0069><U0076><U0069><U006B>";/
+ "<U0053><U0069><U0071><U0069><U00F1><U0121><U0069><U1E37><U0061><U0071>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+t_fmt "<U0025><U0072>"
+am_pm "<U0041><U004D>";"<U0050><U004D>"
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+END LC_TIME
+
+LC_MESSAGES
+yesstr "<U0061><U0061>"
+nostr "<U0071><U0061><U00F1><U0061><U0061>"
+yesexpr "<U005B><U0079><U0059><U0069><U0049><U0061><U0041><U005D><U002E><U002A>"
+noexpr "<U005B><U006E><U004E><U0071><U0051><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+% Default paper: A4
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+% Metric System (ISO 1000)
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_NAME
+% FIXME
+copy "en_CA"
+END LC_NAME
+
+LC_ADDRESS
+% FIXME
+copy "en_CA"
+END LC_ADDRESS
+
diff --git a/localedata/locales/is_IS b/localedata/locales/is_IS
index 1644bfa744..cddceeed39 100644
--- a/localedata/locales/is_IS
+++ b/localedata/locales/is_IS
@@ -947,7 +947,6 @@ order_start forward;forward/
<UE00D> IGNORE;IGNORE;IGNORE;<UE00D>
<UE00E> IGNORE;IGNORE;IGNORE;<UE00E>
<UE00F> IGNORE;IGNORE;IGNORE;<UE00F>
-<"=> IGNORE;IGNORE;IGNORE;<"=>
<UE011> IGNORE;IGNORE;IGNORE;<UE011>
<UE012> IGNORE;IGNORE;IGNORE;<UE012>
<UE013> IGNORE;IGNORE;IGNORE;<UE013>
@@ -956,8 +955,6 @@ order_start forward;forward/
<UE017> IGNORE;IGNORE;IGNORE;<UE017>
<UE018> IGNORE;IGNORE;IGNORE;<UE018>
<UE019> IGNORE;IGNORE;IGNORE;<UE019>
-<Mc> IGNORE;IGNORE;IGNORE;<Mc>
-<Fl> IGNORE;IGNORE;IGNORE;<Fl>
UNDEFINED IGNORE;IGNORE;IGNORE
<U0030> <U0030>;<U0030>;IGNORE;IGNORE
diff --git a/localedata/locales/iso14651_t1_common b/localedata/locales/iso14651_t1_common
index 2325c7a5c3..14b290c666 100644
--- a/localedata/locales/iso14651_t1_common
+++ b/localedata/locales/iso14651_t1_common
@@ -59,6 +59,7 @@ script <HEBREU>
script <GREC>
script <CYRIL>
script <ARMENIAN>
+script <GEORGIAN>
# Déclaration des symboles internes / Declaration of internal symbols
#
@@ -417,6 +418,48 @@ collating-symbol <ARM-PYUR>
collating-symbol <ARM-KE>
collating-symbol <ARM-O>
collating-symbol <ARM-FE>
+#
+# GEORGIAN
+#
+collating-symbol <GEORG-AN>
+collating-symbol <GEORG-BAN>
+collating-symbol <GEORG-GAN>
+collating-symbol <GEORG-DON>
+collating-symbol <GEORG-EN>
+collating-symbol <GEORG-VIN>
+collating-symbol <GEORG-ZEN>
+collating-symbol <GEORG-TAN>
+collating-symbol <GEORG-IN>
+collating-symbol <GEORG-KAN>
+collating-symbol <GEORG-LAS>
+collating-symbol <GEORG-MAN>
+collating-symbol <GEORG-NAR>
+collating-symbol <GEORG-ON>
+collating-symbol <GEORG-PAR>
+collating-symbol <GEORG-ZHAR>
+collating-symbol <GEORG-RAE>
+collating-symbol <GEORG-SAN>
+collating-symbol <GEORG-TAR>
+collating-symbol <GEORG-UN>
+collating-symbol <GEORG-PHAR>
+collating-symbol <GEORG-KHAR>
+collating-symbol <GEORG-GHAN>
+collating-symbol <GEORG-QAR>
+collating-symbol <GEORG-SHIN>
+collating-symbol <GEORG-CHIN>
+collating-symbol <GEORG-CAN>
+collating-symbol <GEORG-JIL>
+collating-symbol <GEORG-CIL>
+collating-symbol <GEORG-CHAR>
+collating-symbol <GEORG-XAN>
+collating-symbol <GEORG-JHAN>
+collating-symbol <GEORG-HAE>
+collating-symbol <GEORG-HE>
+collating-symbol <GEORG-HIE>
+collating-symbol <GEORG-WE>
+collating-symbol <GEORG-HAR>
+collating-symbol <GEORG-HOE>
+collating-symbol <GEORG-FI>
# Ordre des symboles internes / Order of internal symbols
#
@@ -787,6 +830,48 @@ collating-symbol <ARM-FE>
<ARM-KE>
<ARM-O>
<ARM-FE>
+#
+# GEORGIAN
+#
+<GEORG-AN>
+<GEORG-BAN>
+<GEORG-GAN>
+<GEORG-DON>
+<GEORG-EN>
+<GEORG-VIN>
+<GEORG-ZEN>
+<GEORG-HE>
+<GEORG-TAN>
+<GEORG-IN>
+<GEORG-KAN>
+<GEORG-LAS>
+<GEORG-MAN>
+<GEORG-NAR>
+<GEORG-HIE>
+<GEORG-ON>
+<GEORG-PAR>
+<GEORG-ZHAR>
+<GEORG-RAE>
+<GEORG-SAN>
+<GEORG-TAR>
+<GEORG-WE>
+<GEORG-UN>
+<GEORG-PHAR>
+<GEORG-KHAR>
+<GEORG-GHAN>
+<GEORG-QAR>
+<GEORG-SHIN>
+<GEORG-CHIN>
+<GEORG-CAN>
+<GEORG-JIL>
+<GEORG-CIL>
+<GEORG-CHAR>
+<GEORG-XAN>
+<GEORG-HAR>
+<GEORG-JHAN>
+<GEORG-HAE>
+<GEORG-HOE>
+<GEORG-FI>
order_start <SPECIAL>;forward;backward;forward;forward,position
#
@@ -2419,6 +2504,137 @@ order_start <ARMENIAN>;forward;forward;forward;forward,position
<U0555> <ARM-O>;<BAS>;<CAP>;IGNORE
<U0556> <ARM-FE>;<BAS>;<CAP>;IGNORE
+order_start <GEORGIAN>;forward;forward;forward;forward,position
+# there are three georgian blocks defined in unicode;
+# those correspond to current and two historical scripts,
+# and are described as "CAPITAL", "(nothing)" and "SMALL" letters.
+# using <CAP>, <MIN>, <ANO> respectively for them, so the usual
+# script comes first (<MIN>), then the "SMALL" (<ANO>) then the
+# "CAPITAL" (<CAP>)
+<U10A0> <GEORG-AN>;<BAS>;<CAP>;IGNORE
+<U10A1> <GEORG-BAN>;<BAS>;<CAP>;IGNORE
+<U10A2> <GEORG-GAN>;<BAS>;<CAP>;IGNORE
+<U10A3> <GEORG-DON>;<BAS>;<CAP>;IGNORE
+<U10A4> <GEORG-EN>;<BAS>;<CAP>;IGNORE
+<U10A5> <GEORG-VIN>;<BAS>;<CAP>;IGNORE
+<U10A6> <GEORG-ZEN>;<BAS>;<CAP>;IGNORE
+<U10A7> <GEORG-TAN>;<BAS>;<CAP>;IGNORE
+<U10A8> <GEORG-IN>;<BAS>;<CAP>;IGNORE
+<U10A9> <GEORG-KAN>;<BAS>;<CAP>;IGNORE
+<U10AA> <GEORG-LAS>;<BAS>;<CAP>;IGNORE
+<U10AB> <GEORG-MAN>;<BAS>;<CAP>;IGNORE
+<U10AC> <GEORG-NAR>;<BAS>;<CAP>;IGNORE
+<U10AD> <GEORG-ON>;<BAS>;<CAP>;IGNORE
+<U10AE> <GEORG-PAR>;<BAS>;<CAP>;IGNORE
+<U10AF> <GEORG-ZHAR>;<BAS>;<CAP>;IGNORE
+<U10B0> <GEORG-RAE>;<BAS>;<CAP>;IGNORE
+<U10B1> <GEORG-SAN>;<BAS>;<CAP>;IGNORE
+<U10B2> <GEORG-TAR>;<BAS>;<CAP>;IGNORE
+<U10B3> <GEORG-UN>;<BAS>;<CAP>;IGNORE
+<U10B4> <GEORG-PHAR>;<BAS>;<CAP>;IGNORE
+<U10B5> <GEORG-KHAR>;<BAS>;<CAP>;IGNORE
+<U10B6> <GEORG-GHAN>;<BAS>;<CAP>;IGNORE
+<U10B7> <GEORG-QAR>;<BAS>;<CAP>;IGNORE
+<U10B8> <GEORG-SHIN>;<BAS>;<CAP>;IGNORE
+<U10B9> <GEORG-CHIN>;<BAS>;<CAP>;IGNORE
+<U10BA> <GEORG-CAN>;<BAS>;<CAP>;IGNORE
+<U10BB> <GEORG-JIL>;<BAS>;<CAP>;IGNORE
+<U10BC> <GEORG-CIL>;<BAS>;<CAP>;IGNORE
+<U10BD> <GEORG-CHAR>;<BAS>;<CAP>;IGNORE
+<U10BE> <GEORG-XAN>;<BAS>;<CAP>;IGNORE
+<U10BF> <GEORG-JHAN>;<BAS>;<CAP>;IGNORE
+<U10C0> <GEORG-HAE>;<BAS>;<CAP>;IGNORE
+<U10C1> <GEORG-HE>;<BAS>;<CAP>;IGNORE
+<U10C2> <GEORG-HIE>;<BAS>;<CAP>;IGNORE
+<U10C3> <GEORG-WE>;<BAS>;<CAP>;IGNORE
+<U10C4> <GEORG-HAR>;<BAS>;<CAP>;IGNORE
+<U10C5> <GEORG-HOE>;<BAS>;<CAP>;IGNORE
+#
+<U10D0> <GEORG-AN>;<BAS>;<MIN>;IGNORE
+<U10D1> <GEORG-BAN>;<BAS>;<MIN>;IGNORE
+<U10D2> <GEORG-GAN>;<BAS>;<MIN>;IGNORE
+<U10D3> <GEORG-DON>;<BAS>;<MIN>;IGNORE
+<U10D4> <GEORG-EN>;<BAS>;<MIN>;IGNORE
+<U10D5> <GEORG-VIN>;<BAS>;<MIN>;IGNORE
+<U10D6> <GEORG-ZEN>;<BAS>;<MIN>;IGNORE
+<U10D7> <GEORG-TAN>;<BAS>;<MIN>;IGNORE
+<U10D8> <GEORG-IN>;<BAS>;<MIN>;IGNORE
+<U10D9> <GEORG-KAN>;<BAS>;<MIN>;IGNORE
+<U10DA> <GEORG-LAS>;<BAS>;<MIN>;IGNORE
+<U10DB> <GEORG-MAN>;<BAS>;<MIN>;IGNORE
+<U10DC> <GEORG-NAR>;<BAS>;<MIN>;IGNORE
+<U10DD> <GEORG-ON>;<BAS>;<MIN>;IGNORE
+<U10DE> <GEORG-PAR>;<BAS>;<MIN>;IGNORE
+<U10DF> <GEORG-ZHAR>;<BAS>;<MIN>;IGNORE
+<U10E0> <GEORG-RAE>;<BAS>;<MIN>;IGNORE
+<U10E1> <GEORG-SAN>;<BAS>;<MIN>;IGNORE
+<U10E2> <GEORG-TAR>;<BAS>;<MIN>;IGNORE
+<U10E3> <GEORG-UN>;<BAS>;<MIN>;IGNORE
+<U10E4> <GEORG-PHAR>;<BAS>;<MIN>;IGNORE
+<U10E5> <GEORG-KHAR>;<BAS>;<MIN>;IGNORE
+<U10E6> <GEORG-GHAN>;<BAS>;<MIN>;IGNORE
+<U10E7> <GEORG-QAR>;<BAS>;<MIN>;IGNORE
+<U10E8> <GEORG-SHIN>;<BAS>;<MIN>;IGNORE
+<U10E9> <GEORG-CHIN>;<BAS>;<MIN>;IGNORE
+<U10EA> <GEORG-CAN>;<BAS>;<MIN>;IGNORE
+<U10EB> <GEORG-JIL>;<BAS>;<MIN>;IGNORE
+<U10EC> <GEORG-CIL>;<BAS>;<MIN>;IGNORE
+<U10ED> <GEORG-CHAR>;<BAS>;<MIN>;IGNORE
+<U10EE> <GEORG-XAN>;<BAS>;<MIN>;IGNORE
+<U10EF> <GEORG-JHAN>;<BAS>;<MIN>;IGNORE
+<U10F0> <GEORG-HAE>;<BAS>;<MIN>;IGNORE
+<U10F1> <GEORG-HE>;<BAS>;<MIN>;IGNORE
+<U10F2> <GEORG-HIE>;<BAS>;<MIN>;IGNORE
+<U10F3> <GEORG-WE>;<BAS>;<MIN>;IGNORE
+<U10F4> <GEORG-HAR>;<BAS>;<MIN>;IGNORE
+<U10F5> <GEORG-HOE>;<BAS>;<MIN>;IGNORE
+<U10F6> <GEORG-FI>;<BAS>;<MIN>;IGNORE
+<U10F7> IGNORE;IGNORE;IGNORE;<U10F7> # GEORGIAN LETTER YN
+<U10F8> IGNORE;IGNORE;IGNORE;<U10F8> # GEORGIAN LETTER ELIFI
+<U10F9> IGNORE;IGNORE;IGNORE;<U10F9> # GEORGIAN LETTER TURNED GAN
+<U10FA> IGNORE;IGNORE;IGNORE;<U10FA> # GEORGIAN LETTER AIN
+<U10FB> IGNORE;IGNORE;IGNORE;<U10FB> # GEORGIAN PARAGRAPH SEPARATOR
+<U10FC> IGNORE;IGNORE;IGNORE;<U10FC> # MODIFIER LETTER GEORGIAN NAR
+#
+<U2D00> <GEORG-AN>;<BAS>;<ANO>;IGNORE
+<U2D01> <GEORG-BAN>;<BAS>;<ANO>;IGNORE
+<U2D02> <GEORG-GAN>;<BAS>;<ANO>;IGNORE
+<U2D03> <GEORG-DON>;<BAS>;<ANO>;IGNORE
+<U2D04> <GEORG-EN>;<BAS>;<ANO>;IGNORE
+<U2D05> <GEORG-VIN>;<BAS>;<ANO>;IGNORE
+<U2D06> <GEORG-ZEN>;<BAS>;<ANO>;IGNORE
+<U2D07> <GEORG-TAN>;<BAS>;<ANO>;IGNORE
+<U2D08> <GEORG-IN>;<BAS>;<ANO>;IGNORE
+<U2D09> <GEORG-KAN>;<BAS>;<ANO>;IGNORE
+<U2D0A> <GEORG-LAS>;<BAS>;<ANO>;IGNORE
+<U2D0B> <GEORG-MAN>;<BAS>;<ANO>;IGNORE
+<U2D0C> <GEORG-NAR>;<BAS>;<ANO>;IGNORE
+<U2D0D> <GEORG-ON>;<BAS>;<ANO>;IGNORE
+<U2D0E> <GEORG-PAR>;<BAS>;<ANO>;IGNORE
+<U2D0F> <GEORG-ZHAR>;<BAS>;<ANO>;IGNORE
+<U2D10> <GEORG-RAE>;<BAS>;<ANO>;IGNORE
+<U2D11> <GEORG-SAN>;<BAS>;<ANO>;IGNORE
+<U2D12> <GEORG-TAR>;<BAS>;<ANO>;IGNORE
+<U2D13> <GEORG-UN>;<BAS>;<ANO>;IGNORE
+<U2D14> <GEORG-PHAR>;<BAS>;<ANO>;IGNORE
+<U2D15> <GEORG-KHAR>;<BAS>;<ANO>;IGNORE
+<U2D16> <GEORG-GHAN>;<BAS>;<ANO>;IGNORE
+<U2D17> <GEORG-QAR>;<BAS>;<ANO>;IGNORE
+<U2D18> <GEORG-SHIN>;<BAS>;<ANO>;IGNORE
+<U2D19> <GEORG-CHIN>;<BAS>;<ANO>;IGNORE
+<U2D1A> <GEORG-CAN>;<BAS>;<ANO>;IGNORE
+<U2D1B> <GEORG-JIL>;<BAS>;<ANO>;IGNORE
+<U2D1C> <GEORG-CIL>;<BAS>;<ANO>;IGNORE
+<U2D1D> <GEORG-CHAR>;<BAS>;<ANO>;IGNORE
+<U2D1E> <GEORG-XAN>;<BAS>;<ANO>;IGNORE
+<U2D1F> <GEORG-JHAN>;<BAS>;<ANO>;IGNORE
+<U2D20> <GEORG-HAE>;<BAS>;<ANO>;IGNORE
+<U2D21> <GEORG-HE>;<BAS>;<ANO>;IGNORE
+<U2D22> <GEORG-HIE>;<BAS>;<ANO>;IGNORE
+<U2D23> <GEORG-WE>;<BAS>;<ANO>;IGNORE
+<U2D24> <GEORG-HAR>;<BAS>;<ANO>;IGNORE
+<U2D25> <GEORG-HOE>;<BAS>;<ANO>;IGNORE
+
order_end
END LC_COLLATE
diff --git a/localedata/locales/iu_CA b/localedata/locales/iu_CA
new file mode 100644
index 0000000000..5fe346c1e5
--- /dev/null
+++ b/localedata/locales/iu_CA
@@ -0,0 +1,139 @@
+escape_char /
+comment_char %
+% charset "UTF-8"
+% Distribution and use is free, also for commercial purposes.
+
+LC_IDENTIFICATION
+title "Inuktitut language locale for Nunavut, Canada"
+source ""
+address ""
+contact "Pablo Saratxaga"
+email "pablo@mandriva.com"
+tel ""
+fax ""
+language "Inuktitut"
+territory "CA"
+revision "0.1"
+date "2001-05-04"
+
+category iu_CA:2000;LC_IDENTIFICATION
+category iu_CA:2000;LC_COLLATE
+category iu_CA:2000;LC_CTYPE
+category iu_CA:2000;LC_MESSAGES
+category iu_CA:2000;LC_MONETARY
+category iu_CA:2000;LC_NUMERIC
+category iu_CA:2000;LC_TIME
+category iu_CA:2000;LC_PAPER
+category iu_CA:2000;LC_NAME
+category iu_CA:2000;LC_MEASUREMENT
+category iu_CA:2000;LC_TELEPHONE
+category iu_CA:2000;LC_ADDRESS
+END LC_IDENTIFICATION
+
+LC_ADDRESS
+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0068>/
+<U0020><U0025><U0073><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U0054><U0020><U0025><U007A><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% FIXME country_name "Canada" in inuktitut ?
+% FIXME country_post "CA" for Canada ?
+country_ab2 "<U0043><U0041>"
+country_ab3 "<U0043><U0041><U004E>"
+country_num 124
+country_car "<U0043><U0041><U004E>" % FIXME
+% FIXME country_isbn for Canada/inuktitut ?
+lang_name "<U1403><U14C4><U1483><U144E><U1450><U1466>"
+lang_ab "iu"
+% FIXME lang_term
+% FIXME lang_lib
+END LC_ADDRESS
+
+%%%%%%%%%%%%%
+%
+% TODO: LC_COLLATE, LC_TIME, LC_MESSAGES
+%
+%%%%%%%%%%%%
+
+
+LC_COLLATE
+% FIXME: is that order correct ?
+copy "en_CA"
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_CA"
+END LC_CTYPE
+
+LC_MONETARY
+copy "en_CA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_CA"
+END LC_NUMERIC
+
+LC_TELEPHONE
+copy "en_CA"
+END LC_TELEPHONE
+
+LC_TIME
+abday "<U14C8>";"<U14C7>";/
+ "<U14D5>";"<U1431>";/
+ "<U157F>";"<U1405>";/
+ "<U14EF>"
+day "<U14C8><U1466><U144E><U1591><U152D><U1550><U1555><U1483>";/
+ "<U14C7><U14A1><U1490><U153E><U152D><U1405>";/
+ "<U14C7><U14A1><U1490><U153E><U152D><U1405><U14D5><U1585><U146D><U1466>";/
+ "<U1431><U1593><U14F2><U14D5><U1585><U14EF><U1405><U1466>";/
+ "<U157F><U144E><U1585><U1470><U1466>";/
+ "<U1405><U14EA><U14D7><U1548><U14D8><U1450><U1403><U14C7><U1585>";/
+ "<U14EF><U1559><U1456><U1555><U1483>"
+abmon "<U152E><U14C4>";"<U1555><U1557>";/
+ "<U14AA><U1505>";"<U1403><U1433>";/
+ "<U14AA><U1403>";"<U152A><U14C2>";/
+ "<U152A><U14DA>";"<U140A><U148B>";/
+ "<U14EF><U144E>";"<U140A><U1466>";/
+ "<U14C4><U1555>";"<U144E><U14EF>"
+mon "<U152E><U14C4><U140A><U14D5>";/
+ "<U1555><U1557><U140A><U14D5>";/
+ "<U14AA><U1505><U14EF>";/
+ "<U1403><U1433><U14D7>";/
+ "<U14AA><U1403>";/
+ "<U152A><U14C2>";/
+ "<U152A><U14DA><U1403>";/
+ "<U140A><U148B><U14EF>";/
+ "<U14EF><U144E><U1559>";/
+ "<U140A><U1466><U1450><U1559>";/
+ "<U14C4><U1555><U1559>";/
+ "<U144E><U14EF><U155D><U1559>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
+t_fmt "<U0025><U0072>"
+am_pm "<U0041><U004D>";"<U0050><U004D>"
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+END LC_TIME
+
+LC_MESSAGES
+yesexpr "<U005B><U0079><U0059><U0073><U0053><U005D><U002E><U002A>"
+noexpr "<U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+% Default paper: A4
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+% FIXME
+LC_NAME
+copy "en_CA"
+END LC_NAME
+
+% Metric System (ISO 1000)
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+
+
diff --git a/localedata/locales/li_BE b/localedata/locales/li_BE
new file mode 100644
index 0000000000..7de99170c1
--- /dev/null
+++ b/localedata/locales/li_BE
@@ -0,0 +1,130 @@
+comment_char %
+escape_char /
+% Distribution and use is
+
+LC_IDENTIFICATION
+title "Limburgish Language Locale for Belgium"
+source "information from Kenneth Christiansen"
+address ""
+contact "Kenneth Christiansen, Pablo Saratxaga"
+email "kenneth@gnu.org, pablo@mandriva.com"
+tel ""
+% Fax
+language "li"
+territory "BE"
+revision "0.1"
+date "2003-11-30"
+
+category i18n:2000;LC_IDENTIFICATION
+category i18n:2000;LC_COLLATE
+category i18n:2000;LC_CTYPE
+category i18n:2000;LC_MESSAGES
+category i18n:2000;LC_MONETARY
+category i18n:2000;LC_NUMERIC
+category i18n:2000;LC_TIME
+category i18n:2000;LC_PAPER
+category i18n:2000;LC_NAME
+category i18n:2000;LC_MEASUREMENT
+category i18n:2000;LC_TELEPHONE
+category i18n:2000;LC_ADDRESS
+
+% ISO/IEC 14652: Converted comments to LC_IDENTIFICATION
+% added LC_PAPER, LC_MEASUREMENT, LC_TELEPHONE, LC_ADDRESS
+% copied LC_MONETARY, LC_NUMERIC from de_DE for simplicity
+% -- mckinstry@computer.org, 2000-07-03
+
+END LC_IDENTIFICATION
+
+LC_ADDRESS
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+%FIXME country_name "Belgie"
+country_post "<U0042>"
+country_ab2 "<U0042><U0045>"
+country_ab3 "<U0042><U0045><U004C>"
+country_car "<U0042>"
+country_num 56
+%FIXME country_isbn "2"
+lang_name "<U004C><U0069><U006D><U0062><U0075><U0072><U0067><U0073>"
+lang_ab "<U006C><U0069>"
+lang_term "<U006C><U0069><U006D>"
+lang_lib "<U006C><U0069><U006D>"
+END LC_ADDRESS
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_DK"
+END LC_CTYPE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U006A><U004A><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "nl_BE"
+END LC_MONETARY
+
+LC_PAPER
+copy "nl_BE"
+END LC_PAPER
+
+LC_NAME
+copy "nl_BE"
+END LC_NAME
+
+LC_TELEPHONE
+copy "nl_BE"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "nl_BE"
+END LC_MEASUREMENT
+
+LC_NUMERIC
+copy "nl_BE"
+END LC_NUMERIC
+
+LC_TIME
+abday "<U007A><U00F3><U006E>";"<U006D><U0061><U006F>";/
+ "<U0064><U0061><U0065>";"<U0067><U006F><U006F>";/
+ "<U0064><U00F3><U006E>";"<U0076><U0072><U0069>";/
+ "<U007A><U0091><U006F>"
+day "<U007A><U00F3><U006E><U0064><U0069><U0067>";/
+ "<U006D><U0061><U006F><U006E><U0064><U0069><U0067>";/
+ "<U0064><U0061><U0065><U006E><U0073><U0064><U0069><U0067>";/
+ "<U0067><U006F><U006F><U006E><U0073><U0064><U0069><U0067>";/
+ "<U0064><U00F3><U006E><U0064><U0065><U0072><U0064><U0069><U0067>";/
+ "<U0076><U0072><U0069><U0065><U0064><U0069><U0067>";/
+ "<U007A><U0061><U006F><U0074><U0065><U0072><U0064><U0069><U0067>"
+abmon "<U006A><U0061><U006E>";"<U0066><U0069><U0062>";/
+ "<U006D><U0069><U0065>";"<U0065><U0070><U0072>";/
+ "<U006D><U0065><U0069>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0075><U0067>";/
+ "<U0073><U0065><U0070>";"<U006F><U006B><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0065><U0073>"
+mon "<U006A><U0061><U006E><U006E><U0065><U0077><U0061><U0072><U0069><U0065>";/
+ "<U0066><U0069><U0062><U0062><U0065><U0072><U0077><U0061><U0072><U0069><U0065>";/
+ "<U006D><U0069><U0065><U0072><U0074>";/
+ "<U0065><U0070><U0072><U00E8><U006C>";/
+ "<U006D><U0065><U0069><U006A>";/
+ "<U006A><U0075><U006E><U0069><U0065>";/
+ "<U006A><U0075><U006C><U0069><U0065>";/
+ "<U0061><U0075><U0067><U0075><U0073><U0074><U0075><U0073>";/
+ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+ "<U006F><U006B><U0074><U006F><U0062><U0065><U0072>";/
+ "<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
+ "<U0064><U0065><U0073><U0065><U006D><U0062><U0065><U0072>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U002E><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+week 7;19971201;4
+END LC_TIME
diff --git a/localedata/locales/li_NL b/localedata/locales/li_NL
new file mode 100644
index 0000000000..016e283cdf
--- /dev/null
+++ b/localedata/locales/li_NL
@@ -0,0 +1,131 @@
+comment_char %
+escape_char /
+% Distribution and use is
+
+LC_IDENTIFICATION
+title "Limburgish Language Locale for the Netherlands"
+source "information from Kenneth Christiansen"
+address ""
+contact "Kenneth Christiansen, Pablo Saratxaga"
+email "kenneth@gnu.org, pablo@mandriva.com"
+tel ""
+% Fax
+language "li"
+territory "NL"
+revision "0.1"
+date "2003-11-30"
+
+category i18n:2000;LC_IDENTIFICATION
+category i18n:2000;LC_COLLATE
+category i18n:2000;LC_CTYPE
+category i18n:2000;LC_MESSAGES
+category i18n:2000;LC_MONETARY
+category i18n:2000;LC_NUMERIC
+category i18n:2000;LC_TIME
+category i18n:2000;LC_PAPER
+category i18n:2000;LC_NAME
+category i18n:2000;LC_MEASUREMENT
+category i18n:2000;LC_TELEPHONE
+category i18n:2000;LC_ADDRESS
+
+% ISO/IEC 14652: Converted comments to LC_IDENTIFICATION
+% added LC_PAPER, LC_MEASUREMENT, LC_TELEPHONE, LC_ADDRESS
+% copied LC_MONETARY, LC_NUMERIC from de_DE for simplicity
+% -- mckinstry@computer.org, 2000-07-03
+
+END LC_IDENTIFICATION
+
+LC_ADDRESS
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+%FIXME country_name "Nederland"
+country_post "<U004E><U004C>"
+country_ab2 "<U004E><U004C>"
+country_ab3 "<U004E><U004C><U0044>"
+country_car "<U004E><U004C>"
+country_num 528
+%FIXME country_isbn "2"
+lang_name "<U004C><U0069><U006D><U0062><U0075><U0072><U0067><U0073>"
+lang_ab "<U006C><U0069>"
+lang_term "<U006C><U0069><U006D>"
+lang_lib "<U006C><U0069><U006D>"
+END LC_ADDRESS
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_DK"
+END LC_CTYPE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U006A><U004A><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "nl_NL"
+END LC_MONETARY
+
+LC_PAPER
+copy "nl_NL"
+END LC_PAPER
+
+LC_NAME
+copy "nl_NL"
+END LC_NAME
+
+LC_TELEPHONE
+copy "nl_NL"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "nl_NL"
+END LC_MEASUREMENT
+
+LC_NUMERIC
+copy "nl_NL"
+END LC_NUMERIC
+
+LC_TIME
+
+abday "<U007A><U00F3><U006E>";"<U006D><U0061><U006F>";/
+ "<U0064><U0061><U0065>";"<U0067><U006F><U006F>";/
+ "<U0064><U00F3><U006E>";"<U0076><U0072><U0069>";/
+ "<U007A><U0091><U006F>"
+day "<U007A><U00F3><U006E><U0064><U0069><U0067>";/
+ "<U006D><U0061><U006F><U006E><U0064><U0069><U0067>";/
+ "<U0064><U0061><U0065><U006E><U0073><U0064><U0069><U0067>";/
+ "<U0067><U006F><U006F><U006E><U0073><U0064><U0069><U0067>";/
+ "<U0064><U00F3><U006E><U0064><U0065><U0072><U0064><U0069><U0067>";/
+ "<U0076><U0072><U0069><U0065><U0064><U0069><U0067>";/
+ "<U007A><U0061><U006F><U0074><U0065><U0072><U0064><U0069><U0067>"
+abmon "<U006A><U0061><U006E>";"<U0066><U0069><U0062>";/
+ "<U006D><U0069><U0065>";"<U0065><U0070><U0072>";/
+ "<U006D><U0065><U0069>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0075><U0067>";/
+ "<U0073><U0065><U0070>";"<U006F><U006B><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0065><U0073>"
+mon "<U006A><U0061><U006E><U006E><U0065><U0077><U0061><U0072><U0069><U0065>";/
+ "<U0066><U0069><U0062><U0062><U0065><U0072><U0077><U0061><U0072><U0069><U0065>";/
+ "<U006D><U0069><U0065><U0072><U0074>";/
+ "<U0065><U0070><U0072><U00E8><U006C>";/
+ "<U006D><U0065><U0069><U006A>";/
+ "<U006A><U0075><U006E><U0069><U0065>";/
+ "<U006A><U0075><U006C><U0069><U0065>";/
+ "<U0061><U0075><U0067><U0075><U0073><U0074><U0075><U0073>";/
+ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+ "<U006F><U006B><U0074><U006F><U0062><U0065><U0072>";/
+ "<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
+ "<U0064><U0065><U0073><U0065><U006D><U0062><U0065><U0072>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U002E><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+week 7;19971201;4
+END LC_TIME
diff --git a/localedata/locales/lo_LA b/localedata/locales/lo_LA
index 9cb6861ebf..cc764e1678 100644
--- a/localedata/locales/lo_LA
+++ b/localedata/locales/lo_LA
@@ -230,6 +230,7 @@ collating-element <ho-o> from "<U0EC2><U0EAB>"
collating-element <ho-ai-maimuan> from "<U0EC3><U0EAB>"
collating-element <ho-ai-maimalai> from "<U0EC4><U0EAB>"
+collating-element <o-e> from "<U0EC0><U0EAD>"
collating-element <o-ae> from "<U0EC1><U0EAD>"
collating-element <o-o> from "<U0EC2><U0EAD>"
collating-element <o-ai-maimuan> from "<U0EC3><U0EAD>"
@@ -601,10 +602,10 @@ UNDEFINED IGNORE;IGNORE;IGNORE;IGNORE
<U0EDD> <U0EDC>;<BLANK>;<BLANK>;<BLANK> % Lao CHARACTER HHOr
<mhor-e> "<U0EDD><U0EC0>";<BLANK>;<BLANK>;<BLANK>
-<mor-ae> "<U0EDD><U0EC1>";<BLANK>;<BLANK>;<BLANK>
-<mor-o> "<U0EDD><U0EC2>";<BLANK>;<BLANK>;<BLANK>
-<mor-ai-maimuan> "<U0EDD><U0EC3>";<BLANK>;<BLANK>;<BLANK>
-<mor-ai-maimalai> "<U0EDD><U0EC4>";<BLANK>;<BLANK>;<BLANK>
+<mor-ae> "<U0EDD><U0EC1>";<BLANK>;<BLANK>;<BLANK>
+<mor-o> "<U0EDD><U0EC2>";<BLANK>;<BLANK>;<BLANK>
+<mor-ai-maimuan> "<U0EDD><U0EC3>";<BLANK>;<BLANK>;<BLANK>
+<mor-ai-maimalai> "<U0EDD><U0EC4>";<BLANK>;<BLANK>;<BLANK>
% order of Lao vowels
diff --git a/localedata/locales/lv_LV b/localedata/locales/lv_LV
index 36ed49417c..99c8b6c25e 100644
--- a/localedata/locales/lv_LV
+++ b/localedata/locales/lv_LV
@@ -919,7 +919,6 @@ order_start forward;backward/
<UE00D> IGNORE;IGNORE;IGNORE;<UE00D>
<UE00E> IGNORE;IGNORE;IGNORE;<UE00E>
<UE00F> IGNORE;IGNORE;IGNORE;<UE00F>
-<"=> IGNORE;IGNORE;IGNORE;<"=>
<UE011> IGNORE;IGNORE;IGNORE;<UE011>
<UE012> IGNORE;IGNORE;IGNORE;<UE012>
<UE013> IGNORE;IGNORE;IGNORE;<UE013>
diff --git a/localedata/locales/nb_NO b/localedata/locales/nb_NO
index 9579ffb646..9540cfa04a 100644
--- a/localedata/locales/nb_NO
+++ b/localedata/locales/nb_NO
@@ -59,6 +59,7 @@ collating-symbol <MIN-CAP>
collating-symbol <ae>
collating-symbol <o-stroke>
collating-symbol <a-ring>
+collating-symbol <ETH>
reorder-after <RES-1>
<CAP>
@@ -190,6 +191,9 @@ t_fmt_ampm ""
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971201;4
+first_weekday 1
+first_workday 1
END LC_TIME
LC_MESSAGES
diff --git a/localedata/locales/nds_DE b/localedata/locales/nds_DE
new file mode 100644
index 0000000000..179f052804
--- /dev/null
+++ b/localedata/locales/nds_DE
@@ -0,0 +1,129 @@
+comment_char %
+escape_char /
+% Distribution and use is
+
+LC_IDENTIFICATION
+title "Low(lands) Saxon Language Locale for Germany"
+source "information from Kenneth Christiansen"
+address ""
+contact "Kenneth Christiansen, Pablo Saratxaga"
+email "kenneth@gnu.org, pablo@mandrakesoft.com"
+tel ""
+% Fax
+language "nds"
+territory "DE"
+revision "0.1"
+date "2003-11-30"
+
+category i18n:2000;LC_IDENTIFICATION
+category i18n:2000;LC_COLLATE
+category i18n:2000;LC_CTYPE
+category i18n:2000;LC_MESSAGES
+category i18n:2000;LC_MONETARY
+category i18n:2000;LC_NUMERIC
+category i18n:2000;LC_TIME
+category i18n:2000;LC_PAPER
+category i18n:2000;LC_NAME
+category i18n:2000;LC_MEASUREMENT
+category i18n:2000;LC_TELEPHONE
+category i18n:2000;LC_ADDRESS
+
+% ISO/IEC 14652: Converted comments to LC_IDENTIFICATION
+% added LC_PAPER, LC_MEASUREMENT, LC_TELEPHONE, LC_ADDRESS
+% copied LC_MONETARY, LC_NUMERIC from de_DE for simplicity
+% -- mckinstry@computer.org, 2000-07-03
+
+END LC_IDENTIFICATION
+
+LC_ADDRESS
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_post "<U0044>"
+country_ab2 "<U0044><U0045>"
+country_ab3 "<U0044><U0045><U0055>"
+country_car "<U0044>"
+country_num 276
+country_isbn "3"
+lang_name "<U004E><U0065><U0064><U0064><U0065><U0072><U0073><U0061><U0073><U0073><U0069><U0073><U0063><U0068>"
+%lang_ab
+lang_term "<U006E><U0064><U0073>"
+lang_lib "<U006E><U0064><U0073>"
+END LC_ADDRESS
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_DK"
+END LC_CTYPE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U006A><U004A><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "de_DE"
+END LC_MONETARY
+
+LC_PAPER
+copy "de_DE"
+END LC_PAPER
+
+LC_NAME
+copy "de_DE"
+END LC_NAME
+
+LC_TELEPHONE
+copy "de_DE"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "de_DE"
+END LC_MEASUREMENT
+
+LC_NUMERIC
+copy "de_DE"
+END LC_NUMERIC
+
+LC_TIME
+abday "<U0053><U0064><U0061><U0067>";"<U004D><U0061><U0061><U006E>";/
+ "<U0044><U0069><U006E><U0067>";"<U004D><U0069><U0067><U0067>";/
+ "<U0044><U0075><U006E><U006E>";"<U0046><U0072><U0065><U0065>";/
+ "<U0053><U0076><U0064><U002E>"
+day "<U0053><U00FC><U006E><U006E><U0064><U0061><U0067>";/
+ "<U004D><U0061><U0061><U006E><U0064><U0061><U0067>";/
+ "<U0044><U0069><U006E><U0067><U0073><U0064><U0061><U0067>";/
+ "<U004D><U0069><U0064><U0064><U0065><U0077><U0065><U0065><U006B>";/
+ "<U0044><U0075><U006E><U006E><U0065><U0072><U0073><U0064><U0061><U0067>";/
+ "<U0046><U0072><U0065><U0065><U0064><U0061><U0067>";/
+ "<U0053><U00FC><U006E><U006E><U0061><U0076><U0065><U006E><U0064>"
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+ "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
+ "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
+mon "<U004A><U0061><U006E><U006E><U0075><U0061><U0061><U0072>";/
+ "<U0046><U0065><U0062><U0065><U0072><U0077><U0061><U0061><U0072>";/
+ "<U004D><U00E4><U0072><U007A>";/
+ "<U0041><U0070><U0072><U0069><U006C>";/
+ "<U004D><U0061><U0069>";/
+ "<U004A><U0075><U006E><U0069>";/
+ "<U004A><U0075><U006C><U0069>";/
+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+ "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
+ "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U002E><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+week 7;19971201;4
+END LC_TIME
diff --git a/localedata/locales/nds_NL b/localedata/locales/nds_NL
new file mode 100644
index 0000000000..aaccb68451
--- /dev/null
+++ b/localedata/locales/nds_NL
@@ -0,0 +1,128 @@
+comment_char %
+escape_char /
+% Distribution and use is
+
+LC_IDENTIFICATION
+title "Low(lands) Saxon Language Locale for the Netherlands"
+source "information from Kenneth Christiansen"
+address ""
+contact "Kenneth Christiansen, Pablo Saratxaga"
+email "kenneth@gnu.org, pablo@mandrakesoft.com"
+tel ""
+% Fax
+language "nds"
+territory "NL"
+revision "0.1"
+date "2003-11-30"
+
+category i18n:2000;LC_IDENTIFICATION
+category i18n:2000;LC_COLLATE
+category i18n:2000;LC_CTYPE
+category i18n:2000;LC_MESSAGES
+category i18n:2000;LC_MONETARY
+category i18n:2000;LC_NUMERIC
+category i18n:2000;LC_TIME
+category i18n:2000;LC_PAPER
+category i18n:2000;LC_NAME
+category i18n:2000;LC_MEASUREMENT
+category i18n:2000;LC_TELEPHONE
+category i18n:2000;LC_ADDRESS
+
+% ISO/IEC 14652: Converted comments to LC_IDENTIFICATION
+% added LC_PAPER, LC_MEASUREMENT, LC_TELEPHONE, LC_ADDRESS
+% copied LC_MONETARY, LC_NUMERIC from de_DE for simplicity
+% -- mckinstry@computer.org, 2000-07-03
+
+END LC_IDENTIFICATION
+
+LC_ADDRESS
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U004E><U004C>"
+country_ab3 "<U004E><U004C><U0044>"
+country_car "<U004E><U004C>"
+country_num 528
+country_isbn "3"
+lang_name "<U004E><U0065><U0064><U0064><U0065><U0072><U0073><U0061><U0073><U0073><U0069><U0073><U0063><U0068>"
+%lang_ab
+lang_term "<U006E><U0064><U0073>"
+lang_lib "<U006E><U0064><U0073>"
+END LC_ADDRESS
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_DK"
+END LC_CTYPE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U006A><U004A><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "nl_NL"
+END LC_MONETARY
+
+LC_PAPER
+copy "nl_NL"
+END LC_PAPER
+
+LC_NAME
+copy "nl_NL"
+END LC_NAME
+
+LC_TELEPHONE
+copy "nl_NL"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "nl_NL"
+END LC_MEASUREMENT
+
+LC_NUMERIC
+copy "nl_NL"
+END LC_NUMERIC
+
+LC_TIME
+abday "<U0053><U0064><U0067>";"<U004D><U0064><U0067>";/
+ "<U0044><U0073><U0067>";"<U004D><U0077><U006B>";/
+ "<U0044><U0064><U0067>";"<U0046><U0064><U0067>";/
+ "<U0053><U0077><U0064>"
+day "<U0053><U0069><U006E><U006E><U0064><U0061><U0067>";/
+ "<U004D><U006F><U006E><U0064><U0061><U0067>";/
+ "<U0044><U0069><U006E><U0067><U0073><U0064><U0061><U0067>";/
+ "<U004D><U0065><U0064><U0064><U0077><U00E4><U0061><U006B><U006A>";/
+ "<U0044><U006F><U006E><U006E><U0061><U0064><U0061><U0067>";/
+ "<U0046><U0072><U0069><U0065><U0064><U0061><U0067>";/
+ "<U0053><U0069><U006E><U006E><U006F><U0077><U0065><U006E><U0064>"
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+ "<U004D><U006F><U007A>";"<U0041><U0070><U0072>";/
+ "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0077>";"<U0044><U0065><U007A>"
+mon "<U004A><U0061><U0075><U006E><U0075><U0077><U006F><U0061>";/
+ "<U0046><U0065><U0062><U0072><U0075><U0077><U006F><U0061>";/
+ "<U004D><U006F><U0061><U007A>";/
+ "<U0041><U0070><U0072><U0065><U006C><U006C>";/
+ "<U004D><U0061><U0069>";/
+ "<U004A><U0075><U006E><U0069>";/
+ "<U004A><U0075><U006C><U0069>";/
+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+ "<U0053><U0065><U0070><U0074><U0061><U006D><U0062><U0061>";/
+ "<U004F><U006B><U0074><U006F><U0062><U0061>";/
+ "<U004E><U006F><U0077><U0061><U006D><U0062><U0061>";/
+ "<U0044><U0065><U007A><U0061><U006D><U0062><U0061>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U002E><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+week 7;19971201;4
+END LC_TIME
diff --git a/localedata/locales/nn_NO b/localedata/locales/nn_NO
index eb060edcce..af9ce4de2e 100644
--- a/localedata/locales/nn_NO
+++ b/localedata/locales/nn_NO
@@ -136,6 +136,9 @@ t_fmt_ampm ""
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971201;4
+first_weekday 1
+first_workday 1
END LC_TIME
diff --git a/localedata/locales/oc_FR b/localedata/locales/oc_FR
index 97dfc8d90d..156f81243f 100644
--- a/localedata/locales/oc_FR
+++ b/localedata/locales/oc_FR
@@ -91,7 +91,7 @@ END LC_TELEPHONE
LC_TIME
abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
"<U006D><U0061><U0072>";"<U006D><U0065><U0063>";/
- "<U006A><U00F3><U0075>";"<U0076><U0065><U006E>";/
+ "<U006A><U00F2><U0075>";"<U0076><U0065><U006E>";/
"<U0073><U0061><U0062>"
day "<U0064><U0069><U006D><U0065><U006E><U0067><U0065>";/
"<U0064><U0069><U006C><U0075><U006E><U0073>";/
@@ -103,7 +103,7 @@ day "<U0064><U0069><U006D><U0065><U006E><U0067><U0065>";/
abmon "<U0067><U0065><U006E>";"<U0066><U0065><U0062>";/
"<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
"<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U00F3>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
"<U0073><U0065><U0074>";"<U006F><U0063><U0074>";/
"<U006E><U006F><U0076>";"<U0064><U0065><U0063>"
mon "<U0067><U0065><U006E><U0069><U00E8><U0072>";/
@@ -113,7 +113,7 @@ mon "<U0067><U0065><U006E><U0069><U00E8><U0072>";/
"<U006D><U0061><U0069>";/
"<U006A><U0075><U006E><U0068>";/
"<U006A><U0075><U006C><U0068><U0065><U0074>";/
- "<U0061><U0067><U00F3><U0073><U0074>";/
+ "<U0061><U0067><U006F><U0073><U0074>";/
"<U0073><U0065><U0074><U0065><U006D><U0062><U0072><U0065>";/
"<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
"<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
diff --git a/localedata/locales/pap_AN b/localedata/locales/pap_AN
new file mode 100644
index 0000000000..6f0e262bb5
--- /dev/null
+++ b/localedata/locales/pap_AN
@@ -0,0 +1,153 @@
+comment_char %
+escape_char /
+% Distribution and use is free, also for commercial purposes.
+
+LC_IDENTIFICATION
+title "Papiamento Language for the (Netherland) Antilles"
+source "informations from native speaker"
+address ""
+contact "Pablo Saratxaga"
+email "pablo@mandrakesoft.com"
+tel ""
+fax ""
+language "pap"
+territory "AN"
+revision "0.2"
+date "2000-11-15"
+
+category i18n:2000;LC_IDENTIFICATION
+category i18n:2000;LC_COLLATE
+category i18n:2000;LC_CTYPE
+category i18n:2000;LC_MESSAGES
+category i18n:2000;LC_MONETARY
+category i18n:2000;LC_NUMERIC
+category i18n:2000;LC_TIME
+category i18n:2000;LC_PAPER
+category i18n:2000;LC_MEASUREMENT
+category i18n:2000;LC_TELEPHONE
+category i18n:2000;LC_ADDRESS
+
+% ISO/IEC 14652: Converted comments to LC_IDENTIFICATION
+% added LC_PAPER, LC_MEASUREMENT, LC_TELEPHONE, LC_ADDRESS
+% -- mckinstry@computer.org, 2000-07-03
+
+END LC_IDENTIFICATION
+
+LC_ADDRESS
+postal_fmt "<U0025><U0064><U0025><U004E><U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E>/
+<U0025><U0073><U0020><U0025><U0068><U0020><U0035><U0065><U0020><U0025><U0072><U0025><U004E>/
+<U0025><U0043><U0025><U007A><U0020><U0025><U0054><U0025><U004E><U0025><U0063><U0025><U004E>"
+% FIXME country_name for Antilles in Paplamento
+% FIXME country_post MAIL_CEPTCODE for Nederland Antilles, AN?
+country_ab2 "<U0041><U004E>"
+country_ab3 "<U0041><U004E><U0054>"
+country_num 530
+country_isbn "99904"
+country_car "<U004E><U0041>"
+% lang_ab
+lang_term "<U0070><U0061><U0070>"
+lang_lib "<U0070><U0061><U0070>"
+END LC_ADDRESS
+
+LC_CTYPE
+copy "en_DK"
+END LC_CTYPE
+
+LC_COLLATE
+copy "en_DK"
+END LC_COLLATE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U006A><U004A><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+
+LC_MONETARY
+int_curr_symbol "<U0041><U004E><U0047><U0020>"
+currency_symbol "<U0066>"
+mon_decimal_point "<U002C>"
+mon_thousands_sep "<U0020>"
+mon_grouping 3;3
+positive_sign ""
+negative_sign "<U002D>"
+int_frac_digits 2
+frac_digits 2
+p_cs_precedes 1
+p_sep_by_space 1
+n_cs_precedes 1
+n_sep_by_space 1
+p_sign_posn 1
+n_sign_posn 2
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point "<U002C>"
+thousands_sep ""
+grouping 0;0
+END LC_NUMERIC
+
+LC_TIME
+abday "<U0064><U006F>";"<U006C><U0075>";"<U006D><U0061>";/
+ "<U0077><U0065>";"<U0072><U0061>";"<U0062><U0069>";/
+ "<U0073><U0061>"
+day "<U0044><U006A><U0061><U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+ "<U0044><U006A><U0061><U006C><U0075><U006E><U0061>";/
+ "<U0044><U006A><U0061><U006D><U0061><U0072><U0073>";/
+ "<U0044><U006A><U0061><U0077><U0065><U0062><U0073>";/
+ "<U0044><U006A><U0061><U0072><U0061><U0073><U006F><U006E>";/
+ "<U0044><U006A><U0061><U0062><U0069><U0065><U0072><U006E><U0065>";/
+ "<U0044><U006A><U0061><U0073><U0061><U0062><U0072><U0061>"
+abmon "<U0059><U0061><U006E>";"<U0046><U0065><U0062>";/
+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
+ "<U004D><U0065><U0069>";"<U0059><U00FC><U006E>";/
+ "<U0059><U00FC><U006C>";"<U004F><U0075><U0067>";/
+ "<U0053><U00E8><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0076>";"<U0044><U0065><U0073>"
+mon "<U0059><U0061><U006E><U00FC><U0061><U0072><U0069>";/
+ "<U0046><U0065><U0062><U0072><U00FC><U0061><U0072><U0069>";/
+ "<U004D><U0061><U0072><U0074>";/
+ "<U0041><U0070><U0072><U0065><U006C>";/
+ "<U004D><U0065><U0069>";/
+ "<U0059><U00FC><U006E><U0069>";/
+ "<U0059><U00FC><U006C><U0069>";/
+ "<U004F><U0075><U0067><U00F9><U0073><U0074><U00F9><U0073>";/
+ "<U0053><U00E8><U0070><U0074><U00E8><U006D><U0062><U0065><U0072>";/
+ "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
+ "<U004E><U006F><U0076><U00E8><U006D><U0062><U0065><U0072>";/
+ "<U0044><U0065><U0073><U00E8><U006D><U0062><U0065><U0072>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0079>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+END LC_TIME
+
+LC_NUMERIC
+decimal_point "<U002C>"
+thousands_sep ""
+grouping 0;0
+END LC_NUMERIC
+
+% Metric Measurement system (ISO 1000)
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+% Default paper: A4
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+LC_TELEPHONE
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
+% FIXME FIND tel_dom_fmt
+int_select "00"
+int_prefix "599"
+END LC_TELEPHONE
+
+LC_NAME
+% Todo
+copy "en_DK"
+END LC_NAME
diff --git a/localedata/locales/sa_IN b/localedata/locales/sa_IN
new file mode 100644
index 0000000000..1e0d80c9d8
--- /dev/null
+++ b/localedata/locales/sa_IN
@@ -0,0 +1,254 @@
+comment_char %
+escape_char /
+% Sanskrit language locale for India.
+% Contributed by Vidya Ayer <svaksha@gmail.com>
+% and Christian Perrier <bubulle@debian.org>
+
+LC_IDENTIFICATION
+title "Sanskrit language locale for India"
+source "The Debian project"
+address ""
+contact "Christian Perrier"
+email "bubulle@debian.org"
+tel ""
+fax ""
+language "Sanskrit"
+territory "India"
+revision "1.0"
+date "2005-09-25"
+%
+category "sa_IN:2000";LC_IDENTIFICATION
+category "sa_IN:2000";LC_CTYPE
+category "sa_IN:2000";LC_COLLATE
+category "sa_IN:2000";LC_TIME
+category "sa_IN:2000";LC_NUMERIC
+category "sa_IN:2000";LC_MONETARY
+category "sa_IN:2000";LC_MESSAGES
+category "sa_IN:2000";LC_PAPER
+category "sa_IN:2000";LC_NAME
+category "sa_IN:2000";LC_ADDRESS
+category "sa_IN:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+
+END LC_COLLATE
+
+LC_MONETARY
+% This is the POSIX Locale definition the LC_MONETARY category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+int_curr_symbol "<U0049><U004E><U0052><U0020>"
+currency_symbol "<U0930><U0942>"
+mon_decimal_point "<U002E>"
+mon_thousands_sep "<U002C>"
+mon_grouping 3
+positive_sign ""
+negative_sign "<U002D>"
+int_frac_digits 2
+frac_digits 2
+p_cs_precedes 1
+p_sep_by_space 1
+n_cs_precedes 1
+n_sep_by_space 1
+p_sign_posn 1
+n_sign_posn 1
+%
+END LC_MONETARY
+
+
+LC_NUMERIC
+% This is the POSIX Locale definition for the LC_NUMERIC category.
+%
+decimal_point "<U002E>"
+thousands_sep "<U002C>"
+grouping 3
+%
+END LC_NUMERIC
+
+
+LC_TIME
+% This is the POSIX Locale definition for the LC_TIME category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+% Abbreviated weekday names (%a)
+% ravih,somah,mangalah,budhah,brhaspatih,shukra,shanih
+abday "<U0930><U0935><U093F><U0903>";/
+ "<U0938><U094B><U092E><U003A>";/
+ "<U092E><U0902><U0917><U0932><U003A>";/
+ "<U092C><U0941><U0927><U003A>";/
+ "<U092C><U0943><U0939><U0938><U094D><U092A><U0924><U093F><U0903>";/
+ "<U0936><U0941><U0915><U094D><U0930>";/
+ "<U0936><U0928><U093F><U003A>"
+%
+% Full weekday names (%A)
+% ravivasarah, somavasarah, mangalavasarah, budhavasarah, brhaspativasarah, shukravasarah, shanivasarah
+day "<U0930><U0935><U093F><U0935><U093E><U0938><U0930><U003A>";/
+ "<U0938><U094B><U092E><U0935><U093E><U0938><U0930><U003A>";/
+ "<U092E><U0902><U0917><U0932><U0935><U093E><U0938><U0930><U003A>";/
+ "<U092C><U0941><U0927><U0935><U093E><U0938><U0930><U003A>";/
+ "<U092C><U0943><U0939><U0938><U094D><U092A><U0924><U093F><U0935><U093E><U0938><U0930><U0903>";/
+ "<U0936><U0941><U0915><U094D><U0930><U0935><U093E><U0938><U0930>";/
+ "<U0936><U0928><U093F><U0935><U093E><U0938><U0930><U003A>"
+%
+% Abbreviated month names (%b)
+% Below comes from hi_IN.
+% Sanskrit uses a lunar calendar. When gregorian month names
+% are needed, the names are the same names than those used
+% by Hindi
+% names for gregorian month names:
+abmon "<U091C><U0928><U0935><U0930><U0940>";/
+ "<U092B><U093C><U0930><U0935><U0930><U0940>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A><U094D><U0930><U0947><U0932>";/
+ "<U092E><U0908>";/
+ "<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E><U0908>";/
+ "<U0905><U0917><U0938><U094D><U0924>";/
+ "<U0938><U093F><U0924><U092E><U094D><U092C><U0930>";/
+ "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
+ "<U0928><U0935><U092E><U094D><U092C><U0930>";/
+ "<U0926><U093F><U0938><U092E><U094D><U092C><U0930>"
+%
+% Full month names (%B)
+% Sanskrit uses a lunar calendar. When gregorian month names
+% are needed, the names are the same names than those used
+% by Hindi
+% Lunar calendar month names:
+% Chaitra March 22
+% Vaisakha April 29
+% jyeshthah May 22
+% ashadah June 22
+% shravanah July 23
+% bhadrapadah August 23
+% ashvinah September 23
+% kartikah October 23
+% margashirsah November 22
+% paushah December 22
+% maghah January 29
+% phalgunah February 20
+% names for gregorian month names:
+mon "<U091C><U0928><U0935><U0930><U0940>";/
+ "<U092B><U093C><U0930><U0935><U0930><U0940>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A><U094D><U0930><U0947><U0932>";/
+ "<U092E><U0908>";/
+ "<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E><U0908>";/
+ "<U0905><U0917><U0938><U094D><U0924>";/
+ "<U0938><U093F><U0924><U092E><U094D><U092C><U0930>";/
+ "<U0905><U0915><U094D><U091F><U0942><U092C><U0930>";/
+ "<U0928><U0935><U092E><U094D><U092C><U0930>";/
+ "<U0926><U093F><U0938><U092E><U094D><U092C><U0930>"
+%
+% Equivalent of AM PM
+am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
+ "<U0905><U092A><U0930><U093E><U0939><U094D><U0928>"
+%
+% Appropriate date and time representation
+% %A %d %b %Y%I:%M:%S %Z
+d_t_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A>/
+<U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation
+% %A %d %b %Y
+d_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059>"
+%
+% Appropriate time representation
+% %I:%M:%S %Z
+t_fmt "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0020><U0025><U005A>"
+%
+% Appropriate 12 h time representation (%r)
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+
+LC_MESSAGES
+% "^[aAyY].*"
+% "^[nN].*"
+yesexpr "<U005E><U005B><U0061><U0041><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+
+LC_PAPER
+% This is the ISO_IEC TR14652 Locale definition for the LC_PAPER category
+% generated by IBM Basic CountryPack Transformer.
+height 297
+width 210
+
+END LC_PAPER
+
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_NAME category.
+%
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen ""
+%
+% shri
+name_mr "<U0936><U094D><U0930><U0940>"
+% For boys under 18, this is "kumar"
+% but locales are sexist and do not even imagine
+% that some language may have different forms for MEN too
+% name_mr "<U0915><U0941><U092E><U093E><U0930>"
+% shrimati
+name_mrs "<U0936><U094D><U0930><U0940><U092E><U0924><U0940>"
+% kumari
+name_miss "<U0915><U0941><U092E><U093E><U0930><U0940>"
+% shrimati
+name_ms "<U0936><U094D><U0930><U0940><U092E><U0924><U0940>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_ADDRESS
+postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+
+country_ab2 "<U0049><U004E>"
+country_ab3 "<U0049><U004E><U0044>"
+country_num 356
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+% This is the ISO_IEC TR14652 Locale definition for the LC_TELEPHONE
+% generated by IBM Basic CountryPack Transformer.
+tel_int_fmt "<U002B><U0025><U0063><U0020><U003B><U0025><U0061><U0020><U003B><U0025><U006C>"
+int_prefix "<U0039><U0031>"
+int_select "<U0030><U0030>"
+END LC_TELEPHONE
+
+
+LC_MEASUREMENT
+% This is the ISO_IEC TR14652 Locale definition for the LC_MEASUREMENT
+% category generated by IBM Basic CountryPack Transformer.
+measurement 1
+END LC_MEASUREMENT
diff --git a/localedata/locales/sc_IT b/localedata/locales/sc_IT
new file mode 100644
index 0000000000..dd38cac62d
--- /dev/null
+++ b/localedata/locales/sc_IT
@@ -0,0 +1,134 @@
+comment_char %
+escape_char /
+%
+% Sardinian Language Locale for Italy
+% Language: sc
+% Territory: IT
+% Revision: 0.1
+% Date: 2004-05-26
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Sardinian locale for Italy"
+source ""
+address ""
+contact "Pablo Saratxaga"
+email "pablo@mandriva.com"
+tel ""
+fax ""
+language "Sardinian"
+territory "Italy"
+revision "0.1"
+date "2004-05-26"
+%
+category "sc_IT:2000";LC_IDENTIFICATION
+category "sc_IT:2000";LC_CTYPE
+category "sc_IT:2000";LC_COLLATE
+category "sc_IT:2000";LC_TIME
+category "sc_IT:2000";LC_NUMERIC
+category "sc_IT:2000";LC_MONETARY
+category "sc_IT:2000";LC_MESSAGES
+category "sc_IT:2000";LC_PAPER
+category "sc_IT:2000";LC_NAME
+category "sc_IT:2000";LC_ADDRESS
+category "sc_IT:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "it_IT"
+END LC_CTYPE
+
+LC_COLLATE
+copy "iso14651_t1"
+
+collating-symbol <c,>
+
+reorder-after <c>
+<c,>
+
+reorder-after <U0063>
+<U00E7> <c,>;<CDI>;<MIN>;IGNORE
+reorder-after <U0043>
+<U00C7> <c,>;<CDI>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0073><U0053><U006A><U004A><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy "it_IT"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "it_IT"
+END LC_NUMERIC
+
+LC_TIME
+abday "<U0044><U006F><U006D>";"<U004C><U0075><U006E>";/
+ "<U004D><U0061><U0072>";"<U004D><U00E8><U0072>";/
+ "<U004A><U00F2><U0062>";"<U0043><U0065><U006E>";/
+ "<U0053><U00E0><U0062>"
+day "<U0044><U006F><U006D><U00EC><U006E><U0067><U0075>";/
+ "<U004C><U0075><U006E><U0069><U0073>";/
+ "<U004D><U0061><U0072><U0074><U0069><U0073>";/
+ "<U004D><U00E8><U0072><U0063><U0075><U0072><U0069><U0073>";/
+ "<U004A><U00F2><U0062><U0069><U0061>";/
+ "<U0043><U0065><U006E><U00E0><U0062><U0061><U0072><U0061>";/
+ "<U0053><U00E0><U0062><U0061><U0064><U0075>"
+abmon "<U0047><U0065><U006E>";"<U0046><U0072><U0069>";/
+ "<U004D><U0061><U0072>";"<U0041><U0062><U0072>";/
+ "<U004D><U0061><U0079>";"<U004C><U00E0><U006D>";/
+ "<U0041><U0072><U006A>";"<U0041><U0075><U0073>";/
+ "<U0043><U0061><U0062>";"<U004C><U0061><U0064>";/
+ "<U0044><U006F><U006E>";"<U0049><U0064><U0061>"
+mon "<U0047><U0065><U006E><U006E><U0061><U0072><U006A><U0075>";/
+ "<U0046><U0072><U0069><U0061><U0072><U006A><U0075>";/
+ "<U004D><U0061><U0072><U0074><U007A><U0075>";/
+ "<U0041><U0062><U0072><U0069><U006C><U0069>";/
+ "<U004D><U0061><U0079><U0075>";/
+ "<U004C><U00E0><U006D><U0070><U0061><U0064><U0061><U0073>";/
+ "<U0041><U0072><U006A><U006F><U006C><U0061><U0073>";/
+ "<U0041><U0075><U0073><U0074><U0075>";/
+ "<U0043><U0061><U0062><U0075><U0064><U0061><U006E><U006E><U0069>";/
+ "<U004C><U0061><U0064><U00E0><U006D><U0069><U006E><U0069>";/
+ "<U0044><U006F><U006E><U006E><U0079><U0061><U0073><U0061><U006E><U0074><U0075>";/
+ "<U0049><U0064><U0061><U0073>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971201;4
+END LC_TIME
+
+LC_PAPER
+copy "it_IT"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "it_IT"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "it_IT"
+END LC_MEASUREMENT
+
+LC_NAME
+copy "it_IT"
+END LC_NAME
+
+LC_ADDRESS
+copy "it_IT"
+END LC_ADDRESS
diff --git a/localedata/locales/sr_CS b/localedata/locales/sr_CS
deleted file mode 100644
index 1a01f2f101..0000000000
--- a/localedata/locales/sr_CS
+++ /dev/null
@@ -1,349 +0,0 @@
-comment_char %
-escape_char /
-%
-% Serbian Language Locale for Serbia and Montenegro
-% Source: sr_YU locale
-% Address:
-%
-% Contact: Danilo Segan
-% Email: dsegan@gmx.net
-% Tel: +381 63 8626082
-% Fax: none
-% Language: sr
-% Territory: CS
-% Revision: 1.2
-% Date: 2004-08-09
-% Application: general
-% Users: general
-% Charset: UTF-8, ISO-8859-5
-% Distribution and use is free, also
-% for commercial purposes.
-%
-% TODO:
-% -- fix LC_COLLATE to work correctly for latin alphabet too
-%
-
-LC_IDENTIFICATION
-title "Serbian locale for Serbia and Montenegro"
-source "sr_YU locale"
-address ""
-contact "Danilo Segan"
-email "bug-glibc-locales@gnu.org"
-tel ""
-fax ""
-language "Serbian"
-territory "Serbia and Montenegro"
-revision "1.2"
-date "2004-08-09"
-audience "general"
-application "GNU locale"
-abbreviation ""
-%
-category "i18n:1997";LC_IDENTIFICATION
-category "i18n:1997";LC_CTYPE
-category "i18n:1997";LC_COLLATE
-category "i18n:1997";LC_MONETARY
-category "i18n:1997";LC_NUMERIC
-category "i18n:1997";LC_TIME
-category "i18n:1997";LC_MESSAGES
-category "i18n:1997";LC_PAPER
-category "i18n:1997";LC_NAME
-category "i18n:1997";LC_ADDRESS
-category "i18n:1997";LC_TELEPHONE
-category "i18n:1997";LC_MEASUREMENT
-END LC_IDENTIFICATION
-
-LC_CTYPE
-copy "i18n"
-translit_start
-include "translit_combining";""
-
-% cyrillic -> latin
-<U0452> "<U0111>";"<U0064><U006A>" % d-
-<U0453> "<U0067><U006A>" % gj
-<U0455> "<U0064><U007A>" % dz
-<U0458> "<U006A>" % j
-<U0459> "<U006C><U006A>" % lj
-<U045A> "<U006E><U006A>" % nj
-<U045B> "<U0107>";"<U0063>" % c'
-<U045C> "<U006B><U006A>" % kj
-<U045F> "<U0064><U017E>";"<U0064><U007A>" % dz<
-
-<U0402> "<U0110>";"<U0044><U006A>" % D-
-<U0403> "<U0047><U006A>" % Gj
-<U0405> "<U0044><U007A>" % Dz
-<U0408> "<U004A>" % J
-<U0409> "<U004C><U006A>" % Lj
-<U040A> "<U004E><U006A>" % Nj
-<U040B> "<U0106>";"<U0043>" % C'
-<U040C> "<U004B><U006A>" % Kj
-<U040F> "<U0044><U017E>";"<U0064><U007A>" % Dz<
-
-<U0430> "<U0061>"
-<U0431> "<U0062>"
-<U0446> "<U0063>"
-<U0434> "<U0064>"
-<U0435> "<U0065>"
-<U0444> "<U0066>"
-<U0433> "<U0067>"
-<U0445> "<U0068>"
-<U0438> "<U0069>"
-<U043A> "<U006B>"
-<U043B> "<U006C>"
-<U043C> "<U006D>"
-<U043D> "<U006E>"
-<U043E> "<U006F>"
-<U043F> "<U0070>"
-<U0440> "<U0072>"
-<U0441> "<U0073>"
-<U0442> "<U0074>"
-<U0443> "<U0075>"
-<U0432> "<U0076>"
-<U0437> "<U007A>"
-<U0436> "<U017E>";"<U007A>" % z<
-<U0448> "<U0161>";"<U0073>" % s<
-<U0447> "<U010D>";"<U0063>" % c<
-
-<U0410> "<U0041>"
-<U0411> "<U0042>"
-<U0426> "<U0043>"
-<U0414> "<U0044>"
-<U0415> "<U0045>"
-<U0424> "<U0046>"
-<U0413> "<U0047>"
-<U0425> "<U0048>"
-<U0418> "<U0049>"
-<U041A> "<U004B>"
-<U041B> "<U004C>"
-<U041C> "<U004D>"
-<U041D> "<U004E>"
-<U041E> "<U004F>"
-<U041F> "<U0050>"
-<U0420> "<U0052>"
-<U0421> "<U0053>"
-<U0422> "<U0054>"
-<U0423> "<U0055>"
-<U0412> "<U0056>"
-<U0417> "<U005A>"
-<U0416> "<U017D>";"<U005A>" % z<
-<U0428> "<U0160>";"<U0053>" % s<
-<U0427> "<U010C>";"<U0063>" % c<
-
-translit_end
-END LC_CTYPE
-
-
-LC_COLLATE
-
-copy "iso14651_t1"
-
-collating-symbol <d-z-sh>
-collating-symbol <l-j-sh>
-collating-symbol <n-j-sh>
-
-collating-symbol <cacute>
-collating-symbol <ccaron>
-collating-symbol <d//>
-collating-symbol <scaron>
-collating-symbol <zcaron>
-
-collating-symbol <CAP-MIN>
-collating-symbol <MIN-CAP>
-
-reorder-after <MIN>
-<MIN-CAP>
-reorder-after <CAP>
-<CAP-MIN>
-
-reorder-after <c>
-<cacute>
-<ccaron>
-<d>
-<d-z-sh>
-<d//>
-reorder-after <l>
-<l-j-sh>
-reorder-after <n>
-<n-j-sh>
-reorder-after <s>
-<scaron>
-reorder-after <z>
-<zcaron>
-
-reorder-after <U0063>
-<U0107> <cacute>;<PCT>;<MIN>;IGNORE
-<U010D> <ccaron>;<PCT>;<MIN>;IGNORE
-reorder-after <U0043>
-<U0106> <cacute>;<PCT>;<CAP>;IGNORE
-<U010C> <ccaron>;<PCT>;<CAP>;IGNORE
-
-reorder-after <U0064>
-<d-z<> <d-z-sh>;<PCT>;<MIN>;IGNORE
-<dz<> <d-z-sh>;<PCT>;<MIN>;IGNORE
-<d-Z<> <d-z-sh>;<PCT>;<MIN-CAP>;IGNORE
-<U0111> <d//>;<PCT>;<MIN>;IGNORE
-reorder-after <U0044>
-<D-Z<> <d-z-sh>;<PCT>;<CAP>;IGNORE
-<DZ<> <d-z-sh>;<PCT>;<CAP>;IGNORE
-<D-z<> <d-z-sh>;<PCT>;<CAP-MIN>;IGNORE
-<Dz<> <d-z-sh>;<PCT>;<CAP-MIN>;IGNORE
-<U0110> <d//>;<PCT>;<CAP>;IGNORE
-
-reorder-after <U006C>
-<l-j> <l-j-sh>;<PCT>;<MIN>;IGNORE
-<lj> <l-j-sh>;<PCT>;<MIN>;IGNORE
-<l-J> <l-j-sh>;<PCT>;<MIN-CAP>;IGNORE
-reorder-after <U004C>
-<L-J> <l-j-sh>;<PCT>;<CAP>;IGNORE
-<LJ> <l-j-sh>;<PCT>;<CAP>;IGNORE
-<L-j> <l-j-sh>;<PCT>;<CAP-MIN>;IGNORE
-<Lj> <l-j-sh>;<PCT>;<CAP-MIN>;IGNORE
-
-reorder-after <U006E>
-<n-j> <n-j-sh>;<PCT>;<MIN>;IGNORE
-<nj> <n-j-sh>;<PCT>;<MIN>;IGNORE
-<n-J> <n-j-sh>;<PCT>;<MIN-CAP>;IGNORE
-reorder-after <U004E>
-<N-J> <n-j-sh>;<PCT>;<CAP>;IGNORE
-<NJ> <n-j-sh>;<PCT>;<CAP>;IGNORE
-<N-j> <n-j-sh>;<PCT>;<CAP-MIN>;IGNORE
-<Nj> <n-j-sh>;<PCT>;<CAP-MIN>;IGNORE
-
-reorder-after <U0073>
-<U0161> <scaron>;<PCT>;<MIN>;IGNORE
-reorder-after <U0053>
-<U0160> <scaron>;<PCT>;<CAP>;IGNORE
-
-reorder-after <U007A>
-<U017E> <zcaron>;<PCT>;<MIN>;IGNORE
-reorder-after <U005A>
-<U017D> <zcaron>;<PCT>;<CAP>;IGNORE
-
-reorder-end
-
-END LC_COLLATE
-
-LC_MONETARY
-int_curr_symbol "<U0043><U0053><U0044><U0020>"
-currency_symbol "<U0434><U0438><U043D>"
-mon_decimal_point "<U002C>"
-mon_thousands_sep "<U002E>"
-mon_grouping 3;3
-positive_sign ""
-negative_sign "<U002D>"
-int_frac_digits 2
-frac_digits 2
-p_cs_precedes 0
-p_sep_by_space 1
-n_cs_precedes 0
-n_sep_by_space 1
-p_sign_posn 1
-n_sign_posn 1
-END LC_MONETARY
-
-LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
-END LC_NUMERIC
-
-LC_TIME
-
-abday "<U043D><U0435><U0434>";"<U043F><U043E><U043D>";/
- "<U0443><U0442><U043E>";"<U0441><U0440><U0435>";/
- "<U0447><U0435><U0442>";"<U043F><U0435><U0442>";/
- "<U0441><U0443><U0431>"
-day "<U043D><U0435><U0434><U0435><U0459><U0430>";/
- "<U043F><U043E><U043D><U0435><U0434><U0435><U0459><U0430><U043A>";/
- "<U0443><U0442><U043E><U0440><U0430><U043A>";/
- "<U0441><U0440><U0435><U0434><U0430>";/
- "<U0447><U0435><U0442><U0432><U0440><U0442><U0430><U043A>";/
- "<U043F><U0435><U0442><U0430><U043A>";/
- "<U0441><U0443><U0431><U043E><U0442><U0430>"
-abmon "<U0458><U0430><U043D>";"<U0444><U0435><U0431>";/
- "<U043C><U0430><U0440>";"<U0430><U043F><U0440>";/
- "<U043C><U0430><U0458>";"<U0458><U0443><U043D>";/
- "<U0458><U0443><U043B>";"<U0430><U0432><U0433>";/
- "<U0441><U0435><U043F>";"<U043E><U043A><U0442>";/
- "<U043D><U043E><U0432>";"<U0434><U0435><U0446>"
-mon "<U0458><U0430><U043D><U0443><U0430><U0440>";/
- "<U0444><U0435><U0431><U0440><U0443><U0430><U0440>";/
- "<U043C><U0430><U0440><U0442>";/
- "<U0430><U043F><U0440><U0438><U043B>";/
- "<U043C><U0430><U0458>";/
- "<U0458><U0443><U043D>";/
- "<U0458><U0443><U043B>";/
- "<U0430><U0432><U0433><U0443><U0441><U0442>";/
- "<U0441><U0435><U043F><U0442><U0435><U043C><U0431><U0430><U0440>";/
- "<U043E><U043A><U0442><U043E><U0431><U0430><U0440>";/
- "<U043D><U043E><U0432><U0435><U043C><U0431><U0430><U0440>";/
- "<U0434><U0435><U0446><U0435><U043C><U0431><U0430><U0440>"
-
-d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U002E><U0020>/
-<U0025><U0042><U0020><U0025><U0059><U002E><U0020><U0025><U0054>/
-<U0020><U0025><U005A>"
-d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059><U002E>"
-t_fmt "<U0025><U0054>"
-am_pm "";""
-t_fmt_ampm "<U0025><U0054>"
-date_fmt "<U0025><U0061><U002C><U0020><U0025><U0065><U002E><U0020>/
-<U0025><U0062><U0020><U0025><U0059><U002E><U0020><U0020><U0025><U0048>/
-<U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U000A>"
-week 7;19971201;4
-first_weekday 2
-first_workday 2
-END LC_TIME
-
-LC_MESSAGES
-yesexpr "<U005E><U005B><U0414><U0434><U0044><U0064><U0059><U0079><U005D>"
-noexpr "<U005E><U005B><U041D><U043D><U004E><U006E><U005D>"
-END LC_MESSAGES
-
-LC_PAPER
-height 297
-width 210
-END LC_PAPER
-
-LC_NAME
-name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
-<U0025><U006D><U0025><U0074><U0025><U0066>"
-name_gen ""
-name_mr "<U0433><U002D><U0434><U0438><U043D>"
-name_mrs "<U0433><U002D><U0452><U0430>"
-name_miss "<U0433><U002D><U0452><U0438><U0446><U0430>"
-name_ms "<U0433><U002D><U0452><U0430>"
-END LC_NAME
-
-LC_ADDRESS
-postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
-<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
-<U004E><U0025><U0063><U0025><U004E>"
-country_ab2 "<U0043><U0053>"
-country_ab3 "<U0053><U0043><U0047>"
-% FIXME: country_post is probably incorrect
-country_post "<U0053><U0043><U0047>"
-country_name "<U0421><U0440><U0431><U0438><U0458><U0430><U0020><U0438>/
-<U0020><U0426><U0440><U043D><U0430><U0020><U0413><U043E><U0440><U0430>"
-country_num 891
-country_car "<U0053><U0043><U0047>"
-% FIXME: ISBN code is what? "86" that preceedes all the numbers?
-country_isbn "<U0038><U0036>"
-lang_name "<U0441><U0440><U043F><U0441><U043A><U0438>"
-lang_term "<U0073><U0072><U0070>"
-lang_lib "<U0073><U0063><U0063>"
-lang_ab "<U0073><U0072>"
-END LC_ADDRESS
-
-LC_TELEPHONE
-tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-<U006C>"
-tel_dom_fmt "<U0025><U0041><U0020><U0025><U006C>"
-int_prefix "<U0033><U0038><U0031>"
-int_select "<U0039><U0039>"
-END LC_TELEPHONE
-
-LC_MEASUREMENT
-measurement 1
-END LC_MEASUREMENT
diff --git a/localedata/locales/tk_TM b/localedata/locales/tk_TM
new file mode 100644
index 0000000000..cc41e65ecf
--- /dev/null
+++ b/localedata/locales/tk_TM
@@ -0,0 +1,448 @@
+comment_char %
+escape_char /
+%
+% Turkmen Language Locale for Turkmenistan (latin)
+% Source: Gurban M. Tewekgeli
+% Contact: Pablo Saratxaga & Gurban M. Tewekgeli
+% Email: <pablo@mandriva.com & gmtavakkoli@yahoo.com>
+% Language: tk
+% Territory: TM
+% Revision: 0.4
+% Date: 2004-06-10
+% Application: general
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+%
+
+% needed extra chars: ä, ö, ü, ý, ç, ş, ň, ž
+% cyrillic extra chars: җ (z%,=), ң (n,=), ө (o-=), ү (u'=), ә (sw=)
+
+LC_IDENTIFICATION
+
+title "Turkmen locale for Turkmenistan"
+source "Gurban M. Tewekgeli"
+address ""
+contact "Pablo Saratxaga & Gurban M. Tewekgeli"
+email "pablo@mandriva.com & gmtavakkoli@yahoo.com"
+tel ""
+fax ""
+language "Turkmen"
+territory "Turkmenistan"
+revision "0.3"
+date "2004-06-08"
+
+category "tk_TM:2004";LC_IDENTIFICATION
+category "tk_TM:2004";LC_CTYPE
+category "tk_TM:2004";LC_COLLATE
+category "tk_TM:2004";LC_TIME
+category "tk_TM:2004";LC_NUMERIC
+category "tk_TM:2004";LC_MONETARY
+category "tk_TM:2004";LC_MEASUREMENT
+category "tk_TM:2004";LC_MESSAGES
+category "tk_TM:2004";LC_PAPER
+category "tk_TM:2004";LC_NAME
+category "tk_TM:2004";LC_ADDRESS
+category "tk_TM:2004";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include "translit_combining";""
+
+% cyrillic -> latin
+% lower case letters
+
+<U0430> "<U0061>" % a= -> a
+<U0431> "<U0062>" % b= -> b
+<U0432> "<U0077>" % v= -> w
+<U0433> "<U0067>" % g= -> g
+<U0434> "<U0064>" % d= -> d
+<U0435> "<U0065>" % e= -> e (y'e also, but context dependent)
+<U0451> "<U00FD><U006F>" % io -> y'o
+<U0436> "<U017E>" % z% -> z<
+<U0497> "<U006A>" % z%, -> j
+<U0437> "<U007A>" % z= -> z
+<U0438> "<U0069>" % i= -> i
+<U0439> "<U00FD>" % j= -> y'
+<U043A> "<U006B>" % k= -> k
+<U043B> "<U006C>" % l= -> l
+<U043C> "<U006D>" % m= -> m
+<U043D> "<U006E>" % n= -> n
+<U04A3> "<U0148>" % n,= -> n<
+<U043E> "<U006F>" % o= -> o
+<U04E9> "<U00F6>" % o-= -> o:
+<U043F> "<U0070>" % p= -> p
+<U0440> "<U0072>" % r= -> r
+<U0441> "<U0073>" % s= -> s
+<U0442> "<U0074>" % t= -> t
+<U0443> "<U0075>" % u= -> u
+<U04AF> "<U00FC>" % u'= -> u:
+<U0444> "<U0066>" % f= -> f
+<U0445> "<U0068>" % h= -> h
+<U0446> "<U0074><U0073>" % c= -> ts
+<U0447> "<U00E7>" % c% -> c,
+<U0448> "<U015F>" % s% -> s,
+<U044A> "" % hard sign omitted
+<U044B> "<U0079>" % yeru -> y
+<U044C> "" % soft sign omitted.
+<U044D> "<U0065>" % je= -> e
+<U04D9> "<U00E4>" % sw= -> a:
+<U044E> "<U00FD><U0075>" % ju -> y'u
+<U044F> "<U00FD><U0061>" % ja -> y'a
+
+% upper case letters
+
+<U0410> "<U0041>" % a= -> a
+<U0411> "<U0042>" % b= -> b
+<U0412> "<U0057>" % v= -> w
+<U0413> "<U0047>" % g= -> g
+<U0414> "<U0044>" % d= -> d
+<U0415> "<U0045>" % e= -> e (y'e also, but context dependent)
+<U0401> "<U00DD><U006F>" % io -> y'o
+<U0416> "<U017D>" % z% -> z<
+<U0496> "<U004A>" % z%, -> j
+<U0417> "<U005A>" % z= -> z
+<U0418> "<U0049>" % i= -> i
+<U0419> "<U00DD>" % j= -> y'
+<U041A> "<U004B>" % k= -> k
+<U041B> "<U004C>" % l= -> l
+<U041C> "<U004D>" % m= -> m
+<U041D> "<U004E>" % n= -> n
+<U04A2> "<U0147>" % n,= -> n<
+<U041E> "<U004F>" % o= -> o
+<U04E8> "<U00D6>" % o-= -> o:
+<U041F> "<U0050>" % p= -> p
+<U0420> "<U0052>" % r= -> r
+<U0421> "<U0053>" % s= -> s
+<U0422> "<U0054>" % t= -> t
+<U0423> "<U0055>" % u= -> u
+<U04AE> "<U00DC>" % u'= -> u:
+<U0424> "<U0046>" % f= -> f
+<U0425> "<U0048>" % h= -> h
+<U0426> "<U0054><U0073>" % c= -> ts
+<U0427> "<U00C7>" % c% -> c,
+<U0428> "<U015E>" % s% -> s,
+<U042A> "" % hard sign omitted
+<U042B> "<U0059>" % yeru -> y
+<U042C> "" % soft sign omitted.
+<U042D> "<U0045>" % je= -> e
+<U04D8> "<U00C4>" % sw= -> a:
+<U042E> "<U00DD><U0075>" % ju -> y'u
+<U042F> "<U00DD><U0061>" % ja -> y'a
+
+translit_end
+
+END LC_CTYPE
+
+LC_COLLATE
+
+%
+% The turkmen latin alphabet order is:
+% (letters in parenthesis are not used in tk)
+% <a>, <b>, <c,> (<c>), <d>, <e>, <a:> (<sw>), <f>, <g>, <h>, <i>
+% <j>, <z<>, <k>, <l>, <m>, <n>, <n<> (<n?> <ng>), <o>, <o:>, <p>, (<q>),
+% <r>, <s>, <s,>, <t>, <u>, <u:>, (<v>) <w>, (<x>), <y>, <y'> (<y:>), <z>
+%
+% cyrillic alphabet order:
+% <a=>, <b=>, <v=>, <g=>, <d=>, <e=>, <io>, <z%>, <z%,=>, <z=>, <i=>,
+% <j=>, <k=>, <l=>, <m=>, <n=>, <n,=>, <o=>, <o-=>, <p=>, <r=>, <s=>,
+% <t=>, <u=>, <u'=>, <f=>, <h=>, <c=>, <c%>, <s%>, <='>, <y=>, <%'>,
+% <je>, <sw=>, <ju>, <ja>
+%
+copy "iso14651_t1"
+
+collating-symbol <c,>
+collating-symbol <a:>
+collating-symbol <z<>
+collating-symbol <n<>
+collating-symbol <o:>
+collating-symbol <s,>
+collating-symbol <u:>
+collating-symbol <y'>
+%
+collating-symbol <z,=>
+collating-symbol <n,=>
+collating-symbol <o-=>
+collating-symbol <u'=>
+collating-symbol <sw=>
+
+% priority given to Turkmen accents
+reorder-after <BAS>
+<CDI>
+<CAR>
+<ACA>
+<REU>
+
+reorder-after <b>
+<c,>
+reorder-after <e>
+<a:>
+reorder-after <j>
+<z<>
+reorder-after <n>
+<n<>
+reorder-after <o>
+<o:>
+reorder-after <s>
+<s,>
+reorder-after <u>
+<u:>
+reorder-after <y>
+<y'>
+
+reorder-after <CYR-ZHE>
+<z,=>
+reorder-after <CYR-EN>
+<n,=>
+reorder-after <CYR-O>
+<o-=>
+reorder-after <CYR-OUBRE>
+<u'=>
+reorder-after <CYR-E>
+<sw=>
+
+reorder-after <U0062>
+<U00E7> <c,>;<BAS>;<MIN>;IGNORE
+<U0063> <c,>;<BAS>;<MIN>;<c>
+reorder-after <U0042>
+<U00C7> <c,>;<BAS>;<CAP>;IGNORE
+<U0043> <c,>;<BAS>;<CAP>;<c>
+
+reorder-after <U0065>
+<U00E4> <a:>;<REU>;<MIN>;IGNORE
+<U0259> <a:>;<PCL>;<MIN>;IGNORE
+reorder-after <U0045>
+<U00C4> <a:>;<REU>;<CAP>;IGNORE
+<U018F> <a:>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U006A>
+<U017E> <z<>;<CAR>;<MIN>;IGNORE
+reorder-after <U004A>
+<U017D> <z<>;<CAR>;<CAP>;IGNORE
+
+reorder-after <U006E>
+<U0147> <n<>;<CAR>;<MIN>;IGNORE
+<U00F1> <n<>;<TIL>;<MIN>;IGNORE
+<U014B> <n<>;<PCL>;<MIN>;IGNORE
+reorder-after <U004E>
+<U0148> <n<>;<CAR>;<CAP>;IGNORE
+<U00D1> <n<>;<TIL>;<CAP>;IGNORE
+<U014A> <n<>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U006F>
+<U00F6> <o:>;<REU>;<MIN>;IGNORE
+reorder-after <U004F>
+<U00D6> <o:>;<REU>;<CAP>;IGNORE
+
+reorder-after <U0073>
+<U015F> <s,>;<CDI>;<MIN>;IGNORE
+reorder-after <U0053>
+<U015E> <s,>;<CDI>;<CAP>;IGNORE
+
+reorder-after <U0075>
+<U00FC> <u:>;<REU>;<MIN>;IGNORE
+<U0056> <w>;<BAS>;<CAP>;<v>
+<U0057> <w>;<BAS>;<CAP>;<w>
+reorder-after <U0055>
+<U00DC> <u:>;<REU>;<CAP>;IGNORE
+<U0076> <w>;<BAS>;<MIN>;<v>
+<U0077> <w>;<BAS>;<MIN>;<w>
+
+reorder-after <U0079>
+<U00FD> <y'>;<ACA>;<MIN>;IGNORE
+<U00FF> <y'>;<REU>;<MIN>;IGNORE
+reorder-after <U0059>
+<U00DD> <y'>;<ACA>;<CAP>;IGNORE
+<U0178> <y'>;<REU>;<CAP>;IGNORE
+
+reorder-after <U0436>
+<U0497> <z,=>;<PCL>;<MIN>;IGNORE
+reorder-after <U0416>
+<U0496> <z,=>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U043D>
+<U04A3> <n,=>;<PCL>;<MIN>;IGNORE
+reorder-after <U041D>
+<U04A2> <n,=>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U043E>
+<U04E9> <o-=>;<PCL>;<MIN>;IGNORE
+reorder-after <U041E>
+<U04E8> <o-=>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U0443>
+<U04AF> <u'=>;<PCL>;<MIN>;IGNORE
+reorder-after <U0423>
+<U04AE> <u'=>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U044D>
+<U04D9> <sw=>;<PCL>;<MIN>;IGNORE
+reorder-after <U042D>
+<U04D8> <sw=>;<PCL>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_TIME
+
+% Turkmen days are
+% Monday => Baş Gün
+% Tuesday => Yaş Gün
+% Wednesday => Hoş Gün
+% Thursday => Sogap Gün
+% Friday => Anna Gün
+% Saturday => Ruh Gün
+% Sunday => Dynç Gün
+
+day "<U0044><U0079><U006E><U00E7><U0020><U0047><U00FC><U006E>";/
+ "<U0042><U0061><U015F><U0020><U0047><U00FC><U006E>";/
+ "<U0059><U0061><U015F><U0020><U0047><U00FC><U006E>";/
+ "<U0048><U006F><U015F><U0020><U0047><U00FC><U006E>";/
+ "<U0053><U006F><U0067><U0061><U0070><U0020><U0047><U00FC><U006E>";/
+ "<U0041><U006E><U006E><U0061><U0020><U0047><U00FC><U006E>";/
+ "<U0052><U0075><U0068><U0020><U0047><U00FC><U006E>"
+abday "<U0044><U0079><U006E>";"<U0042><U0061><U015F>";/
+ "<U0059><U0061><U015F>";"<U0048><U006F><U015F>";/
+ "<U0053><U006F><U0067>";"<U0041><U006E><U006E>";/
+ "<U0052><U0075><U0068>"
+
+% Turkmen monthes are
+% January => Türkmenbaşy
+% February => Baýdak
+% March => Nowruz
+% April => Gurbansoltan Eje
+% May => Magtymguly
+% June => Oguz
+% July => Gorkut
+% August => Alp Arslan
+% September => Ruhnama
+% October => Garaşsyzlyk
+% November => Sanjar
+% December => Bitaraplyk
+
+mon "<U0054><U00FC><U0072><U006B><U006D><U0065><U006E><U0062><U0061><U015F><U0079>";/
+ "<U0042><U0061><U00FD><U0064><U0061><U006B>";/
+ "<U004E><U006F><U0077><U0072><U0075><U007A>";/
+ "U0047><U0075><U0072><U0062><U0061><U006E><U0073><U006F>/
+<U006C><U0074><U0061><U006E><U0020><U0045><U006A><U0065>";/
+ "<U004D><U0061><U0067><U0074><U0079><U006D><U0067><U0075><U006C><U0079>";/
+ "<U004F><U0067><U0075><U007A>";/
+ "<U0047><U006F><U0072><U006B><U0075><U0074>";/
+ "<U0041><U006C><U0070><U0020><U0041><U0072><U0073><U006C><U0061><U006E>";/
+ "<U0052><U0075><U0068><U006E><U0061><U006D><U0061>";/
+ "<U0047><U0061><U0072><U0061><U015F><U0073><U0079><U007A><U006C><U0079><U006B>";/
+ "<U0053><U0061><U006E><U006A><U0061><U0072>";/
+ "<U0042><U0069><U0074><U0061><U0072><U0061><U0070><U006C><U0079><U006B>"
+abmon "<U0054><U00FC><U0072>";"<U0042><U0061><U00FD>";/
+ "<U004E><U006F><U0077>";"<U0047><U0075><U0072>";/
+ "<U004D><U0061><U0067>";"<U004F><U0067><U0075>";/
+ "<U0047><U006F><U0072>";"<U0041><U006C><U0070>";/
+ "<U0052><U0075><U0068>";"<U0047><U0061><U0072>";/
+ "<U0053><U0061><U006E>";"<U0042><U0069><U0074>"
+%
+% Turkmen date and time format
+% date dd.mm.yyyy %d.%m.%Y %T
+% time hh:mm:ss (24 hour - no am/pm)
+%
+d_t_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>/
+<U0020><U0025><U0054>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+END LC_TIME
+
+LC_NUMERIC
+decimal_point "<U002E>" % .
+thousands_sep "<U002C>" % ,
+grouping 3;3
+END LC_NUMERIC
+
+LC_MONETARY
+int_curr_symbol "<U0054><U004D><U004D><U0020>" % TMM
+currency_symbol "<U004D><U0041><U004E><U0041><U0054>" % MANAT
+mon_decimal_point "<U002E>" % .
+mon_thousands_sep "<U002C>" % ,
+mon_grouping 3;3
+positive_sign ""
+negative_sign "<U002D>" % -
+int_frac_digits 2
+frac_digits 2
+p_cs_precedes 0
+p_sep_by_space 1
+n_cs_precedes 0
+n_sep_by_space 1
+p_sign_posn 1
+n_sign_posn 1
+END LC_MONETARY
+
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_MESSAGES
+%%%%%%%%
+% NOTE:
+% there is a possible conflict between English and Turkmen for letter "y"
+% (used for "yes" in English, but corresponding to "no" in Turkmen (well,
+% ý actually)
+%%%%%%%%
+yesstr "<U0068><U0061><U0077><U0061>" % hawa
+nostr "<U00FD><U006F><U006B>" % ýok
+yesexpr "<U005E><U005B><U0068><U0048>/
+<U005D><U002E><U002A>" % [hH]
+noexpr "<U005E><U005B><U00FD><U00DD>/
+<U006E><U004E><U005D><U002E><U002A>" % [ýÝnN]
+END LC_MESSAGES
+
+LC_PAPER
+%
+% A4 Paper
+%
+height 297
+width 210
+END LC_PAPER
+
+LC_NAME
+% TODO: complete me
+name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+name_gen ""
+name_mr ""
+name_mrs ""
+name_miss ""
+name_ms ""
+END LC_NAME
+
+LC_ADDRESS
+% TODO: fix me
+
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E><U0025>/
+<U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073><U0020><U0025>/
+<U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025><U004E><U0025><U0025>/
+<U007A><U0020><U0025><U0054><U0025><U004E><U0025><U0063><U0025><U004E>"
+
+country_name "<U0054><U00FC><U0072><U006B><U006D>/
+<U0065><U006E><U0069><U0073><U0074><U0061><U006E>" % Türkmenistan
+country_post "<U0054><U004D>" % TM
+country_car "<U0054><U004D>" % TM
+country_num 795
+country_ab2 "<U0054><U004D>" % TM
+country_ab3 "<U0054><U004B><U004D>" % TKM
+lang_name "<U0054><U00FC><U0072><U006B><U006D>/
+<U0065><U006E><U00E7><U0065>" % Türkmençe
+lang_term "<U0074><U0075><U006B>" % tuk
+lang_lib "<U0074><U0075><U006B>" % tuk
+lang_ab "<U0074><U006B>" % tk
+END LC_ADDRESS
+
+LC_TELEPHONE
+% TODO: complete me
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
+END LC_TELEPHONE
diff --git a/localedata/locales/ug_CN b/localedata/locales/ug_CN
new file mode 100644
index 0000000000..c4526416f9
--- /dev/null
+++ b/localedata/locales/ug_CN
@@ -0,0 +1,333 @@
+escape_char /
+comment_char %
+%
+% Uyghur language locale for China
+% Source:
+% Contact: Pablo Saratxaga
+% Email: pablo@mandriva.com
+% Language: ug
+% Territory: CN
+% Revision: 0.1
+% Date: 2005-11-08
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Uyghur locale for China"
+source ""
+address ""
+contact ""
+email "pablo@mandriva.com"
+tel ""
+fax ""
+language "Uyghur"
+territory "China"
+revision "0.1"
+date "2005-11-08"
+%
+category "ug_CN:2000";LC_IDENTIFICATION
+category "ug_CN:2000";LC_CTYPE
+category "ug_CN:2000";LC_COLLATE
+category "ug_CN:2000";LC_TIME
+category "ug_CN:2000";LC_NUMERIC
+category "ug_CN:2000";LC_MONETARY
+category "ug_CN:2000";LC_MESSAGES
+category "ug_CN:2000";LC_PAPER
+category "ug_CN:2000";LC_NAME
+category "ug_CN:2000";LC_ADDRESS
+category "ug_CN:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_COLLATE
+
+% letters list and sort order from
+% http://en.wikipedia.org/wiki/Uyghur_language
+% sorting order guessed for old latin writting
+%
+% old latin writting is based in pinyin, with some extra letters:
+% <schwa>, <z with tail>, <gh>, <k with tail>, <h with tail>,
+% <barred o> (they seem inspired from cyrillic)
+% tail letters can be written with base letter + combining tail U+0321
+% there are also reserved codepoints U+2C67-U+2C6C for them in
+% unicode 5.0 proposal.
+% U+0224, U+0225 are also similar to ztail and are sorted the same.
+%
+% new arabic writting uses some extra letters too.
+% all vowels are noted, and in beginning of the word there is a
+% "yeh with hamza" (U+0626) in the front; should it be ignored
+% in sorting?
+%
+% arabic old latin turkic (from azeri, which has same phonemes)
+% ========== =============== ======
+% alef 0627 a a
+% ae 06d5 schwa 018F,0259 ä
+% beh 0628 b b
+% peh 067e p p
+% teh 062a t t
+% jeem 062c j c <
+% tcheh 0686 q ç <
+% khah 062e h x <
+% dal 062f d d
+% reh 0631 r r
+% zain 0632 z z
+% jeh 0698 ztail 0224,0225 j <
+% seen 0633 s s
+% sheen 0634 x ş
+% ghain 063a gh 01a2,01a3 ğ <
+% feh 0641 f f
+% qaf 0642 ktail q <
+% kaf 0643 k k
+% ng 06ad ng ñ <
+% gaf 06af g g
+% lam 0644 l l
+% meem 0645 m m
+% noon 0646 n n
+% heh 0647 htail h <
+% waw 0648 o o
+% u 06c7 u u
+% oe 06c6 obar 019f,0275 ö <
+% yu 06c8 ü ü
+% ve 06cb v v
+% e 06d0 e e
+% f.yeh 06cc i i (or alef maqsura 0649?)
+% yeh 064a y y
+% (<): differences between old latin and turkic writting
+
+copy "iso14651_t1"
+
+collating-symbol <schwa>
+collating-symbol <gh>
+collating-symbol <ng>
+collating-symbol <ccedilla>
+collating-symbol <scedilla>
+collating-symbol <htail>
+collating-symbol <ktail>
+collating-symbol <ztail>
+collating-symbol <obar>
+collating-symbol <udiaresis>
+
+collating-element <h,> from "<U0068><U0321>"
+collating-element <H,> from "<U0048><U0321>"
+collating-element <k,> from "<U006B><U0321>"
+collating-element <K,> from "<U004B><U0321>"
+collating-element <z,> from "<U007A><U0321>"
+collating-element <Z,> from "<U005A><U0321>"
+
+collating-symbol <ar_ae>
+collating-symbol <ar_ng>
+collating-symbol <ar_u>
+collating-symbol <ar_oe>
+collating-symbol <ar_yu>
+collating-symbol <ar_ve>
+collating-symbol <ar_e>
+collating-symbol <ar_i>
+collating-symbol <ar_y>
+
+% latin
+reorder-after <a>
+<schwa>
+reorder-after <c>
+<ccedilla>
+reorder-after <g>
+<gh>
+reorder-after <h>
+<htail>
+reorder-after <k>
+<ktail>
+reorder-after <n>
+<ng>
+reorder-after <o>
+<obar>
+reorder-after <s>
+<scedilla>
+reorder-after <u>
+<udiaeresis>
+reorder-after <z>
+<ztail>
+
+reorder-after <U0061>
+<U0259> <schwa>;<PCL>;<MIN>;IGNORE
+<U00E4> <schwa>;<REU>;<MIN>;IGNORE
+reorder-after <U0041>
+<U018F> <schwa>;<PCL>;<CAP>;IGNORE
+<U00C4> <schwa>;<REU>;<CAP>;IGNORE
+
+reorder-after <U0063>
+<U00E7> <ccedilla>;<CDI>;<MIN>;IGNORE
+reorder-after <U0043>
+<U00C7> <ccedilla>;<CDI>;<CAP>;IGNORE
+
+reorder-after <U0067>
+<U01A3> <gh>;<PCL>;<MIN>;IGNORE
+<U011F> <gh>;<BRE>;<MIN>;IGNORE
+reorder-after <U0047>
+<U01A2> <gh>;<PCL>;<CAP>;IGNORE
+<U011E> <gh>;<BRE>;<CAP>;IGNORE
+
+reorder-after <U0068>
+<U2C68> <htail>;<PCL>;<MIN>;IGNORE
+<h,> <htail>;<PCL>;<MIN>;IGNORE
+reorder-after <U0048>
+<U2C67> <htail>;<PCL>;<CAP>;IGNORE
+<H,> <htail>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U006B>
+<U2C6A> <ktail>;<PCL>;<MIN>;IGNORE
+<k,> <ktail>;<PCL>;<MIN>;IGNORE
+reorder-after <U004B>
+<U2C69> <ktail>;<PCL>;<CAP>;IGNORE
+<K,> <ktail>;<PCL>;<CAP>;IGNORE
+
+reorder-after <U006E>
+<U00F1> <ng>;<TIL>;<MIN>;IGNORE
+reorder-after <U004E>
+<U00D1> <ng>;<TIL>;<CAP>;IGNORE
+
+reorder-after <U006F>
+<U0275> <obar>;<PCL>;<MIN>;IGNORE
+<U00F6> <obar>;<REU>;<MIN>;IGNORE
+reorder-after <U004F>
+<U019F> <obar>;<PCL>;<CAP>;IGNORE
+<U00D6> <obar>;<REU>;<CAP>;IGNORE
+
+reorder-after <U0073>
+<U015F> <scedilla>;<CDI>;<MIN>;IGNORE
+reorder-after <U0053>
+<U015E> <scedilla>;<CDI>;<CAP>;IGNORE
+
+reorder-after <U0075>
+<U00FC> <udiaeresis>;<REU>;<MIN>;IGNORE
+reorder-after <U0055>
+<U00DC> <udiaeresis>;<REU>;<CAP>;IGNORE
+
+reorder-after <U007A>
+<U2C6C> <ztail>;<PCL>;<MIN>;IGNORE
+<z,> <ztail>;<PCL>;<MIN>;IGNORE
+<U0225> <ztail>;<PCL>;<MIN>;IGNORE
+reorder-after <U005A>
+<U2C6B> <ztail>;<PCL>;<CAP>;IGNORE
+<Z,> <ztail>;<PCL>;<CAP>;IGNORE
+<U0224> <ztail>;<PCL>;<CAP>;IGNORE
+
+% arabic
+reorder-after <alef>
+<ar_ae>
+reorder-after <keheh>
+<ar_ng>
+reorder-after <waw>
+<ar_u>
+<ar_oe>
+<ar_yu>
+<ar_ve>
+<ar_e>
+<ar_i>
+<ar_y>
+
+reorder-after <U0627>
+<U06D5> <ar_ae>;<BAS>;<MIN>;IGNORE
+reorder-after <U06A9>
+<U06AD> <ar_ng>;<BAS>;<MIN>;IGNORE
+reorder-after <U0648>
+<U06C7> <ar_u>;<BAS>;<MIN>;IGNORE
+<U06C6> <ar_oe>;<BAS>;<MIN>;IGNORE
+<U06C8> <ar_yu>;<BAS>;<MIN>;IGNORE
+<U06CB> <ar_ve>;<BAS>;<MIN>;IGNORE
+<U06D0> <ar_e>;<BAS>;<MIN>;IGNORE
+<U06CC> <ar_i>;<BAS>;<MIN>;IGNORE
+<U064A> <ar_y>;<BAS>;<MIN>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_CTYPE
+% FIXME
+copy "en_DK"
+END LC_CTYPE
+
+LC_MONETARY
+copy "zh_CN"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "zh_CN"
+END LC_NUMERIC
+
+LC_TELEPHONE
+copy "zh_CN"
+END LC_TELEPHONE
+
+LC_TIME
+% FIXME
+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
+ "<U0053><U0061><U0074>"
+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
+ "<U004D><U0061><U0072><U0063><U0068>";/
+ "<U0041><U0070><U0072><U0069><U006C>";/
+ "<U004D><U0061><U0079>";/
+ "<U004A><U0075><U006E><U0065>";/
+ "<U004A><U0075><U006C><U0079>";/
+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
+% date formats following ISO 8601-1988
+d_t_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064><U0054><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+LC_MESSAGES
+% FIXME
+yesexpr "<U005E><U005B><U0031><U004A><U006A><U0073><U0053><U0079><U0059><U006F><U004F><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U0030><U006E><U004E><U005D><U002E><U002A>"
+yesstr "yes"
+nostr "no"
+END LC_MESSAGES
+
+% Default paper: A4
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+% Metric System (ISO 1000)
+LC_MEASUREMENT
+measurement 1
+END LC_MEASUREMENT
+
+LC_NAME
+% FIXME
+copy "en_DK"
+END LC_NAME
+
+LC_ADDRESS
+% FIXME
+copy "en_DK"
+END LC_ADDRESS
+
diff --git a/localedata/locales/yo_NG b/localedata/locales/yo_NG
new file mode 100644
index 0000000000..e43054a452
--- /dev/null
+++ b/localedata/locales/yo_NG
@@ -0,0 +1,511 @@
+escape_char /
+comment_char %
+%
+% Yoruba language locale for Nigeria
+% Source:
+% Contact: Pablo Saratxaga
+% Email: pablo@mandriva.com
+% Language: yo
+% Territory: NG
+% Revision: 0.2
+% Date: 2005-11-21
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title "Yoruba locale for Nigeria"
+source ""
+address ""
+contact ""
+email "pablo@mandriva.com"
+tel ""
+fax ""
+language "Yoruba"
+territory "Nigeria"
+revision "0.2"
+date "2005-11-20"
+%
+category "yo_NG:2000";LC_IDENTIFICATION
+category "yo_NG:2000";LC_CTYPE
+category "yo_NG:2000";LC_COLLATE
+category "yo_NG:2000";LC_TIME
+category "yo_NG:2000";LC_NUMERIC
+category "yo_NG:2000";LC_MONETARY
+category "yo_NG:2000";LC_MESSAGES
+category "yo_NG:2000";LC_PAPER
+category "yo_NG:2000";LC_NAME
+category "yo_NG:2000";LC_ADDRESS
+category "yo_NG:2000";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_COLLATE
+
+% Yoruba uses the following extra letters:
+% edotbelow, odotbelow, sdotbelow
+% plus acute and grave combining marks over vowels and n
+% of those, the following have precombined forms:
+% aacute, eacute, iacute, oacute, uacute, nacute
+% agrave, egrave, igrave, ograve, ugrave, ngrave
+% * m and n may be nazalization marks when they follow a vowel;
+% or they can be vocalic, in such case they get the three
+% tones, and middle tone is marked with a macron
+% * a same vowel with following up/down or down/up tones
+% may be written with respectively a circumflex or a caron,
+% eg: áà = â, àá = ǎ
+% * old orthography also has tilde on vowels, but is deprecated
+% (not implemented in this yo_NG file)
+% * info from: http://www.eki.ee/letter
+%
+% order: a, b, c, d, e, e., f, g, gb, h, i, j, k, l, m, n, o, o., p
+% [q], r, s, s., t, u, [v], w, [x], y, [z]
+
+copy "iso14651_t1"
+
+% digraphs (gb)
+collating-symbol <g-b-yo>
+collating-element <G-B> from "<U0047><U0042>"
+collating-element <g-b> from "<U0067><U0062>"
+collating-element <G-b> from "<U0047><U0062>"
+collating-element <g-B> from "<U0067><U0042>"
+% belowdot (ẹ, ọ, ș)
+collating-symbol <ebelowdot>
+collating-element <E_> from "<U0045><U0323>"
+collating-element <e_> from "<U0065><U0323>"
+collating-element <E_'> from "<U1EB8><U0301>"
+collating-element <e_'> from "<U1EB9><U0301>"
+collating-element <E_`> from "<U1EB8><U0300>"
+collating-element <e_`> from "<U1EB9><U0300>"
+collating-element <E_2'> from "<U0045><U0323><U0301>"
+collating-element <e_2'> from "<U0065><U0323><U0301>"
+collating-element <E_2`> from "<U0045><U0323><U0300>"
+collating-element <e_2`> from "<U0065><U0323><U0300>"
+collating-symbol <obelowdot>
+collating-element <O_> from "<U004F><U0323>"
+collating-element <o_> from "<U006F><U0323>"
+collating-element <O_'> from "<U1ECC><U0301>"
+collating-element <o_'> from "<U1ECD><U0301>"
+collating-element <O_`> from "<U1ECC><U0300>"
+collating-element <o_`> from "<U1ECD><U0300>"
+collating-element <O_2'> from "<U004F><U0323><U0301>"
+collating-element <o_2'> from "<U006F><U0323><U0301>"
+collating-element <O_2`> from "<U004F><U0323><U0300>"
+collating-element <o_2`> from "<U006F><U0323><U0300>"
+collating-symbol <sbelowdot>
+collating-element <S_> from "<U0053><U0323>"
+collating-element <s_> from "<U0073><U0323>"
+% acute (áéíḿńóú; for acute on ẹọ look above)
+collating-element <A'> from "<U0041><U0301>"
+collating-element <a'> from "<U0061><U0301>"
+collating-element <E'> from "<U0045><U0301>"
+collating-element <e'> from "<U0065><U0301>"
+collating-element <I'> from "<U0049><U0301>"
+collating-element <i'> from "<U0069><U0301>"
+collating-element <M'> from "<U004D><U0301>"
+collating-element <m'> from "<U006D><U0301>"
+collating-element <N'> from "<U004E><U0301>"
+collating-element <n'> from "<U006E><U0301>"
+collating-element <O'> from "<U004F><U0301>"
+collating-element <o'> from "<U006F><U0301>"
+collating-element <U'> from "<U0055><U0301>"
+collating-element <u'> from "<U0075><U0301>"
+% grave (àèìm̀ǹòù; for grave on ẹọ look above)
+collating-element <A`> from "<U0041><U0300>"
+collating-element <a`> from "<U0061><U0300>"
+collating-element <E`> from "<U0045><U0300>"
+collating-element <e`> from "<U0065><U0300>"
+collating-element <I`> from "<U0049><U0300>"
+collating-element <i`> from "<U0069><U0300>"
+collating-element <M`> from "<U004D><U0300>"
+collating-element <m`> from "<U006D><U0300>"
+collating-element <N`> from "<U004E><U0300>"
+collating-element <n`> from "<U006E><U0300>"
+collating-element <O`> from "<U004F><U0300>"
+collating-element <o`> from "<U006F><U0300>"
+collating-element <U`> from "<U0055><U0300>"
+collating-element <u`> from "<U0075><U0300>"
+% macron (m̅, n̅; not implemented on other letters)
+collating-element <M-> from "<U004D><U0304>"
+collating-element <m-> from "<U006D><U0304>"
+collating-element <N-> from "<U004E><U0304>"
+collating-element <n-> from "<U006E><U0304>"
+% circumflex (âêệîôộû)
+collating-element <A/>> from "<U0041><U0302>"
+collating-element <a/>> from "<U0061><U0302>"
+collating-element <E/>> from "<U0045><U0302>"
+collating-element <e/>> from "<U0065><U0302>"
+collating-element <E_/>> from "<U1EB8><U0302>"
+collating-element <e_/>> from "<U1EB9><U0302>"
+collating-element <I/>> from "<U0049><U0302>"
+collating-element <i/>> from "<U0069><U0302>"
+collating-element <O/>> from "<U004F><U0302>"
+collating-element <o/>> from "<U006F><U0302>"
+collating-element <O_/>> from "<U1ECC><U0302>"
+collating-element <o_/>> from "<U1ECD><U0302>"
+collating-element <U/>> from "<U0055><U0302>"
+collating-element <u/>> from "<U0075><U0302>"
+% caron (ǎěẹ̌ǐǒọ̌ǔ)
+collating-element <A<> from "<U0041><U030C>"
+collating-element <a<> from "<U0061><U030C>"
+collating-element <E<> from "<U0045><U030C>"
+collating-element <e<> from "<U0065><U030C>"
+collating-element <E_<> from "<U1EB8><U030C>"
+collating-element <e_<> from "<U1EB9><U030C>"
+collating-element <I<> from "<U0049><U030C>"
+collating-element <i<> from "<U0069><U030C>"
+collating-element <O<> from "<U004F><U030C>"
+collating-element <o<> from "<U006F><U030C>"
+collating-element <O_<> from "<U1ECC><U030C>"
+collating-element <o_<> from "<U1ECD><U030C>"
+collating-element <U<> from "<U0055><U030C>"
+collating-element <u<> from "<U0075><U030C>"
+% tilde (not implemented; old orthography)
+
+collating-symbol <CAP-MIN>
+collating-symbol <MIN-CAP>
+
+reorder-after <BAS>
+<ACA>
+<MAC>
+<GRA>
+
+reorder-after <MIN>
+<MIN-CAP>
+
+reorder-after <CAP>
+<CAP-MIN>
+
+reorder-after <e>
+<ebelowdot>
+reorder-after <g>
+<g-b-yo>
+reorder-after <o>
+<obelowdot>
+reorder-after <s>
+<sbelowdot>
+
+reorder-after <U0061>
+<U00E1> <a>;<ACA>;<MIN>;IGNORE
+<a'> <a>;<ACA>;<MIN>;IGNORE
+<U00E2> "<a><a>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<a/>> "<a><a>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<U00E0> <a>;<GRA>;<MIN>;IGNORE
+<a`> <a>;<GRA>;<MIN>;IGNORE
+<U01CE> "<a><a>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+<a<> "<a><a>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+reorder-after <U0041>
+<U00C1> <a>;<ACA>;<CAP>;IGNORE
+<A'> <a>;<ACA>;<CAP>;IGNORE
+<U00C2> "<a><a>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<A/>> "<a><a>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<U00C0> <a>;<GRA>;<CAP>;IGNORE
+<A`> <a>;<GRA>;<CAP>;IGNORE
+<U01CD> "<a><a>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+<A<> "<a><a>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+
+reorder-after <U0065>
+<U00E9> <e>;<ACA>;<MIN>;IGNORE
+<e'> <e>;<ACA>;<MIN>;IGNORE
+<U00EA> "<e><e>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<e/>> "<e><e>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<U00E8> <e>;<GRA>;<MIN>;IGNORE
+<e`> <e>;<GRA>;<MIN>;IGNORE
+<U011B> "<e><e>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+<e<> "<e><e>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+<U1EB9> <ebelowdot>;<BAS>;<MIN>;IGNORE
+<e_> <ebelowdot>;<BAS>;<MIN>;IGNORE
+<e_'> <ebelowdot>;<ACA>;<MIN>;IGNORE
+<e_2'> <ebelowdot>;<ACA>;<MIN>;IGNORE
+<e_/>> "<ebelowdot><ebelowdot>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<e_`> <ebelowdot>;<GRA>;<MIN>;IGNORE
+<e_2`> <ebelowdot>;<GRA>;<MIN>;IGNORE
+<e_<> "<ebelowdot><ebelowdot>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+reorder-after <U0045>
+<U00C9> <e>;<ACA>;<CAP>;IGNORE
+<E'> <e>;<ACA>;<CAP>;IGNORE
+<U00CA> "<e><e>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<E/>> "<e><e>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<U00C8> <e>;<GRA>;<CAP>;IGNORE
+<E`> <e>;<GRA>;<CAP>;IGNORE
+<U011A> "<e><e>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+<E<> "<e><e>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+<U1EB8> <ebelowdot>;<BAS>;<CAP>;IGNORE
+<E_> <ebelowdot>;<CAP>;<CAP>;IGNORE
+<E_'> <ebelowdot>;<ACA>;<CAP>;IGNORE
+<E_2'> <ebelowdot>;<ACA>;<CAP>;IGNORE
+<E_/>> "<ebelowdot><ebelowdot>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<E_`> <ebelowdot>;<GRA>;<CAP>;IGNORE
+<E_2`> <ebelowdot>;<GRA>;<CAP>;IGNORE
+<E_<> "<ebelowdot><ebelowdot>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+
+reorder-after <U0067>
+<g-b> <g-b-yo>;<PCL>;<MIN>;IGNORE
+<g-B> <g-b-yo>;<PCL>;<MIN-CAP>;IGNORE
+reorder-after <U0047>
+<G-B> <g-b-yo>;<PCL>;<CAP>;IGNORE
+<G-b> <g-b-yo>;<PCL>;<CAP-MIN>;IGNORE
+
+reorder-after <U0069>
+<U00ED> <i>;<ACA>;<MIN>;IGNORE
+<i'> <i>;<ACA>;<MIN>;IGNORE
+<U00EE> "<i><i>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<i/>> "<i><i>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<U00EC> <i>;<GRA>;<MIN>;IGNORE
+<i`> <i>;<GRA>;<MIN>;IGNORE
+<U01D0> "<i><i>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+<i<> "<i><i>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+reorder-after <U0049>
+<U00CD> <i>;<ACA>;<CAP>;IGNORE
+<I'> <i>;<ACA>;<CAP>;IGNORE
+<U00CE> "<i><i>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<I/>> "<i><i>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<U00CC> <i>;<GRA>;<CAP>;IGNORE
+<I`> <i>;<GRA>;<CAP>;IGNORE
+<U01CF> "<i><i>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+<I<> "<i><i>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+
+reorder-after <U006D>
+<U1E3F> <m>;<ACA>;<MIN>;IGNORE
+<m'> <m>;<ACA>;<MIN>;IGNORE
+<m-> <m>;<MAC>;<MIN>;IGNORE
+<m`> <m>;<GRA>;<MIN>;IGNORE
+reorder-after <U004E>
+<U1E3E> <m>;<ACA>;<CAP>;IGNORE
+<M'> <m>;<ACA>;<CAP>;IGNORE
+<M-> <m>;<MAC>;<CAP>;IGNORE
+<M`> <m>;<GRA>;<CAP>;IGNORE
+
+reorder-after <U006E>
+<U0144> <n>;<ACA>;<MIN>;IGNORE
+<n'> <n>;<ACA>;<MIN>;IGNORE
+<n-> <n>;<MAC>;<MIN>;IGNORE
+<U01F9> <n>;<GRA>;<MIN>;IGNORE
+<n`> <n>;<GRA>;<MIN>;IGNORE
+reorder-after <U004E>
+<U0143> <n>;<ACA>;<CAP>;IGNORE
+<N'> <n>;<ACA>;<CAP>;IGNORE
+<N-> <n>;<MAC>;<CAP>;IGNORE
+<U01F8> <n>;<GRA>;<CAP>;IGNORE
+<N`> <n>;<GRA>;<CAP>;IGNORE
+
+reorder-after <U006F>
+<U00F3> <o>;<ACA>;<MIN>;IGNORE
+<o'> <o>;<ACA>;<MIN>;IGNORE
+<U00F4> "<o><o>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<o/>> "<o><o>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<U00F2> <o>;<GRA>;<MIN>;IGNORE
+<o`> <o>;<GRA>;<MIN>;IGNORE
+<U01D2> "<o><o>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+<o<> "<o><o>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+<U1ECD> <obelowdot>;<BAS>;<MIN>;IGNORE
+<o_> <obelowdot>;<BAS>;<MIN>;IGNORE
+<o_'> <obelowdot>;<ACA>;<MIN>;IGNORE
+<o_2'> <obelowdot>;<ACA>;<MIN>;IGNORE
+<o_/>> "<obelowdot><obelowdot>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<o_`> <obelowdot>;<GRA>;<MIN>;IGNORE
+<o_2`> <obelowdot>;<GRA>;<MIN>;IGNORE
+<o_<> "<obelowdot><obelowdot>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+reorder-after <U004F>
+<U00D3> <o>;<ACA>;<CAP>;IGNORE
+<O'> <o>;<ACA>;<CAP>;IGNORE
+<U00D4> "<o><o>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<O/>> "<o><o>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<U00D2> <o>;<GRA>;<CAP>;IGNORE
+<O`> <o>;<GRA>;<CAP>;IGNORE
+<U01D1> "<o><o>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+<O<> "<o><o>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+<U1ECC> <obelowdot>;<BAS>;<CAP>;IGNORE
+<O_> <obelowdot>;<BAS>;<CAP>;IGNORE
+<O_'> <obelowdot>;<ACA>;<CAP>;IGNORE
+<O_2'> <obelowdot>;<ACA>;<CAP>;IGNORE
+<O_/>> "<obelowdot><obelowdot>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<O_`> <obelowdot>;<GRA>;<CAP>;IGNORE
+<O_2`> <obelowdot>;<GRA>;<CAP>;IGNORE
+<O_<> "<obelowdot><obelowdot>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+
+reorder-after <U0073>
+<U1E63> <sbelowdot>;<BAS>;<MIN>;IGNORE
+<s_> <sbelowdot>;<BAS>;<MIN>;IGNORE
+reorder-after <U0053>
+<U1E62> <sbelowdot>;<BAS>;<CAP>;IGNORE
+<S_> <sbelowdot>;<BAS>;<CAP>;IGNORE
+
+reorder-after <U0075>
+<U00FA> <u>;<ACA>;<MIN>;IGNORE
+<u'> <u>;<ACA>;<MIN>;IGNORE
+<U00FB> "<u><u>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<u/>> "<u><u>";"<ACA><GRA>";"<MIN><MIN>";IGNORE
+<U00F9> <u>;<GRA>;<MIN>;IGNORE
+<u`> <u>;<GRA>;<MIN>;IGNORE
+<U01D4> "<u><u>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+<u<> "<u><u>";"<GRA><ACA>";"<MIN><MIN>";IGNORE
+reorder-after <U0055>
+<U00DA> <u>;<ACA>;<CAP>;IGNORE
+<U'> <u>;<ACA>;<CAP>;IGNORE
+<U00DB> "<u><u>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<U/>> "<u><u>";"<ACA><GRA>";"<CAP><CAP>";IGNORE
+<U00D9> <u>;<GRA>;<CAP>;IGNORE
+<U`> <u>;<GRA>;<CAP>;IGNORE
+<U01D3> "<u><u>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+<U<> "<u><u>";"<GRA><ACA>";"<CAP><CAP>";IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_CTYPE
+copy "en_NG"
+END LC_CTYPE
+
+LC_MONETARY
+copy "en_NG"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_NG"
+END LC_NUMERIC
+
+LC_TELEPHONE
+copy "en_NG"
+END LC_TELEPHONE
+
+LC_TIME
+% SUN, MON, TUE, WED, THU, FRI, SAT
+abday "<U0053><U0055><U004E>";"<U004D><U004F><U004E>";/
+ "<U0054><U0055><U0045>";"<U0057><U0045><U0044>";/
+ "<U0054><U0048><U0055>";"<U0046><U0052><U0049>";/
+ "<U0053><U0041><U0054>"
+% Àìkú, Ajé, Ìṣẹ́gun, Ọjọ́rú, Ọjọ́bọ̀, Ẹ̀tì, Àbámẹ́ta
+day "<U00C0><U00EC><U006B><U00FA>";"<U0041><U006A><U00E9>";/
+ "<U00CC><U1E63><U1EB9><U0301><U0067><U0075><U006E>";/
+ "<U1ECC><U006A><U1ECD><U0301><U0072><U00FA>";/
+ "<U1ECC><U006A><U1ECD><U0301><U0062><U1ECD><U0300>";/
+ "<U1EB8><U0300><U0074><U00EC>";/
+ "<U00C0><U0062><U00E1><U006D><U1EB9><U0301><U0074><U0061>"
+% JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
+abmon "<U004A><U0041><U004E>";"<U0046><U0045><U0042>";/
+ "<U004D><U0041><U0052>";"<U0041><U0050><U0052>";/
+ "<U004D><U0041><U0059>";"<U004A><U0055><U004E>";/
+ "<U004A><U0055><U004C>";"<U0041><U0055><U0047>";/
+ "<U0053><U0045><U0050>";"<U004F><U0043><U0054>";/
+ "<U004E><U004F><U0056>";"<U0044><U0045><U0043>"
+% Jánúárì, Fẹ́búárì, Máàṣì, Épírì, Méè, Júùnù, Júláì,
+% Ọ́ọ́gọsì, Sẹ̀tẹ̀ńbà, Ọtóbà, Nòfẹ̀ńbà, Dìsẹ̀ńbà
+mon "<U004A><U00E1><U006E><U00FA><U00E1><U0072><U00EC>";/
+ "<U0046><U1EB9><U0301><U0062><U00FA><U00E1><U0072><U00EC>";/
+ "<U004D><U00E1><U00E0><U1E63><U00EC>";/
+ "<U00C9><U0070><U00ED><U0072><U00EC>";/
+ "<U004D><U00E9><U00E8>";/
+ "<U004A><U00FA><U00F9><U006E><U00F9>";/
+ "<U004A><U00FA><U006C><U00E1><U00EC>";/
+ "<U1ECC><U0301><U1ECD><U0301><U0067><U1ECD><U0073><U00EC>";/
+ "<U0053><U1EB9><U0300><U0074><U1EB9><U0300><U0144><U0062><U00E0>";/
+ "<U1ECC><U0074><U00F3><U0062><U00E0>";/
+ "<U004E><U00F2><U0066><U1EB9><U0300><U0144><U0062><U00E0>";/
+ "<U0044><U00EC><U0073><U1EB9><U0300><U0144><U0062><U00E0>"
+% ọjọ́ %A, %d oṣù %B ọdún %Y
+d_t_fmt "<U1ECD><U006A><U1ECD><U0301><U0020><U0025><U0041><U002C><U0020><U0025><U0064><U0020><U006F><U1E63><U00F9><U0020><U0025><U0042><U0020><U1ECD><U0064><U00FA><U006E><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+t_fmt "<U0025><U0072>"
+am_pm "<U0041><U004D>";"<U0050><U004D>"
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+END LC_TIME
+
+% FIXME
+LC_MESSAGES
+% yes: Bẹ́ẹ̀ ni
+yesstr "<U0042><U1EB9><U0301><U1EB9><U0300><U0020><U006E><U0069>"
+% ^[EeYy]
+yesexpr "<U005E><U005B><U0045><U0065><U0079><U0059><U005D><U002E><U002A>"
+% Bẹ́ẹ̀ kọ́
+nostr "<U0042><U1EB9><U0301><U1EB9><U0300><U0020><U006B><U1ECD><U0301>"
+% ^[RrOoKkNn]
+noexpr "<U005E><U005B><U0072><U0052><U004F><U006F><U004B><U006B><U004E><U006E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_NG"
+END LC_PAPER
+
+LC_MEASUREMENT
+copy "en_NG"
+END LC_MEASUREMENT
+
+LC_NAME
+% FIXME
+copy "en_NG"
+END LC_NAME
+
+LC_ADDRESS
+% FIXME
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+%
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+
+% FIXME
+% Country name in Yoruba - "Nigeria"
+country_name "<U004E><U0069><U0067><U0065><U0072><U0069><U0061>"
+
+% Language name in Yoruba - "Yorùbá"
+lang_name "<U0059><U006F><U0072><U00F9><U0062><U00E1>"
+
+% CEPT MAILCODES are suggested
+% Alternatively use the code found on your countries postal item tracking number
+% "NG"?
+%country_post "<U004E><U0047>"
+
+% UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
+% http://www.unece.org/trans/conventn/Distsigns_Sept2003.pdf
+% "WAN"
+country_car "<U0057><U0041><U004E>"
+
+% ISO 2108
+% http://www.isbn-international.org/
+country_isbn 978
+
+% ISO 639 language abbreviations:
+% 639-1 2 letter, 639-2 3 letter terminology
+% http://www.loc.gov/standards/iso639-2/englagn.html
+% "yo", "yor"
+lang_ab "<U0079><U006F>"
+lang_term "<U0079><U006F><U0072>"
+lang_lib "<U0079><U006F><U0072>"
+
+% ISO 3166 country number and 2 and 3 letter abreviations
+% http://www.unicode.org/onlinedat/countries.html
+% "NG", "NGA"
+country_ab2 "<U004E><U0047>"
+country_ab3 "<U004E><U0047><U0041>"
+country_num 566
+
+END LC_ADDRESS
+
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 0755fd8f8d..39d5b3fa52 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -3503,6 +3503,10 @@ mremap_chunk(p, new_size) mchunkptr p; size_t new_size;
/* Note the extra SIZE_SZ overhead as in mmap_chunk(). */
new_size = (new_size + offset + SIZE_SZ + page_mask) & ~page_mask;
+ /* No need to remap if the number of pages does not change. */
+ if (size + offset == new_size)
+ return p;
+
cp = (char *)mremap((char *)p - offset, size + offset, new_size,
MREMAP_MAYMOVE);
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index a18eb2d87e..585ecedd2c 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -132,7 +132,10 @@
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
-#if __GNUC_PREREQ (4,3)
+#if __GNUC_PREREQ (4,3) \
+ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
+ && __GNUC_RH_RELEASE__ >= 31)
# define __warndecl(name, msg) \
extern void name (void) __attribute__((__warning__ (msg)))
# define __warnattr(msg) __attribute__((__warning__ (msg)))
@@ -294,11 +297,19 @@
#if !defined __cplusplus || __GNUC_PREREQ (4,3) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
- && __GNUC_RH_RELEASE__ >= 24)
+ && __GNUC_RH_RELEASE__ >= 31)
# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
-# define __extern_always_inline \
+# if __GNUC_PREREQ (4,3) \
+ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
+ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
+ && __GNUC_RH_RELEASE__ >= 31)
+# define __extern_always_inline \
+ extern __always_inline __attribute__ ((__gnu_inline__, __artificial__))
+# else
+# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__))
+# endif
# else
# define __extern_inline extern __inline
# define __extern_always_inline extern __always_inline
@@ -310,7 +321,7 @@
#if __GNUC_PREREQ (4,3) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
- && __GNUC_RH_RELEASE__ >= 24)
+ && __GNUC_RH_RELEASE__ >= 31)
# define __va_arg_pack() __builtin_va_arg_pack ()
# define __va_arg_pack_len() __builtin_va_arg_pack_len ()
#endif
@@ -361,6 +372,10 @@
extern __typeof (name) name __asm (__ASMNAME (#alias));
# define __LDBL_REDIR_DECL(name) \
extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name));
+# define __REDIRECT_LDBL(name, proto, alias) \
+ __LDBL_REDIR1 (name, proto, __nldbl_##alias)
+# define __REDIRECT_NTH_LDBL(name, proto, alias) \
+ __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias)
# endif
#endif
#if !defined __LDBL_COMPAT || !defined __REDIRECT
@@ -369,6 +384,11 @@
# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
# define __LDBL_REDIR_DECL(name)
+# ifdef __REDIRECT
+# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias)
+# define __REDIRECT_NTH_LDBL(name, proto, alias) \
+ __REDIRECT_NTH (name, proto, alias)
+# endif
#endif
#endif /* sys/cdefs.h */
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 47bd0a4adc..66dcc7ff7b 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -2381,7 +2381,7 @@ msgstr "Tipo de Tabela : %s\n"
#: posix/../sysdeps/posix/gai_strerror.c:31
msgid "Temporary failure in name resolution"
-msgstr "Falha temporrio na resoluo de nome"
+msgstr "Falha temporria na resoluo de nome"
#: stdio-common/../sysdeps/unix/siglist.c:40
#: sysdeps/unix/sysv/linux/siglist.h:34
diff --git a/string/bits/string3.h b/string/bits/string3.h
index 876fe77929..a5593e3b89 100644
--- a/string/bits/string3.h
+++ b/string/bits/string3.h
@@ -45,65 +45,27 @@ __warndecl (__warn_memset_zero_len,
#endif
-#ifdef __cplusplus
__extern_always_inline void *
__NTH (memcpy (void *__restrict __dest, __const void *__restrict __src,
size_t __len))
{
return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
}
-#else
-# define memcpy(dest, src, len) \
- ((__bos0 (dest) != (size_t) -1) \
- ? __builtin___memcpy_chk (dest, src, len, __bos0 (dest)) \
- : __memcpy_ichk (dest, src, len))
-static __always_inline void *
-__NTH (__memcpy_ichk (void *__restrict __dest, __const void *__restrict __src,
- size_t __len))
-{
- return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
-}
-#endif
-#ifdef __cplusplus
__extern_always_inline void *
__NTH (memmove (void *__restrict __dest, __const void *__restrict __src,
size_t __len))
{
return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
}
-#else
-# define memmove(dest, src, len) \
- ((__bos0 (dest) != (size_t) -1) \
- ? __builtin___memmove_chk (dest, src, len, __bos0 (dest)) \
- : __memmove_ichk (dest, src, len))
-static __always_inline void *
-__NTH (__memmove_ichk (void *__dest, __const void *__src, size_t __len))
-{
- return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
-}
-#endif
#ifdef __USE_GNU
-# ifdef __cplusplus
__extern_always_inline void *
__NTH (mempcpy (void *__restrict __dest, __const void *__restrict __src,
size_t __len))
{
return __builtin___mempcpy_chk (__dest, __src, __len, __bos0 (__dest));
}
-# else
-# define mempcpy(dest, src, len) \
- ((__bos0 (dest) != (size_t) -1) \
- ? __builtin___mempcpy_chk (dest, src, len, __bos0 (dest)) \
- : __mempcpy_ichk (dest, src, len))
-static __always_inline void *
-__NTH (__mempcpy_ichk (void *__restrict __dest,
- __const void *__restrict __src, size_t __len))
-{
- return __builtin___mempcpy_chk (__dest, __src, __len, __bos0 (__dest));
-}
-# endif
#endif
@@ -112,7 +74,6 @@ __NTH (__mempcpy_ichk (void *__restrict __dest,
especially problematic if the intended fill value is zero. In this
case no work is done at all. We detect these problems by referring
non-existing functions. */
-#ifdef __cplusplus
__extern_always_inline void *
__NTH (memset (void *__dest, int __ch, size_t __len))
{
@@ -123,103 +84,43 @@ __NTH (memset (void *__dest, int __ch, size_t __len))
}
return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
}
-#else
-# define memset(dest, ch, len) \
- (__builtin_constant_p (len) && (len) == 0 \
- ? (__warn_memset_zero_len (), (void) (ch), (void) (len), (void *) (dest)) \
- : ((__bos0 (dest) != (size_t) -1) \
- ? __builtin___memset_chk (dest, ch, len, __bos0 (dest)) \
- : __memset_ichk (dest, ch, len)))
-static __always_inline void *
-__NTH (__memset_ichk (void *__dest, int __ch, size_t __len))
-{
- return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
-}
-#endif
#ifdef __USE_BSD
-# ifdef __cplusplus
__extern_always_inline void
__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest,
size_t __len))
{
- __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
+ (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
}
+
__extern_always_inline void
__NTH (bzero (void *__dest, size_t __len))
{
- __builtin___memset_chk (__dest, '\0', __len, __bos0 (__dest));
+ (void) __builtin___memset_chk (__dest, '\0', __len, __bos0 (__dest));
}
-# else
-# define bcopy(src, dest, len) ((void) \
- ((__bos0 (dest) != (size_t) -1) \
- ? __builtin___memmove_chk (dest, src, len, __bos0 (dest)) \
- : __memmove_ichk (dest, src, len)))
-# define bzero(dest, len) ((void) \
- ((__bos0 (dest) != (size_t) -1) \
- ? __builtin___memset_chk (dest, '\0', len, __bos0 (dest)) \
- : __memset_ichk (dest, '\0', len)))
-# endif
#endif
-#ifdef __cplusplus
__extern_always_inline char *
__NTH (strcpy (char *__restrict __dest, __const char *__restrict __src))
{
return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
}
-#else
-# define strcpy(dest, src) \
- ((__bos (dest) != (size_t) -1) \
- ? __builtin___strcpy_chk (dest, src, __bos (dest)) \
- : __strcpy_ichk (dest, src))
-static __always_inline char *
-__NTH (__strcpy_ichk (char *__restrict __dest, __const char *__restrict __src))
-{
- return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
-}
-#endif
#ifdef __USE_GNU
-# ifdef __cplusplus
__extern_always_inline char *
__NTH (stpcpy (char *__restrict __dest, __const char *__restrict __src))
{
return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
}
-# else
-# define stpcpy(dest, src) \
- ((__bos (dest) != (size_t) -1) \
- ? __builtin___stpcpy_chk (dest, src, __bos (dest)) \
- : __stpcpy_ichk (dest, src))
-static __always_inline char *
-__NTH (__stpcpy_ichk (char *__restrict __dest, __const char *__restrict __src))
-{
- return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
-}
-# endif
#endif
-#ifdef __cplusplus
__extern_always_inline char *
__NTH (strncpy (char *__restrict __dest, __const char *__restrict __src,
size_t __len))
{
return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
}
-#else
-# define strncpy(dest, src, len) \
- ((__bos (dest) != (size_t) -1) \
- ? __builtin___strncpy_chk (dest, src, len, __bos (dest)) \
- : __strncpy_ichk (dest, src, len))
-static __always_inline char *
-__NTH (__strncpy_ichk (char *__restrict __dest, __const char *__restrict __src,
- size_t __len))
-{
- return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
-}
-#endif
// XXX We have no corresponding builtin yet.
extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
@@ -238,41 +139,16 @@ __NTH (stpncpy (char *__dest, __const char *__src, size_t __n))
}
-#ifdef __cplusplus
__extern_always_inline char *
__NTH (strcat (char *__restrict __dest, __const char *__restrict __src))
{
return __builtin___strcat_chk (__dest, __src, __bos (__dest));
}
-#else
-# define strcat(dest, src) \
- ((__bos (dest) != (size_t) -1) \
- ? __builtin___strcat_chk (dest, src, __bos (dest)) \
- : __strcat_ichk (dest, src))
-static __always_inline char *
-__NTH (__strcat_ichk (char *__restrict __dest, __const char *__restrict __src))
-{
- return __builtin___strcat_chk (__dest, __src, __bos (__dest));
-}
-#endif
-#ifdef __cplusplus
__extern_always_inline char *
__NTH (strncat (char *__restrict __dest, __const char *__restrict __src,
size_t __len))
{
return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
}
-#else
-# define strncat(dest, src, len) \
- ((__bos (dest) != (size_t) -1) \
- ? __builtin___strncat_chk (dest, src, len, __bos (dest)) \
- : __strncat_ichk (dest, src, len))
-static __always_inline char *
-__NTH (__strncat_ichk (char *__restrict __dest, __const char *__restrict __src,
- size_t __len))
-{
- return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
-}
-#endif
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index c46921dcc9..8bd84b10aa 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,96,97,2002, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995,96,97,2002, 2004, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -128,7 +128,7 @@ STRCOLL (s1, s2, l)
Please note that the localedef programs makes sure that `position'
is not used at the first level. */
- if (! __libc_use_alloca (s1len + s2len))
+ if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1)))
{
idx1arr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1));
idx2arr = &idx1arr[s1len];
@@ -186,7 +186,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx1cnt < idx1max)
- idx1now = idx1cnt;
+ {
+ idx1now = idx1cnt;
+ backw1_stop = ~0ul;
+ }
else
/* Nothing anymore. The backward sequence ended with
the last sequence in the string. Note that seq1len
@@ -245,7 +248,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx2cnt < idx2max)
- idx2now = idx2cnt;
+ {
+ idx2now = idx2cnt;
+ backw2_stop = ~0ul;
+ }
else
/* Nothing anymore. The backward sequence ended with
the last sequence in the string. Note that seq2len
@@ -370,7 +376,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx1cnt < idx1max)
- idx1now = idx1cnt;
+ {
+ idx1now = idx1cnt;
+ backw1_stop = ~0ul;
+ }
else
{
/* Nothing anymore. The backward sequence
@@ -426,7 +435,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx2cnt < idx2max)
- idx2now = idx2cnt;
+ {
+ idx2now = idx2cnt;
+ backw2_stop = ~0ul;
+ }
else
{
/* Nothing anymore. The backward sequence
diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h
index 0c940d7221..2ec4ce17e0 100644
--- a/wcsmbs/bits/wchar2.h
+++ b/wcsmbs/bits/wchar2.h
@@ -274,10 +274,10 @@ extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n,
__const wchar_t *__restrict __format, ...)
__THROW /* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
-extern int __REDIRECT_NTH (__swprintf_alias,
- (wchar_t *__restrict __s, size_t __n,
- __const wchar_t *__restrict __fmt, ...),
- swprintf);
+extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
+ (wchar_t *__restrict __s, size_t __n,
+ __const wchar_t *__restrict __fmt, ...),
+ swprintf);
#ifdef __va_arg_pack
__extern_always_inline int
@@ -305,10 +305,10 @@ extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
__gnuc_va_list __arg)
__THROW /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
-extern int __REDIRECT_NTH (__vswprintf_alias,
- (wchar_t *__restrict __s, size_t __n,
- __const wchar_t *__restrict __fmt,
- __gnuc_va_list __ap), vswprintf);
+extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
+ (wchar_t *__restrict __s, size_t __n,
+ __const wchar_t *__restrict __fmt,
+ __gnuc_va_list __ap), vswprintf);
__extern_always_inline int
__NTH (vswprintf (wchar_t *__restrict __s, size_t __n,