From e6e467b8352b6a62b8187fd241671eb55d0f6fc4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 8 Apr 2008 07:59:52 +0000 Subject: [PATCH] Updated to fedora-glibc-20080408T0706 --- ChangeLog | 95 + debug/wctomb_chk.c | 6 +- fedora/branch.mk | 4 +- intl/Makefile | 13 +- intl/dcigettext.c | 46 +- intl/tst-gettext6.c | 86 + intl/tst-gettext6.sh | 41 + locale/duplocale.c | 8 +- locale/freelocale.c | 8 +- locale/newlocale.c | 10 +- locale/programs/ld-time.c | 4 +- locale/programs/locfile.c | 4 +- locale/setlocale.c | 12 +- localedata/ChangeLog | 23 + localedata/Makefile | 3 +- localedata/locales/es_ES | 2068 +---------------- localedata/locales/hu_HU | 4 +- localedata/locales/iso14651_t1_common | 718 ++++-- malloc/mtrace.pl | 2 +- nptl/ChangeLog | 7 + .../unix/sysv/linux/sparc/lowlevellock.h | 4 +- nscd/nscd.c | 2 +- po/nl.po | 143 +- posix/getopt.c | 24 +- resolv/res_init.c | 46 +- stdio-common/vfprintf.c | 3 +- stdlib/mbtowc.c | 11 +- stdlib/strtod_l.c | 2 +- stdlib/wctomb.c | 10 +- string/strfry.c | 24 +- sunrpc/auth_unix.c | 2 +- sunrpc/clnt_tcp.c | 2 +- sunrpc/clnt_udp.c | 3 +- sunrpc/clnt_unix.c | 2 +- sunrpc/svc_tcp.c | 6 +- sunrpc/svc_udp.c | 3 +- sunrpc/svc_unix.c | 6 +- sunrpc/xdr.c | 4 +- sunrpc/xdr_array.c | 2 +- sunrpc/xdr_rec.c | 2 +- sunrpc/xdr_ref.c | 3 +- sysdeps/posix/tempname.c | 2 +- sysdeps/unix/opendir.c | 28 +- sysdeps/unix/sysv/linux/net/ethernet.h | 10 +- 44 files changed, 1011 insertions(+), 2495 deletions(-) create mode 100644 intl/tst-gettext6.c create mode 100644 intl/tst-gettext6.sh diff --git a/ChangeLog b/ChangeLog index ec004b1f4f..718ff1bf64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,98 @@ +2008-04-07 Ulrich Drepper + + [BZ #6042] + * sysdeps/unix/sysv/linux/net/ethernet.h: Add a few more + ETHERTYPE_* definitions. + Patch partly by Aurelien Jarno . + +2008-04-07 Jakub Jelinek + + * stdlib/mbtowc.c (__no_r_state): Remove. + (mbtowc): New static state variable. Use it instead of + __no_r_state. + * stdlib/wctomb.c (__no_r_state): Remove extern decl. + (__wctomb_state): New hidden variable. + (wctomb): Use __wctomb_state instead of __no_r_state. + * debug/wctomb_chk.c (__no_r_state): Remove extern decl. + (__wctomb_state): New extern decl. + (__wctomb_chk): Use __wctomb_state instead of __no_r_state. + +2008-04-07 Ulrich Drepper + + [BZ #5475] + * resolv/res_init.c: Handle scope IDs in resolv.conf. + +2008-04-07 Jakub Jelinek + + * malloc/mtrace.pl: Use $@ instead of $* to keep perl 5.10 quiet. + +2008-04-06 Ulrich Drepper + + * po/nl.po: Update from translation team. + +2008-03-31 Ulrich Drepper + + [BZ #6007] + * string/strfry.c: Handle empty strings again. + +2008-03-30 Ulrich Drepper + + [BZ #5443] + * intl/dcigettext.c (__dcigettext): Get reader lock for locale data + before looking for translation. + * locale/duplocale.c: Transform __libc_setlocale_lock into rwlock. + * locale/freelocale.c: Likewise. + * locale/newlocale.c: Likewise. + * locale/setlocale.c: Likewise. + Based partially on a patch by ryo@np.css.fujitsu.com. + +2008-03-30 Jakub Jelinek + + * intl/dcigettext.c (_nl_find_msg): Reread nconversions after + acquiring wrlock. Do conv_tab allocation while holding lock. + * intl/Makefile: Add rules to build and run tst-gettext6. + * intl/tst-gettext6.c: New test. + * intl/tst-gettext6.sh: New file. + +2008-03-30 Ulrich Drepper + + * po/nl.po: Update from translation team. + + * sysdeps/unix/opendir.c (__alloc_dir): If allocation fails for size + provided through st_blksize, try the default size before giving up. + +2008-03-29 Ulrich Drepper + + * stdio-common/vfprintf.c (vfprintf): Correct overflow test. + + [BZ #5939] + * sysdeps/posix/tempname.c (__gen_tempname): Correct flag selection. + + * posix/getopt.c (_getopt_internal_r): Remove old POSIX-demanded + error message. POSIX today does not require the messages to be in + a specific form. Suggested by Jim Meyering . + + [BZ #5979] + * sunrpc/auth_unix.c: Unify printed strings. + * sunrpc/clnt_tcp.c: Likewise. + * sunrpc/clnt_udp.c: Likewise. + * sunrpc/clnt_unix.c: Likewise. + * sunrpc/svc_tcp.c: Likewise. + * sunrpc/svc_udp.c: Likewise. + * sunrpc/svc_unix.c: Likewise. + * sunrpc/xdr.c: Likewise. + * sunrpc/xdr_array.c: Likewise. + * sunrpc/xdr_rec.c: Likewise. + * sunrpc/xdr_ref.c: Likewise. + * locale/programs/ld-time.c (time_finish): Unify messages. + * locale/programs/locfile.c (handle_copy): Fix typo. + * nscd/nscd.c (options): Fix typo. + + [BZ #5995] + * stdlib/strtod_l.c: Use correct sign for result in one more + underflow case. + Patch by Eric Blake . + 2008-03-27 Jakub Jelinek * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Add open diff --git a/debug/wctomb_chk.c b/debug/wctomb_chk.c index d0366346b8..23fc2ffbd1 100644 --- a/debug/wctomb_chk.c +++ b/debug/wctomb_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. +/* Copyright (C) 2005, 2008 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 @@ -21,7 +21,7 @@ #include -extern mbstate_t __no_r_state attribute_hidden; /* Defined in mbtowc.c. */ +extern mbstate_t __wctomb_state attribute_hidden; /* Defined in wctomb.c. */ int @@ -32,5 +32,5 @@ __wctomb_chk (char *s, wchar_t wchar, size_t buflen) if (buflen < MB_CUR_MAX) __chk_fail (); - return __wcrtomb (s, wchar, &__no_r_state); + return __wcrtomb (s, wchar, &__wctomb_state); } diff --git a/fedora/branch.mk b/fedora/branch.mk index a5124e44db..fc38cf831b 100644 --- a/fedora/branch.mk +++ b/fedora/branch.mk @@ -3,5 +3,5 @@ glibc-branch := fedora glibc-base := HEAD DIST_BRANCH := devel COLLECTION := dist-f8 -fedora-sync-date := 2008-03-28 13:47 UTC -fedora-sync-tag := fedora-glibc-20080328T1347 +fedora-sync-date := 2008-04-08 07:06 UTC +fedora-sync-tag := fedora-glibc-20080408T0706 diff --git a/intl/Makefile b/intl/Makefile index 9da445aa38..1511edd490 100644 --- a/intl/Makefile +++ b/intl/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 1995-2003, 2005, 2008 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 @@ -32,11 +32,11 @@ distribute = gmo.h gettextP.h hash-string.h loadinfo.h locale.alias \ tst-codeset.sh tstcodeset.po \ tst-gettext3.sh \ tst-gettext4.sh tst-gettext4-de.po tst-gettext4-fr.po \ - tst-gettext5.sh + tst-gettext5.sh tst-gettext6.sh include ../Makeconfig -multithread-test-srcs := tst-gettext4 tst-gettext5 +multithread-test-srcs := tst-gettext4 tst-gettext5 tst-gettext6 test-srcs := tst-gettext tst-translit tst-gettext2 tst-codeset tst-gettext3 ifeq ($(have-thread-library),yes) test-srcs += $(multithread-test-srcs) @@ -67,7 +67,8 @@ ifneq ($(strip $(MSGFMT)),:) tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out \ $(objpfx)tst-codeset.out $(objpfx)tst-gettext3.out ifeq ($(have-thread-library),yes) -tests: $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out +tests: $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out \ + $(objpfx)tst-gettext6.out endif ifneq (no,$(PERL)) tests: $(objpfx)mtrace-tst-gettext @@ -90,6 +91,8 @@ $(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4 $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ $(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5 $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ +$(objpfx)tst-gettext6.out: tst-gettext6.sh $(objpfx)tst-gettext6 + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ endif endif @@ -104,6 +107,7 @@ CFLAGS-tst-codeset.c = -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-gettext3.c = -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-gettext4.c = -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-gettext5.c = -DOBJPFX=\"$(objpfx)\" +CFLAGS-tst-gettext6.c = -DOBJPFX=\"$(objpfx)\" ifeq ($(have-thread-library),yes) ifeq (yes,$(build-shared)) @@ -122,6 +126,7 @@ $(objpfx)tst-codeset.out: $(objpfx)tst-gettext.out $(objpfx)tst-gettext3.out: $(objpfx)tst-gettext.out $(objpfx)tst-gettext4.out: $(objpfx)tst-gettext.out $(objpfx)tst-gettext5.out: $(objpfx)tst-gettext.out +$(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out CPPFLAGS += -D'LOCALEDIR="$(msgcatdir)"' \ -D'LOCALE_ALIAS_PATH="$(msgcatdir)"' diff --git a/intl/dcigettext.c b/intl/dcigettext.c index 7004cd49cf..e0782446e4 100644 --- a/intl/dcigettext.c +++ b/intl/dcigettext.c @@ -1,5 +1,6 @@ /* Implementation of the internal dcigettext function. - Copyright (C) 1995-2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1995-2005, 2006, 2007, 2008 + 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 @@ -449,6 +450,11 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) : n == 1 ? (char *) msgid1 : (char *) msgid2); #endif +#ifdef _LIBC + __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) + __libc_rwlock_rdlock (__libc_setlocale_lock); +#endif + __libc_rwlock_rdlock (_nl_state_lock); /* If DOMAINNAME is NULL, we are interested in the default domain. If @@ -466,7 +472,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) search.category = category; # ifdef HAVE_PER_THREAD_LOCALE # ifdef _LIBC - localename = __current_locale_name (category); + localename = strdupa (__current_locale_name (category)); # endif search.localename = localename; # endif @@ -489,6 +495,9 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) else retval = (char *) (*foundp)->translation; +# ifdef _LIBC + __libc_rwlock_unlock (__libc_setlocale_lock); +# endif __libc_rwlock_unlock (_nl_state_lock); return retval; } @@ -548,6 +557,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) /* We cannot get the current working directory. Don't signal an error but simply return the default string. */ FREE_BLOCKS (block_list); + __libc_rwlock_unlock (__libc_setlocale_lock); __libc_rwlock_unlock (_nl_state_lock); __set_errno (saved_errno); return (plural == 0 @@ -614,6 +624,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) { no_translation: FREE_BLOCKS (block_list); + __libc_rwlock_unlock (__libc_setlocale_lock); __libc_rwlock_unlock (_nl_state_lock); __set_errno (saved_errno); return (plural == 0 @@ -727,6 +738,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) if (plural) retval = plural_lookup (domain, n, retval, retlen); + __libc_rwlock_unlock (__libc_setlocale_lock); __libc_rwlock_unlock (_nl_state_lock); return retval; } @@ -879,6 +891,7 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp) { /* We have to allocate a new conversions table. */ __libc_rwlock_wrlock (domain->conversions_lock); + nconversions = domain->nconversions; /* Maybe in the meantime somebody added the translation. Recheck. */ @@ -1033,6 +1046,7 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp) # endif ) { + __libc_lock_define_initialized (static, lock) /* We are supposed to do a conversion. First allocate an appropriate table with the same structure as the table of translations in the file, where we can put the pointers @@ -1042,13 +1056,21 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp) handle this case by converting RESULTLEN bytes, including NULs. */ - if (convd->conv_tab == NULL - && ((convd->conv_tab = - (char **) calloc (nstrings + domain->n_sysdep_strings, - sizeof (char *))) - == NULL)) - /* Mark that we didn't succeed allocating a table. */ - convd->conv_tab = (char **) -1; + if (__builtin_expect (convd->conv_tab == NULL, 0)) + { + __libc_lock_lock (lock); + if (convd->conv_tab == NULL) + { + convd->conv_tab + = calloc (nstrings + domain->n_sysdep_strings, + sizeof (char *)); + if (convd->conv_tab != NULL) + goto not_translated_yet; + /* Mark that we didn't succeed allocating a table. */ + convd->conv_tab = (char **) -1; + } + __libc_lock_unlock (lock); + } if (__builtin_expect (convd->conv_tab == (char **) -1, 0)) /* Nothing we can do, no more memory. We cannot use the @@ -1057,12 +1079,14 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp) if (convd->conv_tab[act] == NULL) { + __libc_lock_lock (lock); + not_translated_yet:; + /* We haven't used this string so far, so it is not translated yet. Do this now. */ /* We use a bit more efficient memory handling. We allocate always larger blocks which get used over time. This is faster than many small allocations. */ - __libc_lock_define_initialized (static, lock) # define INITIAL_BLOCK_SIZE 4080 static unsigned char *freemem; static size_t freemem_size; @@ -1074,8 +1098,6 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp) transmem_block_t *transmem_list = NULL; # endif - __libc_lock_lock (lock); - inbuf = (const unsigned char *) result; outbuf = freemem + sizeof (size_t); diff --git a/intl/tst-gettext6.c b/intl/tst-gettext6.c new file mode 100644 index 0000000000..39611aa3b6 --- /dev/null +++ b/intl/tst-gettext6.c @@ -0,0 +1,86 @@ +/* Test that gettext() in multithreaded applications works correctly. + Copyright (C) 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek , 2008. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include + +pthread_barrier_t b; + +static void * +tf (void *arg) +{ + pthread_barrier_wait (&b); + return gettext ("Operation not permitted"); +} + +int +test (void) +{ + pthread_t th[4]; + unsetenv ("LANGUAGE"); + unsetenv ("OUTPUT_CHARSET"); + textdomain ("tstgettext6"); + bindtextdomain ("tstgettext6", OBJPFX "domaindir"); + setlocale (LC_ALL, "ja_JP.UTF-8"); + pthread_barrier_init (&b, NULL, 4); + for (int i = 0; i < 4; i++) + if (pthread_create (&th[i], NULL, tf, NULL)) + { + puts ("pthread_create failed"); + return 1; + } + for (int i = 0; i < 4; i++) + pthread_join (th[i], NULL); + return 0; +} + +int +main (void) +{ + for (int i = 0; i < 300; i++) + { + pid_t p = fork (); + if (p == -1) + { + printf ("fork failed: %m\n"); + return 1; + } + if (p == 0) + _exit (test ()); + int status; + wait (&status); + if (WIFEXITED (status) && WEXITSTATUS (status) != 0) + { + printf ("child exited with %d\n", WEXITSTATUS (status)); + return 1; + } + else if (WIFSIGNALED (status)) + { + printf ("child killed by signal %d\n", WTERMSIG (status)); + return 1; + } + } + return 0; +} diff --git a/intl/tst-gettext6.sh b/intl/tst-gettext6.sh new file mode 100644 index 0000000000..95e5ff91a8 --- /dev/null +++ b/intl/tst-gettext6.sh @@ -0,0 +1,41 @@ +#! /bin/sh +# Test that gettext() in multithreaded applications works correctly. +# Copyright (C) 2008 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 +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA. + +common_objpfx=$1 +run_program_prefix=$2 +objpfx=$3 + +LC_ALL=C +export LC_ALL + +# Create the domain directory. +mkdir -p ${objpfx}domaindir/ja_JP/LC_MESSAGES +# Populate it. +msgfmt -o ${objpfx}domaindir/ja_JP/LC_MESSAGES/tstgettext6.mo ../po/ja.po + +GCONV_PATH=${common_objpfx}iconvdata +export GCONV_PATH +LOCPATH=${common_objpfx}localedata +export LOCPATH + +${run_program_prefix} ${objpfx}tst-gettext6 > ${objpfx}tst-gettext6.out + +exit $? diff --git a/locale/duplocale.c b/locale/duplocale.c index 0cec09f63a..61782590d7 100644 --- a/locale/duplocale.c +++ b/locale/duplocale.c @@ -1,5 +1,5 @@ /* Duplicate handle for selection of locales. - Copyright (C) 1997, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1997,2000,2001,2002,2005,2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -27,7 +27,7 @@ /* Lock for protecting global data. */ -__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden) +__libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden) __locale_t @@ -54,7 +54,7 @@ __duplocale (__locale_t dataset) char *namep = (char *) (result + 1); /* We modify global data (the usage counts). */ - __libc_lock_lock (__libc_setlocale_lock); + __libc_rwlock_wrlock (__libc_setlocale_lock); for (cnt = 0; cnt < __LC_LAST; ++cnt) if (cnt != LC_ALL) @@ -78,7 +78,7 @@ __duplocale (__locale_t dataset) result->__ctype_toupper = dataset->__ctype_toupper; /* It's done. */ - __libc_lock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (__libc_setlocale_lock); } return result; diff --git a/locale/freelocale.c b/locale/freelocale.c index 7430455d56..97a8ee8a5e 100644 --- a/locale/freelocale.c +++ b/locale/freelocale.c @@ -1,5 +1,5 @@ /* Free data allocated by a call to setlocale_r - Copyright (C) 1996, 1997, 2000, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1996,1997,2000,2002,2005,2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -26,7 +26,7 @@ /* Lock for protecting global data. */ -__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden) +__libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden) void @@ -39,7 +39,7 @@ __freelocale (__locale_t dataset) return; /* We modify global data (the usage counts). */ - __libc_lock_lock (__libc_setlocale_lock); + __libc_rwlock_wrlock (__libc_setlocale_lock); for (cnt = 0; cnt < __LC_LAST; ++cnt) if (cnt != LC_ALL && dataset->__locales[cnt]->usage_count != UNDELETABLE) @@ -47,7 +47,7 @@ __freelocale (__locale_t dataset) _nl_remove_locale (cnt, dataset->__locales[cnt]); /* It's done. */ - __libc_lock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (__libc_setlocale_lock); /* Free the locale_t handle itself. */ free (dataset); diff --git a/locale/newlocale.c b/locale/newlocale.c index 0c31ba48ae..da142f2912 100644 --- a/locale/newlocale.c +++ b/locale/newlocale.c @@ -1,5 +1,5 @@ /* Return a reference to locale information record. - Copyright (C) 1996, 1997, 1999, 2000-2002, 2004, 2005, 2006 + Copyright (C) 1996, 1997, 1999, 2000-2002, 2004, 2005, 2006, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -30,7 +30,7 @@ /* Lock for protecting global data. */ -__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden) +__libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden) /* Use this when we come along an error. */ @@ -162,7 +162,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base) } /* Protect global data. */ - __libc_lock_lock (__libc_setlocale_lock); + __libc_rwlock_wrlock (__libc_setlocale_lock); /* Now process all categories we are interested in. */ names_len = 0; @@ -183,7 +183,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base) _nl_remove_locale (cnt, result.__locales[cnt]); /* Critical section left. */ - __libc_lock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (__libc_setlocale_lock); return NULL; } @@ -263,7 +263,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base) } /* Critical section left. */ - __libc_lock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (__libc_setlocale_lock); /* Update the special members. */ update: diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c index f040c93474..3a00d26f30 100644 --- a/locale/programs/ld-time.c +++ b/locale/programs/ld-time.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2005, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1995-2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -433,7 +433,7 @@ No definition for %s category found"), "LC_TIME")); && !__isleap (time->era_entries[idx].stop_date[0]))) && !be_quiet) WITH_CUR_LOCALE (error (0, 0, _("\ -%s: stopping date is invalid in string %Zd in `era' field"), +%s: invalid stopping date in string %Zd in `era' field"), "LC_TIME", idx + 1)); } } diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c index 17cd0209a4..928048b377 100644 --- a/locale/programs/locfile.c +++ b/locale/programs/locfile.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2004, 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1996-2004, 2005, 2006, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -779,7 +779,7 @@ handle_copy (struct linereader *ldfile, const struct charmap_t *charmap, now = lr_token (ldfile, charmap, result, NULL, verbose); if (now->tok != tok_string) - lr_error (ldfile, _("expect string argument for `copy'")); + lr_error (ldfile, _("expecting string argument for `copy'")); else if (!ignore_content) { if (now->val.str.startmb == NULL) diff --git a/locale/setlocale.c b/locale/setlocale.c index c1b8c3faec..767a5aab6b 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004, 2006 +/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004, 2006, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -123,7 +123,7 @@ static void (*const _nl_category_postload[]) (void) = /* Lock for protecting global data. */ -__libc_lock_define_initialized (, __libc_setlocale_lock attribute_hidden) +__libc_rwlock_define_initialized (, __libc_setlocale_lock attribute_hidden) /* Defined in loadmsgcat.c. */ extern int _nl_msg_cat_cntr; @@ -314,7 +314,7 @@ setlocale (int category, const char *locale) } /* Protect global data. */ - __libc_lock_lock (__libc_setlocale_lock); + __libc_rwlock_wrlock (__libc_setlocale_lock); /* Load the new data for each category. */ while (category-- > 0) @@ -381,7 +381,7 @@ setlocale (int category, const char *locale) free ((char *) newnames[category]); /* Critical section left. */ - __libc_lock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (__libc_setlocale_lock); /* Free the resources (the locale path variable). */ free (locale_path); @@ -394,7 +394,7 @@ setlocale (int category, const char *locale) const char *newname[1] = { locale }; /* Protect global data. */ - __libc_lock_lock (__libc_setlocale_lock); + __libc_rwlock_wrlock (__libc_setlocale_lock); if (CATEGORY_USED (category)) { @@ -446,7 +446,7 @@ setlocale (int category, const char *locale) } /* Critical section left. */ - __libc_lock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (__libc_setlocale_lock); /* Free the resources (the locale path variable. */ free (locale_path); diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 976eb470e8..52cb387c98 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,26 @@ +2008-04-07 Ulrich Drepper + + [BZ #6021] + * locales/es_ES: Fix p_cs_precedes and n_cs_precedes. + Use common collation definition. + + [BZ #6004] + * locales/iso14651_t1_common: Fix first weight for U+1E60, U+1E62, + U+1E64, U+1E66, and U+1E68. + Patch by Jesse Thilo . + + [BZ #5478] + * locales/hu_HU: Fix name_fmt. + +2008-03-31 Ulrich Drepper + + * locales/iso14651_t1_common: Add support for Gujarati script. + Patch by Pravin Satpute . + +2008-03-30 Jakub Jelinek + + * Makefile (LOCALES): Add ja_JP.UTF-8. + 2008-03-23 Ulrich Drepper * locales/iso14651_t1_common: Add support for Devanagari script. diff --git a/localedata/Makefile b/localedata/Makefile index 8d51b5a4d8..d3c5e7e9b0 100644 --- a/localedata/Makefile +++ b/localedata/Makefile @@ -133,7 +133,8 @@ LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \ en_US.ISO-8859-1 ja_JP.EUC-JP da_DK.ISO-8859-1 \ hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \ vi_VN.TCVN5712-1 nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 \ - tr_TR.UTF-8 cs_CZ.UTF-8 zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 + tr_TR.UTF-8 cs_CZ.UTF-8 zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 \ + ja_JP.UTF-8 LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g') CHARMAPS := $(shell echo "$(LOCALES)" | \ sed -e 's/[^ .]*[.]\([^ ]*\)/\1/g' -e s/SJIS/SHIFT_JIS/g) diff --git a/localedata/locales/es_ES b/localedata/locales/es_ES index feefeec788..01e13dfc75 100644 --- a/localedata/locales/es_ES +++ b/localedata/locales/es_ES @@ -48,2068 +48,8 @@ category "es_ES:2000";LC_TELEPHONE END LC_IDENTIFICATION LC_COLLATE - -% Base collation scheme: 1994-03-22 - -% Ordering algorithm: -% 1. Spaces and hyphen (but not soft -% hyphen) before punctuation -% characters, punctuation characters -% before numbers, -% numbers before letters. -% 2. Letters with diacritical marks are -% members of equivalence classes -% 3. A distinction is made with regards -% to case as noted below. -% 4. Special characters are ignored -% when comparing letters, but then -% they are considered -% 5. The alphabets are sorted in order -% of first appearance in ISO 10646: -% Latin, Greek, Cyrillic, etc. -% -% According to Greek specifications, -% the steps 2. and 3. above are reversed -% for the Greek script - -% collating symbols - -% The collating symbol naming is -% mostly taken from ISO 10646-1, -% for example the case and accent -% names are from this standard. - -collating-symbol -collating-symbol -collating-symbol -collating-symbol - -% and -% are for cases like Danish -% and Spanish being treated -% as one letter. - -% The ...... collating -% symbols have defined weights as -% the last character in a group of -% Latin letters. They are used -% to specify deltas by locales using -% a locale as the default ordering -% and by "replace-after" statements -% specifying the changed placement -% in an ordering of a character. - -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol - -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol - -% letter;accent;case;specials - -order_start forward;backward/ - ;forward;position - -% or letters first: - - - - - - -% Accents: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;;;IGNORE - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; -<"=> IGNORE;IGNORE;IGNORE;<"=> - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; -UNDEFINED IGNORE;IGNORE;IGNORE - - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - "";"";"";IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - "";"";"";IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - "";"";"";IGNORE - "";"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - ;IGNORE;IGNORE;IGNORE - -% Arabic collating - - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - IGNORE;IGNORE;IGNORE; - - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - IGNORE;IGNORE;;IGNORE - - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - "";"";"";IGNORE - -% katakana/hiragana sorting -% base is katakana, as this is present in most charsets -% normal before voiced before semi-voiced -% small vocals before normal vocals -% katakana before hiragana - - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - ;;IGNORE;IGNORE - -order_end - +% Copy the template from ISO/IEC 14651 +copy "iso14651_t1" END LC_COLLATE LC_CTYPE @@ -2135,9 +75,9 @@ positive_sign "" negative_sign "" int_frac_digits 2 frac_digits 2 -p_cs_precedes 1 +p_cs_precedes 0 p_sep_by_space 1 -n_cs_precedes 1 +n_cs_precedes 0 n_sep_by_space 1 p_sign_posn 1 n_sign_posn 1 diff --git a/localedata/locales/hu_HU b/localedata/locales/hu_HU index 95be95b0a3..97e544df6a 100644 --- a/localedata/locales/hu_HU +++ b/localedata/locales/hu_HU @@ -543,8 +543,8 @@ measurement 1 END LC_MEASUREMENT LC_NAME -name_fmt "/ -" +name_fmt "/ +" END LC_NAME LC_ADDRESS diff --git a/localedata/locales/iso14651_t1_common b/localedata/locales/iso14651_t1_common index bf6b63338e..ab36f0ed9f 100644 --- a/localedata/locales/iso14651_t1_common +++ b/localedata/locales/iso14651_t1_common @@ -61,6 +61,7 @@ script script script script +script # Déclaration des symboles internes / Declaration of internal symbols # @@ -474,84 +475,84 @@ collating-symbol collating-symbol collating-symbol collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol -collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol collating-symbol collating-symbol collating-symbol @@ -560,6 +561,96 @@ collating-symbol collating-symbol collating-symbol +# +# +# Added Akhand Characters in sorting as per requirement of mr_IN +# gvd- denotes vowel modifier +# gm- denotes matras +# gvw- denotes vowels +# denotes Nukta characters + +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" + +# defning symbols +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol # Ordre des symboles internes / Order of internal symbols # @@ -983,87 +1074,168 @@ collating-symbol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + +# +# +# +# collation weights in order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + order_start ;forward;backward;forward;forward,position # @@ -1899,11 +2071,11 @@ endif ;;;IGNORE # 742 ;;;IGNORE # 743 ;;;IGNORE # 744 Ș - ;;;IGNORE # 745 Ṡ - ;;;IGNORE # 746 Ṣ - ;;; # 747 Ṥ - ;;; # 748 Ṧ - ;;; # 749 Ṩ + ;;;IGNORE # 745 Ṡ + ;;;IGNORE # 746 Ṣ + ;;; # 747 Ṥ + ;;; # 748 Ṧ + ;;; # 749 Ṩ ;;;IGNORE # 750 T ;;;IGNORE # 751 ;;;IGNORE # 752 @@ -2843,104 +3015,192 @@ order_start ;forward;forward;forward;forward,position <7>;"";"";IGNORE <8>;"";"";IGNORE <9>;"";"";IGNORE - ;;;IGNORE + ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;;;IGNORE - ;;;IGNORE - ;"";"";IGNORE - ;;;IGNORE - ;"";"";IGNORE - ;;;IGNORE - ;"";"";IGNORE - ;;;IGNORE + ;;;IGNORE + ;"";"";IGNORE + ;;;IGNORE + ;"";"";IGNORE + ;;;IGNORE + ;"";"";IGNORE + ;;;IGNORE ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;"";"";IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;"";"";IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;"";"";IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;"";"";IGNORE - ;;;IGNORE + ;;;IGNORE ;"";"";IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;"";"";IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE - ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE - IGNORE;;;IGNORE + IGNORE;;;IGNORE IGNORE;;;IGNORE IGNORE;;;IGNORE IGNORE;;;IGNORE IGNORE;;;IGNORE +order_start ;forward;forward;forward;forward,position + <0>;"";"";IGNORE + <1>;"";"";IGNORE + <2>;"";"";IGNORE + <3>;"";"";IGNORE + <4>;"";"";IGNORE + <5>;"";"";IGNORE + <6>;"";"";IGNORE + <7>;"";"";IGNORE + <8>;"";"";IGNORE + <9>;"";"";IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + IGNORE;;;IGNORE + order_end END LC_COLLATE diff --git a/malloc/mtrace.pl b/malloc/mtrace.pl index 5e5e1ea0ab..782861129f 100644 --- a/malloc/mtrace.pl +++ b/malloc/mtrace.pl @@ -1,5 +1,5 @@ #! @PERL@ -eval "exec @PERL@ -S $0 $*" +eval "exec @PERL@ -S $0 $@" if 0; # Copyright (C) 1997-2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This file is part of the GNU C Library. diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 528e42840e..5fda52a60d 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,10 @@ +2008-04-08 Jakub Jelinek + + [BZ #6020] + * sysdeps/unix/sysv/linux/sparc/lowlevellock.h + (lll_futex_wake_unlock): Add private argument to the pre-v9 macro. + Patch by Sunil Amitkumar Janki . + 2008-03-27 Ulrich Drepper * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefined ARG_MAX if diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h index f4512b2622..754a0f51fe 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -120,7 +120,7 @@ /* Returns non-zero if error happened, zero if success. */ #ifdef __sparc32_atomic_do_lock /* Avoid FUTEX_WAKE_OP if supporting pre-v9 CPUs. */ -# define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2) 1 +# define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) 1 #else # define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \ ({ \ diff --git a/nscd/nscd.c b/nscd/nscd.c index 56c42c920a..aa1490936c 100644 --- a/nscd/nscd.c +++ b/nscd/nscd.c @@ -100,7 +100,7 @@ static const struct argp_option options[] = N_("Do not fork and display messages on the current tty") }, { "nthreads", 't', N_("NUMBER"), 0, N_("Start NUMBER threads") }, { "shutdown", 'K', NULL, 0, N_("Shut the server down") }, - { "statistic", 'g', NULL, 0, N_("Print current configuration statistic") }, + { "statistics", 'g', NULL, 0, N_("Print current configuration statistics") }, { "invalidate", 'i', N_("TABLE"), 0, N_("Invalidate the specified cache") }, { "secure", 'S', N_("TABLE,yes"), OPTION_HIDDEN, diff --git a/po/nl.po b/po/nl.po index 418fe74d6b..9fbc5e4c8d 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,14 +1,15 @@ -# Translation of libc-2.7 to Dutch. -# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc. +# Dutch translations for libc. +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the glibc package. # # Elros Cyriatan , 2004. -# Benno Schulenberg , 2006, 2007. +# Benno Schulenberg , 2006, 2007, 2008. msgid "" msgstr "" "Project-Id-Version: libc-2.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-15 21:18-0700\n" -"PO-Revision-Date: 2007-11-14 21:31+0100\n" +"PO-Revision-Date: 2008-04-05 22:04+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" @@ -322,7 +323,7 @@ msgstr "" "\n" " -?,--help deze hulptekst tonen\n" " --usage een korte gebruikssamenvatting tonen\n" -" -V,--version versie-informatie tonen\n" +" -V,--version programmaversie tonen\n" "\n" "Voor het rapporteren van gebreken in dit programma, zie:\n" " .\\n" @@ -940,7 +941,7 @@ msgstr "" " -u, --unused ongebruikte directe afhankelijkheden tonen\n" " -v, --verbose breedsprakige uitvoer\n" "\n" -" --version versie-informatie tonen\n" +" --version programmaversie tonen\n" " --help deze hulptekst tonen\n" "\n" "Voor het rapporteren van fouten, zie:\n" @@ -1442,24 +1443,24 @@ msgstr "Teken ligt buiten bereik voor UTF-8" #: locale/programs/charmap-dir.c:59 #, c-format msgid "cannot read character map directory `%s'" -msgstr "kan tekenskaartmap '%s' niet lezen" +msgstr "kan tekensetdefinitiesmap '%s' niet lezen" #: locale/programs/charmap.c:138 #, c-format msgid "character map file `%s' not found" -msgstr "kan tekenskaartbestand '%s' niet vinden" +msgstr "kan tekensetdefinitiebestand '%s' niet vinden" #: locale/programs/charmap.c:195 #, c-format msgid "default character map file `%s' not found" -msgstr "kan standaard-tekenskaartbestand '%s' niet vinden" +msgstr "kan standaard tekensetdefinitiebestand '%s' niet vinden" #: locale/programs/charmap.c:258 #, c-format msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n" msgstr "" -"tekenskaart '%s' is niet ASCII-compatibel;\n" -"de locale voldoet niet aan ISO C\n" +"tekensetdefinitie '%s' is niet ASCII-compatibel;\n" +"de taalregio voldoet niet aan ISO C\n" #: locale/programs/charmap.c:337 #, c-format @@ -1722,7 +1723,7 @@ msgstr "%s: syntaxfout" #: locale/programs/ld-collate.c:417 #, c-format msgid "`%.*s' already defined in charmap" -msgstr "'%.*s' is al gedefinieerd in tekenskaart" +msgstr "'%.*s' is al gedefinieerd in tekensetdefinitie" #: locale/programs/ld-collate.c:426 #, c-format @@ -1983,7 +1984,7 @@ msgstr "%s: 'endif' zonder bijpassende 'ifdef' of 'ifndef'" #: locale/programs/ld-ctype.c:439 #, c-format msgid "No character set name specified in charmap" -msgstr "Geen tekensetnaam aangegeven in tekenskaart" +msgstr "Geen tekensetnaam aangegeven in tekensetdefinitie" #: locale/programs/ld-ctype.c:468 #, c-format @@ -2023,7 +2024,7 @@ msgstr "-teken mag niet in klasse '%s' zitten" #: locale/programs/ld-ctype.c:599 #, c-format msgid "character not defined in character map" -msgstr "-teken is niet gedefinieerd in tekenskaart" +msgstr "-teken is niet gedefinieerd in tekensetdefinitie" #: locale/programs/ld-ctype.c:714 #, c-format @@ -2033,12 +2034,12 @@ msgstr "het aantal items in de cijferscategorie is geen veelvoud van tien" #: locale/programs/ld-ctype.c:763 #, c-format msgid "no input digits defined and none of the standard names in the charmap" -msgstr "er zijn geen invoercijfers gedefinieerd en geen van de standaardnamen zit in de tekenskaart" +msgstr "er zijn geen invoercijfers gedefinieerd en geen van de standaardnamen zit in de tekensetdefinitie" #: locale/programs/ld-ctype.c:828 #, c-format msgid "not all characters used in `outdigit' are available in the charmap" -msgstr "niet alle tekens gebruikt in 'outdigit' zijn beschikbaar in de tekenskaart" +msgstr "niet alle tekens in 'outdigit' zijn beschikbaar in de tekensetdefinitie" #: locale/programs/ld-ctype.c:845 #, c-format @@ -2058,12 +2059,12 @@ msgstr "implementatiegrens: er zijn niet meer dan %Zd tekenklasses toegestaan" #: locale/programs/ld-ctype.c:1277 #, c-format msgid "character map `%s' already defined" -msgstr "tekenskaart '%s' is al gedefinieerd" +msgstr "tekensetdefinitie '%s' is al gedefinieerd" #: locale/programs/ld-ctype.c:1283 #, c-format msgid "implementation limit: no more than %d character maps allowed" -msgstr "implementatiegrens: er zijn niet meer dan %d tekenskaarten toegestaan" +msgstr "implementatiegrens: er zijn niet meer dan %d tekensetdefinities toegestaan" #: locale/programs/ld-ctype.c:1548 locale/programs/ld-ctype.c:1673 #: locale/programs/ld-ctype.c:1779 locale/programs/ld-ctype.c:2471 @@ -2102,7 +2103,7 @@ msgstr "%s: syntaxfout in definitie van nieuwe tekenklasse" #: locale/programs/ld-ctype.c:2318 #, c-format msgid "%s: syntax error in definition of new character map" -msgstr "%s: syntaxfout in definitie van nieuwe tekenskaart" +msgstr "%s: syntaxfout in nieuwe tekensetdefinitie" #: locale/programs/ld-ctype.c:2493 msgid "ellipsis range must be marked by two operands of same type" @@ -2161,7 +2162,7 @@ msgstr "%s: teken '%s' is niet gedefinieerd maar is nodig als standaardwaarde" #: locale/programs/ld-ctype.c:3297 locale/programs/ld-ctype.c:3364 #, c-format msgid "%s: character `%s' in charmap not representable with one byte" -msgstr "%s: teken '%s' in de tekenskaart is niet te representeren met één byte" +msgstr "%s: teken '%s' in de tekensetdefinitie is niet te representeren met één byte" #: locale/programs/ld-ctype.c:3408 locale/programs/ld-ctype.c:3433 #, c-format @@ -2171,12 +2172,12 @@ msgstr "%s: teken '%s' is nodig als standaardwaarde maar niet te representeren m #: locale/programs/ld-ctype.c:3489 #, c-format msgid "no output digits defined and none of the standard names in the charmap" -msgstr "er zijn geen uitvoercijfers gedefinieerd en geen van de standaardnamen zit in de tekenskaart" +msgstr "er zijn geen uitvoercijfers gedefinieerd en geen van de standaardnamen zit in de tekensetdefinitie" #: locale/programs/ld-ctype.c:3780 #, c-format msgid "%s: transliteration data from locale `%s' not available" -msgstr "%s: transliteratiegegevens van locale '%s' zijn niet beschikbaar" +msgstr "%s: transliteratiegegevens van taalregio '%s' zijn niet beschikbaar" #: locale/programs/ld-ctype.c:3881 #, c-format @@ -2380,7 +2381,7 @@ msgstr "niet-symbolische tekenwaarden zouden niet gebruikt moeten worden" #: locale/programs/linereader.c:816 #, c-format msgid "symbol `%.*s' not in charmap" -msgstr "symbool '%.*s' zit niet in de tekenskaart" +msgstr "symbool '%.*s' zit niet in de tekensetdefinitie" #: locale/programs/linereader.c:837 #, c-format @@ -2393,11 +2394,11 @@ msgstr "Systeeminformatie:" #: locale/programs/locale.c:76 msgid "Write names of available locales" -msgstr "namen van beschikbare locales tonen" +msgstr "namen van beschikbare taalregio's tonen" #: locale/programs/locale.c:78 msgid "Write names of available charmaps" -msgstr "namen van beschikbare tekenskaarten tonen" +msgstr "namen van beschikbare tekensetdefinities tonen" #: locale/programs/locale.c:79 msgid "Modify output format:" @@ -2405,15 +2406,15 @@ msgstr "Aanpassing van uitvoer:" #: locale/programs/locale.c:80 msgid "Write names of selected categories" -msgstr "namen van geselecteerde categorieën tonen" +msgstr "namen van de geselecteerde categorieën tonen" #: locale/programs/locale.c:81 msgid "Write names of selected keywords" -msgstr "namen van geselecteerde sleutelwoorden tonen" +msgstr "namen van de geselecteerde sleutelwoorden tonen" #: locale/programs/locale.c:82 msgid "Print more information" -msgstr "breedsprakige uitvoer" +msgstr "uitgebreide uitvoer produceren" #: locale/programs/locale.c:87 msgid "" @@ -2421,7 +2422,7 @@ msgid "" ".\n" msgstr "" " \n" -"Informatie over locales weergeven.\vVoor het rapporteren van fouten, zie:\n" +"Informatie over taalregio-instellingen weergeven.\vVoor het rapporteren van fouten, zie:\n" " .\n" #: locale/programs/locale.c:92 @@ -2435,22 +2436,22 @@ msgstr "" #: locale/programs/locale.c:193 #, c-format msgid "Cannot set LC_CTYPE to default locale" -msgstr "Kan LC_TYPE niet op de standaard-locale instellen" +msgstr "Kan LC_TYPE niet op de standaard-taalregio instellen" #: locale/programs/locale.c:195 #, c-format msgid "Cannot set LC_MESSAGES to default locale" -msgstr "Kan LC_MESSAGES niet op de standaard-locale instellen" +msgstr "Kan LC_MESSAGES niet op de standaard-taalregio instellen" #: locale/programs/locale.c:208 #, c-format msgid "Cannot set LC_COLLATE to default locale" -msgstr "Kan LC_COLLATE niet op de standaard-locale instellen" +msgstr "Kan LC_COLLATE niet op de standaard-taalregio instellen" #: locale/programs/locale.c:224 #, c-format msgid "Cannot set LC_ALL to default locale" -msgstr "Kan LC_ALL niet op de standaard-locale instellen" +msgstr "Kan LC_ALL niet op de standaard-taalregio instellen" #: locale/programs/locale.c:500 #, c-format @@ -2507,7 +2508,7 @@ msgstr "geen nieuwe gegevens aan archief toevoegen" #: locale/programs/localedef.c:140 msgid "Add locales named by parameters to archive" -msgstr "genoemde locales aan archief toevoegen" +msgstr "genoemde taalregio's aan archief toevoegen" #: locale/programs/localedef.c:141 msgid "Replace existing archive content" @@ -2515,7 +2516,7 @@ msgstr "bestaande inhoud van archief vervangen" #: locale/programs/localedef.c:143 msgid "Remove locales named by parameters from archive" -msgstr "genoemde locales uit archief verwijderen" +msgstr "genoemde taalregio's uit archief verwijderen" #: locale/programs/localedef.c:144 msgid "List content of archive" @@ -2523,13 +2524,13 @@ msgstr "inhoud van archief weergeven" #: locale/programs/localedef.c:146 msgid "locale.alias file to consult when making archive" -msgstr "te raadplegen aliassenbestand" +msgstr "te raadplegen aliassenbestand tijdens archivering" #: locale/programs/localedef.c:151 msgid "Compile locale specification" msgstr "" " \n" -"Een locale-specificatie compileren." +"De definitie van een taalregio compileren." #: locale/programs/localedef.c:154 msgid "" @@ -2555,7 +2556,7 @@ msgstr "FATAAL: systeem definieert '_POSIX2_LOCALEDEF' niet" #: locale/programs/localedef.c:599 locale/programs/localedef.c:619 #, c-format msgid "cannot open locale definition file `%s'" -msgstr "kan locale-definitiebestand '%s' niet openen" +msgstr "kan taalregiodefinitiebestand '%s' niet openen" #: locale/programs/localedef.c:285 #, c-format @@ -2570,21 +2571,21 @@ msgid "" " locale path : %s\n" "%s" msgstr "" -"Systeemmap voor tekenskaarten : %s\n" -" repertoire-kaarten : %s\n" -" locale-pad : %s\n" +"Systeemmap voor tekensetdefinities: %s\n" +" voor repertoirekaarten: %s\n" +" en het taalregiopad is: %s\n" "\n" "%s" #: locale/programs/localedef.c:567 #, c-format msgid "circular dependencies between locale definitions" -msgstr "circulaire afhankelijkheid tussen locale-definities" +msgstr "circulaire afhankelijkheid tussen taalregiodefinities" #: locale/programs/localedef.c:573 #, c-format msgid "cannot add already read locale `%s' a second time" -msgstr "kan de reeds gelezen locale '%s' niet nogmaals toevoegen" +msgstr "kan de reeds gelezen taalregio '%s' niet nogmaals toevoegen" #: locale/programs/locarchive.c:88 locale/programs/locarchive.c:261 #, c-format @@ -2610,17 +2611,17 @@ msgstr "kan archiefkop niet in het geheugen plaatsen" #: locale/programs/locarchive.c:156 #, c-format msgid "failed to create new locale archive" -msgstr "aanmaken van een nieuw locale-archief is mislukt" +msgstr "aanmaken van een nieuw taalregio-archief is mislukt" #: locale/programs/locarchive.c:168 #, c-format msgid "cannot change mode of new locale archive" -msgstr "kan modus van het nieuwe locale-archief niet wijzigen" +msgstr "kan modus van het nieuwe taalregio-archief niet wijzigen" #: locale/programs/locarchive.c:255 #, c-format msgid "cannot map locale archive file" -msgstr "kan locale-archief niet in het geheugen plaatsen" +msgstr "kan taalregio-archief niet in het geheugen plaatsen" #: locale/programs/locarchive.c:331 #, c-format @@ -2630,12 +2631,12 @@ msgstr "kan nieuwe archief niet vergrendelen" #: locale/programs/locarchive.c:396 #, c-format msgid "cannot extend locale archive file" -msgstr "kan locale-archiefbestand niet uitbreiden" +msgstr "kan taalregio-archiefbestand niet uitbreiden" #: locale/programs/locarchive.c:405 #, c-format msgid "cannot change mode of resized locale archive" -msgstr "kan modus van aangepast locale-archief niet wijzigen" +msgstr "kan modus van aangepast taalregio-archief niet wijzigen" #: locale/programs/locarchive.c:413 #, c-format @@ -2645,17 +2646,17 @@ msgstr "kan nieuwe archief niet hernoemen" #: locale/programs/locarchive.c:466 #, c-format msgid "cannot open locale archive \"%s\"" -msgstr "kan locale-archief '%s' niet openen" +msgstr "kan taalregio-archief '%s' niet openen" #: locale/programs/locarchive.c:471 #, c-format msgid "cannot stat locale archive \"%s\"" -msgstr "kan status van locale-archief '%s' niet opvragen" +msgstr "kan status van taalregio-archief '%s' niet opvragen" #: locale/programs/locarchive.c:490 #, c-format msgid "cannot lock locale archive \"%s\"" -msgstr "kan locale-archief '%s' niet vergrendelen" +msgstr "kan taalregio-archief '%s' niet vergrendelen" #: locale/programs/locarchive.c:513 #, c-format @@ -2665,19 +2666,19 @@ msgstr "kan archiefkop niet lezen" #: locale/programs/locarchive.c:573 #, c-format msgid "locale '%s' already exists" -msgstr "locale '%s' bestaat al" +msgstr "taalregio '%s' bestaat al" #: locale/programs/locarchive.c:804 locale/programs/locarchive.c:819 #: locale/programs/locarchive.c:831 locale/programs/locarchive.c:843 #: locale/programs/locfile.c:344 #, c-format msgid "cannot add to locale archive" -msgstr "kan niet aan locale-archief toevoegen" +msgstr "kan niet aan taalregio-archief toevoegen" #: locale/programs/locarchive.c:998 #, c-format msgid "locale alias file `%s' not found" -msgstr "kan locale-aliassenbestand '%s' niet vinden" +msgstr "kan taalregio-aliassenbestand '%s' niet vinden" #: locale/programs/locarchive.c:1142 #, c-format @@ -2702,7 +2703,7 @@ msgstr "kan map '%s' niet openen: %s -- genegeerd" #: locale/programs/locarchive.c:1233 #, c-format msgid "incomplete set of locale files in \"%s\"" -msgstr "onvolledige verzameling van locale-bestanden in '%s'" +msgstr "onvolledige verzameling van taalregiobestanden in '%s'" #: locale/programs/locarchive.c:1297 #, c-format @@ -2712,7 +2713,7 @@ msgstr "kan niet alle bestanden in '%s' lezen -- genegeerd" #: locale/programs/locarchive.c:1367 #, c-format msgid "locale \"%s\" not in archive" -msgstr "locale '%s' zit niet in archief" +msgstr "taalregio '%s' zit niet in het archief" #: locale/programs/locfile.c:132 #, c-format @@ -2721,7 +2722,7 @@ msgstr "argument van '%s' moet een enkel teken zijn" #: locale/programs/locfile.c:252 msgid "syntax error: not inside a locale definition section" -msgstr "syntaxfout: niet binnen een locale-definitie-sectie" +msgstr "syntaxfout: niet binnen een taalregiodefinitie-sectie" #: locale/programs/locfile.c:626 #, c-format @@ -2744,7 +2745,7 @@ msgstr "argument van 'copy' dient een tekenreeks te zijn" #: locale/programs/locfile.c:786 msgid "locale name should consist only of portable characters" -msgstr "een locale-naam mag alleen uit overdraagbare tekens bestaan" +msgstr "een taalregionaam mag alleen uit overdraagbare tekens bestaan" #: locale/programs/locfile.c:805 msgid "no other keyword shall be specified when `copy' is used" @@ -2880,7 +2881,7 @@ msgstr "" "\n" " -?,--help deze hulptekst tonen\n" " --usage een korte gebruikssamenvatting tonen\n" -" -V,--version versie-informatie tonen\n" +" -V,--version programmaversie tonen\n" "\n" " De volgende opties zijn alleen bij grafische uitvoer van toepassing:\n" " -t,--time-based de grafiek lineair in de tijd maken\n" @@ -4356,59 +4357,59 @@ msgstr "Onbekende variabele '%s'" #: posix/getopt.c:571 posix/getopt.c:587 #, c-format -msgid "%s: option '%s' is ambiguous\n" +msgid "%s: option `%s' is ambiguous\n" msgstr "%s: optie '%s' is niet eenduidig\n" #: posix/getopt.c:620 posix/getopt.c:624 #, c-format -msgid "%s: option '--%s' doesn't allow an argument\n" +msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: optie '--%s' staat geen argument toe\n" #: posix/getopt.c:633 posix/getopt.c:638 #, c-format -msgid "%s: option '%c%s' doesn't allow an argument\n" +msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: optie '%c%s' staat geen argument toe\n" #: posix/getopt.c:681 posix/getopt.c:700 posix/getopt.c:1016 #: posix/getopt.c:1035 #, c-format -msgid "%s: option '%s' requires an argument\n" +msgid "%s: option `%s' requires an argument\n" msgstr "%s: optie '%s' vereist een argument\n" #: posix/getopt.c:738 posix/getopt.c:741 #, c-format -msgid "%s: unrecognized option '--%s'\n" +msgid "%s: unrecognized option `--%s'\n" msgstr "%s: onbekende optie '--%s'\n" #: posix/getopt.c:749 posix/getopt.c:752 #, c-format -msgid "%s: unrecognized option '%c%s'\n" +msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: onbekende optie '%c%s'\n" #: posix/getopt.c:804 posix/getopt.c:807 #, c-format -msgid "%s: illegal option -- '%c'\n" +msgid "%s: illegal option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: posix/getopt.c:813 posix/getopt.c:816 #, c-format -msgid "%s: invalid option -- '%c'\n" +msgid "%s: invalid option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: posix/getopt.c:868 posix/getopt.c:884 posix/getopt.c:1088 #: posix/getopt.c:1106 #, c-format -msgid "%s: option requires an argument -- '%c'\n" +msgid "%s: option requires an argument -- %c\n" msgstr "%s: optie vereist een argument -- %c\n" #: posix/getopt.c:937 posix/getopt.c:953 #, c-format -msgid "%s: option '-W %s' is ambiguous\n" +msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: optie '-W %s' is niet eenduidig\n" #: posix/getopt.c:977 posix/getopt.c:995 #, c-format -msgid "%s: option '-W %s' doesn't allow an argument\n" +msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: optie '-W %s' staat geen argument toe\n" #: posix/regcomp.c:135 @@ -5345,7 +5346,7 @@ msgstr "Onjuist apparaat" #. TRANS A file that isn't a directory was specified when a directory is required. #: sysdeps/gnu/errlist.c:229 msgid "Not a directory" -msgstr "Niet een map" +msgstr "Is geen map" #. TRANS File is a directory; you cannot open a directory for writing, #. TRANS or create or remove hard links to it. diff --git a/posix/getopt.c b/posix/getopt.c index 103f572b07..965bfdd3ac 100644 --- a/posix/getopt.c +++ b/posix/getopt.c @@ -792,30 +792,16 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO - char *buf; - int n; + char *buf; + int n; #endif - if (d->__posixly_correct) - { -#if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("%s: illegal option -- '%c'\n"), - argv[0], c); -#else - fprintf (stderr, _("%s: illegal option -- '%c'\n"), argv[0], - c); -#endif - } - else - { #if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("%s: invalid option -- '%c'\n"), - argv[0], c); + n = __asprintf (&buf, _("%s: invalid option -- '%c'\n"), + argv[0], c); #else - fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], - c); + fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c); #endif - } #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) diff --git a/resolv/res_init.c b/resolv/res_init.c index d1a5681a93..a2840968f3 100644 --- a/resolv/res_init.c +++ b/resolv/res_init.c @@ -69,22 +69,22 @@ static const char sccsid[] = "@(#)res_init.c 8.1 (Berkeley) 6/7/93"; static const char rcsid[] = "$BINDId: res_init.c,v 8.16 2000/05/09 07:10:12 vixie Exp $"; #endif /* LIBC_SCCS and not lint */ -#include -#include -#include -#include - -#include -#include -#include - #include +#include #include #include #include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include @@ -327,15 +327,41 @@ __res_vinit(res_state statp, int preinit) { if ((el = strchr(cp, '\n')) != NULL) *el = '\0'; + if ((el = strchr(cp, SCOPE_DELIMITER)) != NULL) + *el = '\0'; if ((*cp != '\0') && (inet_pton(AF_INET6, cp, &a6) > 0)) { struct sockaddr_in6 *sa6; sa6 = malloc(sizeof(*sa6)); if (sa6 != NULL) { - sa6->sin6_addr = a6; sa6->sin6_family = AF_INET6; sa6->sin6_port = htons(NAMESERVER_PORT); + sa6->sin6_flowinfo = 0; + sa6->sin6_addr = a6; + + if (__builtin_expect (el == NULL, 1)) + sa6->sin6_scope_id = 0; + else { + int try_numericscope = 1; + if (IN6_IS_ADDR_LINKLOCAL (&a6) + || IN6_IS_ADDR_MC_LINKLOCAL (&a6)) { + sa6->sin6_scope_id + = if_nametoindex (el + 1); + if (sa6->sin6_scope_id != 0) + try_numericscope = 0; + } + + if (try_numericscope) { + char *end; + sa6->sin6_scope_id + = (uint32_t) strtoul (el + 1, &end, + 10); + if (*end != '\0') + sa6->sin6_scope_id = 0; + } + } + statp->_u._ext.nsaddrs[nservall] = sa6; statp->_u._ext.nssocks[nservall] = -1; statp->_u._ext.nsmap[nservall] = MAXNS + 1; diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index d10a5c6a13..ca6343c37f 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -1513,7 +1513,8 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) if (prec > width && prec + 32 > (int)(sizeof (work_buffer) / sizeof (work_buffer[0]))) { - if (__builtin_expect (prec > ~((size_t) 0) - 31, 0)) + if (__builtin_expect (prec > ~((size_t) 0) / sizeof (CHAR_T) - 31, + 0)) { done = -1; goto all_done; diff --git a/stdlib/mbtowc.c b/stdlib/mbtowc.c index 744b2b6c0b..ee8850bbc1 100644 --- a/stdlib/mbtowc.c +++ b/stdlib/mbtowc.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991, 1992, 1995-1999, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1995-1999, 2002, 2008 + 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 @@ -23,9 +24,6 @@ #include -/* Common state for all non-restartable conversion functions. */ -mbstate_t __no_r_state attribute_hidden; - /* Convert the multibyte character at S, which is no longer than N characters, to its `wchar_t' representation, placing this n *PWC and returning its length. @@ -38,6 +36,7 @@ int mbtowc (wchar_t *pwc, const char *s, size_t n) { int result; + static mbstate_t state; /* If S is NULL the function has to return null or not null depending on the encoding having a state depending encoding or @@ -51,7 +50,7 @@ mbtowc (wchar_t *pwc, const char *s, size_t n) /* This is an extension in the Unix standard which does not directly violate ISO C. */ - memset (&__no_r_state, '\0', sizeof __no_r_state); + memset (&state, '\0', sizeof state); result = fcts->towc->__stateful; } @@ -63,7 +62,7 @@ mbtowc (wchar_t *pwc, const char *s, size_t n) } else { - result = __mbrtowc (pwc, s, n, &__no_r_state); + result = __mbrtowc (pwc, s, n, &state); /* The `mbrtowc' functions tell us more than we need. Fold the -1 and -2 result into -1. */ diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c index 9c2f86a32b..09a8f9bb3b 100644 --- a/stdlib/strtod_l.c +++ b/stdlib/strtod_l.c @@ -1028,7 +1028,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) if (__builtin_expect (exponent < MIN_10_EXP - (DIG + 1), 0)) { __set_errno (ERANGE); - return 0.0; + return negative ? -0.0 : 0.0; } if (int_no > 0) diff --git a/stdlib/wctomb.c b/stdlib/wctomb.c index 49872f5c6b..3ba8a3e2a7 100644 --- a/stdlib/wctomb.c +++ b/stdlib/wctomb.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991, 1992, 1995-1999, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1995-1999, 2002, 2008 + 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 @@ -23,7 +24,8 @@ #include -extern mbstate_t __no_r_state attribute_hidden; /* Defined in mbtowc.c. */ +/* Shared with __wctomb_chk. */ +mbstate_t __wctomb_state attribute_hidden; /* Convert WCHAR into its multibyte character representation, putting this in S and returning its length. @@ -47,11 +49,11 @@ wctomb (char *s, wchar_t wchar) /* This is an extension in the Unix standard which does not directly violate ISO C. */ - memset (&__no_r_state, '\0', sizeof __no_r_state); + memset (&__wctomb_state, '\0', sizeof __wctomb_state); return fcts->tomb->__stateful; } - return __wcrtomb (s, wchar, &__no_r_state); + return __wcrtomb (s, wchar, &__wctomb_state); } libc_hidden_def (wctomb) diff --git a/string/strfry.c b/string/strfry.c index d392d5526b..d3fcb14bab 100644 --- a/string/strfry.c +++ b/string/strfry.c @@ -26,7 +26,6 @@ strfry (char *string) { static int init; static struct random_data rdata; - size_t len, i; if (!init) { @@ -37,17 +36,18 @@ strfry (char *string) init = 1; } - len = strlen (string) - 1; - for (i = 0; i < len; ++i) - { - int32_t j; - __random_r (&rdata, &j); - j = j % (len - i) + i; - - char c = string[i]; - string[i] = string[j]; - string[j] = c; - } + size_t len = strlen (string); + if (len > 0) + for (size_t i = 0; i < len - 1; ++i) + { + int32_t j; + __random_r (&rdata, &j); + j = j % (len - i) + i; + + char c = string[i]; + string[i] = string[j]; + string[j] = c; + } return string; } diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c index 3eaf0a25ab..734eb088f3 100644 --- a/sunrpc/auth_unix.c +++ b/sunrpc/auth_unix.c @@ -111,7 +111,7 @@ authunix_create (char *machname, uid_t uid, gid_t gid, int len, if (auth == NULL || au == NULL) { no_memory: - (void) __fxprintf (NULL, "%s", _("authunix_create: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); mem_free (auth, sizeof (*auth)); mem_free (au, sizeof (*au)); return NULL; diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c index 5bec3bcf3a..6825ca57ee 100644 --- a/sunrpc/clnt_tcp.c +++ b/sunrpc/clnt_tcp.c @@ -128,7 +128,7 @@ clnttcp_create (struct sockaddr_in *raddr, u_long prog, u_long vers, if (h == NULL || ct == NULL) { struct rpc_createerr *ce = &get_rpc_createerr (); - (void) __fxprintf (NULL, "%s", _("clnttcp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); ce->cf_stat = RPC_SYSTEMERROR; ce->cf_error.re_errno = ENOMEM; goto fooy; diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c index 70ee0eae88..634313211d 100644 --- a/sunrpc/clnt_udp.c +++ b/sunrpc/clnt_udp.c @@ -136,7 +136,8 @@ clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version, if (cl == NULL || cu == NULL) { struct rpc_createerr *ce = &get_rpc_createerr (); - (void) __fxprintf (NULL, "%s", _("clntudp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", + "clntudp_create", _("out of memory\n")); ce->cf_stat = RPC_SYSTEMERROR; ce->cf_error.re_errno = ENOMEM; goto fooy; diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c index 848a480581..4107c62294 100644 --- a/sunrpc/clnt_unix.c +++ b/sunrpc/clnt_unix.c @@ -125,7 +125,7 @@ clntunix_create (struct sockaddr_un *raddr, u_long prog, u_long vers, if (h == NULL || ct == NULL) { struct rpc_createerr *ce = &get_rpc_createerr (); - (void) __fxprintf (NULL, "%s", _("clntunix_create: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); ce->cf_stat = RPC_SYSTEMERROR; ce->cf_error.re_errno = ENOMEM; goto fooy; diff --git a/sunrpc/svc_tcp.c b/sunrpc/svc_tcp.c index 539a2b8d98..beeb10646e 100644 --- a/sunrpc/svc_tcp.c +++ b/sunrpc/svc_tcp.c @@ -176,7 +176,7 @@ svctcp_create (int sock, u_int sendsize, u_int recvsize) xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT)); if (r == NULL || xprt == NULL) { - (void) __fxprintf (NULL, "%s", _("svctcp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); mem_free (r, sizeof (*r)); mem_free (xprt, sizeof (SVCXPRT)); return NULL; @@ -214,8 +214,8 @@ makefd_xprt (int fd, u_int sendsize, u_int recvsize) cd = (struct tcp_conn *) mem_alloc (sizeof (struct tcp_conn)); if (xprt == (SVCXPRT *) NULL || cd == NULL) { - (void) __fxprintf (NULL, "%s", - _("svc_tcp: makefd_xprt: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", "svc_tcp: makefd_xprt", + _("out of memory\n")); mem_free (xprt, sizeof (SVCXPRT)); mem_free (cd, sizeof (struct tcp_conn)); return NULL; diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c index dfeb6de70f..496d6d9602 100644 --- a/sunrpc/svc_udp.c +++ b/sunrpc/svc_udp.c @@ -149,7 +149,8 @@ svcudp_bufcreate (sock, sendsz, recvsz) buf = mem_alloc (((MAX (sendsz, recvsz) + 3) / 4) * 4); if (xprt == NULL || su == NULL || buf == NULL) { - (void) __fxprintf (NULL, "%s", _("svcudp_create: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", + "svcudp_create", _("out of memory\n")); mem_free (xprt, sizeof (SVCXPRT)); mem_free (su, sizeof (*su)); mem_free (buf, ((MAX (sendsz, recvsz) + 3) / 4) * 4); diff --git a/sunrpc/svc_unix.c b/sunrpc/svc_unix.c index 1b7b1fbd4f..f103ed96f3 100644 --- a/sunrpc/svc_unix.c +++ b/sunrpc/svc_unix.c @@ -173,7 +173,7 @@ svcunix_create (int sock, u_int sendsize, u_int recvsize, char *path) xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT)); if (r == NULL || xprt == NULL) { - __fxprintf (NULL, "%s", _("svcunix_create: out of memory\n")); + __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); mem_free (r, sizeof (*r)); mem_free (xprt, sizeof (SVCXPRT)); return NULL; @@ -211,8 +211,8 @@ makefd_xprt (int fd, u_int sendsize, u_int recvsize) cd = (struct unix_conn *) mem_alloc (sizeof (struct unix_conn)); if (xprt == (SVCXPRT *) NULL || cd == (struct unix_conn *) NULL) { - (void) __fxprintf (NULL, "%s", - _("svc_unix: makefd_xprt: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", "svc_unix: makefd_xprt", + _("out of memory\n")); mem_free (xprt, sizeof (SVCXPRT)); mem_free (cd, sizeof (struct unix_conn)); return NULL; diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c index 21e339b4ee..8a70d2e557 100644 --- a/sunrpc/xdr.c +++ b/sunrpc/xdr.c @@ -563,7 +563,7 @@ xdr_bytes (xdrs, cpp, sizep, maxsize) } if (sp == NULL) { - (void) __fxprintf (NULL, "%s", _("xdr_bytes: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); return FALSE; } /* fall into ... */ @@ -715,7 +715,7 @@ xdr_string (xdrs, cpp, maxsize) *cpp = sp = (char *) mem_alloc (nodesize); if (sp == NULL) { - (void) __fxprintf (NULL, "%s", _("xdr_string: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); return FALSE; } sp[size] = 0; diff --git a/sunrpc/xdr_array.c b/sunrpc/xdr_array.c index 44abdbcfda..e7c8925f5c 100644 --- a/sunrpc/xdr_array.c +++ b/sunrpc/xdr_array.c @@ -103,7 +103,7 @@ xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc) *addrp = target = calloc (c, elsize); if (target == NULL) { - (void) __fxprintf (NULL, "%s", _("xdr_array: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); return FALSE; } break; diff --git a/sunrpc/xdr_rec.c b/sunrpc/xdr_rec.c index e847e9b47c..6854034c63 100644 --- a/sunrpc/xdr_rec.c +++ b/sunrpc/xdr_rec.c @@ -153,7 +153,7 @@ xdrrec_create (XDR *xdrs, u_int sendsize, if (rstrm == NULL || buf == NULL) { - (void) __fxprintf (NULL, "%s", _("xdrrec_create: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); mem_free (rstrm, sizeof (RECSTREAM)); mem_free (buf, sendsize + recvsize + BYTES_PER_XDR_UNIT); /* diff --git a/sunrpc/xdr_ref.c b/sunrpc/xdr_ref.c index bc5f72d6a6..532804fadb 100644 --- a/sunrpc/xdr_ref.c +++ b/sunrpc/xdr_ref.c @@ -82,8 +82,7 @@ xdr_reference (xdrs, pp, size, proc) *pp = loc = (caddr_t) calloc (1, size); if (loc == NULL) { - (void) __fxprintf (NULL, "%s", - _("xdr_reference: out of memory\n")); + (void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n")); return FALSE; } break; diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c index eab658da31..be979d8c8a 100644 --- a/sysdeps/posix/tempname.c +++ b/sysdeps/posix/tempname.c @@ -297,7 +297,7 @@ __gen_tempname (char *tmpl, int flags, int kind) { case __GT_FILE: fd = __open (tmpl, - (flags & ~ACCESSPERMS) + (flags & ~O_ACCMODE) | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); break; diff --git a/sysdeps/unix/opendir.c b/sysdeps/unix/opendir.c index 0a116247d2..92029c6547 100644 --- a/sysdeps/unix/opendir.c +++ b/sysdeps/unix/opendir.c @@ -171,6 +171,8 @@ __alloc_dir (int fd, bool close_fd, const struct stat64 *statp) goto lose; } + const size_t default_allocation = (BUFSIZ < sizeof (struct dirent64) + ? sizeof (struct dirent64) : BUFSIZ); size_t allocation; #ifdef _STATBUF_ST_BLKSIZE if (__builtin_expect ((size_t) statp->st_blksize >= sizeof (struct dirent64), @@ -178,20 +180,30 @@ __alloc_dir (int fd, bool close_fd, const struct stat64 *statp) allocation = statp->st_blksize; else #endif - allocation = (BUFSIZ < sizeof (struct dirent64) - ? sizeof (struct dirent64) : BUFSIZ); + allocation = default_allocation; DIR *dirp = (DIR *) malloc (sizeof (DIR) + allocation); if (dirp == NULL) - lose: { - if (close_fd) +#ifdef _STATBUF_ST_BLKSIZE + if (allocation == statp->st_blksize + && allocation != default_allocation) { - int save_errno = errno; - close_not_cancel_no_status (fd); - __set_errno (save_errno); + allocation = default_allocation; + dirp = (DIR *) malloc (sizeof (DIR) + allocation); + } + if (dirp == NULL) +#endif + lose: + { + if (close_fd) + { + int save_errno = errno; + close_not_cancel_no_status (fd); + __set_errno (save_errno); + } + return NULL; } - return NULL; } dirp->fd = fd; diff --git a/sysdeps/unix/sysv/linux/net/ethernet.h b/sysdeps/unix/sysv/linux/net/ethernet.h index 7ca8e8348e..0242d5899e 100644 --- a/sysdeps/unix/sysv/linux/net/ethernet.h +++ b/sysdeps/unix/sysv/linux/net/ethernet.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1999, 2001, 2008 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 @@ -45,9 +45,17 @@ struct ether_header /* Ethernet protocol ID's */ #define ETHERTYPE_PUP 0x0200 /* Xerox PUP */ +#define ETHERTYPE_SPRITE 0x0500 /* Sprite */ #define ETHERTYPE_IP 0x0800 /* IP */ #define ETHERTYPE_ARP 0x0806 /* Address resolution */ #define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */ +#define ETHERTYPE_AT 0x809B /* AppleTalk protocol */ +#define ETHERTYPE_AARP 0x80F3 /* AppleTalk ARP */ +#define ETHERTYPE_VLAN 0x8100 /* IEEE 802.1Q VLAN tagging */ +#define ETHERTYPE_IPX 0x8137 /* IPX */ +#define ETHERTYPE_IPV6 0x86dd /* IP protocol version 6 */ +#define ETHERTYPE_LOOPBACK 0x9000 /* used to test interfaces */ + #define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */ #define ETHER_TYPE_LEN 2 /* bytes in type field */