about summary refs log tree commit diff
path: root/locale/programs
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-12-22 20:10:10 +0000
committerUlrich Drepper <drepper@redhat.com>2004-12-22 20:10:10 +0000
commita334319f6530564d22e775935d9c91663623a1b4 (patch)
treeb5877475619e4c938e98757d518bb1e9cbead751 /locale/programs
parent0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (diff)
downloadglibc-a334319f6530564d22e775935d9c91663623a1b4.tar.gz
glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.xz
glibc-a334319f6530564d22e775935d9c91663623a1b4.zip
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
Diffstat (limited to 'locale/programs')
-rw-r--r--locale/programs/3level.h58
-rw-r--r--locale/programs/charmap-dir.c22
-rw-r--r--locale/programs/charmap-dir.h22
-rw-r--r--locale/programs/charmap-kw.gperf22
-rw-r--r--locale/programs/charmap-kw.h102
-rw-r--r--locale/programs/charmap.c41
-rw-r--r--locale/programs/charmap.h25
-rw-r--r--locale/programs/config.h22
-rw-r--r--locale/programs/ld-address.c38
-rw-r--r--locale/programs/ld-collate.c42
-rw-r--r--locale/programs/ld-ctype.c53
-rw-r--r--locale/programs/ld-identification.c22
-rw-r--r--locale/programs/ld-measurement.c22
-rw-r--r--locale/programs/ld-messages.c22
-rw-r--r--locale/programs/ld-monetary.c22
-rw-r--r--locale/programs/ld-name.c22
-rw-r--r--locale/programs/ld-numeric.c43
-rw-r--r--locale/programs/ld-paper.c22
-rw-r--r--locale/programs/ld-telephone.c22
-rw-r--r--locale/programs/ld-time.c52
-rw-r--r--locale/programs/linereader.c32
-rw-r--r--locale/programs/linereader.h22
-rw-r--r--locale/programs/locale-spec.c22
-rw-r--r--locale/programs/locale.c24
-rw-r--r--locale/programs/localedef.c54
-rw-r--r--locale/programs/localedef.h22
-rw-r--r--locale/programs/locarchive.c22
-rw-r--r--locale/programs/locfile-kw.gperf22
-rw-r--r--locale/programs/locfile-kw.h729
-rw-r--r--locale/programs/locfile-token.h22
-rw-r--r--locale/programs/locfile.c31
-rw-r--r--locale/programs/locfile.h22
-rw-r--r--locale/programs/repertoire.c24
-rw-r--r--locale/programs/repertoire.h22
-rw-r--r--locale/programs/simple-hash.c26
-rw-r--r--locale/programs/simple-hash.h22
-rw-r--r--locale/programs/xmalloc.c23
-rw-r--r--locale/programs/xstrdup.c22
38 files changed, 812 insertions, 1047 deletions
diff --git a/locale/programs/3level.h b/locale/programs/3level.h
index 88f1b49724..ef4ba2bbc0 100644
--- a/locale/programs/3level.h
+++ b/locale/programs/3level.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 2000-2001, 2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Bruno Haible <haible@clisp.cons.org>, 2000.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 /* Construction of sparse 3-level tables.
    See wchar-lookup.h or coll-lookup.h for their structure and the
@@ -202,42 +204,6 @@ CONCAT(TABLE,_iterate) (struct TABLE *t,
 	}
     }
 }
-
-/* GCC ATM seems to do a poor job with pointers to nested functions passed
-   to inlined functions.  Help it a little bit with this hack.  */
-#define wchead_table_iterate(tp, fn) \
-do									      \
-  {									      \
-    struct wchead_table *t = (tp);					      \
-    uint32_t index1;							      \
-    for (index1 = 0; index1 < t->level1_size; index1++)			      \
-      {									      \
-	uint32_t lookup1 = t->level1[index1];				      \
-	if (lookup1 != ((uint32_t) ~0))					      \
-	  {								      \
-	    uint32_t lookup1_shifted = lookup1 << t->q;			      \
-	    uint32_t index2;						      \
-	    for (index2 = 0; index2 < (1 << t->q); index2++)		      \
-	      {								      \
-		uint32_t lookup2 = t->level2[index2 + lookup1_shifted];	      \
-		if (lookup2 != ((uint32_t) ~0))				      \
-		  {							      \
-		    uint32_t lookup2_shifted = lookup2 << t->p;		      \
-		    uint32_t index3;					      \
-		    for (index3 = 0; index3 < (1 << t->p); index3++)	      \
-		      {							      \
-			struct element_t *lookup3			      \
-			  = t->level3[index3 + lookup2_shifted];	      \
-			if (lookup3 != NULL)				      \
-			  fn ((((index1 << t->q) + index2) << t->p) + index3, \
-			      lookup3);					      \
-		      }							      \
-		  }							      \
-	      }								      \
-	  }								      \
-      }									      \
-  } while (0)
-
 #endif
 
 #ifndef NO_FINALIZE
diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
index 07d0cdcfd0..903bd5cabc 100644
--- a/locale/programs/charmap-dir.c
+++ b/locale/programs/charmap-dir.c
@@ -1,18 +1,20 @@
-/* Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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 <dirent.h>
 #include <errno.h>
diff --git a/locale/programs/charmap-dir.h b/locale/programs/charmap-dir.h
index 256db8dc35..1d07c64ec1 100644
--- a/locale/programs/charmap-dir.h
+++ b/locale/programs/charmap-dir.h
@@ -1,18 +1,20 @@
-/* Copyright (C) 2000, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _CHARMAP_DIR_H
 #define _CHARMAP_DIR_H 1
diff --git a/locale/programs/charmap-kw.gperf b/locale/programs/charmap-kw.gperf
index 64f7452500..83da36aa74 100644
--- a/locale/programs/charmap-kw.gperf
+++ b/locale/programs/charmap-kw.gperf
@@ -1,20 +1,22 @@
 %{
-/* Copyright (C) 1995,1996,1997,1998,1999,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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 <string.h>
 
diff --git a/locale/programs/charmap-kw.h b/locale/programs/charmap-kw.h
index d7d85774da..089f45d7d8 100644
--- a/locale/programs/charmap-kw.h
+++ b/locale/programs/charmap-kw.h
@@ -1,56 +1,27 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
-/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash charmap-kw.gperf  */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
-      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
-      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
-      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
-      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
-      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
-      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
-      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
-      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
-      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
-      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
-      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
-      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
-      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
-      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
-      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
-      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
-      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
-      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
-      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
-      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
-      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
-      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646.  */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-#line 1 "charmap-kw.gperf"
-
-/* Copyright (C) 1995,1996,1997,1998,1999,2005 Free Software Foundation, Inc.
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash programs/charmap-kw.gperf  */
+/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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 <string.h>
 
 #include "locfile-token.h"
-#line 23 "charmap-kw.gperf"
 struct keyword_t ;
 
 #define TOTAL_KEYWORDS 17
@@ -76,15 +47,15 @@ hash (register const char *str, register unsigned int len)
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
-      36, 36, 36, 36, 36, 36, 36, 36, 25, 20,
-      15, 10, 36, 36, 36, 36, 36, 36, 36, 36,
-      36, 36, 36, 36, 36, 36, 36,  5,  0,  0,
-       5, 36,  0,  0, 36, 36, 36,  5,  0, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 25, 10,
+      15, 20, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 10,  0,  0,
+       5, 36,  0,  0, 36, 36, 36,  0,  0, 36,
        0, 36,  0, 36,  0, 36, 36,  0, 36, 36,
-      36, 36, 36, 36, 36,  0, 36,  5,  0,  0,
-       5,  0, 36,  5,  0,  0, 36, 36, 36,  0,
+      36, 36, 36, 36, 36,  0, 36,  0,  0,  0,
+      10,  0, 36,  0,  0,  0, 36, 36, 36,  0,
        0,  0,  0,  0,  0,  0,  0,  0, 36, 36,
-       0, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      25, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
@@ -104,19 +75,17 @@ hash (register const char *str, register unsigned int len)
   switch (hval)
     {
       default:
+      case 9:
         hval += asso_values[(unsigned char)str[8]];
-      /*FALLTHROUGH*/
       case 8:
       case 7:
       case 6:
       case 5:
         hval += asso_values[(unsigned char)str[4]];
-      /*FALLTHROUGH*/
       case 4:
       case 3:
       case 2:
         hval += asso_values[(unsigned char)str[1]];
-      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -133,46 +102,29 @@ charmap_hash (register const char *str, register unsigned int len)
   static const struct keyword_t wordlist[] =
     {
       {""}, {""}, {""},
-#line 38 "charmap-kw.gperf"
       {"END",             tok_end,             0},
       {""},
-#line 39 "charmap-kw.gperf"
       {"WIDTH",           tok_width,           0},
-#line 34 "charmap-kw.gperf"
       {"escseq",          tok_escseq,          1},
-#line 36 "charmap-kw.gperf"
       {"include",         tok_include,         1},
       {""}, {""},
-#line 27 "charmap-kw.gperf"
       {"mb_cur_min",      tok_mb_cur_min,      1},
-#line 28 "charmap-kw.gperf"
       {"escape_char",     tok_escape_char,     1},
-#line 29 "charmap-kw.gperf"
       {"comment_char",    tok_comment_char,    1},
-#line 25 "charmap-kw.gperf"
       {"code_set_name",   tok_code_set_name,   1},
-#line 40 "charmap-kw.gperf"
       {"WIDTH_VARIABLE",  tok_width_variable,  0},
-#line 26 "charmap-kw.gperf"
-      {"mb_cur_max",      tok_mb_cur_max,      1},
-#line 35 "charmap-kw.gperf"
+      {"g1esc",           tok_g1esc,           1},
       {"addset",          tok_addset,          1},
-#line 37 "charmap-kw.gperf"
       {"CHARMAP",         tok_charmap,         0},
-#line 41 "charmap-kw.gperf"
       {"WIDTH_DEFAULT",   tok_width_default,   0},
       {""},
-#line 33 "charmap-kw.gperf"
-      {"g3esc",           tok_g3esc,           1},
-      {""}, {""}, {""}, {""},
-#line 32 "charmap-kw.gperf"
       {"g2esc",           tok_g2esc,           1},
       {""}, {""}, {""}, {""},
-#line 31 "charmap-kw.gperf"
-      {"g1esc",           tok_g1esc,           1},
+      {"g3esc",           tok_g3esc,           1},
+      {""}, {""}, {""}, {""},
+      {"g0esc",           tok_g0esc,           1},
       {""}, {""}, {""}, {""},
-#line 30 "charmap-kw.gperf"
-      {"g0esc",           tok_g0esc,           1}
+      {"mb_cur_max",      tok_mb_cur_max,      1}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 52a69de4b0..8dbac6f5b9 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1996, 1998-2004,2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1998-2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -47,9 +49,8 @@ static void new_width (struct linereader *cmfile, struct charmap_t *result,
 		       const char *from, const char *to,
 		       unsigned long int width);
 static void charmap_new_char (struct linereader *lr, struct charmap_t *cm,
-			      size_t nbytes, unsigned char *bytes,
-			      const char *from, const char *to,
-			      int decimal_ellipsis, int step);
+			      int nbytes, char *bytes, const char *from,
+			      const char *to, int decimal_ellipsis, int step);
 
 
 bool enc_not_ascii_compatible;
@@ -86,8 +87,7 @@ cmlr_open (const char *directory, const char *name, kw_hash_fct_t hf)
 }
 
 struct charmap_t *
-charmap_read (const char *filename, int verbose, int error_not_found,
-	      int be_quiet, int use_default)
+charmap_read (const char *filename, int verbose, int be_quiet, int use_default)
 {
   struct charmap_t *result = NULL;
 
@@ -131,11 +131,13 @@ charmap_read (const char *filename, int verbose, int error_not_found,
 	}
 
       if (cmfile != NULL)
-	result = parse_charmap (cmfile, verbose, be_quiet);
+	{
+	  result = parse_charmap (cmfile, verbose, be_quiet);
 
-      if (result == NULL && error_not_found)
-	WITH_CUR_LOCALE (error (0, errno, _("\
+	  if (result == NULL && !be_quiet)
+	    WITH_CUR_LOCALE (error (0, errno, _("\
 character map file `%s' not found"), filename));
+	}
     }
 
   if (result == NULL && filename != NULL && strchr (filename, '/') == NULL)
@@ -925,8 +927,7 @@ charmap_find_value (const struct charmap_t *cm, const char *name, size_t len)
 
 static void
 charmap_new_char (struct linereader *lr, struct charmap_t *cm,
-		  size_t nbytes, unsigned char *bytes,
-		  const char *from, const char *to,
+		  int nbytes, char *bytes, const char *from, const char *to,
 		  int decimal_ellipsis, int step)
 {
   hash_table *ht = &cm->char_table;
diff --git a/locale/programs/charmap.h b/locale/programs/charmap.h
index fd711f2d11..a4a6d3833b 100644
--- a/locale/programs/charmap.h
+++ b/locale/programs/charmap.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 1996-1999,2001,2003,2005,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2001, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _CHARMAP_H
 #define _CHARMAP_H
@@ -69,8 +71,7 @@ extern bool enc_not_ascii_compatible;
 
 /* Prototypes for charmap handling functions.  */
 extern struct charmap_t *charmap_read (const char *filename, int verbose,
-				       int error_not_found, int be_quiet,
-				       int use_default);
+				       int be_quiet, int use_default);
 
 /* Return the value stored under the given key in the hashing table.  */
 extern struct charseq *charmap_find_value (const struct charmap_t *charmap,
diff --git a/locale/programs/config.h b/locale/programs/config.h
index 6f9bfde903..12a921c1cf 100644
--- a/locale/programs/config.h
+++ b/locale/programs/config.h
@@ -1,20 +1,22 @@
 /* Configuration for localedef program.
-   Copyright (C) 1995,1996,1997,1998,2000,2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _LD_CONFIG_H
 #define _LD_CONFIG_H	1
diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c
index dac8551071..079aa0094d 100644
--- a/locale/programs/ld-address.c
+++ b/locale/programs/ld-address.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998-2002, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -222,29 +224,17 @@ No definition for %s category found"), "LC_ADDRESS"));
 
   if (address->lang_ab == NULL)
     {
-      if ((cnt == sizeof (iso639) / sizeof (iso639[0])
-	   || iso639[cnt].ab[0] != '\0')
-	  && verbose && ! nothing)
+      if (verbose && ! nothing)
 	WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' not defined"),
 				"LC_ADDRESS", "lang_ab"));
       address->lang_ab = "";
     }
   else if (address->lang_ab[0] == '\0')
     {
-      if ((cnt == sizeof (iso639) / sizeof (iso639[0])
-	   || iso639[cnt].ab[0] != '\0')
-	  && verbose)
+      if (verbose)
 	WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
 				"LC_ADDRESS", "lang_ab"));
     }
-  else if (cnt < sizeof (iso639) / sizeof (iso639[0])
-	   && iso639[cnt].ab[0] == '\0')
-    {
-      WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be defined"),
-			      "LC_ADDRESS", "lang_ab"));
-
-      address->lang_ab = "";
-    }
   else
     {
       if (cnt == sizeof (iso639) / sizeof (iso639[0]))
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index cf1bff130f..6d0d03c235 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -1295,7 +1297,7 @@ order for `%.*s' already defined at %s:%Zu"),
 	    {
 	    invalid_range:
 	      lr_error (ldfile, _("\
-`%s' and `%.*s' are not valid names for symbolic range"),
+`%s' and `%.*s' are no valid names for symbolic range"),
 			startp->name, (int) lento, endp->name);
 	      return;
 	    }
@@ -2467,14 +2469,14 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
   runp = collate->start;
   while (runp != NULL)
     {
-      if (runp->mbs != NULL && runp->weights != NULL && !runp->is_character)
+      if (runp->mbs != NULL && runp->weights != NULL)
 	/* Yep, the element really counts.  */
 	++elem_size;
 
       runp = runp->next;
     }
   /* Add 40% and find the next prime number.  */
-  elem_size = next_prime (elem_size * 1.4);
+  elem_size = MIN (next_prime (elem_size * 1.4), 257);
 
   /* Allocate the table.  Each entry consists of two words: the hash
      value and an index in a secondary table which provides the index
@@ -2494,20 +2496,18 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
 	  uint32_t namelen = strlen (runp->name);
 	  uint32_t hash = elem_hash (runp->name, namelen);
 	  size_t idx = hash % elem_size;
-	  size_t start_idx = idx;
 
 	  if (elem_table[idx * 2] != 0)
 	    {
-	      /* The spot is already taken.  Try iterating using the value
+	      /* The spot is already take.  Try iterating using the value
 		 from the secondary hashing function.  */
-	      size_t iter = hash % (elem_size - 2) + 1;
+	      size_t iter = hash % (elem_size - 2);
 
 	      do
 		{
 		  idx += iter;
 		  if (idx >= elem_size)
 		    idx -= elem_size;
-		  assert (idx != start_idx);
 		}
 	      while (elem_table[idx * 2] != 0);
 	    }
@@ -2671,9 +2671,6 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
 	      if (locfile_read (copy_locale, charmap) != 0)
 		goto skip_category;
 	    }
-
-	  if (copy_locale->categories[LC_COLLATE].collate == NULL)
-	    return;
 	}
 
       lr_ignore_rest (ldfile, 1);
@@ -3068,7 +3065,7 @@ collate_read (struct linereader *ldfile, struct localedef_t *result,
 		  lr_error (ldfile, _("\
 %s: unknown symbol `%s' in equivalent definition"),
 			    "LC_COLLATE", symname);
-		  goto sym_equiv_free;
+		  goto col_sym_free;
 		}
 
 	      if (insert_entry (&collate->sym_table,
@@ -3533,13 +3530,13 @@ error while adding equivalent collating symbol"));
 	      break;
 	    }
 
-	  struct element_t *seqp;
 	  if (state == 0)
 	    {
 	      /* We are outside an `order_start' region.  This means
                  we must only accept definitions of values for
                  collation symbols since these are purely abstract
                  values and don't need directions associated.  */
+	      struct element_t *seqp;
 	      void *ptr;
 
 	      if (find_entry (&collate->seq_table, symstr, symlen, &ptr) == 0)
@@ -3586,6 +3583,7 @@ error while adding equivalent collating symbol"));
 	    {
 	      /* It is possible that we already have this collation sequence.
 		 In this case we move the entry.  */
+	      struct element_t *seqp = NULL;
 	      void *sym;
 	      void *ptr;
 
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 40d5e4b17f..ed8fa919d5 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -992,8 +994,8 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
 		total += iov[2 + elem + offset].iov_len;
 	      }
 	    iov[2 + elem + offset].iov_base = (void *) nulbytes;
-	    iov[2 + elem + offset].iov_len = 4 - (total % 4);
-	    total += 4 - (total % 4);
+	    iov[2 + elem + offset].iov_len = 1 + (4 - ((total + 1) % 4));
+	    total += 1 + (4 - ((total + 1) % 4));
 
 	    idx[elem + 1] = idx[elem] + total;
 	    break;
@@ -1010,8 +1012,8 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
 		total += iov[2 + elem + offset].iov_len;
 	      }
 	    iov[2 + elem + offset].iov_base = (void *) nulbytes;
-	    iov[2 + elem + offset].iov_len = 4 - (total % 4);
-	    total += 4 - (total % 4);
+	    iov[2 + elem + offset].iov_len = 1 + (4 - ((total + 1) % 4));
+	    total += 1 + (4 - ((total + 1) % 4));
 
 	    idx[elem + 1] = idx[elem] + total;
 	    break;
@@ -1153,7 +1155,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
 	    iov[2 + elem + offset].iov_base =
 	      ctype->default_missing ?: (uint32_t *) L"";
 	    iov[2 + elem + offset].iov_len =
-	      wcslen (iov[2 + elem + offset].iov_base) * sizeof (uint32_t);
+	      wcslen (iov[2 + elem + offset].iov_base);
 	    idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len;
 	    break;
 
@@ -1472,7 +1474,7 @@ charclass_symbolic_ellipsis (struct linereader *ldfile,
     {
     invalid_range:
       lr_error (ldfile,
-		_("`%s' and `%.*s' are not valid names for symbolic range"),
+		_("`%s' and `%.*s' are no valid names for symbolic range"),
 		last_str, (int) now->val.str.lenmb, nowstr);
       return;
     }
@@ -1866,9 +1868,6 @@ find_translit (struct localedef_t *locale, const struct charmap_t *charmap,
   assert (locale != NULL);
   ctype = locale->categories[LC_CTYPE].ctype;
 
-  if (ctype == NULL)
-    return NULL;
-
   if (ctype->translit != NULL)
     result = find_translit2 (ctype, charmap, wch);
 
@@ -2248,9 +2247,6 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
 	      if (locfile_read (copy_locale, charmap) != 0)
 		goto skip_category;
 	    }
-
-	  if (copy_locale->categories[LC_CTYPE].ctype == NULL)
-	    return;
 	}
 
       lr_ignore_rest (ldfile, 1);
@@ -3772,7 +3768,7 @@ translit_flatten (struct locale_ctype_t *ctype,
 
       other = find_locale (LC_CTYPE, copy_locale, copy_repertoire, charmap);
 
-      if (other == NULL || other->categories[LC_CTYPE].ctype == NULL)
+      if (other == NULL)
 	{
 	  WITH_CUR_LOCALE (error (0, 0, _("\
 %s: transliteration data from locale `%s' not available"),
@@ -3850,14 +3846,9 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
     {
       ctype->class_b[nr] = (uint32_t *) xcalloc (256 / 32, sizeof (uint32_t));
 
-      /* We only set CLASS_B for the bits in the ISO C classes, not
-	 the user defined classes.  The number should not change but
-	 who knows.  */
-#define LAST_ISO_C_BIT 11
-      if (nr <= LAST_ISO_C_BIT)
-	for (idx = 0; idx < 256; ++idx)
-	  if (ctype->class256_collection[idx] & _ISbit (nr))
-	    ctype->class_b[nr][idx >> 5] |= (uint32_t) 1 << (idx & 0x1f);
+      for (idx = 0; idx < 256; ++idx)
+	if (ctype->class256_collection[idx] & _ISbit (nr))
+	  ctype->class_b[nr][idx >> 5] |= (uint32_t)1 << (idx & 0x1f);
     }
 
   for (nr = 0; nr < ctype->nr_charclass; nr++)
diff --git a/locale/programs/ld-identification.c b/locale/programs/ld-identification.c
index d050f7aaa9..ae5ea6fb16 100644
--- a/locale/programs/ld-identification.c
+++ b/locale/programs/ld-identification.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-measurement.c b/locale/programs/ld-measurement.c
index 6a9b847a1a..e3ec90199e 100644
--- a/locale/programs/ld-measurement.c
+++ b/locale/programs/ld-measurement.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-messages.c b/locale/programs/ld-messages.c
index e98574f130..d5cc393e4b 100644
--- a/locale/programs/ld-messages.c
+++ b/locale/programs/ld-messages.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c
index 27636d6498..868ab6980e 100644
--- a/locale/programs/ld-monetary.c
+++ b/locale/programs/ld-monetary.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-name.c b/locale/programs/ld-name.c
index c1153fd51d..80b42f7048 100644
--- a/locale/programs/ld-name.c
+++ b/locale/programs/ld-name.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c
index a901c4d985..594c0c8c1b 100644
--- a/locale/programs/ld-numeric.c
+++ b/locale/programs/ld-numeric.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-2002,2005,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -302,7 +304,7 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result,
 	    {
 	      size_t act = 0;
 	      size_t max = 10;
-	      char *grouping = xmalloc (max);
+	      char *grouping = ignore_content ? NULL : xmalloc (max);
 
 	      do
 		{
@@ -321,20 +323,24 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result,
 		    }
 
 		  if (now->tok == tok_minus1)
-		    grouping[act++] = '\177';
+		    {
+		      if (!ignore_content)
+			grouping[act++] = '\177';
+		    }
 		  else if (now->val.num == 0)
 		    {
 		      /* A value of 0 disables grouping from here on but
 			 we must not store a NUL character since this
 			 terminates the string.  Use something different
 			 which must not be used otherwise.  */
-		      grouping[act++] = '\377';
+		      if (!ignore_content)
+			grouping[act++] = '\377';
 		    }
 		  else if (now->val.num > 126)
 		    lr_error (ldfile, _("\
 %s: values for field `%s' must be smaller than 127"),
 			      "LC_NUMERIC", "grouping");
-		  else
+		  else if (!ignore_content)
 		    grouping[act++] = now->val.num;
 
 		  /* Next must be semicolon.  */
@@ -349,10 +355,13 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result,
 	      if (now->tok != tok_eol)
 		goto err_label;
 
-	      grouping[act++] = '\0';
+	      if (!ignore_content)
+		{
+		  grouping[act++] = '\0';
 
-	      numeric->grouping = xrealloc (grouping, act);
-	      numeric->grouping_len = act;
+		  numeric->grouping = xrealloc (grouping, act);
+		  numeric->grouping_len = act;
+		}
 	    }
 	  break;
 
diff --git a/locale/programs/ld-paper.c b/locale/programs/ld-paper.c
index 38f9af3e60..2910954f04 100644
--- a/locale/programs/ld-paper.c
+++ b/locale/programs/ld-paper.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-telephone.c b/locale/programs/ld-telephone.c
index 4075a14f46..5a60c016b0 100644
--- a/locale/programs/ld-telephone.c
+++ b/locale/programs/ld-telephone.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index bf5151858a..a7dd25c80d 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -467,22 +469,10 @@ No definition for %s category found"), "LC_TIME"));
 	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end offset */
 	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end start */
 	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end end */
-	  if (wstr != NULL)
-	    {
-	      time->era_entries[idx].wname = (uint32_t *) wstr + 1;
-	      wstr = wcschr (wstr + 1, L':');	/* end name */
-	      if (wstr != NULL)
-		{
-		  *wstr = L'\0';
-		  time->era_entries[idx].wformat = (uint32_t *) wstr + 1;
-		}
-	      else
-		time->era_entries[idx].wname =
-		  time->era_entries[idx].wformat = (uint32_t *) L"";
-	    }
-	  else
-	    time->era_entries[idx].wname =
-	      time->era_entries[idx].wformat = (uint32_t *) L"";
+	  time->era_entries[idx].wname = (uint32_t *) wstr + 1;
+	  wstr = wstr ? wcschr (wstr + 1, L':') : NULL;	/* end name */
+	  *wstr = L'\0';
+	  time->era_entries[idx].wformat = (uint32_t *) wstr + 1;
 	}
     }
 
@@ -542,7 +532,7 @@ time_output (struct localedef_t *locale, const struct charmap_t *charmap,
 			      * (2 + _NL_ITEM_INDEX (_NL_NUM_LC_TIME)
 				 + time->num_era - 1
 				 + 2 * 99
-				 + 2 + time->num_era * 10));
+				 + 2 + time->num_era * 10 - 1));
   struct locale_file data;
   uint32_t idx[_NL_ITEM_INDEX (_NL_NUM_LC_TIME)];
   size_t cnt, last_idx, num, n;
@@ -901,12 +891,6 @@ time_output (struct localedef_t *locale, const struct charmap_t *charmap,
   ++cnt;
   ++last_idx;
 
-  /* We must align the following data.  */
-  iov[2 + cnt].iov_base = (void *) "\0\0";
-  iov[2 + cnt].iov_len = -idx[last_idx] & 3;
-  idx[last_idx] += -idx[last_idx] & 3;
-  ++cnt;
-
   iov[2 + cnt].iov_base = (void *) time->wdate_fmt;
   iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1)
                           * sizeof (uint32_t));
@@ -922,7 +906,7 @@ time_output (struct localedef_t *locale, const struct charmap_t *charmap,
   assert (cnt == (_NL_ITEM_INDEX (_NL_NUM_LC_TIME)
 		  + time->num_era - 1
 		  + 2 * 99
-		  + 2 + time->num_era * 10));
+		  + 2 + time->num_era * 10 - 1));
   assert (last_idx  == _NL_ITEM_INDEX (_NL_NUM_LC_TIME));
 
   write_locale_data (output_path, LC_TIME, "LC_TIME", 2 + cnt, iov);
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index 6587f7305b..233799a87d 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1996-2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -214,6 +216,12 @@ lr_token (struct linereader *lr, const struct charmap_t *charmap,
 	}
       while (isspace (ch));
 
+      if (ch == EOF)
+	{
+	  lr->token.tok = tok_eof;
+	  return &lr->token;
+	};
+
       if (ch != lr->comment_char)
 	break;
 
@@ -339,8 +347,8 @@ get_toplvl_escape (struct linereader *lr)
   /* This is supposed to be a numeric value.  We return the
      numerical value and the number of bytes.  */
   size_t start_idx = lr->idx - 1;
-  unsigned char *bytes = lr->token.val.charcode.bytes;
-  size_t nbytes = 0;
+  char *bytes = lr->token.val.charcode.bytes;
+  int nbytes = 0;
   int ch;
 
   do
diff --git a/locale/programs/linereader.h b/locale/programs/linereader.h
index d4d7e830a6..27043b2456 100644
--- a/locale/programs/linereader.h
+++ b/locale/programs/linereader.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _LINEREADER_H
 #define _LINEREADER_H 1
diff --git a/locale/programs/locale-spec.c b/locale/programs/locale-spec.c
index 6ad3d95efe..a1a3aba47f 100644
--- a/locale/programs/locale-spec.c
+++ b/locale/programs/locale-spec.c
@@ -1,20 +1,22 @@
 /* Handle special requests.
-   Copyright (C) 1996, 1997, 1999, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index a03974e8a1..adf9944578 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -1,20 +1,22 @@
 /* Implementation of the locale program according to POSIX 9945-2.
-   Copyright (C) 1995-1997, 1999-2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997, 1999-2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -275,7 +277,7 @@ print_version (FILE *stream, struct argp_state *state)
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2006");
+"), "2004");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }
 
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 9c3acbebcc..28cb7b316e 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-2004, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -243,7 +245,7 @@ main (int argc, char *argv[])
 FATAL: system does not define `_POSIX2_LOCALEDEF'")));
 
   /* Process charmap file.  */
-  charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1);
+  charmap = charmap_read (charmap_file, verbose, be_quiet, 1);
 
   /* Add the first entry in the locale list.  */
   memset (&global, '\0', sizeof (struct localedef_t));
@@ -288,7 +290,7 @@ cannot write output files to `%s'"), output_path));
     }
   else
     WITH_CUR_LOCALE (error (4, 0, _("\
-no output file produced because warnings were issued")));
+no output file produced because warning were issued")));
 
   /* This exit status is prescribed by POSIX.2 4.35.7.  */
   exit (error_message_count != 0);
@@ -387,7 +389,7 @@ print_version (FILE *stream, struct argp_state *state)
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2006");
+"), "2004");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }
 
@@ -530,7 +532,7 @@ normalize_codeset (codeset, name_len)
 
 
 struct localedef_t *
-add_to_readlist (int category, const char *name, const char *repertoire_name,
+add_to_readlist (int locale, const char *name, const char *repertoire_name,
 		 int generate, struct localedef_t *copy_locale)
 {
   struct localedef_t *runp = locales;
@@ -561,39 +563,39 @@ add_to_readlist (int category, const char *name, const char *repertoire_name,
     }
 
   if (generate
-      && (runp->needed & (1 << category)) != 0
-      && (runp->avail & (1 << category)) == 0)
+      && (runp->needed & (1 << locale)) != 0
+      && (runp->avail & (1 << locale)) == 0)
     WITH_CUR_LOCALE (error (5, 0, _("\
 circular dependencies between locale definitions")));
 
   if (copy_locale != NULL)
     {
-      if (runp->categories[category].generic != NULL)
+      if (runp->categories[locale].generic != NULL)
 	WITH_CUR_LOCALE (error (5, 0, _("\
 cannot add already read locale `%s' a second time"), name));
       else
-	runp->categories[category].generic =
-	  copy_locale->categories[category].generic;
+	runp->categories[locale].generic =
+	  copy_locale->categories[locale].generic;
     }
 
-  runp->needed |= 1 << category;
+  runp->needed |= 1 << locale;
 
   return runp;
 }
 
 
 struct localedef_t *
-find_locale (int category, const char *name, const char *repertoire_name,
+find_locale (int locale, const char *name, const char *repertoire_name,
 	     const struct charmap_t *charmap)
 {
   struct localedef_t *result;
 
   /* Find the locale, but do not generate it since this would be a bug.  */
-  result = add_to_readlist (category, name, repertoire_name, 0, NULL);
+  result = add_to_readlist (locale, name, repertoire_name, 0, NULL);
 
   assert (result != NULL);
 
-  if ((result->avail & (1 << category)) == 0
+  if ((result->avail & (1 << locale)) == 0
       && locfile_read (result, charmap) != 0)
     WITH_CUR_LOCALE (error (4, errno, _("\
 cannot open locale definition file `%s'"), result->name));
@@ -603,17 +605,17 @@ cannot open locale definition file `%s'"), result->name));
 
 
 struct localedef_t *
-load_locale (int category, const char *name, const char *repertoire_name,
+load_locale (int locale, const char *name, const char *repertoire_name,
 	     const struct charmap_t *charmap, struct localedef_t *copy_locale)
 {
   struct localedef_t *result;
 
   /* Generate the locale if it does not exist.  */
-  result = add_to_readlist (category, name, repertoire_name, 1, copy_locale);
+  result = add_to_readlist (locale, name, repertoire_name, 1, copy_locale);
 
   assert (result != NULL);
 
-  if ((result->avail & (1 << category)) == 0
+  if ((result->avail & (1 << locale)) == 0
       && locfile_read (result, charmap) != 0)
     WITH_CUR_LOCALE (error (4, errno, _("\
 cannot open locale definition file `%s'"), result->name));
diff --git a/locale/programs/localedef.h b/locale/programs/localedef.h
index f8cc4ca9c1..41f72860d4 100644
--- a/locale/programs/localedef.h
+++ b/locale/programs/localedef.h
@@ -1,20 +1,22 @@
 /* General definitions for localedef(1).
-   Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _LOCALEDEF_H
 #define _LOCALEDEF_H	1
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index 5c0d5f18ce..1a1c7701d1 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
diff --git a/locale/programs/locfile-kw.gperf b/locale/programs/locfile-kw.gperf
index efdb9afab9..7a9285d97e 100644
--- a/locale/programs/locfile-kw.gperf
+++ b/locale/programs/locfile-kw.gperf
@@ -1,20 +1,22 @@
 %{
-/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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 <string.h>
 
diff --git a/locale/programs/locfile-kw.h b/locale/programs/locfile-kw.h
index 6ec2134cdd..da4a63e033 100644
--- a/locale/programs/locfile-kw.h
+++ b/locale/programs/locfile-kw.h
@@ -1,64 +1,35 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
-/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash locfile-kw.gperf  */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
-      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
-      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
-      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
-      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
-      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
-      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
-      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
-      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
-      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
-      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
-      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
-      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
-      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
-      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
-      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
-      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
-      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
-      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
-      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
-      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
-      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
-      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646.  */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-#line 1 "locfile-kw.gperf"
-
-/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash programs/locfile-kw.gperf  */
+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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 <string.h>
 
 #include "locfile-token.h"
-#line 23 "locfile-kw.gperf"
 struct keyword_t ;
 
 #define TOTAL_KEYWORDS 175
 #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 687
+/* maximum key range = 685, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -72,51 +43,49 @@ hash (register const char *str, register unsigned int len)
 {
   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
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+        5,   0, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688,  15, 688,   0,   0,   0,
+        5,   0,   0,   0, 688, 688,   0, 688,   0,   5,
+      688, 688,  15,   0,   5,  15, 688, 688, 688,   0,
+      688, 688, 688, 688, 688,  75, 688,   0,   0,  65,
+        5,   0,  85,  40,   5, 155, 688,  10, 105, 120,
+      125,  35,   5,  20,   5, 190,   0, 125,  35,  10,
+       30,  35,   0, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+      688, 688, 688, 688, 688, 688
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
+      case 9:
         hval += asso_values[(unsigned char)str[8]];
-      /*FALLTHROUGH*/
       case 8:
       case 7:
       case 6:
       case 5:
         hval += asso_values[(unsigned char)str[4]];
-      /*FALLTHROUGH*/
       case 4:
       case 3:
       case 2:
         hval += asso_values[(unsigned char)str[1]];
-      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -133,470 +102,314 @@ locfile_hash (register const char *str, register unsigned int len)
   static const struct keyword_t wordlist[] =
     {
       {""}, {""}, {""},
-#line 30 "locfile-kw.gperf"
       {"END",                    tok_end,                    0},
-      {""}, {""},
-#line 69 "locfile-kw.gperf"
-      {"IGNORE",                 tok_ignore,                 0},
-#line 127 "locfile-kw.gperf"
+      {""}, {""}, {""},
       {"LC_TIME",                tok_lc_time,                0},
-#line 29 "locfile-kw.gperf"
-      {"LC_CTYPE",               tok_lc_ctype,               0},
-      {""},
-#line 164 "locfile-kw.gperf"
+      {"era",                    tok_era,                    0},
+      {"date",                   tok_date,                   0},
       {"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},
-#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"
-      {"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"
+      {"LC_CTYPE",               tok_lc_ctype,               0},
+      {"era_t_fmt",              tok_era_t_fmt,              0},
+      {"print",                  tok_print,                  0},
       {"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},
+      {"LC_IDENTIFICATION",      tok_lc_identification,      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"
+      {"era_d_fmt",              tok_era_d_fmt,              0},
+      {"LC_COLLATE",             tok_lc_collate,             0},
+      {"IGNORE",                 tok_ignore,                 0},
+      {"LC_NAME",                tok_lc_name,                0},
+      {"backward",               tok_backward,               0},
+      {"week",                   tok_week,                   0},
+      {"LC_NUMERIC",             tok_lc_numeric,             0},
       {"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},
+      {"reorder-after",          tok_reorder_after,          0},
+      {"UNDEFINED",              tok_undefined,              0},
       {""},
-#line 73 "locfile-kw.gperf"
-      {"reorder-sections-end",   tok_reorder_sections_end,   0},
-      {""}, {""}, {""},
-#line 93 "locfile-kw.gperf"
-      {"n_sep_by_space",         tok_n_sep_by_space,         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},
+      {"LC_MONETARY",            tok_lc_monetary,            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},
-#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"
-      {"class",                  tok_class,                  0},
-#line 112 "locfile-kw.gperf"
-      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
-#line 113 "locfile-kw.gperf"
-      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
-#line 109 "locfile-kw.gperf"
-      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
-#line 117 "locfile-kw.gperf"
-      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
+      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
       {""}, {""}, {""},
-#line 47 "locfile-kw.gperf"
-      {"charconv",               tok_charconv,               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},
+      {"LC_PAPER",               tok_lc_paper,               0},
       {""}, {""}, {""}, {""},
-#line 137 "locfile-kw.gperf"
-      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
-      {""}, {""},
-#line 97 "locfile-kw.gperf"
-      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
-      {""},
-#line 41 "locfile-kw.gperf"
-      {"graph",                  tok_graph,                  0},
+      {"day",                    tok_day,                    0},
       {""}, {""},
-#line 124 "locfile-kw.gperf"
-      {"decimal_point",          tok_decimal_point,          0},
+      {"yesstr",                 tok_yesstr,                 0},
+      {""}, {""}, {""}, {""}, {""},
+      {"toupper",                tok_toupper,                0},
+      {"era_year",               tok_era_year,               0},
       {""}, {""},
-#line 110 "locfile-kw.gperf"
-      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
-#line 111 "locfile-kw.gperf"
-      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
-#line 107 "locfile-kw.gperf"
-      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
-#line 116 "locfile-kw.gperf"
-      {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
-#line 153 "locfile-kw.gperf"
-      {"nostr",                  tok_nostr,                  0},
+      {"order_start",            tok_order_start,            0},
+      {"tolower",                tok_tolower,                0},
       {""}, {""},
-#line 138 "locfile-kw.gperf"
-      {"era",                    tok_era,                    0},
+      {"graph",                  tok_graph,                  0},
+      {""}, {""}, {""},
+      {"order_end",              tok_order_end,              0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-#line 82 "locfile-kw.gperf"
-      {"currency_symbol",        tok_currency_symbol,        0},
+      {"abday",                  tok_abday,                  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},
+      {"yesexpr",                tok_yesexpr,                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},
+      {"t_fmt",                  tok_t_fmt,                  0},
+      {""}, {""}, {""}, {""},
+      {"d_fmt",                  tok_d_fmt,                  0},
       {""}, {""},
-#line 148 "locfile-kw.gperf"
       {"date_fmt",               tok_date_fmt,               0},
-#line 63 "locfile-kw.gperf"
-      {"order_end",              tok_order_end,              0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"grouping",               tok_grouping,               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},
+      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
+      {""}, {""}, {""}, {""},
+      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
+      {"contact",                tok_contact,                0},
+      {"tel",                    tok_tel,                    0},
+      {"else",                   tok_else,                   0},
+      {"alpha",                  tok_alpha,                  0},
+      {"country_ab3",            tok_country_ab3,            0},
+      {""}, {""}, {""}, {""},
+      {"country_ab2",            tok_country_ab2,            0},
+      {"country_post",           tok_country_post,           0},
+      {"fax",                    tok_fax,                    0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"map",                    tok_map,                    0},
       {""},
-#line 194 "locfile-kw.gperf"
+      {"blank",                  tok_blank,                  0},
+      {""},
+      {"forward",                tok_forward,                0},
       {"audience",               tok_audience,               0},
       {""},
-#line 44 "locfile-kw.gperf"
-      {"blank",                  tok_blank,                  0},
+      {"punct",                  tok_punct,                  0},
+      {"define",                 tok_define,                 0},
+      {"abbreviation",           tok_abbreviation,           0},
       {""},
-#line 48 "locfile-kw.gperf"
-      {"toupper",                tok_toupper,                0},
-#line 67 "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"
-      {"cntrl",                  tok_cntrl,                  0},
+      {"copy",                   tok_copy,                   0},
+      {""}, {""}, {""},
+      {"decimal_point",          tok_decimal_point,          0},
       {""},
-#line 26 "locfile-kw.gperf"
-      {"comment_char",           tok_comment_char,           0},
-#line 86 "locfile-kw.gperf"
-      {"positive_sign",          tok_positive_sign,          0},
-      {""}, {""}, {""}, {""},
-#line 132 "locfile-kw.gperf"
-      {"mon",                    tok_mon,                    0},
+      {"upper",                  tok_upper,                  0},
       {""}, {""},
-#line 171 "locfile-kw.gperf"
-      {"country_car",            tok_country_car,            0},
+      {"category",               tok_category,               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},
+      {"conversion_rate",        tok_conversion_rate,        0},
+      {""}, {""}, {""}, {""},
+      {"lower",                  tok_lower,                  0},
       {""},
-#line 114 "locfile-kw.gperf"
-      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
+      {"collating-element",      tok_collating_element,      0},
+      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
       {""},
-#line 133 "locfile-kw.gperf"
-      {"d_t_fmt",                tok_d_t_fmt,                0},
+      {"title",                  tok_title,                  0},
       {""}, {""},
-#line 33 "locfile-kw.gperf"
-      {"lower",                  tok_lower,                  0},
+      {"timezone",               tok_timezone,               0},
       {""},
-#line 167 "locfile-kw.gperf"
-      {"country_post",           tok_country_post,           0},
-#line 146 "locfile-kw.gperf"
-      {"cal_direction",          tok_cal_direction,          0},
+      {"digit",                  tok_digit,                  0},
+      {""}, {""}, {""}, {""},
+      {"postal_fmt",             tok_postal_fmt,             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"
+      {"d_t_fmt",                tok_d_t_fmt,                0},
+      {"position",               tok_position,               0},
+      {"p_sep_by_space",         tok_p_sep_by_space,         0},
+      {"nostr",                  tok_nostr,                  0},
+      {"noexpr",                 tok_noexpr,                 0},
+      {""},
+      {"charconv",               tok_charconv,               0},
+      {""},
+      {"width",                  tok_width,                  0},
+      {"country_car",            tok_country_car,            0},
+      {"comment_char",           tok_comment_char,           0},
+      {""}, {""}, {""}, {""},
+      {"lang_ab",                tok_lang_ab,                0},
+      {"lang_lib",               tok_lang_lib,               0},
       {"lang_name",              tok_lang_name,              0},
+      {""}, {""}, {""}, {""},
+      {"elif",                   tok_elif,                   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},
+      {"xdigit",                 tok_xdigit,                 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},
+      {"space",                  tok_space,                  0},
+      {""},
+      {"address",                tok_address,                0},
       {""}, {""}, {""}, {""}, {""},
-#line 50 "locfile-kw.gperf"
-      {"map",                    tok_map,                    0},
+      {"name_fmt",               tok_name_fmt,               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},
+      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
+      {""},
+      {"name_mr",                tok_name_mr,                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},
+      {""},
+      {"escape_char",            tok_escape_char,            0},
+      {"duo_valid_to",           tok_duo_valid_to,           0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"reorder-sections-end",   tok_reorder_sections_end,   0},
+      {""},
+      {"reorder-sections-after", tok_reorder_sections_after, 0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"territory",              tok_territory,              0},
       {""}, {""},
-#line 192 "locfile-kw.gperf"
+      {"country_name",           tok_country_name,           0},
       {"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},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"tel_int_fmt",            tok_tel_int_fmt,            0},
+      {"mon_grouping",           tok_mon_grouping,           0},
+      {"positive_sign",          tok_positive_sign,          0},
       {""},
-#line 196 "locfile-kw.gperf"
-      {"abbreviation",           tok_abbreviation,           0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 56 "locfile-kw.gperf"
+      {"abmon",                  tok_abmon,                  0},
+      {"measurement",            tok_measurement,            0},
+      {""}, {""}, {""},
       {"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},
+      {"collating-symbol",       tok_collating_symbol,       0},
+      {""}, {""}, {""}, {""},
+      {"script",                 tok_script,                 0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"cal_direction",          tok_cal_direction,          0},
+      {""}, {""}, {""}, {""},
+      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
+      {""}, {""}, {""}, {""},
+      {"mon",                    tok_mon,                    0},
+      {"translit_start",         tok_translit_start,         0},
+      {"translit_ignore",        tok_translit_ignore,        0},
       {""},
-#line 94 "locfile-kw.gperf"
+      {"translit_end",           tok_translit_end,           0},
+      {"first_weekday",          tok_first_weekday,          0},
+      {""}, {""},
       {"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},
+      {"first_workday",          tok_first_workday,          0},
+      {"n_sep_by_space",         tok_n_sep_by_space,         0},
       {""},
-#line 83 "locfile-kw.gperf"
+      {"source",                 tok_source,                 0},
       {"mon_decimal_point",      tok_mon_decimal_point,      0},
+      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+      {""},
+      {"endif",                  tok_endif,                  0},
       {""}, {""}, {""},
-#line 62 "locfile-kw.gperf"
-      {"order_start",            tok_order_start,            0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"duo_valid_from",         tok_duo_valid_from,         0},
+      {"default_missing",        tok_default_missing,        0},
+      {""}, {""},
+      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
       {""},
-#line 188 "locfile-kw.gperf"
-      {"contact",                tok_contact,                0},
+      {"alt_digits",             tok_alt_digits,             0},
+      {""},
+      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
+      {""}, {""},
+      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
       {""}, {""}, {""},
-#line 169 "locfile-kw.gperf"
-      {"country_ab3",            tok_country_ab3,            0},
+      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+      {""}, {""}, {""},
+      {"outdigit",               tok_outdigit,               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},
+      {"revision",               tok_revision,               0},
       {""}, {""}, {""}, {""},
-#line 191 "locfile-kw.gperf"
-      {"fax",                    tok_fax,                    0},
+      {"name_gen",               tok_name_gen,               0},
       {""},
-#line 136 "locfile-kw.gperf"
-      {"am_pm",                  tok_am_pm,                  0},
+      {"email",                  tok_email,                  0},
+      {""},
+      {"uno_valid_to",           tok_uno_valid_to,           0},
+      {"negative_sign",          tok_negative_sign,          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},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"country_num",            tok_country_num,            0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"am_pm",                  tok_am_pm,                  0},
+      {""},
+      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"currency_symbol",        tok_currency_symbol,        0},
       {""}, {""}, {""}, {""}, {""}, {""},
-#line 75 "locfile-kw.gperf"
+      {"country_isbn",           tok_country_isbn,           0},
+      {""}, {""}, {""}, {""},
+      {"name_ms",                tok_name_ms,                0},
+      {"name_mrs",               tok_name_mrs,               0},
+      {""}, {""}, {""}, {""},
+      {"thousands_sep",          tok_thousands_sep,          0},
+      {""},
+      {"cntrl",                  tok_cntrl,                  0},
+      {""}, {""}, {""}, {""}, {""},
+      {"n_sign_posn",            tok_n_sign_posn,            0},
+      {"include",                tok_include,                0},
+      {""}, {""},
+      {"ifdef",                  tok_ifdef,                  0},
+      {""},
+      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
+      {""}, {""}, {""}, {""}, {""},
+      {"p_cs_precedes",          tok_p_cs_precedes,          0},
+      {"uno_valid_from",         tok_uno_valid_from,         0},
       {"undef",                  tok_undef,                  0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-#line 58 "locfile-kw.gperf"
-      {"collating-element",      tok_collating_element,      0},
+      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
+      {"lang_term",              tok_lang_term,              0},
+      {""}, {""},
+      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
+      {""},
+      {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
+      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"application",            tok_application,            0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
+      {""}, {""}, {""}, {""}, {""},
+      {"int_prefix",             tok_int_prefix,             0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-#line 85 "locfile-kw.gperf"
-      {"mon_grouping",           tok_mon_grouping,           0},
+      {""}, {""}, {""}, {""}, {""},
+      {"duo_frac_digits",        tok_duo_frac_digits,        0},
+      {""}, {""}, {""}, {""}, {""},
+      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-#line 65 "locfile-kw.gperf"
-      {"forward",                tok_forward,                0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"frac_digits",            tok_frac_digits,            0},
+      {""}, {""},
+      {"charclass",              tok_charclass,              0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 59 "locfile-kw.gperf"
-      {"collating-symbol",       tok_collating_symbol,       0},
+      {""}, {""}, {""},
+      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
+      {""}, {""},
+      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+      {""}, {""},
+      {"n_cs_precedes",          tok_n_cs_precedes,          0},
+      {""},
+      {"int_select",             tok_int_select,             0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
+      {"class",                  tok_class,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-#line 34 "locfile-kw.gperf"
-      {"alpha",                  tok_alpha,                  0},
+      {""}, {""},
+      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
+      {""}, {""}, {""}, {""}, {""},
+      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
+      {""}, {""}, {""},
+      {"name_miss",              tok_name_miss,              0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"int_frac_digits",        tok_int_frac_digits,        0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"section-symbol",         tok_section_symbol,         0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 76 "locfile-kw.gperf"
-      {"ifdef",                  tok_ifdef,                  0}
+      {""}, {""}, {""}, {""}, {""},
+      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/locale/programs/locfile-token.h b/locale/programs/locfile-token.h
index beb979c632..cada206655 100644
--- a/locale/programs/locfile-token.h
+++ b/locale/programs/locfile-token.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _TOKEN_H
 #define _TOKEN_H
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index ae8ce73ce4..1d3276a6bf 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1996-2004, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -155,11 +157,10 @@ argument to `%s' must be a single character"),
 
 	  if (repertoire_name == NULL)
 	    {
-	      char *newp = alloca (arg->val.str.lenmb + 1);
-
-	      *((char *) mempcpy (newp, arg->val.str.startmb,
-				  arg->val.str.lenmb)) = '\0';
-	      repertoire_name = newp;
+	      repertoire_name = memcpy (xmalloc (arg->val.str.lenmb + 1),
+					arg->val.str.startmb,
+					arg->val.str.lenmb);
+	      ((char *) repertoire_name)[arg->val.str.lenmb] = '\0';
 	    }
 	  break;
 
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
index f6290f0ee0..db34f462e3 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _LOCFILE_H
 #define _LOCFILE_H	1
diff --git a/locale/programs/repertoire.c b/locale/programs/repertoire.c
index e9bdf9e7ba..933b88f5cd 100644
--- a/locale/programs/repertoire.c
+++ b/locale/programs/repertoire.c
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998-2002,2004,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -328,7 +330,7 @@ argument to <%s> must be a single character"),
 
   if (tsearch (result, &known, &repertoire_compare) == NULL)
     /* Something went wrong.  */
-    WITH_CUR_LOCALE (error (0, errno, _("cannot save new repertoire map")));
+    WITH_CUR_LOCALE (error (0, errno, _("cannot safe new repertoire map")));
 
   return result;
 }
diff --git a/locale/programs/repertoire.h b/locale/programs/repertoire.h
index 75877044ca..d463c81690 100644
--- a/locale/programs/repertoire.h
+++ b/locale/programs/repertoire.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _REPERTOIREMAP_H
 #define _REPERTOIREMAP_H	1
diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
index de8998cc7a..c319068677 100644
--- a/locale/programs/simple-hash.c
+++ b/locale/programs/simple-hash.c
@@ -1,20 +1,22 @@
 /* Implement simple hashing table with string based keys.
-   Copyright (C) 1994-1997,2000,2001,2002,2005 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, October 1994.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -146,13 +148,13 @@ insert_entry_2 (htab, key, keylen, hval, idx, data)
   if ((hash_entry *) htab->first == NULL)
     {
       table[idx].next = &table[idx];
-      htab->first = &table[idx];
+      *(hash_entry **) &htab->first = &table[idx];
     }
   else
     {
       table[idx].next = ((hash_entry *) htab->first)->next;
       ((hash_entry *) htab->first)->next = &table[idx];
-      htab->first = &table[idx];
+      *(hash_entry **) &htab->first = &table[idx];
     }
 
   ++htab->filled;
diff --git a/locale/programs/simple-hash.h b/locale/programs/simple-hash.h
index 7261ebc396..469caedc19 100644
--- a/locale/programs/simple-hash.h
+++ b/locale/programs/simple-hash.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995-1999, 2001, 2002, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifndef _SIMPLE_HASH_H
 #define _SIMPLE_HASH_H
diff --git a/locale/programs/xmalloc.c b/locale/programs/xmalloc.c
index a95dc5a40f..9f3c2c1cd1 100644
--- a/locale/programs/xmalloc.c
+++ b/locale/programs/xmalloc.c
@@ -1,20 +1,21 @@
 /* xmalloc.c -- malloc with out of memory checking
-   Copyright (C) 1990,91,92,93,94,95,96,97,2004,2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1990,91,92,93,94,95,96,97,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
diff --git a/locale/programs/xstrdup.c b/locale/programs/xstrdup.c
index 12fb3a8287..7838d201ab 100644
--- a/locale/programs/xstrdup.c
+++ b/locale/programs/xstrdup.c
@@ -1,19 +1,21 @@
 /* xstrdup.c -- copy a string with out of memory checking
-   Copyright (C) 1990,1996,1997,1999,2004,2005 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1996, 1997, 1999, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
+   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.
 
-   This program is distributed in the hope that it will be useful,
+   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 General Public License for more details.
+   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 General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>