[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r3747 - in /trunk/libc: ./ debug/ elf/ iconvdata/ include/ include/bits/ libio/bits/ locale/ locale/programs/ localedata/ lo...



Author: joseph
Date: Mon Oct  8 08:18:44 2007
New Revision: 3747

Log:
Merge changes between r3614 and r3746 from /fsf/trunk.

Added:
    trunk/libc/iconvdata/iso8859-9e.c
      - copied unchanged from r3746, fsf/trunk/libc/iconvdata/iso8859-9e.c
    trunk/libc/iconvdata/koi8-ru.c
      - copied unchanged from r3746, fsf/trunk/libc/iconvdata/koi8-ru.c
    trunk/libc/include/bits/error.h
      - copied unchanged from r3746, fsf/trunk/libc/include/bits/error.h
    trunk/libc/localedata/charmaps/ISO-8859-9E
      - copied unchanged from r3746, fsf/trunk/libc/localedata/charmaps/ISO-8859-9E
    trunk/libc/localedata/charmaps/KOI8-RU
      - copied unchanged from r3746, fsf/trunk/libc/localedata/charmaps/KOI8-RU
    trunk/libc/localedata/fr_FR.in
      - copied unchanged from r3746, fsf/trunk/libc/localedata/fr_FR.in
    trunk/libc/localedata/locales/ber_DZ
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/ber_DZ
    trunk/libc/localedata/locales/ber_MA
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/ber_MA
    trunk/libc/localedata/locales/en_NG
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/en_NG
    trunk/libc/localedata/locales/fil_PH
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/fil_PH
    trunk/libc/localedata/locales/fur_IT
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/fur_IT
    trunk/libc/localedata/locales/fy_DE
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/fy_DE
    trunk/libc/localedata/locales/ha_NG
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/ha_NG
    trunk/libc/localedata/locales/ig_NG
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/ig_NG
    trunk/libc/localedata/locales/ik_CA
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/ik_CA
    trunk/libc/localedata/locales/iu_CA
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/iu_CA
    trunk/libc/localedata/locales/li_BE
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/li_BE
    trunk/libc/localedata/locales/li_NL
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/li_NL
    trunk/libc/localedata/locales/nds_DE
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/nds_DE
    trunk/libc/localedata/locales/nds_NL
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/nds_NL
    trunk/libc/localedata/locales/pap_AN
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/pap_AN
    trunk/libc/localedata/locales/sa_IN
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/sa_IN
    trunk/libc/localedata/locales/sc_IT
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/sc_IT
    trunk/libc/localedata/locales/tk_TM
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/tk_TM
    trunk/libc/localedata/locales/ug_CN
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/ug_CN
    trunk/libc/localedata/locales/yo_NG
      - copied unchanged from r3746, fsf/trunk/libc/localedata/locales/yo_NG
    trunk/libc/misc/bits/error.h
      - copied unchanged from r3746, fsf/trunk/libc/misc/bits/error.h
    trunk/libc/stdlib/tst-qsort2.c
      - copied unchanged from r3746, fsf/trunk/libc/stdlib/tst-qsort2.c
    trunk/libc/sysdeps/unix/sysv/linux/eventfd.c
      - copied unchanged from r3746, fsf/trunk/libc/sysdeps/unix/sysv/linux/eventfd.c
    trunk/libc/sysdeps/unix/sysv/linux/eventfd_read.c
      - copied unchanged from r3746, fsf/trunk/libc/sysdeps/unix/sysv/linux/eventfd_read.c
    trunk/libc/sysdeps/unix/sysv/linux/eventfd_write.c
      - copied unchanged from r3746, fsf/trunk/libc/sysdeps/unix/sysv/linux/eventfd_write.c
    trunk/libc/sysdeps/unix/sysv/linux/signalfd.c
      - copied unchanged from r3746, fsf/trunk/libc/sysdeps/unix/sysv/linux/signalfd.c
    trunk/libc/sysdeps/unix/sysv/linux/sys/eventfd.h
      - copied unchanged from r3746, fsf/trunk/libc/sysdeps/unix/sysv/linux/sys/eventfd.h
    trunk/libc/sysdeps/unix/sysv/linux/sys/signalfd.h
      - copied unchanged from r3746, fsf/trunk/libc/sysdeps/unix/sysv/linux/sys/signalfd.h
Removed:
    trunk/libc/localedata/locales/sr_CS
Modified:
    trunk/libc/ChangeLog
    trunk/libc/NEWS
    trunk/libc/debug/tst-chk1.c
    trunk/libc/elf/dl-close.c
    trunk/libc/elf/dl-deps.c
    trunk/libc/elf/dl-fini.c
    trunk/libc/elf/dl-lookup.c
    trunk/libc/elf/dl-open.c
    trunk/libc/elf/do-lookup.h
    trunk/libc/iconvdata/Makefile
    trunk/libc/iconvdata/TESTS
    trunk/libc/iconvdata/gconv-modules
    trunk/libc/iconvdata/koi8-r.c
    trunk/libc/iconvdata/tst-tables.sh
    trunk/libc/include/link.h
    trunk/libc/include/stdio_ext.h
    trunk/libc/libio/bits/stdio2.h
    trunk/libc/locale/C-time.c
    trunk/libc/locale/iso-639.def
    trunk/libc/locale/programs/ld-collate.c
    trunk/libc/locale/programs/ld-time.c
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/Makefile
    trunk/libc/localedata/SUPPORTED
    trunk/libc/localedata/charmaps/UTF-8
    trunk/libc/localedata/de_DE.in
    trunk/libc/localedata/locales/am_ET
    trunk/libc/localedata/locales/cs_CZ
    trunk/libc/localedata/locales/da_DK
    trunk/libc/localedata/locales/en_GB
    trunk/libc/localedata/locales/et_EE
    trunk/libc/localedata/locales/fa_IR
    trunk/libc/localedata/locales/fr_FR
    trunk/libc/localedata/locales/is_IS
    trunk/libc/localedata/locales/iso14651_t1_common
    trunk/libc/localedata/locales/lo_LA
    trunk/libc/localedata/locales/lv_LV
    trunk/libc/localedata/locales/nb_NO
    trunk/libc/localedata/locales/nn_NO
    trunk/libc/localedata/locales/oc_FR
    trunk/libc/localedata/tst-langinfo.sh
    trunk/libc/login/login_tty.c
    trunk/libc/malloc/malloc.c
    trunk/libc/math/libm-test.inc
    trunk/libc/misc/error.h
    trunk/libc/misc/sys/cdefs.h
    trunk/libc/nscd/connections.c
    trunk/libc/nscd/nscd_helper.c
    trunk/libc/po/pt_BR.po
    trunk/libc/posix/bits/unistd.h
    trunk/libc/posix/glob.c
    trunk/libc/posix/tst-gnuglob.c
    trunk/libc/socket/bits/socket2.h
    trunk/libc/stdlib/Makefile
    trunk/libc/stdlib/bits/stdlib.h
    trunk/libc/stdlib/msort.c
    trunk/libc/string/bits/string2.h
    trunk/libc/string/bits/string3.h
    trunk/libc/string/strcoll_l.c
    trunk/libc/sunrpc/svc.c
    trunk/libc/sysdeps/generic/ldsodefs.h
    trunk/libc/sysdeps/gnu/netinet/tcp.h
    trunk/libc/sysdeps/i386/dl-trampoline.S
    trunk/libc/sysdeps/ieee754/dbl-64/e_lgamma_r.c
    trunk/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
    trunk/libc/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
    trunk/libc/sysdeps/unix/sysv/linux/Makefile
    trunk/libc/sysdeps/unix/sysv/linux/Versions
    trunk/libc/timezone/africa
    trunk/libc/timezone/antarctica
    trunk/libc/timezone/asia
    trunk/libc/timezone/australasia
    trunk/libc/timezone/europe
    trunk/libc/timezone/leapseconds
    trunk/libc/timezone/northamerica
    trunk/libc/timezone/southamerica
    trunk/libc/timezone/zic.c
    trunk/libc/timezone/zone.tab
    trunk/libc/wcsmbs/bits/wchar2.h
    trunk/libc/wcsmbs/wchar.h

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Mon Oct  8 08:18:44 2007
@@ -1,3 +1,265 @@
+2007-10-07  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #181]
+	* locale/C-time.c: Set week_1stday data to 19971201.
+	* locale/programs/ld-time.c (time_finish): Default for
+	first_workday is Monday.
+
+	[BZ #2633]
+	* wcsmbs/wchar.h: Move many C99 functions into std namespace.
+
+	[BZ #5103]
+	* posix/glob.c (glob): Recognize patterns starting \/.
+	* posix/tst-gnuglob.c (find_file): Handle absolute path names.
+	(main): Add test for pattern starting \/.
+
+	* misc/error.h: Use __const instead of const.
+	* misc/bits/error.h: Likewise.
+
+2007-10-07  Andreas Jaeger  <aj@xxxxxxx>
+
+	* include/bits/error.h: New file.
+
+	* misc/bits/error.h (error_at_line): Fix prototype.
+
+2007-10-06  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #3924]
+	* sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix a few
+	more little bugs in creating the stack frame when pltexit has to
+	be called.
+
+	* nscd/nscd_helper.c (__nscd_cache_search): Prevent endless loops.
+	* nscd/connections.c (verify_persistent_db): Recognize circular lists.
+
+	[BZ #4407]
+	* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Fix *signgamp for -0.0.
+	* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Likewise.
+	* math/libm-test.inc: Add test for this case.
+
+	[BZ #5010]
+	* sunrpc/svc.c (struct svc_callout): Add sc_mapped element.
+	(svc_register): Initialize sc_mapped.  Set to TRUE if call to
+	map service succeeded.
+	(svc_is_mapped): New function.
+	(svc_unregister): Use it before trying to unmap service.
+
+2007-10-05  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* timezone/zic.c: Update from tzcode2007h.
+
+	[BZ #5063]
+	* timezone/africa: Update from tzdata2007h.
+	* timezone/antarctica: Likewise.
+	* timezone/asia: Likewise.
+	* timezone/australasia: Likewise.
+	* timezone/europe: Likewise.
+	* timezone/leapseconds: Likewise.
+	* timezone/northamerica: Likewise.
+	* timezone/southamerica: Likewise.
+	* timzeone/zone.tab: Likewise.
+
+	[BZ #5104]
+	* elf/do-lookup.h (do_lookup_x): Don't ignore STT_COMMON symbols.
+
+	[BZ #5113]
+	* string/bits/string2.h (__strdup): Cast parameters to calloc to
+	avoid warning with -Wconversion.
+	(__strndup): Likewise.
+	Half the patch by Christian Iseli <christian.iseli@xxxxxxxx>.
+
+	[BZ #5112]
+	* nscd/connections.c (restart): Don't resync if database is
+	disabled.  Patch mostly by Brian De Wolf <bldewolf@xxxxxxxxxxxxx>.
+
+	* sysdeps/gnu/netinet/tcp.h: Define TCP_MD5SIG, TCP_MD5SIG_MAXKEYLEN,
+	struct tcp_md5sig.  Extend struct tcp_info according to recent kernels.
+
+	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add eventfd,
+	evetnfd_read, eventfd_write.
+	* sysdeps/unix/sysv/linux/eventfd.c: New file.
+	* sysdeps/unix/sysv/linux/eventfd_read.c: New file.
+	* sysdeps/unix/sysv/linux/eventfd_write.c: New file.
+	* sysdeps/unix/sysv/linux/sys/eventfd.h: New file.
+	* sysdeps/unix/sysv/linux/Versions: Export eventfd, eventfd_read,
+	eventfd_write for GLIBC_2.7.
+
+	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add signalfd.
+	* sysdeps/unix/sysv/linux/signalfd.c: New file.
+	* sysdeps/unix/sysv/linux/sys/signalfd.h: New file.
+	* sysdeps/unix/sysv/linux/Versions: Export signalfd for GLIBC_2.7.
+
+2007-10-04  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* stdlib/msort.c: Include stdint.h.
+	(struct msort_param): New type.
+	(msort_with_tmp): Use struct msort_param pointer for unchanging
+	parameters.  Add optimized handling for several common sizes
+	and indirect sorting mode.
+	(qsort): Adjust msort_with_tmp callers.  For big S use indirect
+	sorting.
+	Suggested by Belazougui Djamel .
+
+	* stdlib/Makefile (tests): Add tst-qsort2.
+	* stdlib/tst-qsort2.c: New test.
+
+2007-10-04  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* login/login_tty.c (login_tty): The Linux kernel can return EBUSY
+	for dup2 in case another thread races with the current one.  Retry
+	in this case.
+
+	* misc/error.h: Remove support for use outside of libc.  We have to
+	include <features.h> now.  Include <bits/error.h> if possible.
+	* misc/bits/error.h: New file.
+
+2007-10-03  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	[BZ #5071]
+	* malloc/malloc.c (mremap_chunk): Avoid resizing of new block has
+	the same number of pages.
+	Patch by Tomash Brechko <tomash.brechko@xxxxxxxxx>.
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* sysdeps/generic/ldsodefs.h (struct dl_scope_free_list): Store
+	void * pointers instead of struct link_map **.
+	(_dl_scope_free): Change argument type to void *.
+	* include/link.h (struct link_map): Change type of l_reldeps
+	to struct link_map_reldeps, move l_reldepsact into that
+	struct too.
+	* elf/dl-deps.c: Include atomic.h.
+	(_dl_map_object_deps): Only change l->l_initfini when it is
+	fully populated, use _dl_scope_free for freeing it.  Optimize
+	removal of libs from reldeps by using l_reserved flag, when
+	some removal is needed, allocate a new list instead of
+	reallocating and free the old with _dl_scope_free.  Adjust
+	for l_reldeps and l_reldepsact changes.
+	* elf/dl-lookup.c (add_dependency): Likewise.  Reorganize to allow
+	searching in l_initfini and l_reldeps without holding dl_load_lock.
+	* elf/dl-fini.c (_dl_sort_fini): Adjust for l_reldeps and
+	l_reldepsact changes.
+	* elf/dl-close.c (_dl_close_worker): Likewise.
+	* elf/dl-open.c (_dl_scope_free): Change argument type to void *.
+
+2007-09-28  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* iconvdata/Makefile (modules): Add KOI8-RU.
+	(distribute): Add koi8-ru.c.
+	(gen-8bit-gap-modules): Add koi8-ru.
+	* iconvdata/koi8-ru.c: New file.
+	* iconvdata/gconv-modules: Add entries for KOI8-RU.
+	* iconvdata/TESTS: Likewise.
+	* iconvdata/tst-tables.sh: Likewise.
+
+	* iconvdata/koi8-r.c (HAS_HOLES): Define to 0.
+
+2007-09-26  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* misc/sys/cdefs.h (__warndecl, __errordecl): For GCC 4.3+ define
+	with __warning__/__error__ attributes.
+	(__warnattr): Define.
+	* stdlib/bits/stdlib.h (__realpath_chk_warn, __ptsname_r_chk_warn,
+	__mbstowcs_chk_warn, __wcstombs_chk_warn): New aliases with
+	__warnattr.
+	(realpath, ptsname_r, mbstowcs, wcstombs): Call __*_chk_warn instead
+	of __*_chk if compile time detectable overflow is found.
+	* libio/bits/stdio2.h (__fgets_chk_warn, __fread_chk_warn,
+	__fgets_unlocked_chk_warn, __fread_unlocked_chk_warn): New aliases
+	with __warnattr.
+	(fgets, fread, fgets_unlocked, fread_unlocked): Call __*_chk_warn
+	instead of __*_chk if compile time detectable overflow is found.
+	(__gets_alias): Rename to...
+	(__gets_warn): ... this.  Add __warnattr.
+	(gets): Call __gets_warn instead of __gets_alias.
+	* socket/bits/socket2.h (__recv_chk_warn, __recvfrom_chk_warn): New
+	aliases with __warnattr.
+	(recv, recvfrom): Call __*_chk_warn instead of __*_chk if compile
+	time detectable overflow is found.
+	* posix/bits/unistd.h (__read_chk_warn, __pread_chk_warn,
+	__pread64_chk_warn, __readlink_chk_warn, __readlinkat_chk_warn,
+	__getcwd_chk_warn, __confstr_chk_warn, __getgroups_chk_warn,
+	__ttyname_r_chk_warn, __getlogin_r_chk_warn, __gethostname_chk_warn,
+	__getdomainname_chk_warn): New aliases with __warnattr.
+	(read, pread, pread64, readlink, readlinkat, getcwd, confstr,
+	getgroups, ttyname_r, getlogin_r, gethostname, getdomainname): Call
+	__*_chk_warn instead of __*_chk if compile time detectable overflow
+	is found.
+	(__getgroups_chk): Rename argument to __listlen from listlen.
+	(__getwd_alias): Rename to...
+	(__getwd_warn): ... this.  Add __warnattr.
+	(getwd): Call __getwd_warn instead of __getwd_alias.
+	* wcsmbs/bits/wchar2.h (__wmemcpy_chk_warn, __wmemmove_chk_warn,
+	__wmempcpy_chk_warn, __wmemset_chk_warn, __wcsncpy_chk_warn,
+	__wcpncpy_chk_warn, __fgetws_chk_warn, __fgetws_unlocked_chk_warn,
+	__mbsrtowcs_chk_warn, __wcsrtombs_chk_warn, __mbsnrtowcs_chk_warn,
+	__wcsnrtombs_chk_warn): New aliases with __warnattr.
+	(wmemcpy, wmemmove, wmempcpy, wmemset, mbsrtowcs, wcsrtombs,
+	mbsnrtowcs, wcsnrtombs): Call __*_chk_warn instead of __*_chk if
+	compile time detectable overflow is found.
+	(wcsncpy, wcpncpy): Likewise.  For constant __n fix check whether
+	to use __*_chk or not.
+	(fgetws, fgetws_unlocked): Divide __bos by sizeof (wchar_t), both
+	in comparisons which function should be called and in __*_chk*
+	arguments.  Call __*_chk_warn instead of __*_chk if compile time
+	detectable overflow is found.
+	(swprintf, vswprintf): Divide __bos by sizeof (wchar_t) in
+	__*_chk argument.
+	* debug/tst-chk1.c (do_test): Add a few more tests.
+
 2007-09-24  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	[BZ #5058]

Modified: trunk/libc/NEWS
==============================================================================
--- trunk/libc/NEWS (original)
+++ trunk/libc/NEWS Mon Oct  8 08:18:44 2007
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2007-9-19
+GNU C Library NEWS -- history of user-visible changes.  2007-10-5
 Copyright (C) 1992-2006, 2007 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -24,6 +24,9 @@
 
 * More CPU set manipulation functions.  Implemented by Ulrich Drepper.
 
+* New Linux interfaces: signalfd, eventfd, eventfd_read, and eventfd_write.
+  Implemented by Ulrich Drepper.
+
 * Handle private futexes in the NPTL implementation.
   Implemented by Jakub Jelinek and Ulrich Drepper.
 
@@ -33,6 +36,13 @@
 * Linux/x86-64 vDSO support.  Implemented by Ulrich Drepper.
 
 * SHA-256 and SHA-512 based password encryption.
+  Implemented by Ulrich Drepper.
+
+* New locales: ber_DZ, ber_MA, en_NG, fil_PH, fur_IT, fy_DE, ha_NG, ig_NG,
+  ik_CA, iu_CA, li_BE, li_NL, nds_DE, nds_NL, pap_AN, sc_IT, tk_TM, ug_CN,
+  yo_NG.
+
++ New iconv modules: MAC-CENTRALEUROPE, ISO-8859-9E, KOI8-RU.
   Implemented by Ulrich Drepper.
 
 Version 2.6

Modified: trunk/libc/debug/tst-chk1.c
==============================================================================
--- trunk/libc/debug/tst-chk1.c (original)
+++ trunk/libc/debug/tst-chk1.c Mon Oct  8 08:18:44 2007
@@ -317,6 +317,14 @@
   CHK_FAIL_START
   snprintf (buf + 8, l0 + 3, "%d", num2);
   CHK_FAIL_END
+
+  CHK_FAIL_START
+  swprintf (wbuf + 8, 3, L"%d", num1);
+  CHK_FAIL_END
+
+  CHK_FAIL_START
+  swprintf (wbuf + 8, l0 + 3, L"%d", num1);
+  CHK_FAIL_END
 # endif
 
   memcpy (buf, str1 + 2, l0 + 9);
@@ -514,11 +522,15 @@
   CHK_FAIL_END
 
   CHK_FAIL_START
+  wmemcpy (wbuf + 9, L"abcdefghij", l0 + 10);
+  CHK_FAIL_END
+
+  CHK_FAIL_START
   wmemmove (wbuf + 2, wbuf + 1, l0 + 9);
   CHK_FAIL_END
 
   CHK_FAIL_START
-    wp = wmempcpy (wbuf + 6, L"abcde", l0 + 5);
+  wp = wmempcpy (wbuf + 6, L"abcde", l0 + 5);
   CHK_FAIL_END
 
   CHK_FAIL_START
@@ -535,6 +547,14 @@
 
   CHK_FAIL_START
   wcsncpy (wbuf + 7, L"X", l0 + 4);
+  CHK_FAIL_END
+
+  CHK_FAIL_START
+  wcsncpy (wbuf + 9, L"XABCDEFGH", 8);
+  CHK_FAIL_END
+
+  CHK_FAIL_START
+  wcpncpy (wbuf + 9, L"XABCDEFGH", 8);
   CHK_FAIL_END
 
   CHK_FAIL_START

Modified: trunk/libc/elf/dl-close.c
==============================================================================
--- trunk/libc/elf/dl-close.c (original)
+++ trunk/libc/elf/dl-close.c Mon Oct  8 08:18:44 2007
@@ -203,9 +203,9 @@
 	}
       /* And the same for relocation dependencies.  */
       if (l->l_reldeps != NULL)
-	for (unsigned int j = 0; j < l->l_reldepsact; ++j)
+	for (unsigned int j = 0; j < l->l_reldeps->act; ++j)
 	  {
-	    struct link_map *jmap = l->l_reldeps[j];
+	    struct link_map *jmap = l->l_reldeps->list[j];
 
 	    if (jmap->l_idx != IDX_STILL_USED)
 	      {
@@ -497,7 +497,7 @@
       THREAD_GSCOPE_WAIT ();
 
       /* Now we can free any queued old scopes.  */
-      struct dl_scope_free_list *fsl  = GL(dl_scope_free_list);
+      struct dl_scope_free_list *fsl = GL(dl_scope_free_list);
       if (fsl != NULL)
 	while (fsl->count > 0)
 	  free (fsl->list[--fsl->count]);

Modified: trunk/libc/elf/dl-deps.c
==============================================================================
--- trunk/libc/elf/dl-deps.c (original)
+++ trunk/libc/elf/dl-deps.c Mon Oct  8 08:18:44 2007
@@ -1,5 +1,6 @@
 /* Load the dependencies of a mapped object.
-   Copyright (C) 1996-2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1996-2003, 2004, 2005, 2006, 2007
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +18,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <atomic.h>
 #include <assert.h>
 #include <dlfcn.h>
 #include <errno.h>
@@ -465,15 +467,17 @@
 	{
 	  needed[nneeded++] = NULL;
 
-	  l->l_initfini = (struct link_map **)
+	  struct link_map **l_initfini = (struct link_map **)
 	    malloc ((2 * nneeded + 1) * sizeof needed[0]);
-	  if (l->l_initfini == NULL)
+	  if (l_initfini == NULL)
 	    _dl_signal_error (ENOMEM, map->l_name, NULL,
 			      N_("cannot allocate dependency list"));
-	  l->l_initfini[0] = l;
-	  memcpy (&l->l_initfini[1], needed, nneeded * sizeof needed[0]);
-	  memcpy (&l->l_initfini[nneeded + 1], l->l_initfini,
+	  l_initfini[0] = l;
+	  memcpy (&l_initfini[1], needed, nneeded * sizeof needed[0]);
+	  memcpy (&l_initfini[nneeded + 1], l_initfini,
 		  nneeded * sizeof needed[0]);
+	  atomic_write_barrier ();
+	  l->l_initfini = l_initfini;
 	}
 
       /* If we have no auxiliary objects just go on to the next map.  */
@@ -487,25 +491,26 @@
   if (errno == 0 && errno_saved != 0)
     __set_errno (errno_saved);
 
+  struct link_map **old_l_initfini = NULL;
   if (map->l_initfini != NULL && map->l_type == lt_loaded)
     {
       /* This object was previously loaded as a dependency and we have
 	 a separate l_initfini list.  We don't need it anymore.  */
       assert (map->l_searchlist.r_list == NULL);
-      free (map->l_initfini);
+      old_l_initfini = map->l_initfini;
     }
 
   /* Store the search list we built in the object.  It will be used for
      searches in the scope of this object.  */
-  map->l_initfini =
+  struct link_map **l_initfini =
     (struct link_map **) malloc ((2 * nlist + 1)
 				 * sizeof (struct link_map *));
-  if (map->l_initfini == NULL)
+  if (l_initfini == NULL)
     _dl_signal_error (ENOMEM, map->l_name, NULL,
 		      N_("cannot allocate symbol search list"));
 
 
-  map->l_searchlist.r_list = &map->l_initfini[nlist + 1];
+  map->l_searchlist.r_list = &l_initfini[nlist + 1];
   map->l_searchlist.r_nlist = nlist;
 
   for (nlist = 0, runp = known; runp; runp = runp->next)
@@ -546,10 +551,10 @@
 Filters not supported with LD_TRACE_PRELINKING"));
 	    }
 
-	  cnt = _dl_build_local_scope (map->l_initfini, l);
+	  cnt = _dl_build_local_scope (l_initfini, l);
 	  assert (cnt <= nlist);
 	  for (j = 0; j < cnt; j++)
-	    map->l_initfini[j]->l_reserved = 0;
+	    l_initfini[j]->l_reserved = 0;
 
 	  l->l_local_scope[0] =
 	    (struct r_scope_elem *) malloc (sizeof (struct r_scope_elem)
@@ -561,35 +566,50 @@
 	  l->l_local_scope[0]->r_nlist = cnt;
 	  l->l_local_scope[0]->r_list =
 	    (struct link_map **) (l->l_local_scope[0] + 1);
-	  memcpy (l->l_local_scope[0]->r_list, map->l_initfini,
+	  memcpy (l->l_local_scope[0]->r_list, l_initfini,
 		  cnt * sizeof (struct link_map *));
 	}
     }
 
   /* Maybe we can remove some relocation dependencies now.  */
   assert (map->l_searchlist.r_list[0] == map);
-  for (i = 0; i < map->l_reldepsact; ++i)
-    {
-      unsigned int j;
-
-      for (j = 1; j < nlist; ++j)
-	if (map->l_searchlist.r_list[j] == map->l_reldeps[i])
+  struct link_map_reldeps *l_reldeps = NULL;
+  if (map->l_reldeps != NULL)
+    {
+      for (i = 1; i < nlist; ++i)
+	map->l_searchlist.r_list[i]->l_reserved = 1;
+
+      struct link_map **list = &map->l_reldeps->list[0];
+      for (i = 0; i < map->l_reldeps->act; ++i)
+	if (list[i]->l_reserved)
 	  {
-	    /* A direct or transitive dependency is also on the list
-	       of relocation dependencies.  Remove the latter.  */
-	    for (j = i + 1; j < map->l_reldepsact; ++j)
-	      map->l_reldeps[j - 1] = map->l_reldeps[j];
-
-	    --map->l_reldepsact;
-
-	    /* Account for the '++i' performed by the 'for'.  */
-	    --i;
-	    break;
+	    /* Need to allocate new array of relocation dependencies.  */
+	    struct link_map_reldeps *l_reldeps;
+	    l_reldeps = malloc (sizeof (*l_reldeps)
+	    			+ map->l_reldepsmax
+				  * sizeof (struct link_map *));
+	    if (l_reldeps == NULL)
+	      /* Bad luck, keep the reldeps duplicated between
+		 map->l_reldeps->list and map->l_initfini lists.  */
+	      ;
+	    else
+	      {
+		unsigned int j = i;
+		memcpy (&l_reldeps->list[0], &list[0],
+			i * sizeof (struct link_map *));
+		for (i = i + 1; i < map->l_reldeps->act; ++i)
+		  if (!list[i]->l_reserved)
+		    l_reldeps->list[j++] = list[i];
+		l_reldeps->act = j;
+	      }
 	  }
+
+      for (i = 1; i < nlist; ++i)
+	map->l_searchlist.r_list[i]->l_reserved = 0;
     }
 
   /* Now determine the order in which the initialization has to happen.  */
-  memcpy (map->l_initfini, map->l_searchlist.r_list,
+  memcpy (l_initfini, map->l_searchlist.r_list,
 	  nlist * sizeof (struct link_map *));
   /* We can skip looking for the binary itself which is at the front
      of the search list.  Look through the list backward so that circular
@@ -602,7 +622,7 @@
 
       /* Find the place in the initfini list where the map is currently
 	 located.  */
-      for (j = 1; map->l_initfini[j] != l; ++j)
+      for (j = 1; l_initfini[j] != l; ++j)
 	;
 
       /* Find all object for which the current one is a dependency and
@@ -611,19 +631,18 @@
 	{
 	  struct link_map **runp;
 
-	  runp = map->l_initfini[k]->l_initfini;
+	  runp = l_initfini[k]->l_initfini;
 	  if (runp != NULL)
 	    {
 	      while (*runp != NULL)
 		if (__builtin_expect (*runp++ == l, 0))
 		  {
-		    struct link_map *here = map->l_initfini[k];
+		    struct link_map *here = l_initfini[k];
 
 		    /* Move it now.  */
-		    memmove (&map->l_initfini[j] + 1,
-			     &map->l_initfini[j],
+		    memmove (&l_initfini[j] + 1, &l_initfini[j],
 			     (k - j) * sizeof (struct link_map *));
-		    map->l_initfini[j] = here;
+		    l_initfini[j] = here;
 
 		    /* Don't insert further matches before the last
 		       entry moved to the front.  */
@@ -635,7 +654,18 @@
 	}
     }
   /* Terminate the list of dependencies.  */
-  map->l_initfini[nlist] = NULL;
+  l_initfini[nlist] = NULL;
+  atomic_write_barrier ();
+  map->l_initfini = l_initfini;
+  if (l_reldeps != NULL)
+    {
+      atomic_write_barrier ();
+      void *old_l_reldeps = map->l_reldeps;
+      map->l_reldeps = l_reldeps;
+      _dl_scope_free (old_l_reldeps);
+    }
+  if (old_l_initfini != NULL)
+    _dl_scope_free (old_l_initfini);
 
   if (errno_reason)
     _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,

Modified: trunk/libc/elf/dl-fini.c
==============================================================================
--- trunk/libc/elf/dl-fini.c (original)
+++ trunk/libc/elf/dl-fini.c Mon Oct  8 08:18:44 2007
@@ -82,8 +82,8 @@
 
 	    if (__builtin_expect (maps[k]->l_reldeps != NULL, 0))
 	      {
-		unsigned int m = maps[k]->l_reldepsact;
-		struct link_map **relmaps = maps[k]->l_reldeps;
+		unsigned int m = maps[k]->l_reldeps->act;
+		struct link_map **relmaps = &maps[k]->l_reldeps->list[0];
 
 		while (m-- > 0)
 		  {

Modified: trunk/libc/elf/dl-lookup.c
==============================================================================
--- trunk/libc/elf/dl-lookup.c (original)
+++ trunk/libc/elf/dl-lookup.c Mon Oct  8 08:18:44 2007
@@ -88,20 +88,50 @@
 internal_function
 add_dependency (struct link_map *undef_map, struct link_map *map, int flags)
 {
-  struct link_map **list;
   struct link_map *runp;
-  unsigned int act;
   unsigned int i;
   int result = 0;
-  unsigned long long int serial;
 
   /* Avoid self-references and references to objects which cannot be
      unloaded anyway.  */
   if (undef_map == map)
     return 0;
 
+  /* Avoid references to objects which cannot be unloaded anyway.  */
+  assert (map->l_type == lt_loaded);
+  if ((map->l_flags_1 & DF_1_NODELETE) != 0)
+    return 0;
+
+  struct link_map_reldeps *l_reldeps
+    = atomic_forced_read (undef_map->l_reldeps);
+
+  /* Make sure l_reldeps is read before l_initfini.  */
+  atomic_read_barrier ();
+
+  /* Determine whether UNDEF_MAP already has a reference to MAP.  First
+     look in the normal dependencies.  */
+  struct link_map **l_initfini = atomic_forced_read (undef_map->l_initfini);
+  if (l_initfini != NULL)
+    {
+      for (i = 0; l_initfini[i] != NULL; ++i)
+	if (l_initfini[i] == map)
+	  return 0;
+    }
+
+  /* No normal dependency.  See whether we already had to add it
+     to the special list of dynamic dependencies.  */
+  unsigned int l_reldepsact = 0;
+  if (l_reldeps != NULL)
+    {
+      struct link_map **list = &l_reldeps->list[0];
+      l_reldepsact = l_reldeps->act;
+      for (i = 0; i < l_reldepsact; ++i)
+	if (list[i] == map)
+	  return 0;
+    }
+
   /* Save serial number of the target MAP.  */
-  serial = map->l_serial;
+  unsigned long long serial = map->l_serial;
 
   /* Make sure nobody can unload the object while we are at it.  */
   if (__builtin_expect (flags & DL_LOOKUP_GSCOPE_LOCK, 0))
@@ -110,38 +140,52 @@
 	 here, that can result in ABBA deadlock.  */
       THREAD_GSCOPE_RESET_FLAG ();
       __rtld_lock_lock_recursive (GL(dl_load_lock));
-      THREAD_GSCOPE_SET_FLAG ();
       /* While MAP value won't change, after THREAD_GSCOPE_RESET_FLAG ()
 	 it can e.g. point to unallocated memory.  So avoid the optimizer
 	 treating the above read from MAP->l_serial as ensurance it
 	 can safely dereference it.  */
       map = atomic_forced_read (map);
+
+      /* From this point on it is unsafe to dereference MAP, until it
+	 has been found in one of the lists.  */
+
+      /* Redo the l_initfini check in case undef_map's l_initfini
+	 changed in the mean time.  */
+      if (undef_map->l_initfini != l_initfini
+	  && undef_map->l_initfini != NULL)
+	{
+	  l_initfini = undef_map->l_initfini;
+	  for (i = 0; l_initfini[i] != NULL; ++i)
+	    if (l_initfini[i] == map)
+	      goto out_check;
+	}
+
+      /* Redo the l_reldeps check if undef_map's l_reldeps changed in
+	 the mean time.  */
+      if (undef_map->l_reldeps != NULL)
+	{
+	  if (undef_map->l_reldeps != l_reldeps)
+	    {
+	      struct link_map **list = &undef_map->l_reldeps->list[0];
+	      l_reldepsact = undef_map->l_reldeps->act;
+	      for (i = 0; i < l_reldepsact; ++i)
+		if (list[i] == map)
+		  goto out_check;
+	    }
+	  else if (undef_map->l_reldeps->act > l_reldepsact)
+	    {
+	      struct link_map **list
+		= &undef_map->l_reldeps->list[0];
+	      i = l_reldepsact;
+	      l_reldepsact = undef_map->l_reldeps->act;
+	      for (; i < l_reldepsact; ++i)
+		if (list[i] == map)
+		  goto out_check;
+	    }
+	}
     }
   else
     __rtld_lock_lock_recursive (GL(dl_load_lock));
-
-  /* From this point on it is unsafe to dereference MAP, until it
-     has been found in one of the lists.  */
-
-  /* Determine whether UNDEF_MAP already has a reference to MAP.  First
-     look in the normal dependencies.  */
-  if (undef_map->l_initfini != NULL)
-    {
-      list = undef_map->l_initfini;
-
-      for (i = 0; list[i] != NULL; ++i)
-	if (list[i] == map)
-	  goto out_check;
-    }
-
-  /* No normal dependency.  See whether we already had to add it
-     to the special list of dynamic dependencies.  */
-  list = undef_map->l_reldeps;
-  act = undef_map->l_reldepsact;
-
-  for (i = 0; i < act; ++i)
-    if (list[i] == map)
-      goto out_check;
 
   /* The object is not yet in the dependency list.  Before we add
      it make sure just one more time the object we are about to
@@ -161,8 +205,8 @@
       if (map->l_serial != serial)
 	goto out_check;
 
-      /* Avoid references to objects which cannot be unloaded anyway.  */
-      assert (map->l_type == lt_loaded);
+      /* Redo the NODELETE check, as when dl_load_lock wasn't held
+	 yet this could have changed.  */
       if ((map->l_flags_1 & DF_1_NODELETE) != 0)
 	goto out;
 
@@ -177,33 +221,46 @@
 	}
 
       /* Add the reference now.  */
-      if (__builtin_expect (act >= undef_map->l_reldepsmax, 0))
+      if (__builtin_expect (l_reldepsact >= undef_map->l_reldepsmax, 0))
 	{
 	  /* Allocate more memory for the dependency list.  Since this
 	     can never happen during the startup phase we can use
 	     `realloc'.  */
-	  void *newp;
-
-	  undef_map->l_reldepsmax += 5;
-	  newp = realloc (undef_map->l_reldeps,
-			  undef_map->l_reldepsmax
-			  * sizeof (struct link_map *));
-
-	  if (__builtin_expect (newp != NULL, 1))
-	    undef_map->l_reldeps = (struct link_map **) newp;
+	  struct link_map_reldeps *newp;
+	  unsigned int max
+	    = undef_map->l_reldepsmax ? undef_map->l_reldepsmax * 2 : 10;
+
+	  newp = malloc (sizeof (*newp) + max * sizeof (struct link_map *));
+	  if (newp == NULL)
+	    {
+	      /* If we didn't manage to allocate memory for the list this is
+		 no fatal problem.  We simply make sure the referenced object
+		 cannot be unloaded.  This is semantically the correct
+		 behavior.  */
+	      map->l_flags_1 |= DF_1_NODELETE;
+	      goto out;
+	    }
 	  else
-	    /* Correct the addition.  */
-	    undef_map->l_reldepsmax -= 5;
-	}
-
-      /* If we didn't manage to allocate memory for the list this is
-	 no fatal mistake.  We simply make sure the referenced object
-	 cannot be unloaded.  This is semantically the correct
-	 behavior.  */
-      if (__builtin_expect (act < undef_map->l_reldepsmax, 1))
-	undef_map->l_reldeps[undef_map->l_reldepsact++] = map;
+	    {
+	      if (l_reldepsact)
+		memcpy (&newp->list[0], &undef_map->l_reldeps->list[0],
+			l_reldepsact * sizeof (struct link_map *));
+	      newp->list[l_reldepsact] = map;
+	      newp->act = l_reldepsact + 1;
+	      atomic_write_barrier ();
+	      void *old = undef_map->l_reldeps;
+	      undef_map->l_reldeps = newp;
+	      undef_map->l_reldepsmax = max;
+	      if (old)
+		_dl_scope_free (old);
+	    }
+	}
       else
-	map->l_flags_1 |= DF_1_NODELETE;
+	{
+	  undef_map->l_reldeps->list[l_reldepsact] = map;
+	  atomic_write_barrier ();
+	  undef_map->l_reldeps->act = l_reldepsact + 1;
+	}
 
       /* Display information if we are debugging.  */
       if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
@@ -222,6 +279,9 @@
  out:
   /* Release the lock.  */
   __rtld_lock_unlock_recursive (GL(dl_load_lock));
+
+  if (__builtin_expect (flags & DL_LOOKUP_GSCOPE_LOCK, 0))
+    THREAD_GSCOPE_SET_FLAG ();
 
   return result;
 

Modified: trunk/libc/elf/dl-open.c
==============================================================================
--- trunk/libc/elf/dl-open.c (original)
+++ trunk/libc/elf/dl-open.c Mon Oct  8 08:18:44 2007
@@ -166,7 +166,7 @@
 }
 
 int
-_dl_scope_free (struct r_scope_elem **old)
+_dl_scope_free (void *old)
 {
   struct dl_scope_free_list *fsl;
 #define DL_SCOPE_FREE_LIST_SIZE (sizeof (fsl->list) / sizeof (fsl->list[0]))

Modified: trunk/libc/elf/do-lookup.h
==============================================================================
--- trunk/libc/elf/do-lookup.h (original)
+++ trunk/libc/elf/do-lookup.h Mon Oct  8 08:18:44 2007
@@ -87,8 +87,9 @@
 	  return NULL;
 
 	if (__builtin_expect (ELFW(ST_TYPE) (sym->st_info) > STT_FUNC
+			      && ELFW(ST_TYPE) (sym->st_info) != STT_COMMON
 			      && ELFW(ST_TYPE) (sym->st_info) != STT_TLS, 0))
-	  /* Ignore all but STT_NOTYPE, STT_OBJECT and STT_FUNC
+	  /* Ignore all but STT_NOTYPE, STT_OBJECT, STT_FUNC, and STT_COMMON
 	     entries (and STT_TLS if TLS is supported) since these
 	     are no code/data definitions.  */
 	  return NULL;

Modified: trunk/libc/iconvdata/Makefile
==============================================================================
--- trunk/libc/iconvdata/Makefile (original)
+++ trunk/libc/iconvdata/Makefile Mon Oct  8 08:18:44 2007
@@ -62,7 +62,7 @@
 	   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
+	   MAC-CENTRALEUROPE KOI8-RU ISO8859-9E
 
 modules.so := $(addsuffix .so, $(modules-y))
 
@@ -169,7 +169,7 @@
 	      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	    \
@@ -225,7 +225,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   \
@@ -243,7 +244,7 @@
 			iso-ir-197 tis-620 koi8-u ibm874 cp10007 koi8-t	   \
 			georgian-ps georgian-academy iso-ir-209 mac-sami   \
 			iso8859-11 ibm866nav pt154 rk1048 mik brf \
-			mac-centraleurope
+			mac-centraleurope koi8-ru
 
 gen-special-modules := iso8859-7jp
 

Modified: trunk/libc/iconvdata/TESTS
==============================================================================
--- trunk/libc/iconvdata/TESTS (original)
+++ trunk/libc/iconvdata/TESTS Mon Oct  8 08:18:44 2007
@@ -39,6 +39,7 @@
 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
@@ -169,3 +170,4 @@
 BRF			BRF			-	UTF8
 MAC-SAMI		MAC-SAMI		Y	UTF8
 MAC-CENTRALEUROPE	MAC-CENTRALEUROPE	Y	UTF8
+KOI8-RU			KOI8-RU			Y	UTF8

Modified: trunk/libc/iconvdata/gconv-modules
==============================================================================
--- trunk/libc/iconvdata/gconv-modules (original)
+++ trunk/libc/iconvdata/gconv-modules Mon Oct  8 08:18:44 2007
@@ -1916,3 +1916,14 @@
 alias	CP1282//		MAC-CENTRALEUROPE//
 module	MAC-CENTRALEUROPE//	INTERNAL		MAC-CENTRALEUROPE 1
 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

Modified: trunk/libc/iconvdata/koi8-r.c
==============================================================================
--- trunk/libc/iconvdata/koi8-r.c (original)
+++ trunk/libc/iconvdata/koi8-r.c Mon Oct  8 08:18:44 2007
@@ -1,5 +1,5 @@
 /* Conversion from and to KOI8-R.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1997.
 
@@ -24,6 +24,6 @@
 #define TABLES <koi8-r.h>
 
 #define CHARSET_NAME	"KOI8-R//"
-#define HAS_HOLES	1	/* Not all 256 character are defined.  */
+#define HAS_HOLES	0	/* All 256 character are defined.  */
 
 #include <8bit-gap.c>

Modified: trunk/libc/iconvdata/tst-tables.sh
==============================================================================
--- trunk/libc/iconvdata/tst-tables.sh (original)
+++ trunk/libc/iconvdata/tst-tables.sh Mon Oct  8 08:18:44 2007
@@ -66,6 +66,7 @@
   ISO-8859-7
   ISO-8859-8
   ISO-8859-9
+  ISO-8859-9E
   ISO-8859-10
   ISO-8859-11
   ISO-8859-13
@@ -211,6 +212,7 @@
   MIK
   BRF
   MAC-CENTRALEUROPE
+  KOI8-RU
   #
   # Multibyte encodings come here
   #

Modified: trunk/libc/include/link.h
==============================================================================
--- trunk/libc/include/link.h (original)
+++ trunk/libc/include/link.h Mon Oct  8 08:18:44 2007
@@ -240,8 +240,11 @@
 
     /* List of the dependencies introduced through symbol binding.  */
     unsigned int l_reldepsmax;
-    unsigned int l_reldepsact;
-    struct link_map **l_reldeps;
+    struct link_map_reldeps
+      {
+	unsigned int act;
+	struct link_map *list[];
+      } *l_reldeps;
 
     /* Various flag words.  */
     ElfW(Word) l_feature_1;

Modified: trunk/libc/include/stdio_ext.h
==============================================================================
--- trunk/libc/include/stdio_ext.h (original)
+++ trunk/libc/include/stdio_ext.h Mon Oct  8 08:18:44 2007
@@ -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

Modified: trunk/libc/libio/bits/stdio2.h
==============================================================================
--- trunk/libc/libio/bits/stdio2.h (original)
+++ trunk/libc/libio/bits/stdio2.h Mon Oct  8 08:18:44 2007
@@ -131,14 +131,16 @@
 #endif
 
 extern char *__gets_chk (char *__str, size_t) __wur;
-extern char *__REDIRECT (__gets_alias, (char *__str), gets) __wur;
+extern char *__REDIRECT (__gets_warn, (char *__str), gets)
+     __wur __warnattr ("please use fgets or getline instead, gets can't "
+		       "specify buffer size");
 
 __extern_always_inline __wur char *
 gets (char *__str)
 {
   if (__bos (__str) != (size_t) -1)
     return __gets_chk (__str, __bos (__str));
-  return __gets_alias (__str);
+  return __gets_warn (__str);
 }
 
 extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
@@ -146,13 +148,23 @@
 extern char *__REDIRECT (__fgets_alias,
 			 (char *__restrict __s, int __n,
 			  FILE *__restrict __stream), fgets) __wur;
+extern char *__REDIRECT (__fgets_chk_warn,
+			 (char *__restrict __s, size_t __size, int __n,
+			  FILE *__restrict __stream), __fgets_chk)
+     __wur __warnattr ("fgets called with bigger size than length "
+		       "of destination buffer");
 
 __extern_always_inline __wur char *
 fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
 {
-  if (__bos (__s) != (size_t) -1
-      && (!__builtin_constant_p (__n) || (size_t) __n > __bos (__s)))
-    return __fgets_chk (__s, __bos (__s), __n, __stream);
+  if (__bos (__s) != (size_t) -1)
+    {
+      if (!__builtin_constant_p (__n) || __n <= 0)
+	return __fgets_chk (__s, __bos (__s), __n, __stream);
+
+      if ((size_t) __n > __bos (__s))
+	return __fgets_chk_warn (__s, __bos (__s), __n, __stream);
+    }
   return __fgets_alias (__s, __n, __stream);
 }
 
@@ -163,17 +175,28 @@
 			  (void *__restrict __ptr, size_t __size,
 			   size_t __n, FILE *__restrict __stream),
 			  fread) __wur;
+extern size_t __REDIRECT (__fread_chk_warn,
+			  (void *__restrict __ptr, size_t __ptrlen,
+			   size_t __size, size_t __n,
+			   FILE *__restrict __stream),
+			  __fread_chk)
+     __wur __warnattr ("fread called with bigger size * nmemb than length "
+		       "of destination buffer");
 
 __extern_always_inline __wur size_t
 fread (void *__restrict __ptr, size_t __size, size_t __n,
        FILE *__restrict __stream)
 {
-  if (__bos0 (__ptr) != (size_t) -1
-      && (!__builtin_constant_p (__size)
+  if (__bos0 (__ptr) != (size_t) -1)
+    {
+      if (!__builtin_constant_p (__size)
 	  || !__builtin_constant_p (__n)
-	  || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))
-	  || __size * __n > __bos0 (__ptr)))
-    return __fread_chk (__ptr, __bos0 (__ptr), __size, __n, __stream);
+	  || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
+	return __fread_chk (__ptr, __bos0 (__ptr), __size, __n, __stream);
+
+      if (__size * __n > __bos0 (__ptr))
+	return __fread_chk_warn (__ptr, __bos0 (__ptr), __size, __n, __stream);
+    }
   return __fread_alias (__ptr, __size, __n, __stream);
 }
 
@@ -183,13 +206,23 @@
 extern char *__REDIRECT (__fgets_unlocked_alias,
 			 (char *__restrict __s, int __n,
 			  FILE *__restrict __stream), fgets_unlocked) __wur;
+extern char *__REDIRECT (__fgets_unlocked_chk_warn,
+			 (char *__restrict __s, size_t __size, int __n,
+			  FILE *__restrict __stream), __fgets_unlocked_chk)
+     __wur __warnattr ("fgets_unlocked called with bigger size than length "
+		       "of destination buffer");
 
 __extern_always_inline __wur char *
 fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
 {
-  if (__bos (__s) != (size_t) -1
-      && (!__builtin_constant_p (__n) || (size_t) __n > __bos (__s)))
-    return __fgets_unlocked_chk (__s, __bos (__s), __n, __stream);
+  if (__bos (__s) != (size_t) -1)
+    {
+      if (!__builtin_constant_p (__n) || __n <= 0)
+	return __fgets_unlocked_chk (__s, __bos (__s), __n, __stream);
+
+      if ((size_t) __n > __bos (__s))
+	return __fgets_unlocked_chk_warn (__s, __bos (__s), __n, __stream);
+    }
   return __fgets_unlocked_alias (__s, __n, __stream);
 }
 #endif
@@ -203,17 +236,30 @@
 			  (void *__restrict __ptr, size_t __size,
 			   size_t __n, FILE *__restrict __stream),
 			  fread_unlocked) __wur;
+extern size_t __REDIRECT (__fread_unlocked_chk_warn,
+			  (void *__restrict __ptr, size_t __ptrlen,
+			   size_t __size, size_t __n,
+			   FILE *__restrict __stream),
+			  __fread_unlocked_chk)
+     __wur __warnattr ("fread_unlocked called with bigger size * nmemb than "
+		       "length of destination buffer");
 
 __extern_always_inline __wur size_t
 fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
 		FILE *__restrict __stream)
 {
-  if (__bos0 (__ptr) != (size_t) -1
-      && (!__builtin_constant_p (__size)
+  if (__bos0 (__ptr) != (size_t) -1)
+    {
+      if (!__builtin_constant_p (__size)
 	  || !__builtin_constant_p (__n)
-	  || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))
-	  || __size * __n > __bos0 (__ptr)))
-    return __fread_unlocked_chk (__ptr, __bos0 (__ptr), __size, __n, __stream);
+	  || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
+	return __fread_unlocked_chk (__ptr, __bos0 (__ptr), __size, __n,
+				     __stream);
+
+      if (__size * __n > __bos0 (__ptr))
+	return __fread_unlocked_chk_warn (__ptr, __bos0 (__ptr), __size, __n,
+					  __stream);
+    }
 
 # ifdef __USE_EXTERN_INLINES
   if (__builtin_constant_p (__size)

Modified: trunk/libc/locale/C-time.c
==============================================================================
--- trunk/libc/locale/C-time.c (original)
+++ trunk/libc/locale/C-time.c Mon Oct  8 08:18:44 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2004, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxx>, 1995.
 
@@ -134,7 +134,7 @@
     { .wstr = (const uint32_t *) L"" },
     { .wstr = (const uint32_t *) L"" },
     { .string = "\7" },
-    { .word = 19971130 },
+    { .word = 19971201 },
     { .string = "\4" },
     { .string = "\7" },
     { .string = "\1" },

Modified: trunk/libc/locale/iso-639.def
==============================================================================
--- trunk/libc/locale/iso-639.def (original)
+++ trunk/libc/locale/iso-639.def Mon Oct  8 08:18:44 2007
@@ -17,13 +17,16 @@
 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 ("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 ("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, 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 ("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 ("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_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_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_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)

Modified: trunk/libc/locale/programs/ld-collate.c
==============================================================================
--- trunk/libc/locale/programs/ld-collate.c (original)
+++ trunk/libc/locale/programs/ld-collate.c Mon Oct  8 08:18:44 2007
@@ -1552,9 +1552,10 @@
      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"),
@@ -1846,7 +1847,8 @@
 
       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;
@@ -2515,7 +2517,6 @@
 
   if (nowtok == tok_copy)
     {
-      state = 2;
       now = lr_token (ldfile, charmap, result, NULL, verbose);
       if (now->tok != tok_string)
 	{
@@ -3070,13 +3071,16 @@
 		    {
 		      /* 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.  */
@@ -3182,7 +3186,9 @@
 		  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;
 
@@ -3651,7 +3657,7 @@
 	  /* 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,

Modified: trunk/libc/locale/programs/ld-time.c
==============================================================================
--- trunk/libc/locale/programs/ld-time.c (original)
+++ trunk/libc/locale/programs/ld-time.c Mon Oct  8 08:18:44 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2005, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxx>, 1995.
 
@@ -510,7 +510,7 @@
 
   if (time->first_workday == '\0')
     /* The definition does not specify this so the default is used.  */
-    time->first_workday = 1;
+    time->first_workday = 2;
   else if (time->first_workday > time->week_ndays)
     WITH_CUR_LOCALE (error (0, 0, _("\
 %s: values for field `%s' must not be larger than %d"),

Modified: trunk/libc/localedata/ChangeLog
==============================================================================
--- trunk/libc/localedata/ChangeLog (original)
+++ trunk/libc/localedata/ChangeLog Mon Oct  8 08:18:44 2007
@@ -1,3 +1,95 @@
+2007-10-07  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #73]
+	* locales/nb_NO: Update time information, collation, thousands
+	separator.
+	* locales/nn_NO: Likewise.
+
+2007-10-04  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locales/en_NG: New file.
+
+2007-10-04  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* tst-langinfo.sh: Update expected THOUSEP for fr_FR.
+
+2007-10-02  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	[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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* charmaps/ISO-8859-9E: New file.
+
+2007-09-28  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* charmaps/KOI8-RU: New file.
+
 2007-09-23  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	[BZ #4556]

Modified: trunk/libc/localedata/Makefile
==============================================================================
--- trunk/libc/localedata/Makefile (original)
+++ trunk/libc/localedata/Makefile Mon Oct  8 08:18:44 2007
@@ -52,7 +52,7 @@
 	     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))))
@@ -148,7 +148,7 @@
 	   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)

Modified: trunk/libc/localedata/SUPPORTED
==============================================================================
--- trunk/libc/localedata/SUPPORTED (original)
+++ trunk/libc/localedata/SUPPORTED Mon Oct  8 08:18:44 2007
@@ -53,6 +53,8 @@
 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 \
@@ -115,6 +117,7 @@
 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 \
@@ -178,6 +181,7 @@
 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 \
@@ -193,7 +197,9 @@
 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 \
@@ -209,6 +215,7 @@
 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 \
@@ -222,6 +229,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 \
@@ -229,6 +238,7 @@
 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 \
@@ -250,6 +260,8 @@
 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 \
@@ -271,6 +283,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 \
@@ -290,6 +304,7 @@
 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 \
@@ -305,6 +320,8 @@
 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 \
@@ -341,6 +358,7 @@
 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 \
@@ -351,6 +369,7 @@
 ts_ZA/UTF-8 \
 tt_RU.UTF-8/UTF-8 \
 tt_RU@xxxxxxxxxxxxx/UTF-8 \
+ug_CN/UTF-8 \
 uk_UA.UTF-8/UTF-8 \
 uk_UA/KOI8-U \
 ur_PK/UTF-8 \
@@ -367,6 +386,7 @@
 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 \

Modified: trunk/libc/localedata/charmaps/UTF-8
==============================================================================
--- trunk/libc/localedata/charmaps/UTF-8 (original)
+++ trunk/libc/localedata/charmaps/UTF-8 Mon Oct  8 08:18:44 2007
@@ -551,7 +551,7 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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 @@
 <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

Modified: trunk/libc/localedata/de_DE.in
==============================================================================
--- trunk/libc/localedata/de_DE.in (original)
+++ trunk/libc/localedata/de_DE.in Mon Oct  8 08:18:44 2007
@@ -40,8 +40,8 @@
 Fussel                           : fluff
 fusseln                          : to wear of fluff
 füßeln                           : play footsie [under the table]
+Füssen                           : Füssen (town)
 fußen                            : to be based [on]
-Füssen                           : Füssen (town)
 Füßen (dat. pl. of "Fuß")        : [to the] feet
 in Massen                        : in large numbers
 in Maßen                         : moderately
@@ -49,9 +49,9 @@
 Mass. (Massachusetts)            : Massachusetts (state)
 Maß                              : measure
 Masse                            : mass
-Massé                            : (particular billard stroke)
 Maße (pl. of "Maß")              : measures
 mäße (pres. conj. of "messen")   : take measure (e.g. in indirect speech)
+Massé                            : (particular billard stroke)
 Massen-                          : mass; wholesale; bulk (in compound nouns)
 massig                           : massive
 mäßig                            : moderate; modest
@@ -60,8 +60,8 @@
 Passe                            : yoke (of dress)
 passé                            : over, gone
 Schlagerforderung                : claim, demanded in a pop song
+Schlägerforderung                : demand of a hooligan
 Schlagerförderung                : promotion of pop music
-Schlägerforderung                : demand of a hooligan
 Schlägerförderung                : promotion of hooliganism :-)
 Schurz                           : apron
 Schürze                          : apron

Modified: trunk/libc/localedata/locales/am_ET
==============================================================================
--- trunk/libc/localedata/locales/am_ET (original)
+++ trunk/libc/localedata/locales/am_ET Mon Oct  8 08:18:44 2007
@@ -56,13 +56,13 @@
 
 LC_COLLATE
 %
+% Copy the template from ISO/IEC 14651
+%
+copy "iso14651_t1"
+%
 %  The ETHIOPIC script declaration must come first.
 %
 script <ETHIOPIC>
-%
-% Copy the template from ISO/IEC 14651
-%
-copy "iso14651_t1"
 %
 %  Correcting Unicode's linguistic ordering to the traditional.
 %

Modified: trunk/libc/localedata/locales/cs_CZ
==============================================================================
--- trunk/libc/localedata/locales/cs_CZ (original)
+++ trunk/libc/localedata/locales/cs_CZ Mon Oct  8 08:18:44 2007
@@ -301,10 +301,10 @@
 
 % <CAPITAL> or <SMALL> letters first:
 
+<SMALL-CAPITAL>
+<SMALL>
 <CAPITAL>
 <CAPITAL-SMALL>
-<SMALL-CAPITAL>
-<SMALL>
 
 % Accents:
 % Poøadí akcentù: nahoøe, dole, vzadu, vpøedu, uvnitø nebo pøes písmeno

Modified: trunk/libc/localedata/locales/da_DK
==============================================================================
--- trunk/libc/localedata/locales/da_DK (original)
+++ trunk/libc/localedata/locales/da_DK Mon Oct  8 08:18:44 2007
@@ -66,6 +66,7 @@
 collating-symbol <ae>
 collating-symbol <o-stroke>
 collating-symbol <a-ring>
+collating-symbol <ETH>
 
 reorder-after <RES-1>
 <CAP>
@@ -208,6 +209,9 @@
 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

Modified: trunk/libc/localedata/locales/en_GB
==============================================================================
--- trunk/libc/localedata/locales/en_GB (original)
+++ trunk/libc/localedata/locales/en_GB Mon Oct  8 08:18:44 2007
@@ -121,6 +121,9 @@
 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

Modified: trunk/libc/localedata/locales/et_EE
==============================================================================
--- trunk/libc/localedata/locales/et_EE (original)
+++ trunk/libc/localedata/locales/et_EE Mon Oct  8 08:18:44 2007
@@ -2196,6 +2196,9 @@
 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

Modified: trunk/libc/localedata/locales/fa_IR
==============================================================================
--- trunk/libc/localedata/locales/fa_IR (original)
+++ trunk/libc/localedata/locales/fa_IR Mon Oct  8 08:18:44 2007
@@ -101,6 +101,7 @@
 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>"

Modified: trunk/libc/localedata/locales/fr_FR
==============================================================================
--- trunk/libc/localedata/locales/fr_FR (original)
+++ trunk/libc/localedata/locales/fr_FR Mon Oct  8 08:18:44 2007

[... 4182 lines stripped ...]