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

[commits] r3778 - in /trunk/libc: ./ locale/programs/ localedata/ localedata/locales/ nptl/ nptl/sysdeps/pthread/bits/ stdio-common/ s...



Author: joseph
Date: Thu Oct 11 04:59:55 2007
New Revision: 3778

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

Modified:
    trunk/libc/ChangeLog
    trunk/libc/locale/programs/ld-collate.c
    trunk/libc/locale/programs/locfile-kw.gperf
    trunk/libc/locale/programs/locfile-kw.h
    trunk/libc/locale/programs/locfile-token.h
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/de_DE.in
    trunk/libc/localedata/locales/cs_CZ
    trunk/libc/localedata/locales/de_DE
    trunk/libc/localedata/locales/en_US
    trunk/libc/localedata/locales/fr_FR
    trunk/libc/localedata/locales/fur_IT
    trunk/libc/localedata/locales/fy_DE
    trunk/libc/localedata/locales/hu_HU
    trunk/libc/localedata/locales/i18n
    trunk/libc/localedata/locales/iso14651_t1_common
    trunk/libc/localedata/locales/li_BE
    trunk/libc/localedata/locales/li_NL
    trunk/libc/localedata/locales/nds_DE
    trunk/libc/localedata/locales/nds_NL
    trunk/libc/localedata/locales/pl_PL
    trunk/libc/localedata/locales/sc_IT
    trunk/libc/localedata/locales/sk_SK
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/sysdeps/pthread/bits/libc-lock.h
    trunk/libc/nptl/tst-initializers1.c
    trunk/libc/stdio-common/printf-parse.h
    trunk/libc/stdio-common/printf-parsemb.c
    trunk/libc/stdio-common/printf-prs.c
    trunk/libc/stdio-common/vfprintf.c
    trunk/libc/sysdeps/unix/sysv/linux/eventfd_read.c
    trunk/libc/sysdeps/unix/sysv/linux/eventfd_write.c
    trunk/libc/sysdeps/x86_64/cacheinfo.c

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Thu Oct 11 04:59:55 2007
@@ -1,3 +1,36 @@
+2007-10-10  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locale/programs/locfile-token.h: Remove tok_elif, add tok_elifdef
+	and tok_elifndef.
+	* locale/programs/locfile-kw.gperf: Likewise.
+	* locale/programs/ld-collate.c: Implement primitive preprocessor.
+
+2007-10-10  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* stdio-common/printf-parse.h: Include string.h and wchar.h.
+	(__find_specwc): Change into __extern_always_inline function.
+	(__find_specmb): Likewise.  Remove ps argument.  Use __strchrnul.
+	(__parse_one_specmb): Remove ps argument.
+	* stdio-common/vfprintf.c (vfprintf): Remove mbstate variable.
+	Adjust __find_specmb and __parse_one_specmb callers.
+	* stdio-common/printf-prs.c (parse_printf_format): Likewise.
+	* stdio-common/printf-parsemb.c (__find_specwc, __find_specmb):
+	Removed.
+	(__parse_one_specmb): Remove ps argument, adjust __find_specmb
+	caller.
+
+2007-10-09  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Work around problem
+	with some Pentium Ds.
+
+2007-10-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/eventfd_read.c (eventfd_read): Use
+	__read not read.
+	* sysdeps/unix/sysv/linux/eventfd_write.c (eventfd_write): Use
+	__write not write.
+
 2007-10-07  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	[BZ #181]

Modified: trunk/libc/locale/programs/ld-collate.c
==============================================================================
--- trunk/libc/locale/programs/ld-collate.c (original)
+++ trunk/libc/locale/programs/ld-collate.c Thu Oct 11 04:59:55 2007
@@ -185,6 +185,14 @@
 #include "3level.h"
 
 
+/* Simple name list for the preprocessor.  */
+struct name_list
+{
+  struct name_list *next;
+  char str[0];
+};
+
+
 /* The real definition of the struct for the LC_COLLATE locale.  */
 struct locale_collate_t
 {
@@ -244,12 +252,24 @@
   /* The arrays with the collation sequence order.  */
   unsigned char mbseqorder[256];
   struct collseq_table wcseqorder;
+
+  /* State of the preprocessor.  */
+  enum
+    {
+      else_none = 0,
+      else_ignore,
+      else_seen
+    }
+    else_action;
 };
 
 
 /* We have a few global variables which are used for reading all
    LC_COLLATE category descriptions in all files.  */
 static uint32_t nrules;
+
+/* List of defined preprocessor symbols.  */
+static struct name_list *defined;
 
 
 /* We need UTF-8 encoding of numbers.  */
@@ -2478,6 +2498,43 @@
 }
 
 
+static enum token_t
+skip_to (struct linereader *ldfile, struct locale_collate_t *collate,
+	 const struct charmap_t *charmap, int to_endif)
+{
+  while (1)
+    {
+      struct token *now = lr_token (ldfile, charmap, NULL, NULL, 0);
+      enum token_t nowtok = now->tok;
+
+      if (nowtok == tok_eof || nowtok == tok_end)
+	return nowtok;
+
+      if (nowtok == tok_ifdef || nowtok == tok_ifndef)
+	{
+	  lr_error (ldfile, _("%s: nested conditionals not supported"),
+		    "LC_COLLATE");
+	  nowtok = skip_to (ldfile, collate, charmap, tok_endif);
+	  if (nowtok == tok_eof || nowtok == tok_end)
+	    return nowtok;
+	}
+      else if ((!to_endif && (nowtok == tok_else || nowtok == tok_elifdef
+			      || nowtok == tok_elifndef))
+	       || nowtok == tok_endif)
+	{
+	  lr_ignore_rest (ldfile, 1);
+	  return nowtok;
+	}
+      else if (nowtok == tok_else)
+	{
+	  lr_error (ldfile, _("%s: more then one 'else'"), "LC_COLLATE");
+	}
+
+      lr_ignore_rest (ldfile, 0);
+    }
+}
+
+
 void
 collate_read (struct linereader *ldfile, struct localedef_t *result,
 	      const struct charmap_t *charmap, const char *repertoire_name,
@@ -2514,6 +2571,38 @@
       nowtok = now->tok;
     }
   while (nowtok == tok_eol);
+
+  while (nowtok == tok_define)
+    {
+      if (ignore_content)
+	{
+	  lr_ignore_rest (ldfile, 0);
+	  continue;
+	}
+
+      arg = lr_token (ldfile, charmap, result, NULL, verbose);
+      if (arg->tok != tok_ident)
+	SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE");
+      else
+	{
+	  /* Simply add the new symbol.  */
+	  struct name_list *newsym = xmalloc (sizeof (*newsym)
+					  + arg->val.str.lenmb + 1);
+	  memcpy (newsym->str, arg->val.str.startmb, arg->val.str.lenmb);
+	  newsym->str[arg->val.str.lenmb] = '\0';
+	  newsym->next = defined;
+	  defined = newsym;
+
+	  lr_ignore_rest (ldfile, 1);
+	}
+
+      do
+	{
+	  now = lr_token (ldfile, charmap, result, NULL, verbose);
+	  nowtok = now->tok;
+	}
+      while (nowtok == tok_eol);
+    }
 
   if (nowtok == tok_copy)
     {
@@ -3654,6 +3743,7 @@
 	  break;
 
 	case tok_end:
+	seen_end:
 	  /* Next we assume `LC_COLLATE'.  */
 	  if (!ignore_content)
 	    {
@@ -3694,6 +3784,180 @@
 	  lr_ignore_rest (ldfile, arg->tok == tok_lc_collate);
 	  return;
 
+	case tok_define:
+	  if (ignore_content)
+	    {
+	      lr_ignore_rest (ldfile, 0);
+	      break;
+	    }
+
+	  arg = lr_token (ldfile, charmap, result, NULL, verbose);
+	  if (arg->tok != tok_ident)
+	    goto err_label;
+
+	  /* Simply add the new symbol.  */
+	  struct name_list *newsym = xmalloc (sizeof (*newsym)
+					      + arg->val.str.lenmb + 1);
+	  memcpy (newsym->str, arg->val.str.startmb, arg->val.str.lenmb);
+	  newsym->str[arg->val.str.lenmb] = '\0';
+	  newsym->next = defined;
+	  defined = newsym;
+
+	  lr_ignore_rest (ldfile, 1);
+	  break;
+
+	case tok_undef:
+	  if (ignore_content)
+	    {
+	      lr_ignore_rest (ldfile, 0);
+	      break;
+	    }
+
+	  arg = lr_token (ldfile, charmap, result, NULL, verbose);
+	  if (arg->tok != tok_ident)
+	    goto err_label;
+
+	  /* Remove _all_ occurrences of the symbol from the list.  */
+	  struct name_list *prevdef = NULL;
+	  struct name_list *curdef = defined;
+	  while (curdef != NULL)
+	    if (strncmp (arg->val.str.startmb, curdef->str,
+			 arg->val.str.lenmb) == 0
+		&& curdef->str[arg->val.str.lenmb] == '\0')
+	      {
+		if (prevdef == NULL)
+		  defined = curdef->next;
+		else
+		  prevdef->next = curdef->next;
+
+		struct name_list *olddef = curdef;
+		curdef = curdef->next;
+
+		free (olddef);
+	      }
+	    else
+	      {
+		prevdef = curdef;
+		curdef = curdef->next;
+	      }
+
+	  lr_ignore_rest (ldfile, 1);
+	  break;
+
+	case tok_ifdef:
+	case tok_ifndef:
+	  if (ignore_content)
+	    {
+	      lr_ignore_rest (ldfile, 0);
+	      break;
+	    }
+
+	found_ifdef:
+	  arg = lr_token (ldfile, charmap, result, NULL, verbose);
+	  if (arg->tok != tok_ident)
+	    goto err_label;
+	  lr_ignore_rest (ldfile, 1);
+
+	  if (collate->else_action == else_none)
+	    {
+	      curdef = defined;
+	      while (curdef != NULL)
+		if (strncmp (arg->val.str.startmb, curdef->str,
+			     arg->val.str.lenmb) == 0
+		    && curdef->str[arg->val.str.lenmb] == '\0')
+		  break;
+
+	      if ((nowtok == tok_ifdef && curdef != NULL)
+		  || (nowtok == tok_ifndef && curdef == NULL))
+		{
+		  /* We have to use the if-branch.  */
+		  collate->else_action = else_ignore;
+		}
+	      else
+		{
+		  /* We have to use the else-branch, if there is one.  */
+		  nowtok = skip_to (ldfile, collate, charmap, 0);
+		  if (nowtok == tok_else)
+		    collate->else_action = else_seen;
+		  else if (nowtok == tok_elifdef)
+		    {
+		      nowtok = tok_ifdef;
+		      goto found_ifdef;
+		    }
+		  else if (nowtok == tok_elifndef)
+		    {
+		      nowtok = tok_ifndef;
+		      goto found_ifdef;
+		    }
+		  else if (nowtok == tok_eof)
+		    goto seen_eof;
+		  else if (nowtok == tok_end)
+		    goto seen_end;
+		}
+	    }
+	  else
+	    {
+	      /* XXX Should it really become necessary to support nested
+		 preprocessor handling we will push the state here.  */
+	      lr_error (ldfile, _("%s: nested conditionals not supported"),
+			"LC_COLLATE");
+	      nowtok = skip_to (ldfile, collate, charmap, 1);
+	      if (nowtok == tok_eof)
+		goto seen_eof;
+	      else if (nowtok == tok_end)
+		goto seen_end;
+	    }
+	  break;
+
+	case tok_elifdef:
+	case tok_elifndef:
+	case tok_else:
+	  if (ignore_content)
+	    {
+	      lr_ignore_rest (ldfile, 0);
+	      break;
+	    }
+
+	  lr_ignore_rest (ldfile, 1);
+
+	  if (collate->else_action == else_ignore)
+	    {
+	      /* Ignore everything until the endif.  */
+	      nowtok = skip_to (ldfile, collate, charmap, 1);
+	      if (nowtok == tok_eof)
+		goto seen_eof;
+	      else if (nowtok == tok_end)
+		goto seen_end;
+	    }
+	  else
+	    {
+	      assert (collate->else_action == else_none);
+	      lr_error (ldfile, _("\
+%s: '%s' without matching 'ifdef' or 'ifndef'"), "LC_COLLATE",
+			nowtok == tok_else ? "else"
+			: nowtok == tok_elifdef ? "elifdef" : "elifndef");
+	    }
+	  break;
+
+	case tok_endif:
+	  if (ignore_content)
+	    {
+	      lr_ignore_rest (ldfile, 0);
+	      break;
+	    }
+
+	  lr_ignore_rest (ldfile, 1);
+
+	  if (collate->else_action != else_ignore
+	      && collate->else_action != else_seen)
+	    lr_error (ldfile, _("\
+%s: 'endif' without matching 'ifdef' or 'ifndef'"), "LC_COLLATE");
+
+	  /* XXX If we support nested preprocessor directives we pop
+	     the state here.  */
+	  collate->else_action = else_none;
+	  break;
+
 	default:
 	err_label:
 	  SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE");
@@ -3704,6 +3968,7 @@
       nowtok = now->tok;
     }
 
+ seen_eof:
   /* When we come here we reached the end of the file.  */
   lr_error (ldfile, _("%s: premature end of file"), "LC_COLLATE");
 }

Modified: trunk/libc/locale/programs/locfile-kw.gperf
==============================================================================
--- trunk/libc/locale/programs/locfile-kw.gperf (original)
+++ trunk/libc/locale/programs/locfile-kw.gperf Thu Oct 11 04:59:55 2007
@@ -1,5 +1,5 @@
 %{
-/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2000,2005,2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxx>, 1996.
 
@@ -76,7 +76,8 @@
 undef,                  tok_undef,                  0
 ifdef,                  tok_ifdef,                  0
 else,                   tok_else,                   0
-elif,                   tok_elif,                   0
+elifdef,                tok_elifdef,                0
+elifndef,               tok_elifndef,               0
 endif,                  tok_endif,                  0
 LC_MONETARY,            tok_lc_monetary,            0
 int_curr_symbol,        tok_int_curr_symbol,        0

Modified: trunk/libc/locale/programs/locfile-kw.h
==============================================================================
--- trunk/libc/locale/programs/locfile-kw.h (original)
+++ trunk/libc/locale/programs/locfile-kw.h Thu Oct 11 04:59:55 2007
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.2 */
 /* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash locfile-kw.gperf  */
 
 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -30,7 +30,7 @@
 
 #line 1 "locfile-kw.gperf"
 
-/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2000,2005,2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxx>, 1996.
 
@@ -51,15 +51,15 @@
 #include <string.h>
 
 #include "locfile-token.h"
-#line 23 "locfile-kw.gperf"
+#line 24 "locfile-kw.gperf"
 struct keyword_t ;
 
-#define TOTAL_KEYWORDS 175
+#define TOTAL_KEYWORDS 176
 #define MIN_WORD_LENGTH 3
 #define MAX_WORD_LENGTH 22
 #define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 610
-/* maximum key range = 608, duplicates = 0 */
+#define MAX_HASH_VALUE 630
+/* maximum key range = 628, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -73,32 +73,32 @@
 {
   static const unsigned short asso_values[] =
     {
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-        5,   0, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611,   5, 611,   0,   0,   0,
-        0,   0,  10,   0, 611, 611,   0, 611,   0,   5,
-      611, 611,   0,   0,   0,  10, 611, 611, 611,   0,
-      611, 611, 611, 611, 611,   0, 611, 145, 105,  25,
-       15,   0, 190, 110,  10,  35, 611,   0,  80,  65,
-        5, 130,  40,  50,   5,   0,  10,  35,  50,  20,
-        5,  10,   0, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
-      611, 611, 611, 611, 611, 611
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+        5,   0, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631,   5, 631,   0,   0,   0,
+        0,   0,  10,   0, 631, 631,   0, 631,   0,   5,
+      631, 631,   0,   0,   0,  10, 631, 631, 631,   0,
+      631, 631, 631, 631, 631,   0, 631, 145,  80,  25,
+       15,   0, 180, 105,  10,  35, 631,  50,  80, 160,
+        5, 130,  40,  45,   5,   0,  10,  35,  40,  35,
+        5,  10,   0, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+      631, 631, 631, 631, 631, 631
     };
   register int hval = len;
 
@@ -134,470 +134,472 @@
   static const struct keyword_t wordlist[] =
     {
       {""}, {""}, {""},
+#line 31 "locfile-kw.gperf"
+      {"END",                    tok_end,                    0},
+      {""}, {""},
+#line 70 "locfile-kw.gperf"
+      {"IGNORE",                 tok_ignore,                 0},
+#line 129 "locfile-kw.gperf"
+      {"LC_TIME",                tok_lc_time,                0},
 #line 30 "locfile-kw.gperf"
-      {"END",                    tok_end,                    0},
-      {""}, {""},
+      {"LC_CTYPE",               tok_lc_ctype,               0},
+      {""},
+#line 166 "locfile-kw.gperf"
+      {"LC_ADDRESS",             tok_lc_address,             0},
+#line 151 "locfile-kw.gperf"
+      {"LC_MESSAGES",            tok_lc_messages,            0},
+#line 159 "locfile-kw.gperf"
+      {"LC_NAME",                tok_lc_name,                0},
+#line 156 "locfile-kw.gperf"
+      {"LC_PAPER",               tok_lc_paper,               0},
+#line 184 "locfile-kw.gperf"
+      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
+#line 56 "locfile-kw.gperf"
+      {"LC_COLLATE",             tok_lc_collate,             0},
+      {""},
+#line 186 "locfile-kw.gperf"
+      {"LC_IDENTIFICATION",      tok_lc_identification,      0},
+#line 199 "locfile-kw.gperf"
+      {"revision",               tok_revision,               0},
 #line 69 "locfile-kw.gperf"
-      {"IGNORE",                 tok_ignore,                 0},
+      {"UNDEFINED",              tok_undefined,              0},
+#line 125 "locfile-kw.gperf"
+      {"LC_NUMERIC",             tok_lc_numeric,             0},
+#line 82 "locfile-kw.gperf"
+      {"LC_MONETARY",            tok_lc_monetary,            0},
+#line 179 "locfile-kw.gperf"
+      {"LC_TELEPHONE",           tok_lc_telephone,           0},
+      {""}, {""}, {""},
+#line 75 "locfile-kw.gperf"
+      {"define",                 tok_define,                 0},
+#line 152 "locfile-kw.gperf"
+      {"yesexpr",                tok_yesexpr,                0},
+#line 141 "locfile-kw.gperf"
+      {"era_year",               tok_era_year,               0},
+      {""},
+#line 54 "locfile-kw.gperf"
+      {"translit_ignore",        tok_translit_ignore,        0},
+#line 154 "locfile-kw.gperf"
+      {"yesstr",                 tok_yesstr,                 0},
+      {""},
+#line 89 "locfile-kw.gperf"
+      {"negative_sign",          tok_negative_sign,          0},
+      {""},
+#line 137 "locfile-kw.gperf"
+      {"t_fmt",                  tok_t_fmt,                  0},
+#line 157 "locfile-kw.gperf"
+      {"height",                 tok_height,                 0},
+      {""}, {""},
+#line 52 "locfile-kw.gperf"
+      {"translit_start",         tok_translit_start,         0},
+#line 136 "locfile-kw.gperf"
+      {"d_fmt",                  tok_d_fmt,                  0},
+      {""},
+#line 53 "locfile-kw.gperf"
+      {"translit_end",           tok_translit_end,           0},
+#line 94 "locfile-kw.gperf"
+      {"n_cs_precedes",          tok_n_cs_precedes,          0},
+#line 144 "locfile-kw.gperf"
+      {"era_t_fmt",              tok_era_t_fmt,              0},
+#line 39 "locfile-kw.gperf"
+      {"space",                  tok_space,                  0},
+#line 72 "locfile-kw.gperf"
+      {"reorder-end",            tok_reorder_end,            0},
+#line 73 "locfile-kw.gperf"
+      {"reorder-sections-after", tok_reorder_sections_after, 0},
+      {""},
+#line 142 "locfile-kw.gperf"
+      {"era_d_fmt",              tok_era_d_fmt,              0},
+#line 187 "locfile-kw.gperf"
+      {"title",                  tok_title,                  0},
+      {""}, {""},
+#line 149 "locfile-kw.gperf"
+      {"timezone",               tok_timezone,               0},
+      {""},
+#line 74 "locfile-kw.gperf"
+      {"reorder-sections-end",   tok_reorder_sections_end,   0},
+      {""}, {""}, {""},
+#line 95 "locfile-kw.gperf"
+      {"n_sep_by_space",         tok_n_sep_by_space,         0},
+      {""}, {""},
+#line 100 "locfile-kw.gperf"
+      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0},
+      {""}, {""}, {""},
+#line 26 "locfile-kw.gperf"
+      {"escape_char",            tok_escape_char,            0},
+      {""},
+#line 28 "locfile-kw.gperf"
+      {"repertoiremap",          tok_repertoiremap,          0},
+#line 46 "locfile-kw.gperf"
+      {"charclass",              tok_charclass,              0},
+#line 43 "locfile-kw.gperf"
+      {"print",                  tok_print,                  0},
+#line 44 "locfile-kw.gperf"
+      {"xdigit",                 tok_xdigit,                 0},
+#line 110 "locfile-kw.gperf"
+      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
 #line 127 "locfile-kw.gperf"
-      {"LC_TIME",                tok_lc_time,                0},
+      {"thousands_sep",          tok_thousands_sep,          0},
+#line 195 "locfile-kw.gperf"
+      {"territory",              tok_territory,              0},
+#line 36 "locfile-kw.gperf"
+      {"digit",                  tok_digit,                  0},
+      {""}, {""},
+#line 92 "locfile-kw.gperf"
+      {"p_cs_precedes",          tok_p_cs_precedes,          0},
+      {""}, {""},
+#line 62 "locfile-kw.gperf"
+      {"script",                 tok_script,                 0},
 #line 29 "locfile-kw.gperf"
-      {"LC_CTYPE",               tok_lc_ctype,               0},
-      {""},
-#line 164 "locfile-kw.gperf"
-      {"LC_ADDRESS",             tok_lc_address,             0},
-#line 149 "locfile-kw.gperf"
-      {"LC_MESSAGES",            tok_lc_messages,            0},
-#line 157 "locfile-kw.gperf"
-      {"LC_NAME",                tok_lc_name,                0},
-#line 154 "locfile-kw.gperf"
-      {"LC_PAPER",               tok_lc_paper,               0},
+      {"include",                tok_include,                0},
+      {""},
+#line 78 "locfile-kw.gperf"
+      {"else",                   tok_else,                   0},
 #line 182 "locfile-kw.gperf"
-      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
-#line 55 "locfile-kw.gperf"
-      {"LC_COLLATE",             tok_lc_collate,             0},
-      {""},
-#line 184 "locfile-kw.gperf"
-      {"LC_IDENTIFICATION",      tok_lc_identification,      0},
-#line 197 "locfile-kw.gperf"
-      {"revision",               tok_revision,               0},
-#line 68 "locfile-kw.gperf"
-      {"UNDEFINED",              tok_undefined,              0},
-#line 123 "locfile-kw.gperf"
-      {"LC_NUMERIC",             tok_lc_numeric,             0},
-#line 80 "locfile-kw.gperf"
-      {"LC_MONETARY",            tok_lc_monetary,            0},
-#line 177 "locfile-kw.gperf"
-      {"LC_TELEPHONE",           tok_lc_telephone,           0},
-      {""},
-#line 130 "locfile-kw.gperf"
+      {"int_select",             tok_int_select,             0},
+      {""}, {""}, {""},
+#line 132 "locfile-kw.gperf"
       {"week",                   tok_week,                   0},
-      {""},
-#line 74 "locfile-kw.gperf"
-      {"define",                 tok_define,                 0},
-#line 150 "locfile-kw.gperf"
-      {"yesexpr",                tok_yesexpr,                0},
-#line 139 "locfile-kw.gperf"
-      {"era_year",               tok_era_year,               0},
-      {""},
-#line 53 "locfile-kw.gperf"
-      {"translit_ignore",        tok_translit_ignore,        0},
-#line 152 "locfile-kw.gperf"
-      {"yesstr",                 tok_yesstr,                 0},
-      {""},
-#line 87 "locfile-kw.gperf"
-      {"negative_sign",          tok_negative_sign,          0},
-      {""},
-#line 135 "locfile-kw.gperf"
-      {"t_fmt",                  tok_t_fmt,                  0},
-#line 155 "locfile-kw.gperf"
-      {"height",                 tok_height,                 0},
-      {""}, {""},
-#line 51 "locfile-kw.gperf"
-      {"translit_start",         tok_translit_start,         0},
-#line 134 "locfile-kw.gperf"
-      {"d_fmt",                  tok_d_fmt,                  0},
-      {""},
-#line 52 "locfile-kw.gperf"
-      {"translit_end",           tok_translit_end,           0},
-#line 92 "locfile-kw.gperf"
-      {"n_cs_precedes",          tok_n_cs_precedes,          0},
-#line 142 "locfile-kw.gperf"
-      {"era_t_fmt",              tok_era_t_fmt,              0},
-#line 38 "locfile-kw.gperf"
-      {"space",                  tok_space,                  0},
-#line 71 "locfile-kw.gperf"
-      {"reorder-end",            tok_reorder_end,            0},
-#line 72 "locfile-kw.gperf"
-      {"reorder-sections-after", tok_reorder_sections_after, 0},
-      {""},
-#line 140 "locfile-kw.gperf"
-      {"era_d_fmt",              tok_era_d_fmt,              0},
-#line 185 "locfile-kw.gperf"
-      {"title",                  tok_title,                  0},
-      {""}, {""},
-#line 147 "locfile-kw.gperf"
-      {"timezone",               tok_timezone,               0},
-      {""},
-#line 73 "locfile-kw.gperf"
-      {"reorder-sections-end",   tok_reorder_sections_end,   0},
-      {""}, {""}, {""},
+#line 33 "locfile-kw.gperf"
+      {"upper",                  tok_upper,                  0},
+      {""}, {""},
+#line 192 "locfile-kw.gperf"
+      {"tel",                    tok_tel,                    0},
 #line 93 "locfile-kw.gperf"
-      {"n_sep_by_space",         tok_n_sep_by_space,         0},
-      {""}, {""},
+      {"p_sep_by_space",         tok_p_sep_by_space,         0},
+#line 158 "locfile-kw.gperf"
+      {"width",                  tok_width,                  0},
+      {""},
 #line 98 "locfile-kw.gperf"
-      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0},
-      {""}, {""}, {""},
-#line 25 "locfile-kw.gperf"
-      {"escape_char",            tok_escape_char,            0},
-      {""},
-#line 27 "locfile-kw.gperf"
-      {"repertoiremap",          tok_repertoiremap,          0},
-#line 45 "locfile-kw.gperf"
-      {"charclass",              tok_charclass,              0},
-#line 42 "locfile-kw.gperf"
-      {"print",                  tok_print,                  0},
-#line 43 "locfile-kw.gperf"
-      {"xdigit",                 tok_xdigit,                 0},
+      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
+      {""}, {""},
+#line 41 "locfile-kw.gperf"
+      {"punct",                  tok_punct,                  0},
+      {""}, {""},
+#line 101 "locfile-kw.gperf"
+      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
+      {""}, {""}, {""},
 #line 108 "locfile-kw.gperf"
-      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
-#line 125 "locfile-kw.gperf"
-      {"thousands_sep",          tok_thousands_sep,          0},
-#line 193 "locfile-kw.gperf"
-      {"territory",              tok_territory,              0},
-#line 35 "locfile-kw.gperf"
-      {"digit",                  tok_digit,                  0},
-      {""}, {""},
-#line 90 "locfile-kw.gperf"
-      {"p_cs_precedes",          tok_p_cs_precedes,          0},
-      {""},
-#line 156 "locfile-kw.gperf"
-      {"width",                  tok_width,                  0},
-#line 61 "locfile-kw.gperf"
-      {"script",                 tok_script,                 0},
-#line 28 "locfile-kw.gperf"
-      {"include",                tok_include,                0},
-      {""},
-#line 77 "locfile-kw.gperf"
-      {"else",                   tok_else,                   0},
-#line 180 "locfile-kw.gperf"
-      {"int_select",             tok_int_select,             0},
-      {""}, {""}, {""}, {""},
-#line 32 "locfile-kw.gperf"
-      {"upper",                  tok_upper,                  0},
-      {""}, {""},
-#line 190 "locfile-kw.gperf"
-      {"tel",                    tok_tel,                    0},
-#line 91 "locfile-kw.gperf"
-      {"p_sep_by_space",         tok_p_sep_by_space,         0},
-      {""}, {""},
-#line 96 "locfile-kw.gperf"
-      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
-      {""}, {""},
-#line 40 "locfile-kw.gperf"
-      {"punct",                  tok_punct,                  0},
-      {""}, {""},
-#line 99 "locfile-kw.gperf"
-      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
-      {""}, {""}, {""},
-#line 106 "locfile-kw.gperf"
       {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
-      {""}, {""},
-#line 46 "locfile-kw.gperf"
+#line 48 "locfile-kw.gperf"
+      {"charconv",               tok_charconv,               0},
+      {""},
+#line 47 "locfile-kw.gperf"
       {"class",                  tok_class,                  0},
-#line 112 "locfile-kw.gperf"
+#line 114 "locfile-kw.gperf"
       {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
-#line 113 "locfile-kw.gperf"
+#line 115 "locfile-kw.gperf"
       {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
-#line 109 "locfile-kw.gperf"
+#line 111 "locfile-kw.gperf"
       {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
-#line 117 "locfile-kw.gperf"
+#line 119 "locfile-kw.gperf"
       {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
-      {""}, {""}, {""},
-#line 47 "locfile-kw.gperf"
-      {"charconv",               tok_charconv,               0},
-      {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+#line 58 "locfile-kw.gperf"
+      {"section-symbol",         tok_section_symbol,         0},
 #line 183 "locfile-kw.gperf"
-      {"measurement",            tok_measurement,            0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 57 "locfile-kw.gperf"
-      {"section-symbol",         tok_section_symbol,         0},
-#line 181 "locfile-kw.gperf"
       {"int_prefix",             tok_int_prefix,             0},
       {""}, {""}, {""}, {""},
-#line 137 "locfile-kw.gperf"
-      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
-      {""}, {""},
-#line 97 "locfile-kw.gperf"
+#line 42 "locfile-kw.gperf"
+      {"graph",                  tok_graph,                  0},
+      {""}, {""},
+#line 99 "locfile-kw.gperf"
       {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
-      {""},
-#line 41 "locfile-kw.gperf"
-      {"graph",                  tok_graph,                  0},
-      {""}, {""},
-#line 124 "locfile-kw.gperf"
-      {"decimal_point",          tok_decimal_point,          0},
-      {""}, {""},
-#line 110 "locfile-kw.gperf"
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 112 "locfile-kw.gperf"
       {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
-#line 111 "locfile-kw.gperf"
+#line 113 "locfile-kw.gperf"
       {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
-#line 107 "locfile-kw.gperf"
+#line 109 "locfile-kw.gperf"
       {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
-#line 116 "locfile-kw.gperf"
+#line 118 "locfile-kw.gperf"
       {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
+#line 155 "locfile-kw.gperf"
+      {"nostr",                  tok_nostr,                  0},
+      {""}, {""},
+#line 140 "locfile-kw.gperf"
+      {"era",                    tok_era,                    0},
+      {""},
+#line 84 "locfile-kw.gperf"
+      {"currency_symbol",        tok_currency_symbol,        0},
+      {""},
+#line 165 "locfile-kw.gperf"
+      {"name_ms",                tok_name_ms,                0},
+#line 163 "locfile-kw.gperf"
+      {"name_mrs",               tok_name_mrs,               0},
+#line 164 "locfile-kw.gperf"
+      {"name_miss",              tok_name_miss,              0},
+#line 83 "locfile-kw.gperf"
+      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+#line 188 "locfile-kw.gperf"
+      {"source",                 tok_source,                 0},
+#line 162 "locfile-kw.gperf"
+      {"name_mr",                tok_name_mr,                0},
+#line 161 "locfile-kw.gperf"
+      {"name_gen",               tok_name_gen,               0},
+#line 200 "locfile-kw.gperf"
+      {"date",                   tok_date,                   0},
+      {""}, {""},
+#line 189 "locfile-kw.gperf"
+      {"address",                tok_address,                0},
+#line 160 "locfile-kw.gperf"
+      {"name_fmt",               tok_name_fmt,               0},
+#line 32 "locfile-kw.gperf"
+      {"copy",                   tok_copy,                   0},
+#line 103 "locfile-kw.gperf"
+      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
+      {""}, {""},
+#line 131 "locfile-kw.gperf"
+      {"day",                    tok_day,                    0},
+#line 105 "locfile-kw.gperf"
+      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+      {""}, {""}, {""},
+#line 150 "locfile-kw.gperf"
+      {"date_fmt",               tok_date_fmt,               0},
+#line 64 "locfile-kw.gperf"
+      {"order_end",              tok_order_end,              0},
+#line 117 "locfile-kw.gperf"
+      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
+      {""},
+#line 168 "locfile-kw.gperf"
+      {"country_name",           tok_country_name,           0},
+#line 71 "locfile-kw.gperf"
+      {"reorder-after",          tok_reorder_after,          0},
+      {""}, {""},
 #line 153 "locfile-kw.gperf"
-      {"nostr",                  tok_nostr,                  0},
-      {""}, {""},
-#line 138 "locfile-kw.gperf"
-      {"era",                    tok_era,                    0},
-      {""},
-#line 82 "locfile-kw.gperf"
-      {"currency_symbol",        tok_currency_symbol,        0},
-      {""},
-#line 163 "locfile-kw.gperf"
-      {"name_ms",                tok_name_ms,                0},
-#line 161 "locfile-kw.gperf"
-      {"name_mrs",               tok_name_mrs,               0},
-#line 162 "locfile-kw.gperf"
-      {"name_miss",              tok_name_miss,              0},
-#line 81 "locfile-kw.gperf"
-      {"int_curr_symbol",        tok_int_curr_symbol,        0},
-#line 186 "locfile-kw.gperf"
-      {"source",                 tok_source,                 0},
-#line 160 "locfile-kw.gperf"
-      {"name_mr",                tok_name_mr,                0},
-#line 159 "locfile-kw.gperf"
-      {"name_gen",               tok_name_gen,               0},
-#line 198 "locfile-kw.gperf"
-      {"date",                   tok_date,                   0},
-      {""}, {""},
-#line 187 "locfile-kw.gperf"
-      {"address",                tok_address,                0},
-#line 158 "locfile-kw.gperf"
-      {"name_fmt",               tok_name_fmt,               0},
-#line 31 "locfile-kw.gperf"
-      {"copy",                   tok_copy,                   0},
-      {""}, {""},
+      {"noexpr",                 tok_noexpr,                 0},
+#line 50 "locfile-kw.gperf"
+      {"tolower",                tok_tolower,                0},
+#line 196 "locfile-kw.gperf"
+      {"audience",               tok_audience,               0},
+      {""}, {""}, {""},
 #line 49 "locfile-kw.gperf"
-      {"tolower",                tok_tolower,                0},
-#line 129 "locfile-kw.gperf"
-      {"day",                    tok_day,                    0},
-#line 103 "locfile-kw.gperf"
-      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
-#line 101 "locfile-kw.gperf"
-      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
-      {""}, {""},
-#line 148 "locfile-kw.gperf"
-      {"date_fmt",               tok_date_fmt,               0},
-#line 63 "locfile-kw.gperf"
-      {"order_end",              tok_order_end,              0},
-      {""}, {""},
-#line 166 "locfile-kw.gperf"
-      {"country_name",           tok_country_name,           0},
-#line 70 "locfile-kw.gperf"
-      {"reorder-after",          tok_reorder_after,          0},
-#line 118 "locfile-kw.gperf"
-      {"uno_valid_from",         tok_uno_valid_from,         0},
-#line 115 "locfile-kw.gperf"
-      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
-#line 151 "locfile-kw.gperf"
-      {"noexpr",                 tok_noexpr,                 0},
-      {""},
-#line 194 "locfile-kw.gperf"
-      {"audience",               tok_audience,               0},
-      {""},
-#line 44 "locfile-kw.gperf"
-      {"blank",                  tok_blank,                  0},
-      {""},
-#line 48 "locfile-kw.gperf"
       {"toupper",                tok_toupper,                0},
-#line 67 "locfile-kw.gperf"
+#line 68 "locfile-kw.gperf"
       {"position",               tok_position,               0},
-#line 120 "locfile-kw.gperf"
-      {"duo_valid_from",         tok_duo_valid_from,         0},
-#line 39 "locfile-kw.gperf"
+      {""},
+#line 40 "locfile-kw.gperf"
       {"cntrl",                  tok_cntrl,                  0},
       {""},
-#line 26 "locfile-kw.gperf"
+#line 27 "locfile-kw.gperf"
       {"comment_char",           tok_comment_char,           0},
-#line 86 "locfile-kw.gperf"
+#line 88 "locfile-kw.gperf"
       {"positive_sign",          tok_positive_sign,          0},
       {""}, {""}, {""}, {""},
-#line 132 "locfile-kw.gperf"
+#line 61 "locfile-kw.gperf"
+      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+      {""},
+#line 102 "locfile-kw.gperf"
+      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
+#line 173 "locfile-kw.gperf"
+      {"country_car",            tok_country_car,            0},
+      {""}, {""},
+#line 104 "locfile-kw.gperf"
+      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
+      {""}, {""},
+#line 135 "locfile-kw.gperf"
+      {"d_t_fmt",                tok_d_t_fmt,                0},
+      {""}, {""},
+#line 116 "locfile-kw.gperf"
+      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
+#line 185 "locfile-kw.gperf"
+      {"measurement",            tok_measurement,            0},
+#line 174 "locfile-kw.gperf"
+      {"country_isbn",           tok_country_isbn,           0},
+#line 37 "locfile-kw.gperf"
+      {"outdigit",               tok_outdigit,               0},
+      {""}, {""},
+#line 143 "locfile-kw.gperf"
+      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
+      {""}, {""}, {""},
+#line 34 "locfile-kw.gperf"
+      {"lower",                  tok_lower,                  0},
+#line 181 "locfile-kw.gperf"
+      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
+#line 169 "locfile-kw.gperf"
+      {"country_post",           tok_country_post,           0},
+#line 148 "locfile-kw.gperf"
+      {"cal_direction",          tok_cal_direction,          0},
+      {""},
+#line 139 "locfile-kw.gperf"
+      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
+#line 91 "locfile-kw.gperf"
+      {"frac_digits",            tok_frac_digits,            0},
+      {""}, {""},
+#line 175 "locfile-kw.gperf"
+      {"lang_name",              tok_lang_name,              0},
+#line 90 "locfile-kw.gperf"
+      {"int_frac_digits",        tok_int_frac_digits,        0},
+      {""},
+#line 121 "locfile-kw.gperf"
+      {"uno_valid_to",           tok_uno_valid_to,           0},
+#line 126 "locfile-kw.gperf"
+      {"decimal_point",          tok_decimal_point,          0},
+      {""},
+#line 133 "locfile-kw.gperf"
+      {"abmon",                  tok_abmon,                  0},
+      {""}, {""}, {""}, {""},
+#line 107 "locfile-kw.gperf"
+      {"duo_frac_digits",        tok_duo_frac_digits,        0},
+#line 180 "locfile-kw.gperf"
+      {"tel_int_fmt",            tok_tel_int_fmt,            0},
+#line 123 "locfile-kw.gperf"
+      {"duo_valid_to",           tok_duo_valid_to,           0},
+#line 146 "locfile-kw.gperf"
+      {"first_weekday",          tok_first_weekday,          0},
+      {""},
+#line 130 "locfile-kw.gperf"
+      {"abday",                  tok_abday,                  0},
+      {""},
+#line 198 "locfile-kw.gperf"
+      {"abbreviation",           tok_abbreviation,           0},
+#line 147 "locfile-kw.gperf"
+      {"first_workday",          tok_first_workday,          0},
+      {""}, {""},
+#line 97 "locfile-kw.gperf"
+      {"n_sign_posn",            tok_n_sign_posn,            0},
+      {""}, {""}, {""},
+#line 145 "locfile-kw.gperf"
+      {"alt_digits",             tok_alt_digits,             0},
+      {""}, {""},
+#line 128 "locfile-kw.gperf"
+      {"grouping",               tok_grouping,               0},
+      {""},
+#line 45 "locfile-kw.gperf"
+      {"blank",                  tok_blank,                  0},
+      {""}, {""},
+#line 194 "locfile-kw.gperf"
+      {"language",               tok_language,               0},
+#line 120 "locfile-kw.gperf"
+      {"uno_valid_from",         tok_uno_valid_from,         0},
+      {""},
+#line 197 "locfile-kw.gperf"
+      {"application",            tok_application,            0},
+      {""},
+#line 80 "locfile-kw.gperf"
+      {"elifndef",               tok_elifndef,               0},
+      {""}, {""}, {""}, {""}, {""},
+#line 122 "locfile-kw.gperf"
+      {"duo_valid_from",         tok_duo_valid_from,         0},
+#line 57 "locfile-kw.gperf"
+      {"coll_weight_max",        tok_coll_weight_max,        0},
+      {""},
+#line 79 "locfile-kw.gperf"
+      {"elifdef",                tok_elifdef,                0},
+#line 67 "locfile-kw.gperf"
+      {"backward",               tok_backward,               0},
+#line 106 "locfile-kw.gperf"
+      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 96 "locfile-kw.gperf"
+      {"p_sign_posn",            tok_p_sign_posn,            0},
+      {""},
+#line 201 "locfile-kw.gperf"
+      {"category",               tok_category,               0},
+      {""}, {""}, {""}, {""},
+#line 134 "locfile-kw.gperf"
       {"mon",                    tok_mon,                    0},
-      {""}, {""},
+      {""},
+#line 124 "locfile-kw.gperf"
+      {"conversion_rate",        tok_conversion_rate,        0},
+      {""}, {""}, {""}, {""}, {""},
+#line 63 "locfile-kw.gperf"
+      {"order_start",            tok_order_start,            0},
+      {""}, {""}, {""}, {""}, {""},
+#line 176 "locfile-kw.gperf"
+      {"lang_ab",                tok_lang_ab,                0},
+#line 178 "locfile-kw.gperf"
+      {"lang_lib",               tok_lang_lib,               0},
+      {""}, {""}, {""},
+#line 190 "locfile-kw.gperf"
+      {"contact",                tok_contact,                0},
+      {""}, {""}, {""},
 #line 171 "locfile-kw.gperf"
-      {"country_car",            tok_country_car,            0},
-      {""},
+      {"country_ab3",            tok_country_ab3,            0},
+      {""}, {""}, {""},
+#line 191 "locfile-kw.gperf"
+      {"email",                  tok_email,                  0},
+#line 170 "locfile-kw.gperf"
+      {"country_ab2",            tok_country_ab2,            0},
+      {""}, {""}, {""},
+#line 55 "locfile-kw.gperf"
+      {"default_missing",        tok_default_missing,        0},
+      {""}, {""},
+#line 193 "locfile-kw.gperf"
+      {"fax",                    tok_fax,                    0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 172 "locfile-kw.gperf"
+      {"country_num",            tok_country_num,            0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 51 "locfile-kw.gperf"
+      {"map",                    tok_map,                    0},
+#line 65 "locfile-kw.gperf"
+      {"from",                   tok_from,                   0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 86 "locfile-kw.gperf"
+      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+#line 81 "locfile-kw.gperf"
+      {"endif",                  tok_endif,                  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 76 "locfile-kw.gperf"
+      {"undef",                  tok_undef,                  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 59 "locfile-kw.gperf"
+      {"collating-element",      tok_collating_element,      0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 66 "locfile-kw.gperf"
+      {"forward",                tok_forward,                0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+#line 85 "locfile-kw.gperf"
+      {"mon_decimal_point",      tok_mon_decimal_point,      0},
+      {""}, {""},
+#line 167 "locfile-kw.gperf"
+      {"postal_fmt",             tok_postal_fmt,             0},
+      {""}, {""}, {""}, {""}, {""},
 #line 60 "locfile-kw.gperf"
-      {"symbol-equivalence",     tok_symbol_equivalence,     0},
-#line 102 "locfile-kw.gperf"
-      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
-#line 100 "locfile-kw.gperf"
-      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-#line 172 "locfile-kw.gperf"
-      {"country_isbn",           tok_country_isbn,           0},
-#line 36 "locfile-kw.gperf"
-      {"outdigit",               tok_outdigit,               0},
-      {""},
-#line 114 "locfile-kw.gperf"
-      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
-      {""},
-#line 133 "locfile-kw.gperf"
-      {"d_t_fmt",                tok_d_t_fmt,                0},
-      {""}, {""},
-#line 33 "locfile-kw.gperf"
-      {"lower",                  tok_lower,                  0},
-      {""},
-#line 167 "locfile-kw.gperf"
-      {"country_post",           tok_country_post,           0},
-#line 146 "locfile-kw.gperf"
-      {"cal_direction",          tok_cal_direction,          0},
-      {""},
-#line 189 "locfile-kw.gperf"
-      {"email",                  tok_email,                  0},
-#line 141 "locfile-kw.gperf"
-      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
-      {""}, {""},
-#line 173 "locfile-kw.gperf"
-      {"lang_name",              tok_lang_name,              0},
-      {""},
-#line 179 "locfile-kw.gperf"
-      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
-      {""}, {""}, {""},
-#line 54 "locfile-kw.gperf"
-      {"default_missing",        tok_default_missing,        0},
-#line 89 "locfile-kw.gperf"
-      {"frac_digits",            tok_frac_digits,            0},
-      {""}, {""}, {""},
-#line 88 "locfile-kw.gperf"
-      {"int_frac_digits",        tok_int_frac_digits,        0},
-#line 170 "locfile-kw.gperf"
-      {"country_num",            tok_country_num,            0},
-#line 119 "locfile-kw.gperf"
-      {"uno_valid_to",           tok_uno_valid_to,           0},
-      {""}, {""}, {""}, {""}, {""},
-#line 50 "locfile-kw.gperf"
-      {"map",                    tok_map,                    0},
-      {""},
-#line 105 "locfile-kw.gperf"
-      {"duo_frac_digits",        tok_duo_frac_digits,        0},
-#line 178 "locfile-kw.gperf"
-      {"tel_int_fmt",            tok_tel_int_fmt,            0},
-#line 121 "locfile-kw.gperf"
-      {"duo_valid_to",           tok_duo_valid_to,           0},
-#line 144 "locfile-kw.gperf"
-      {"first_weekday",          tok_first_weekday,          0},
-      {""},
-#line 143 "locfile-kw.gperf"
-      {"alt_digits",             tok_alt_digits,             0},
-#line 95 "locfile-kw.gperf"
-      {"n_sign_posn",            tok_n_sign_posn,            0},
-#line 84 "locfile-kw.gperf"
-      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
-#line 145 "locfile-kw.gperf"
-      {"first_workday",          tok_first_workday,          0},
-#line 64 "locfile-kw.gperf"
-      {"from",                   tok_from,                   0},
-#line 131 "locfile-kw.gperf"
-      {"abmon",                  tok_abmon,                  0},
-      {""}, {""},
-#line 192 "locfile-kw.gperf"
-      {"language",               tok_language,               0},
-      {""}, {""},
-#line 195 "locfile-kw.gperf"
-      {"application",            tok_application,            0},
-      {""},
-#line 126 "locfile-kw.gperf"
-      {"grouping",               tok_grouping,               0},
-#line 78 "locfile-kw.gperf"
-      {"elif",                   tok_elif,                   0},
-#line 128 "locfile-kw.gperf"
-      {"abday",                  tok_abday,                  0},
-      {""},
-#line 196 "locfile-kw.gperf"
-      {"abbreviation",           tok_abbreviation,           0},
+      {"collating-symbol",       tok_collating_symbol,       0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 35 "locfile-kw.gperf"
+      {"alpha",                  tok_alpha,                  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+#line 38 "locfile-kw.gperf"
+      {"alnum",                  tok_alnum,                  0},
+      {""},
+#line 87 "locfile-kw.gperf"
+      {"mon_grouping",           tok_mon_grouping,           0},
+      {""},
+#line 177 "locfile-kw.gperf"
+      {"lang_term",              tok_lang_term,              0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 56 "locfile-kw.gperf"
-      {"coll_weight_max",        tok_coll_weight_max,        0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 66 "locfile-kw.gperf"
-      {"backward",               tok_backward,               0},
-#line 104 "locfile-kw.gperf"
-      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
-      {""},
-#line 94 "locfile-kw.gperf"
-      {"p_sign_posn",            tok_p_sign_posn,            0},
-      {""},
-#line 199 "locfile-kw.gperf"
-      {"category",               tok_category,               0},
-      {""},
-#line 122 "locfile-kw.gperf"
-      {"conversion_rate",        tok_conversion_rate,        0},
-      {""},
-#line 83 "locfile-kw.gperf"
-      {"mon_decimal_point",      tok_mon_decimal_point,      0},
-      {""}, {""}, {""},
-#line 62 "locfile-kw.gperf"
-      {"order_start",            tok_order_start,            0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-#line 188 "locfile-kw.gperf"
-      {"contact",                tok_contact,                0},
-      {""}, {""}, {""},
-#line 169 "locfile-kw.gperf"
-      {"country_ab3",            tok_country_ab3,            0},
+#line 77 "locfile-kw.gperf"
+      {"ifdef",                  tok_ifdef,                  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-#line 168 "locfile-kw.gperf"
-      {"country_ab2",            tok_country_ab2,            0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-#line 174 "locfile-kw.gperf"
-      {"lang_ab",                tok_lang_ab,                0},
-#line 176 "locfile-kw.gperf"
-      {"lang_lib",               tok_lang_lib,               0},
-      {""}, {""}, {""}, {""},
-#line 191 "locfile-kw.gperf"
-      {"fax",                    tok_fax,                    0},
-      {""},
-#line 136 "locfile-kw.gperf"
-      {"am_pm",                  tok_am_pm,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-#line 37 "locfile-kw.gperf"
-      {"alnum",                  tok_alnum,                  0},
-      {""}, {""}, {""},
-#line 175 "locfile-kw.gperf"
-      {"lang_term",              tok_lang_term,              0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 79 "locfile-kw.gperf"
-      {"endif",                  tok_endif,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 165 "locfile-kw.gperf"
-      {"postal_fmt",             tok_postal_fmt,             0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
-#line 75 "locfile-kw.gperf"
-      {"undef",                  tok_undef,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-#line 58 "locfile-kw.gperf"
-      {"collating-element",      tok_collating_element,      0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-#line 85 "locfile-kw.gperf"
-      {"mon_grouping",           tok_mon_grouping,           0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-#line 65 "locfile-kw.gperf"
-      {"forward",                tok_forward,                0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 59 "locfile-kw.gperf"
-      {"collating-symbol",       tok_collating_symbol,       0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-#line 34 "locfile-kw.gperf"
-      {"alpha",                  tok_alpha,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 76 "locfile-kw.gperf"
-      {"ifdef",                  tok_ifdef,                  0}
+#line 138 "locfile-kw.gperf"
+      {"am_pm",                  tok_am_pm,                  0}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)

Modified: trunk/libc/locale/programs/locfile-token.h
==============================================================================
--- trunk/libc/locale/programs/locfile-token.h (original)
+++ trunk/libc/locale/programs/locfile-token.h Thu Oct 11 04:59:55 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2000,2005,2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxx>, 1996.
 
@@ -115,7 +115,8 @@
   tok_ifdef,
   tok_ifndef,
   tok_else,
-  tok_elif,
+  tok_elifdef,
+  tok_elifndef,
   tok_endif,
   tok_lc_monetary,
   tok_int_curr_symbol,

Modified: trunk/libc/localedata/ChangeLog
==============================================================================
--- trunk/libc/localedata/ChangeLog (original)
+++ trunk/libc/localedata/ChangeLog Thu Oct 11 04:59:55 2007
@@ -1,3 +1,31 @@
+2007-10-10  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locales/iso14651_t1_common: If DIACRIT_FORWARD is defined, define
+	second level of <LATIN> script as forward.
+	* locales/de_DE: Define DIACRIT_FORWARD.
+	* de_DE.in: Revert last change.
+
+2007-10-10  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* locales/en_US: Add first_weekday and first_workday.
+	* locales/cs_CZ: Likewise.
+	* locales/fur_IT: Likewise.
+	* locales/fy_DE: Likewise.
+	* locales/hu_HU: Likewise.
+	* locales/i18n: Likewise.
+	* locales/li_BE: Likewise.
+	* locales/li_NL: Likewise.
+	* locales/nds_DE: Likewise.
+	* locales/nds_NL: Likewise.
+	* locales/pl_PL: Likewise.
+	* locales/sc_IT: Likewise.
+	* locales/sk_SK: Likewise.
+
+2007-10-09  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locales/de_DE: Set first week day to Monday.
+	* locales/fr_FR: Likewise.
+
 2007-10-07  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	[BZ #73]

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

Modified: trunk/libc/localedata/locales/cs_CZ
==============================================================================
--- trunk/libc/localedata/locales/cs_CZ (original)
+++ trunk/libc/localedata/locales/cs_CZ Thu Oct 11 04:59:55 2007
@@ -2439,6 +2439,8 @@
 %		"<U0044><U0065><U0063>"
 
 week		7;19971201;4
+first_weekday	1
+first_workday	1
 
 d_t_fmt		"<U0025><U0061><U00A0><U0025><U002D><U0064><U002E><U00A0><U0025><U0042><U00A0><U0025><U0059><U002C><U00A0><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U00A0><U0025><U005A>"
 

Modified: trunk/libc/localedata/locales/de_DE
==============================================================================
--- trunk/libc/localedata/locales/de_DE (original)
+++ trunk/libc/localedata/locales/de_DE Thu Oct 11 04:59:55 2007
@@ -75,6 +75,8 @@
 END LC_CTYPE
 
 LC_COLLATE
+
+define DIACRIT_FORWARD
 
 % Copy the template from ISO/IEC 14651
 copy "iso14651_t1"
@@ -118,7 +120,6 @@
 	"<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
 	"<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
 	"<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
-week    7;19971201;4
 abmon	"<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
 	"<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
 	"<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
@@ -153,6 +154,10 @@
 date_fmt	"<U0025><U0061><U0020><U0025><U002D><U0064><U002E><U0020>/
 <U0025><U0062><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>/
 <U0020><U0025><U005A><U0020><U0025><U0059>"
+
+week    7;19971201;4
+first_weekday 1
+first_workday 1
 END LC_TIME
 
 LC_MESSAGES

Modified: trunk/libc/localedata/locales/en_US
==============================================================================
--- trunk/libc/localedata/locales/en_US (original)
+++ trunk/libc/localedata/locales/en_US Thu Oct 11 04:59:55 2007
@@ -82,6 +82,8 @@
 	"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
 
 week    7;19971130;7
+first_weekday	1
+first_workday	2
 abmon	"<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
 	"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
 	"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/

Modified: trunk/libc/localedata/locales/fr_FR
==============================================================================
--- trunk/libc/localedata/locales/fr_FR (original)
+++ trunk/libc/localedata/locales/fr_FR Thu Oct 11 04:59:55 2007
@@ -129,6 +129,10 @@
 date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 <U0025><U005A><U0020><U0025><U0059>"
+
+week    7;19971201;4
+first_weekday 1
+first_workday 1
 END LC_TIME
 
 LC_PAPER

Modified: trunk/libc/localedata/locales/fur_IT
==============================================================================
--- trunk/libc/localedata/locales/fur_IT (original)
+++ trunk/libc/localedata/locales/fur_IT Thu Oct 11 04:59:55 2007
@@ -111,6 +111,8 @@
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 <U0025><U005A><U0020><U0025><U0059>"
 week			7;19971201;4
+first_weekday		1
+first_workday		1
 END LC_TIME
 
 LC_PAPER

Modified: trunk/libc/localedata/locales/fy_DE
==============================================================================
--- trunk/libc/localedata/locales/fy_DE (original)
+++ trunk/libc/localedata/locales/fy_DE Thu Oct 11 04:59:55 2007
@@ -128,4 +128,6 @@
 am_pm   "";""
 t_fmt_ampm ""
 week	7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME

Modified: trunk/libc/localedata/locales/hu_HU
==============================================================================
--- trunk/libc/localedata/locales/hu_HU (original)
+++ trunk/libc/localedata/locales/hu_HU Thu Oct 11 04:59:55 2007
@@ -521,6 +521,8 @@
 date_fmt "<U0025><U0059><U002E><U0020><U0025><U0062><U002E><U0020><U0025><U0065><U002E><U002C>/
 <U0020><U0025><U0041><U002C><U0020><U0025><U0048><U002E><U0025><U004D><U002E><U0025><U0053><U0020><U0025><U005A>"
 week     7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME
 
 LC_PAPER

Modified: trunk/libc/localedata/locales/i18n
==============================================================================
--- trunk/libc/localedata/locales/i18n (original)
+++ trunk/libc/localedata/locales/i18n Thu Oct 11 04:59:55 2007
@@ -1943,6 +1943,8 @@
 abday   "<U0031>";"<U0032>";"<U0033>";"<U0034>";"<U0035>";"<U0036>";"<U0037>"
 day     "<U0031>";"<U0032>";"<U0033>";"<U0034>";"<U0035>";"<U0036>";"<U0037>"
 week    7;19971201;4
+first_weekday	1
+first_workday	1
 abmon   "<U0030><U0031>";"<U0030><U0032>";"<U0030><U0033>";"<U0030><U0034>";/
         "<U0030><U0035>";"<U0030><U0036>";"<U0030><U0037>";"<U0030><U0038>";/
         "<U0030><U0039>";"<U0031><U0030>";"<U0031><U0031>";"<U0031><U0032>"

Modified: trunk/libc/localedata/locales/iso14651_t1_common
==============================================================================
--- trunk/libc/localedata/locales/iso14651_t1_common (original)
+++ trunk/libc/localedata/locales/iso14651_t1_common Thu Oct 11 04:59:55 2007
@@ -1121,7 +1121,11 @@
 <U009E> IGNORE;IGNORE;IGNORE;<U009E>
 <U009F> IGNORE;IGNORE;IGNORE;<U009F>
 
+ifdef DIACRIT_FORWARD
+order_start <LATIN>;forward;forward;forward;forward,position
+else
 order_start <LATIN>;forward;backward;forward;forward,position
+endif
 #
 <U00A0> <U0020>;<BAS>;<MIN>;IGNORE # 170<NBSP>
 #

Modified: trunk/libc/localedata/locales/li_BE
==============================================================================
--- trunk/libc/localedata/locales/li_BE (original)
+++ trunk/libc/localedata/locales/li_BE Thu Oct 11 04:59:55 2007
@@ -127,4 +127,6 @@
 am_pm   "";""
 t_fmt_ampm ""
 week	7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME

Modified: trunk/libc/localedata/locales/li_NL
==============================================================================
--- trunk/libc/localedata/locales/li_NL (original)
+++ trunk/libc/localedata/locales/li_NL Thu Oct 11 04:59:55 2007
@@ -128,4 +128,6 @@
 am_pm   "";""
 t_fmt_ampm ""
 week	7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME

Modified: trunk/libc/localedata/locales/nds_DE
==============================================================================
--- trunk/libc/localedata/locales/nds_DE (original)
+++ trunk/libc/localedata/locales/nds_DE Thu Oct 11 04:59:55 2007
@@ -126,4 +126,6 @@
 am_pm   "";""
 t_fmt_ampm ""
 week	7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME

Modified: trunk/libc/localedata/locales/nds_NL
==============================================================================
--- trunk/libc/localedata/locales/nds_NL (original)
+++ trunk/libc/localedata/locales/nds_NL Thu Oct 11 04:59:55 2007
@@ -125,4 +125,6 @@
 am_pm   "";""
 t_fmt_ampm ""
 week	7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME

Modified: trunk/libc/localedata/locales/pl_PL
==============================================================================
--- trunk/libc/localedata/locales/pl_PL (original)
+++ trunk/libc/localedata/locales/pl_PL Thu Oct 11 04:59:55 2007
@@ -2199,6 +2199,8 @@
 <U0025><U002D><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U002C><U0020>/
 <U0025><U0054><U0020><U0025><U005A>"
 week	7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME
 
 LC_PAPER

Modified: trunk/libc/localedata/locales/sc_IT
==============================================================================
--- trunk/libc/localedata/locales/sc_IT (original)
+++ trunk/libc/localedata/locales/sc_IT Thu Oct 11 04:59:55 2007
@@ -111,6 +111,8 @@
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 <U0025><U005A><U0020><U0025><U0059>"
 week	7;19971201;4
+first_weekday	1
+first_workday	1
 END LC_TIME
 
 LC_PAPER

Modified: trunk/libc/localedata/locales/sk_SK
==============================================================================
--- trunk/libc/localedata/locales/sk_SK (original)
+++ trunk/libc/localedata/locales/sk_SK Thu Oct 11 04:59:55 2007
@@ -184,6 +184,8 @@
 <U0025><U005A><U0020><U0025><U0059>"
 
 week		7;19971201;4
+first_weekday	1
+first_workday	1
 
 END LC_TIME
 

Modified: trunk/libc/nptl/ChangeLog
==============================================================================
--- trunk/libc/nptl/ChangeLog (original)
+++ trunk/libc/nptl/ChangeLog Thu Oct 11 04:59:55 2007
@@ -1,3 +1,11 @@
+2007-10-10  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
+	libc.so just clear NAME.
+	(__libc_rwlock_fini): Nop inside of libc.so.
+	* tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
+	all zeros.
+
 2007-09-02  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S

Modified: trunk/libc/nptl/sysdeps/pthread/bits/libc-lock.h
==============================================================================
--- trunk/libc/nptl/sysdeps/pthread/bits/libc-lock.h (original)
+++ trunk/libc/nptl/sysdeps/pthread/bits/libc-lock.h Thu Oct 11 04:59:55 2007
@@ -172,8 +172,15 @@
 # define __libc_lock_init(NAME) \
   __libc_maybe_call (__pthread_mutex_init, (&(NAME), NULL), 0)
 #endif
-#define __libc_rwlock_init(NAME) \
+#if defined SHARED && !defined NOT_IN_libc
+/* ((NAME) = (__libc_rwlock_t) PTHREAD_RWLOCK_INITIALIZER, 0) is
+   inefficient.  */
+# define __libc_rwlock_init(NAME) \
+  (__builtin_memset (&(NAME), '\0', sizeof (NAME)), 0)
+#else
+# define __libc_rwlock_init(NAME) \
   __libc_maybe_call (__pthread_rwlock_init, (&(NAME), NULL), 0)
+#endif
 
 /* Same as last but this time we initialize a recursive mutex.  */
 #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)
@@ -214,8 +221,12 @@
 # define __libc_lock_fini(NAME) \
   __libc_maybe_call (__pthread_mutex_destroy, (&(NAME)), 0)
 #endif
-#define __libc_rwlock_fini(NAME) \
+#if defined SHARED && !defined NOT_IN_libc
+# define __libc_rwlock_fini(NAME) ((void) 0)
+#else
+# define __libc_rwlock_fini(NAME) \
   __libc_maybe_call (__pthread_rwlock_destroy, (&(NAME)), 0)
+#endif
 
 /* Finalize recursive named lock.  */
 #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)

Modified: trunk/libc/nptl/tst-initializers1.c
==============================================================================
--- trunk/libc/nptl/tst-initializers1.c (original)
+++ trunk/libc/nptl/tst-initializers1.c Thu Oct 11 04:59:55 2007
@@ -47,5 +47,12 @@
   if (rwl_writer.__data.__flags
       != PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP)
     return 6;
+  /* <bits/libc-lock.h> __libc_rwlock_init definition for libc.so
+     relies on PTHREAD_RWLOCK_INITIALIZER being all zeros.  If
+     that ever changes, <bits/libc-lock.h> needs updating.  */
+  size_t i;
+  for (i = 0; i < sizeof (rwl_normal); i++)
+    if (((char *) &rwl_normal)[i] != '\0')
+      return 7;
   return 0;
 }

Modified: trunk/libc/stdio-common/printf-parse.h
==============================================================================
--- trunk/libc/stdio-common/printf-parse.h (original)
+++ trunk/libc/stdio-common/printf-parse.h Thu Oct 11 04:59:55 2007
@@ -1,5 +1,6 @@
 /* Internal header for parsing printf format strings.
-   Copyright (C) 1995-1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000, 2002, 2003, 2007
+   Free Software Foundation, Inc.
    This file is part of th GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +21,8 @@
 #include <printf.h>
 #include <stdint.h>
 #include <stddef.h>
+#include <string.h>
+#include <wchar.h>
 
 
 struct printf_spec
@@ -86,11 +89,17 @@
 
 /* Find the next spec in FORMAT, or the end of the string.  Returns
    a pointer into FORMAT, to a '%' or a '\0'.  */
-extern const unsigned char *__find_specmb (const UCHAR_T *format,
-					   mbstate_t *ps) attribute_hidden;
+__extern_always_inline const unsigned char *
+__find_specmb (const unsigned char *format)
+{
+  return (const unsigned char *) __strchrnul ((const char *) format, '%');
+}
 
-extern const unsigned int *__find_specwc (const UCHAR_T *format)
-     attribute_hidden;
+__extern_always_inline const unsigned int *
+__find_specwc (const unsigned int *format)
+{
+  return (const unsigned int *) __wcschrnul ((const wchar_t *) format, L'%');
+}
 
 
 /* FORMAT must point to a '%' at the beginning of a spec.  Fills in *SPEC
@@ -100,8 +109,7 @@
    remains the highest argument index used.  */
 extern size_t __parse_one_specmb (const unsigned char *format, size_t posn,
 				  struct printf_spec *spec,
-				  size_t *max_ref_arg, mbstate_t *ps)
-     attribute_hidden;
+				  size_t *max_ref_arg) attribute_hidden;
 
 extern size_t __parse_one_specwc (const unsigned int *format, size_t posn,
 				  struct printf_spec *spec,

Modified: trunk/libc/stdio-common/printf-parsemb.c
==============================================================================
--- trunk/libc/stdio-common/printf-parsemb.c (original)
+++ trunk/libc/stdio-common/printf-parsemb.c Thu Oct 11 04:59:55 2007
@@ -46,35 +46,6 @@
 
 
 
-/* Find the next spec in FORMAT, or the end of the string.  Returns
-   a pointer into FORMAT, to a '%' or a '\0'.  */
-const UCHAR_T *
-#ifdef COMPILE_WPRINTF
-__find_specwc (const UCHAR_T *format)
-#else
-__find_specmb (const UCHAR_T *format, mbstate_t *ps)
-#endif
-{
-#ifdef COMPILE_WPRINTF
-  return (const UCHAR_T *) __wcschrnul ((const CHAR_T *) format, L'%');
-#else
-  while (*format != L_('\0') && *format != L_('%'))
-    {
-      int len;
-
-      /* Remove any hints of a wrong encoding.  */
-      ps->__count = 0;
-      if (! isascii (*format)
-	  && (len = __mbrlen ((const CHAR_T *) format, MB_CUR_MAX, ps)) > 0)
-	format += len;
-      else
-	++format;
-    }
-  return format;
-#endif
-}
-
-
 /* FORMAT must point to a '%' at the beginning of a spec.  Fills in *SPEC
    with the parsed details.  POSN is the number of arguments already
    consumed.  At most MAXTYPES - POSN types are filled in TYPES.  Return
@@ -87,8 +58,7 @@
 		    struct printf_spec *spec, size_t *max_ref_arg)
 #else
 __parse_one_specmb (const UCHAR_T *format, size_t posn,
-		    struct printf_spec *spec, size_t *max_ref_arg,
-		    mbstate_t *ps)
+		    struct printf_spec *spec, size_t *max_ref_arg)
 #endif
 {
   unsigned int n;
@@ -403,7 +373,7 @@
 #ifdef COMPILE_WPRINTF
       spec->next_fmt = __find_specwc (format);
 #else
-      spec->next_fmt = __find_specmb (format, ps);
+      spec->next_fmt = __find_specmb (format);
 #endif
     }
 

Modified: trunk/libc/stdio-common/printf-prs.c
==============================================================================
--- trunk/libc/stdio-common/printf-prs.c (original)
+++ trunk/libc/stdio-common/printf-prs.c Thu Oct 11 04:59:55 2007
@@ -1,5 +1,5 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1999, 2000, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1995, 1996, 1999, 2000, 2002, 2003, 2004, 2005,
+   2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -66,17 +66,16 @@
   size_t nargs;			/* Number of arguments.  */
   size_t max_ref_arg;		/* Highest index used in a positional arg.  */
   struct printf_spec spec;
-  mbstate_t mbstate;
   const unsigned char *f = (const unsigned char *) fmt;
 
   nargs = 0;
   max_ref_arg = 0;
 
   /* Search for format specifications.  */
-  for (f = __find_specmb (f, &mbstate); *f != '\0'; f = spec.next_fmt)
+  for (f = __find_specmb (f); *f != '\0'; f = spec.next_fmt)
     {
       /* Parse this spec.  */
-      nargs += __parse_one_specmb (f, nargs, &spec, &max_ref_arg, &mbstate);
+      nargs += __parse_one_specmb (f, nargs, &spec, &max_ref_arg);
 
       /* If the width is determined by an argument this is an int.  */
       if (spec.width_arg != -1 && (size_t) spec.width_arg < n)

Modified: trunk/libc/stdio-common/vfprintf.c
==============================================================================
--- trunk/libc/stdio-common/vfprintf.c (original)
+++ trunk/libc/stdio-common/vfprintf.c Thu Oct 11 04:59:55 2007
@@ -208,11 +208,6 @@
   CHAR_T work_buffer[1000];
   CHAR_T *workstart = NULL;
   CHAR_T *workend;
-
-  /* State for restartable multibyte character handling functions.  */
-#ifndef COMPILE_WPRINTF
-  mbstate_t mbstate;
-#endif
 
   /* We have to save the original argument pointer.  */
   va_list ap_save;
@@ -1294,11 +1289,8 @@
   /* Find the first format specifier.  */
   f = lead_str_end = __find_specwc ((const UCHAR_T *) format);
 #else
-  /* Put state for processing format string in initial state.  */
-  memset (&mbstate, '\0', sizeof (mbstate_t));
-
   /* Find the first format specifier.  */
-  f = lead_str_end = __find_specmb ((const UCHAR_T *) format, &mbstate);
+  f = lead_str_end = __find_specmb ((const UCHAR_T *) format);
 #endif
 
   /* Lock stream.  */
@@ -1591,7 +1583,7 @@
 #ifdef COMPILE_WPRINTF
       f = __find_specwc ((end_of_spec = ++f));
 #else
-      f = __find_specmb ((end_of_spec = ++f), &mbstate);
+      f = __find_specmb ((end_of_spec = ++f));
 #endif
 
       /* Write the following constant string.  */
@@ -1674,8 +1666,7 @@
 #ifdef COMPILE_WPRINTF
 	nargs += __parse_one_specwc (f, nargs, &specs[nspecs], &max_ref_arg);
 #else
-	nargs += __parse_one_specmb (f, nargs, &specs[nspecs], &max_ref_arg,
-				     &mbstate);
+	nargs += __parse_one_specmb (f, nargs, &specs[nspecs], &max_ref_arg);
 #endif
       }
 

Modified: trunk/libc/sysdeps/unix/sysv/linux/eventfd_read.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/eventfd_read.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/eventfd_read.c Thu Oct 11 04:59:55 2007
@@ -24,5 +24,5 @@
 int
 eventfd_read (int fd, eventfd_t *value)
 {
-  return read (fd, value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
+  return __read (fd, value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
 }

Modified: trunk/libc/sysdeps/unix/sysv/linux/eventfd_write.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/eventfd_write.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/eventfd_write.c Thu Oct 11 04:59:55 2007
@@ -24,5 +24,6 @@
 int
 eventfd_write (int fd, eventfd_t value)
 {
-  return write (fd, &value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
+  return __write (fd, &value,
+		  sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
 }

Modified: trunk/libc/sysdeps/x86_64/cacheinfo.c
==============================================================================
--- trunk/libc/sysdeps/x86_64/cacheinfo.c (original)
+++ trunk/libc/sysdeps/x86_64/cacheinfo.c Thu Oct 11 04:59:55 2007
@@ -456,6 +456,13 @@
               asm volatile ("cpuid"
 		            : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
 		            : "0" (4), "2" (i++));
+
+	      /* There seems to be a bug in at least some Pentium Ds
+		 which sometimes fail to iterate all cache parameters.
+		 Do not loop indefinitely here, stop in this case and
+		 assume there is no such information.  */
+	      if ((eax & 0x1f) == 0)
+		goto intel_bug_no_cache_info;
 	    }
           while (((eax >> 5) & 0x7) != level);
 
@@ -463,6 +470,7 @@
 	}
       else
         {
+	intel_bug_no_cache_info:
 	  /* Assume that all logical threads share the highest cache level.  */
           asm volatile ("cpuid"
 		        : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)