about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--locale/programs/ld-address.c13
-rw-r--r--localedata/ChangeLog3
-rw-r--r--localedata/locales/sid_ET1
-rw-r--r--manual/time.texi3
5 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 9e43751aea..31aa1e9dda 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-09-24  Ulrich Drepper  <drepper@redhat.com>
 
+	* locale/programs/ld-address.c (address_finish): Produce better
+	error messages for invalid lang_ab use.
+
 	* locale/iso-639.def: Add a few updates from current spec.
 
 2005-09-23  Ulrich Drepper  <drepper@redhat.com>
diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c
index 079aa0094d..5a7d821de6 100644
--- a/locale/programs/ld-address.c
+++ b/locale/programs/ld-address.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -224,17 +224,24 @@ No definition for %s category found"), "LC_ADDRESS"));
 
   if (address->lang_ab == NULL)
     {
-      if (verbose && ! nothing)
+      if (iso639[cnt].ab[0] != '\0' && 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 (verbose)
+      if (iso639[cnt].ab[0] != '\0' && verbose)
 	WITH_CUR_LOCALE (error (0, 0, _("%s: field `%s' must not be empty"),
 				"LC_ADDRESS", "lang_ab"));
     }
+  else if (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/localedata/ChangeLog b/localedata/ChangeLog
index 36f836121b..db629d433a 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,5 +1,8 @@
 2005-09-24  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #527]
+	* locales/sid_ET: Remove incorrect lang_ab definition.
+
 	[BZ #525]
 	* locales/ru_RU: Use nominative instead of genitive in mon data to
 	align with other locales with the same issue.
diff --git a/localedata/locales/sid_ET b/localedata/locales/sid_ET
index 03727ab1b9..8ce3234a5d 100644
--- a/localedata/locales/sid_ET
+++ b/localedata/locales/sid_ET
@@ -113,7 +113,6 @@ country_num   231   % 210 found in at least one ISO 3166 doc
 % country_car   unknown
 % country_isbn  unknown, Need ISO 2108
 lang_name     "<U0053><U0069><U0064><U0061><U0061><U006D><U0075><U0020><U0041><U0066><U006F>"
-lang_ab       "<U0073><U0069><U0064>"
 lang_term     "<U0073><U0069><U0064>"
 lang_lib      "<U0073><U0069><U0064>"
 %
diff --git a/manual/time.texi b/manual/time.texi
index 7fc9448a32..9b87d3eed0 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -1179,6 +1179,9 @@ The abbreviated month name according to the current locale.
 @item %B
 The full month name according to the current locale.
 
+Using @code{%B} together with @code{%d} produces grammatically
+incorrect results for some locales.
+
 @item %c
 The preferred calendar time representation for the current locale.