summary refs log tree commit diff
path: root/locale/programs
diff options
context:
space:
mode:
Diffstat (limited to 'locale/programs')
-rw-r--r--locale/programs/charmap-kw.gperf30
-rw-r--r--locale/programs/charmap-kw.h38
-rw-r--r--locale/programs/charmap.c6
-rw-r--r--locale/programs/charset.c36
-rw-r--r--locale/programs/charset.h7
-rw-r--r--locale/programs/ld-collate.c13
-rw-r--r--locale/programs/ld-ctype.c107
-rw-r--r--locale/programs/ld-messages.c38
-rw-r--r--locale/programs/ld-monetary.c45
-rw-r--r--locale/programs/ld-numeric.c10
-rw-r--r--locale/programs/ld-time.c60
-rw-r--r--locale/programs/linereader.h36
-rw-r--r--locale/programs/locale-spec.c36
-rw-r--r--locale/programs/localedef.c12
-rw-r--r--locale/programs/locales.h36
-rw-r--r--locale/programs/locfile-kw.gperf30
-rw-r--r--locale/programs/locfile-kw.h30
-rw-r--r--locale/programs/locfile-token.h37
-rw-r--r--locale/programs/locfile.c8
-rw-r--r--locale/programs/locfile.h6
-rw-r--r--locale/programs/simple-hash.h34
-rw-r--r--locale/programs/stringtrans.c36
-rw-r--r--locale/programs/stringtrans.h36
23 files changed, 378 insertions, 349 deletions
diff --git a/locale/programs/charmap-kw.gperf b/locale/programs/charmap-kw.gperf
index 8e00103882..1fb9c38b04 100644
--- a/locale/programs/charmap-kw.gperf
+++ b/locale/programs/charmap-kw.gperf
@@ -1,22 +1,22 @@
 %{
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   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
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  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 Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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 93326d0382..3bfcd14612 100644
--- a/locale/programs/charmap-kw.h
+++ b/locale/programs/charmap-kw.h
@@ -1,23 +1,23 @@
 /* C code produced by gperf version 2.5 (GNU C++ version) */
 /* Command-line: gperf -acCgopt -k1,2,5,$ -N charmap_hash programs/charmap-kw.gperf  */
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   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
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  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 Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
@@ -59,16 +59,16 @@ hash (register const char *str, register int len)
     {
       default:
       case 5:
-        hval += asso_values[(int) str[4]];
+        hval += asso_values[str[4]];
       case 4:
       case 3:
       case 2:
-        hval += asso_values[(int) str[1]];
+        hval += asso_values[str[1]];
       case 1:
-        hval += asso_values[(int) str[0]];
+        hval += asso_values[str[0]];
         break;
     }
-  return hval + asso_values[(int) str[len - 1]];
+  return hval + asso_values[str[len - 1]];
 }
 
 #ifdef __GNUC__
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 6b4ebb4a60..37b6cdef96 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -72,7 +72,7 @@ charmap_read (const char *filename)
 
       result = parse_charmap (pathnfile);
 
-      if (result == NULL)
+      if (result == NULL && !be_quiet)
 	error (0, errno, _("character map file `%s' not found"), filename);
     }
 
@@ -171,7 +171,7 @@ parse_charmap (const char *filename)
 		result->mb_cur_max = 1;
 	      if (result->mb_cur_min == 0)
 		result->mb_cur_min = result->mb_cur_max;
-	      if (result->mb_cur_min > result->mb_cur_max)
+	      if (result->mb_cur_min > result->mb_cur_max && !be_quiet)
 		{
 		  error (0, 0, _("\
 %s: <mb_cur_max> must be greater than <mb_cur_min>\n"),
@@ -596,7 +596,7 @@ only WIDTH definitions are allowed to follow the CHARMAP definition"));
       break;
     }
 
-  if (state != 91)
+  if (state != 91 && !be_quiet)
     error (0, 0, _("%s: premature end of file"), cmfile->fname);
 
   lr_close (cmfile);
diff --git a/locale/programs/charset.c b/locale/programs/charset.c
index a7f988d3a5..00233abf8f 100644
--- a/locale/programs/charset.c
+++ b/locale/programs/charset.c
@@ -1,21 +1,21 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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/charset.h b/locale/programs/charset.h
index eccce9102f..82c4ef0c57 100644
--- a/locale/programs/charset.h
+++ b/locale/programs/charset.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -56,6 +56,9 @@ struct charset_t
 #define ILLEGAL_CHAR_VALUE ((wchar_t) 0xffffffffu)
 
 
+/* Declared in localedef.c.  */
+extern int be_quiet;
+
 /* Prototypes for charmap handling functions.  */
 struct charset_t *charmap_read (const char *filename);
 
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index d4b0f2b903..3a8c17a303 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -239,7 +239,7 @@ collate_finish (struct localedef_t *locale, struct charset_t *charset)
       else
 	value = 0;
 
-      if (value == 0)
+      if (value == 0 && !be_quiet)
 	error_at_line (0, 0, patch->fname, patch->lineno,
 		       _("no weight defined for symbol `%s'"), patch->token);
       else
@@ -256,7 +256,8 @@ collate_finish (struct localedef_t *locale, struct charset_t *charset)
       \**************************************************************/
       u_int32_t weight;
 
-      error (0, 0, _("no definition of `UNDEFINED'"));
+      if (!be_quiet)
+	error (0, 0, _("no definition of `UNDEFINED'"));
 
       collate->undefined.ordering_len = collate->nrules;
       weight = ++collate->order_cnt;
@@ -324,9 +325,10 @@ collate_output (struct localedef_t *locale, struct charset_t *charset,
   level_best = 0xffff;
 
   /* Compute table size.  */
-  fputs (_("\
+  if (!be_quiet)
+    fputs (_("\
 Computing table size for collation information might take a while..."),
-	 stderr);
+	   stderr);
   for (table_size = 256; table_size < sum_best; ++table_size)
     {
       size_t hits[table_size];
@@ -357,7 +359,8 @@ Computing table size for collation information might take a while..."),
 	}
     }
   assert (table_best != 0xffff || level_best != 0xffff);
-  fputs (_(" done\n"), stderr);
+  if (!be_quiet)
+    fputs (_(" done\n"), stderr);
 
   obstack_init (&non_simple);
   obstack_init (&string_pool);
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index fb352e53ed..5f1bc48f89 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1,21 +1,21 @@
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   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
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  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 Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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>
@@ -262,10 +262,11 @@ ctype_finish (struct localedef_t *locale, struct charset_t *charset)
 			  cp += sprintf (cp, "\\%o", (value >> 8) & 0xff);
 			sprintf (cp, "\\%o", value & 0xff);
 
-			error (0, 0, _("\
+			if (!be_quiet)
+			  error (0, 0, _("\
 character %s'%s' in class `%s' must be in class `%s'"), value > 256 ? "L" : "",
-			       cp, valid_table[cls1].name,
-			       valid_table[cls2].name);
+				 cp, valid_table[cls1].name,
+				 valid_table[cls2].name);
 		      }
 		    break;
 
@@ -286,10 +287,12 @@ character %s'%s' in class `%s' must be in class `%s'"), value > 256 ? "L" : "",
 			  cp += sprintf (cp, "\\%o", (value >> 8) & 0xff);
 			sprintf (cp, "\\%o", value & 0xff);
 
-			error (0, 0, _("\
+			if (!be_quiet)
+			  error (0, 0, _("\
 character %s'%s' in class `%s' must not be in class `%s'"),
-			       value > 256 ? "L" : "", cp,
-			       valid_table[cls1].name, valid_table[cls2].name);
+				 value > 256 ? "L" : "", cp,
+				 valid_table[cls1].name,
+				 valid_table[cls2].name);
 		      }
 		    break;
 
@@ -306,23 +309,25 @@ character %s'%s' in class `%s' must not be in class `%s'"),
 
   /* ... and now test <SP> as a special case.  */
   space_value = charset_find_value (charset, "SP", 2);
-  if ((wchar_t) space_value == ILLEGAL_CHAR_VALUE)
+  if ((wchar_t) space_value == ILLEGAL_CHAR_VALUE && !be_quiet)
     error (0, 0, _("character <SP> not defined in character map"));
-  else if ((cnt = BITPOS (tok_space),
-            (ELEM (ctype, class_collection, , space_value)
-	     & BIT (tok_space)) == 0)
-           || (cnt = BITPOS (tok_blank),
-               (ELEM (ctype, class_collection, , space_value)
-		& BIT (tok_blank)) == 0))
+  else if (((cnt = BITPOS (tok_space),
+	     (ELEM (ctype, class_collection, , space_value)
+	      & BIT (tok_space)) == 0)
+	    || (cnt = BITPOS (tok_blank),
+		(ELEM (ctype, class_collection, , space_value)
+		 & BIT (tok_blank)) == 0))
+	   && !be_quiet)
     error (0, 0, _("<SP> character not in class `%s'"),
            valid_table[cnt].name);
-  else if ((cnt = BITPOS (tok_punct),
-            (ELEM (ctype, class_collection, , space_value)
-	     & BIT (tok_punct)) != 0)
-           || (cnt = BITPOS (tok_graph),
-               (ELEM (ctype, class_collection, , space_value)
-		& BIT (tok_graph))
-	       != 0))
+  else if (((cnt = BITPOS (tok_punct),
+	     (ELEM (ctype, class_collection, , space_value)
+	      & BIT (tok_punct)) != 0)
+	    || (cnt = BITPOS (tok_graph),
+		(ELEM (ctype, class_collection, , space_value)
+		 & BIT (tok_graph))
+		!= 0))
+	   && !be_quiet)
     error (0, 0, _("<SP> character must not be in class `%s'"),
            valid_table[cnt].name);
   else
@@ -934,7 +939,7 @@ set_class_defaults (struct locale_ctype_t *ctype, struct charset_t *charset)
 	  tmp[0] = ch;
 
 	  value = charset_find_value (charset, tmp, 1);
-	  if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+	  if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	    {
 	      error (0, 0, _("\
 character `%s' not defined while needed as default value"),
@@ -998,7 +1003,7 @@ character `%s' not defined while needed as default value"),
       unsigned int value;
 
       value = charset_find_value (charset, "space", 5);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<space>");
@@ -1006,7 +1011,7 @@ character `%s' not defined while needed as default value"),
 	ELEM (ctype, class_collection, , value) |= BIT (tok_space);
 
       value = charset_find_value (charset, "form-feed", 9);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<form-feed>");
@@ -1014,7 +1019,7 @@ character `%s' not defined while needed as default value"),
 	ELEM (ctype, class_collection, , value) |= BIT (tok_space);
 
       value = charset_find_value (charset, "newline", 7);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<newline>");
@@ -1022,7 +1027,7 @@ character `%s' not defined while needed as default value"),
 	ELEM (ctype, class_collection, , value) |= BIT (tok_space);
 
       value = charset_find_value (charset, "carriage-return", 15);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<carriage-return>");
@@ -1030,7 +1035,7 @@ character `%s' not defined while needed as default value"),
 	ELEM (ctype, class_collection, , value) |= BIT (tok_space);
 
       value = charset_find_value (charset, "tab", 3);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<tab>");
@@ -1038,7 +1043,7 @@ character `%s' not defined while needed as default value"),
 	ELEM (ctype, class_collection, , value) |= BIT (tok_space);
 
       value = charset_find_value (charset, "vertical-tab", 12);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<vertical-tab>");
@@ -1064,7 +1069,7 @@ character `%s' not defined while needed as default value"),
       unsigned int value;
 
       value = charset_find_value (charset, "space", 5);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<space>");
@@ -1072,7 +1077,7 @@ character `%s' not defined while needed as default value"),
 	ELEM (ctype, class_collection, , value) |= BIT (tok_blank);
 
       value = charset_find_value (charset, "tab", 3);
-      if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
+      if ((wchar_t) value == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<tab>");
@@ -1110,7 +1115,7 @@ character `%s' not defined while needed as default value"),
 	  ctype->class_collection[cnt] |= BIT (tok_print);
 
       space = charset_find_value (charset, "space", 5);
-      if (space == ILLEGAL_CHAR_VALUE)
+      if (space == ILLEGAL_CHAR_VALUE && !be_quiet)
 	error (0, 0, _("\
 character `%s' not defined while needed as default value"),
 	       "<space>");
@@ -1136,7 +1141,7 @@ character `%s' not defined while needed as default value"),
 	  tmp[1] = (char) ch;
 
 	  value_from = charset_find_value (charset, &tmp[1], 1);
-	  if ((wchar_t) value_from == ILLEGAL_CHAR_VALUE)
+	  if ((wchar_t) value_from == ILLEGAL_CHAR_VALUE && !be_quiet)
 	    {
 	      error (0, 0, _("\
 character `%s' not defined while needed as default value"),
@@ -1147,7 +1152,7 @@ character `%s' not defined while needed as default value"),
 	  /* This conversion is implementation defined.  */
 	  tmp[1] = (char) (ch + ('A' - 'a'));
 	  value_to = charset_find_value (charset, &tmp[1], 1);
-	  if ((wchar_t) value_to == ILLEGAL_CHAR_VALUE)
+	  if ((wchar_t) value_to == ILLEGAL_CHAR_VALUE && !be_quiet)
 	    {
 	      error (0, 0, _("\
 character `%s' not defined while needed as default value"),
@@ -1195,9 +1200,10 @@ allocate_arrays (struct locale_ctype_t *ctype, struct charset_t *charset)
   size_t min_total = UINT_MAX;
   size_t act_size = 256;
 
-  fputs (_("\
+  if (!be_quiet)
+    fputs (_("\
 Computing table size for character classes might take a while..."),
-	 stderr);
+	   stderr);
 
   while (act_size < min_total)
     {
@@ -1232,7 +1238,8 @@ Computing table size for character classes might take a while..."),
       ++act_size;
     }
 
-  fprintf (stderr, _(" done\n"));
+  if (!be_quiet)
+    fputs (_(" done\n"), stderr);
 
 
 #if __BYTE_ORDER == __LITTLE_ENDIAN
diff --git a/locale/programs/ld-messages.c b/locale/programs/ld-messages.c
index ede616768d..31edb47a60 100644
--- a/locale/programs/ld-messages.c
+++ b/locale/programs/ld-messages.c
@@ -1,21 +1,21 @@
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   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
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  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 Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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>
@@ -77,7 +77,7 @@ messages_finish (struct localedef_t *locale)
     = locale->categories[LC_MESSAGES].messages;
 
   /* The fields YESSTR and NOSTR are optional.  */
-  if (messages->yesexpr == NULL)
+  if (messages->yesexpr == NULL && !be_quiet)
     error (0, 0, _("field `%s' in category `%s' undefined"),
 	   "yesexpr", "LC_MESSAGES");
   else
@@ -87,7 +87,7 @@ messages_finish (struct localedef_t *locale)
 
       /* Test whether it are correct regular expressions.  */
       result = regcomp (&re, messages->yesexpr, REG_EXTENDED);
-      if (result != 0)
+      if (result != 0 && !be_quiet)
 	{
 	  char errbuf[BUFSIZ];
 
@@ -98,7 +98,7 @@ no correct regular expression for field `%s' in category `%s': %s"),
 	}
     }
 
-  if (messages->noexpr == NULL)
+  if (messages->noexpr == NULL && !be_quiet)
     error (0, 0, _("field `%s' in category `%s' undefined"),
 	   "noexpr", "LC_MESSAGES");
   else
@@ -108,7 +108,7 @@ no correct regular expression for field `%s' in category `%s': %s"),
 
       /* Test whether it are correct regular expressions.  */
       result = regcomp (&re, messages->noexpr, REG_EXTENDED);
-      if (result != 0)
+      if (result != 0 && !be_quiet)
 	{
 	  char errbuf[BUFSIZ];
 
diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c
index 5efa969baa..ce83b18dba 100644
--- a/locale/programs/ld-monetary.c
+++ b/locale/programs/ld-monetary.c
@@ -1,21 +1,21 @@
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   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
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  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 Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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>
@@ -115,7 +115,7 @@ monetary_finish (struct localedef_t *locale)
     = locale->categories[LC_MONETARY].monetary;
 
 #define TEST_ELEM(cat)							      \
-  if (monetary->cat == NULL)						      \
+  if (monetary->cat == NULL && !be_quiet)				      \
     error (0, 0, _("field `%s' in category `%s' not defined"),		      \
 	   #cat, "LC_MONETARY")
 
@@ -129,12 +129,13 @@ monetary_finish (struct localedef_t *locale)
   /* The international currency symbol must come from ISO 4217.  */
   if (monetary->int_curr_symbol != NULL)
     {
-      if (strlen (monetary->int_curr_symbol) != 4)
+      if (strlen (monetary->int_curr_symbol) != 4 && !be_quiet)
 	error (0, 0, _("\
 value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"));
       else if (bsearch (monetary->int_curr_symbol, valid_int_curr,
 			NR_VALID_INT_CURR, sizeof (const char *),
-			(comparison_fn_t) curr_strcmp) == NULL)
+			(comparison_fn_t) curr_strcmp) == NULL
+	       && !be_quiet)
 	error (0, 0, _("\
 value of field `int_curr_symbol' in category `LC_MONETARY' does \
 not correspond to a valid name in ISO 4217"));
@@ -143,23 +144,23 @@ not correspond to a valid name in ISO 4217"));
   /* The decimal point must not be empty.  This is not said explicitly
      in POSIX but ANSI C (ISO/IEC 9899) says in 4.4.2.1 it has to be
      != "".  */
-  if (monetary->mon_decimal_point[0] == '\0')
+  if (monetary->mon_decimal_point[0] == '\0' && !be_quiet)
     {
       error (0, 0, _("\
 value for field `%s' in category `%s' must not be the empty string"),
 	     "mon_decimal_point", "LC_MONETARY");
     }
 
-  if (monetary->mon_grouping_act == 0)
+  if (monetary->mon_grouping_act == 0 && !be_quiet)
     error (0, 0, _("field `%s' in category `%s' not defined"),
 	   "mon_grouping", "LC_MONETARY");
 
 #undef TEST_ELEM
 #define TEST_ELEM(cat, min, max)					      \
-  if (monetary->cat == -2)						      \
+  if (monetary->cat == -2 && !be_quiet)					      \
     error (0, 0, _("field `%s' in category `%s' not defined"),		      \
 	   #cat, "LC_MONETARY");					      \
-  else if (monetary->cat < min || monetary->cat > max)			      \
+  else if ((monetary->cat < min || monetary->cat > max) && !be_quiet)	      \
     error (0, 0, _("\
 value for field `%s' in category `%s' must be in range %d...%d"),	      \
 	   #cat, "LC_MONETARY", min, max)
diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c
index 69ea7e0b3e..375635aafc 100644
--- a/locale/programs/ld-numeric.c
+++ b/locale/programs/ld-numeric.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -74,7 +74,7 @@ numeric_finish (struct localedef_t *locale)
   struct locale_numeric_t *numeric = locale->categories[LC_NUMERIC].numeric;
 
 #define TEST_ELEM(cat)							      \
-  if (numeric->cat == NULL)						      \
+  if (numeric->cat == NULL && !be_quiet)				      \
     error (0, 0, _("field `%s' in category `%s' not defined"),		      \
 	   #cat, "LC_NUMERIC")
 
@@ -84,14 +84,14 @@ numeric_finish (struct localedef_t *locale)
   /* The decimal point must not be empty.  This is not said explicitly
      in POSIX but ANSI C (ISO/IEC 9899) says in 4.4.2.1 it has to be
      != "".  */
-  if (numeric->decimal_point[0] == '\0')
+  if (numeric->decimal_point[0] == '\0' && !be_quiet)
     {
       error (0, 0, _("\
 value for field `%s' in category `%s' must not be the empty string"),
 	     "decimal_point", "LC_NUMERIC");
     }
 
-  if (numeric->grouping_act == 0)
+  if (numeric->grouping_act == 0 && !be_quiet)
     error (0, 0, _("field `%s' in category `%s' not defined"),
 	   "grouping", "LC_NUMERIC");
 }
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index cc571b8a04..b977763433 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -106,10 +106,10 @@ time_finish (struct localedef_t *locale)
   struct locale_time_t *time = locale->categories[LC_TIME].time;
 
 #define TESTARR_ELEM(cat, max)						      \
-  if (time->cur_num_##cat == 0)						      \
+  if (time->cur_num_##cat == 0 && !be_quiet)				      \
     error (0, 0, _("field `%s' in category `%s' not defined"),		      \
 	   #cat, "LC_TIME");						      \
-  else if (time->cur_num_##cat != max)					      \
+  else if (time->cur_num_##cat != max && !be_quiet)			      \
     error (0, 0, _("field `%s' in category `%s' has not enough values"),      \
 	   #cat, "LC_TIME")
 
@@ -120,7 +120,7 @@ time_finish (struct localedef_t *locale)
   TESTARR_ELEM (am_pm, 2);
 
 #define TEST_ELEM(cat)							      \
-  if (time->cat == NULL)						      \
+  if (time->cat == NULL && !be_quiet)					      \
     error (0, 0, _("field `%s' in category `%s' not defined"),		      \
 	   #cat, "LC_TIME")
 
@@ -149,7 +149,7 @@ time_finish (struct localedef_t *locale)
 	  memcpy (str, time->era[idx], era_len + 1);
 
 	  /* First character must be + or - for the direction.  */
-	  if (*str != '+' && *str != '-')
+	  if (*str != '+' && *str != '-' && !be_quiet)
 	    {
 	      error (0, 0, _("direction flag in string %d in `era' field"
 			     " in category `%s' is not '+' nor '-'"),
@@ -159,7 +159,7 @@ time_finish (struct localedef_t *locale)
 	    }
 	  else
 	    time->era_entries[idx].direction = *str;
-	  if (*++str != ':')
+	  if (*++str != ':' && !be_quiet)
 	    {
 	      error (0, 0, _("direction flag in string %d in `era' field"
 			     " in category `%s' is not a single character"),
@@ -171,14 +171,14 @@ time_finish (struct localedef_t *locale)
 
 	  /* Now the offset year.  */
 	  time->era_entries[idx].offset = strtol (str, &endp, 10);
-	  if (endp == str)
+	  if (endp == str && !be_quiet)
 	    {
 	      error (0, 0, _("illegal number for offset in string %d in"
 			     " `era' field in category `%s'"),
 		     idx + 1, "LC_TIME");
 	      (void) strsep (&str, ":");
 	    }
-	  else if (*endp != ':')
+	  else if (*endp != ':' && !be_quiet)
 	    {
 	      error (0, 0, _("garbage at end of offset value in string %d in"
 			     " `era' field in category `%s'"),
@@ -224,7 +224,7 @@ time_finish (struct localedef_t *locale)
 	      time->era_entries[idx].start_date[1] -= 1;
 
 	      time->era_entries[idx].start_date[2] = strtol (str, &endp, 10);
-	      if (endp == str)
+	      if (endp == str && !be_quiet)
 		{
 		invalid_start_date:
 		  error (0, 0, _("illegal starting date in string %d in"
@@ -232,7 +232,7 @@ time_finish (struct localedef_t *locale)
 			 idx + 1, "LC_TIME");
 		  (void) strsep (&str, ":");
 		}
-	      else if (*endp != ':')
+	      else if (*endp != ':' && !be_quiet)
 		{
 		garbage_start_date:
 		  error (0, 0, _("garbage at end of starting date in string %d"
@@ -245,14 +245,15 @@ time_finish (struct localedef_t *locale)
 		  str = endp + 1;
 
 		  /* Check for valid value.  */
-		  if (time->era_entries[idx].start_date[1] < 0
-		      || time->era_entries[idx].start_date[1] >= 12
-		      || time->era_entries[idx].start_date[2] < 0
-		      || (time->era_entries[idx].start_date[2]
-			  > days_per_month[time->era_entries[idx].start_date[1]])
-		      || (time->era_entries[idx].start_date[1] == 2
-			  && time->era_entries[idx].start_date[2] == 29
-			  && !__isleap (time->era_entries[idx].start_date[0])))
+		  if ((time->era_entries[idx].start_date[1] < 0
+		       || time->era_entries[idx].start_date[1] >= 12
+		       || time->era_entries[idx].start_date[2] < 0
+		       || (time->era_entries[idx].start_date[2]
+			   > days_per_month[time->era_entries[idx].start_date[1]])
+		       || (time->era_entries[idx].start_date[1] == 2
+			   && time->era_entries[idx].start_date[2] == 29
+			   && !__isleap (time->era_entries[idx].start_date[0])))
+		      && !be_quiet)
 			  error (0, 0, _("starting date is illegal in"
 					 " string %d in `era' field in"
 					 " category `%s'"),
@@ -296,7 +297,7 @@ time_finish (struct localedef_t *locale)
 	      time->era_entries[idx].stop_date[1] -= 1;
 
 	      time->era_entries[idx].stop_date[2] = strtol (str, &endp, 10);
-	      if (endp == str)
+	      if (endp == str && !be_quiet)
 		{
 		invalid_stop_date:
 		  error (0, 0, _("illegal stopping date in string %d in"
@@ -304,7 +305,7 @@ time_finish (struct localedef_t *locale)
 			 idx + 1, "LC_TIME");
 		  (void) strsep (&str, ":");
 		}
-	      else if (*endp != ':')
+	      else if (*endp != ':' && !be_quiet)
 		{
 		garbage_stop_date:
 		  error (0, 0, _("garbage at end of stopping date in string %d"
@@ -317,14 +318,15 @@ time_finish (struct localedef_t *locale)
 		  str = endp + 1;
 
 		  /* Check for valid value.  */
-		  if (time->era_entries[idx].stop_date[1] < 0
-		      || time->era_entries[idx].stop_date[1] >= 12
-		      || time->era_entries[idx].stop_date[2] < 0
-		      || (time->era_entries[idx].stop_date[2]
-			  > days_per_month[time->era_entries[idx].stop_date[1]])
-		      || (time->era_entries[idx].stop_date[1] == 2
-			  && time->era_entries[idx].stop_date[2] == 29
-			  && !__isleap (time->era_entries[idx].stop_date[0])))
+		  if ((time->era_entries[idx].stop_date[1] < 0
+		       || time->era_entries[idx].stop_date[1] >= 12
+		       || time->era_entries[idx].stop_date[2] < 0
+		       || (time->era_entries[idx].stop_date[2]
+			   > days_per_month[time->era_entries[idx].stop_date[1]])
+		       || (time->era_entries[idx].stop_date[1] == 2
+			   && time->era_entries[idx].stop_date[2] == 29
+			   && !__isleap (time->era_entries[idx].stop_date[0])))
+		      && !be_quiet)
 			  error (0, 0, _("stopping date is illegal in"
 					 " string %d in `era' field in"
 					 " category `%s'"),
@@ -332,7 +334,7 @@ time_finish (struct localedef_t *locale)
 		}
 	    }
 
-	  if (str == NULL || *str == '\0')
+	  if ((str == NULL || *str == '\0') && !be_quiet)
 	    {
 	      error (0, 0, _("missing era name in string %d in `era' field"
 			     " in category `%s'"), idx + 1, "LC_TIME");
@@ -343,7 +345,7 @@ time_finish (struct localedef_t *locale)
 	    {
 	      time->era_entries[idx].name = strsep (&str, ":");
 
-	      if (str == NULL || *str == '\0')
+	      if ((str == NULL || *str == '\0') && !be_quiet)
 		{
 		  error (0, 0, _("missing era format in string %d in `era'"
 				 " field in category `%s'"),
diff --git a/locale/programs/linereader.h b/locale/programs/linereader.h
index bf5f1bccc9..6f81b81597 100644
--- a/locale/programs/linereader.h
+++ b/locale/programs/linereader.h
@@ -1,21 +1,21 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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 c595524bbb..9c432e3ead 100644
--- a/locale/programs/locale-spec.c
+++ b/locale/programs/locale-spec.c
@@ -1,22 +1,22 @@
 /* Handle special requests.
-Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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/localedef.c b/locale/programs/localedef.c
index 580816b37e..da01d4c974 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -70,6 +70,8 @@ int posix_conformance;
 /* If not zero give a lot more messages.  */
 int verbose;
 
+/* If not zero suppress warnings and information messages.  */
+int be_quiet;
 
 
 /* Long options.  */
@@ -81,6 +83,7 @@ static const struct option long_options[] =
   { "force", no_argument, NULL, 'c' },
   { "inputfile", required_argument, NULL, 'i' },
   { "posix", no_argument, &posix_conformance, 1 },
+  { "quiet", no_argument, NULL, 'q' },
   { "verbose", no_argument, &verbose, 1},
   { "version", no_argument, NULL, 'V' },
   { NULL, 0, NULL, 0 }
@@ -149,12 +152,18 @@ main (int argc, char *argv[])
 	input_file = optarg;
         break;
 
+      case 'q':
+	be_quiet = 1;
+	verbose = 0;
+	break;
+
       case 'u':
 	ucs_csn = optarg;
 	break;
 
-	case 'v':
+      case 'v':
         verbose = 1;
+	be_quiet = 0;
         break;
 
       case 'V':
@@ -397,6 +406,7 @@ Mandatory arguments to long options are mandatory for short options too.\n\
   -h, --help                display this help and exit\n\
   -f, --charmap=FILE        symbolic character names defined in FILE\n\
   -i, --inputfile=FILE      source definitions are found in FILE\n\
+      --quiet               Suppress warnings and information messages\n\
   -u, --code-set-name=NAME  specify code set for mapping ISO 10646 elements\n\
   -v, --verbose             print more messages\n\
   -V, --version             output version information and exit\n\
diff --git a/locale/programs/locales.h b/locale/programs/locales.h
index 95e166e3ef..eab909e7c8 100644
--- a/locale/programs/locales.h
+++ b/locale/programs/locales.h
@@ -1,21 +1,21 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifndef _LOCALES_H
 #define _LOCALES_H
diff --git a/locale/programs/locfile-kw.gperf b/locale/programs/locfile-kw.gperf
index 8af977116e..38150ad46b 100644
--- a/locale/programs/locfile-kw.gperf
+++ b/locale/programs/locfile-kw.gperf
@@ -1,22 +1,22 @@
 %{
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   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
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  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 Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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 fd3c834845..0fb0b5ca5f 100644
--- a/locale/programs/locfile-kw.h
+++ b/locale/programs/locfile-kw.h
@@ -1,23 +1,23 @@
 /* C code produced by gperf version 2.5 (GNU C++ version) */
 /* Command-line: gperf -acCgopt -k1,2,5,$ -N locfile_hash programs/locfile-kw.gperf  */
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   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
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  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 Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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-token.h b/locale/programs/locfile-token.h
index b07356aebd..6d1543c320 100644
--- a/locale/programs/locfile-token.h
+++ b/locale/programs/locfile-token.h
@@ -1,22 +1,21 @@
-
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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 4717fe22bd..4ab04253b9 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -981,7 +981,7 @@ write_locale_data (const char *output_path, const char *category,
 	    save_err = errno;
 	}
 
-      if (fd == -1)
+      if (fd == -1 && !be_quiet)
 	{
 	  error (0, save_err, _("\
 cannot open output file `%s' for category `%s'"),
@@ -1005,7 +1005,7 @@ cannot open output file `%s' for category `%s'"),
       if (maxiov > 0)
 	step = MIN (maxiov, step);
 
-      if (writev (fd, &vec[cnt], step) < 0)
+      if (writev (fd, &vec[cnt], step) < 0 && !be_quiet)
 	{
 	  error (0, errno, _("failure while writing data for category `%s'"),
 		 category);
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
index 003082ca61..604e726e20 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -53,6 +53,8 @@ struct localedef_t
   size_t len[6];
 };
 
+/* Declared in localedef.c.  */
+extern int be_quiet;
 
 /* Found in localedef.c.  */
 void def_to_process (const char *name, int category);
diff --git a/locale/programs/simple-hash.h b/locale/programs/simple-hash.h
index 3409c57cec..f26790b21b 100644
--- a/locale/programs/simple-hash.h
+++ b/locale/programs/simple-hash.h
@@ -1,19 +1,21 @@
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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/stringtrans.c b/locale/programs/stringtrans.c
index 4351eea397..34b107e295 100644
--- a/locale/programs/stringtrans.c
+++ b/locale/programs/stringtrans.c
@@ -1,21 +1,21 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  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/stringtrans.h b/locale/programs/stringtrans.h
index 3576ce445c..2237032f89 100644
--- a/locale/programs/stringtrans.h
+++ b/locale/programs/stringtrans.h
@@ -1,21 +1,21 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifndef _TRANSLATE_H
 #define _TRANSLATE_H 1