* locale/programs/ld-address.c (address_finish): Produce better
authorUlrich Drepper <drepper@redhat.com>
Sat, 24 Sep 2005 16:37:16 +0000 (16:37 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 24 Sep 2005 16:37:16 +0000 (16:37 +0000)
error messages for invalid lang_ab use.

ChangeLog
locale/programs/ld-address.c
localedata/ChangeLog
localedata/locales/sid_ET
manual/time.texi

index 9e43751aead7f2e6f872803583d5a9797ea65f70..31aa1e9dda3c67378d6cc3b124f6f96f0c7d1122 100644 (file)
--- 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>
index 079aa0094da0f1336638c48ebe68923196746c94..5a7d821de63bea2bee39ae1343f42fb65541fe7b 100644 (file)
@@ -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]))
index 36f836121b71df51762ab973de52295697241f32..db629d433a3e5c49a24b3177c521679282efbf3f 100644 (file)
@@ -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.
index 03727ab1b9316635cad4b924a0f04b3d8aebe896..8ce3234a5da41023d3fc83fae317e310bfb081e1 100644 (file)
@@ -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>"
 %
index 7fc9448a324f887405bd353118fe8d9d7038cf16..9b87d3eed0612f1ac0a1c81cda2605870a6c7067 100644 (file)
@@ -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.