Update.
authorUlrich Drepper <drepper@redhat.com>
Sat, 24 Jun 2000 18:49:37 +0000 (18:49 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 24 Jun 2000 18:49:37 +0000 (18:49 +0000)
* locale/programs/ld-address.c (iso639): Correct length of string
elements.
* sysdeps/unix/sysv/linux/i386/sys/elf.h (elf_fpxregset_t): Define.

* sysdeps/unix/sysv/linux/i386/sys/user.h (struct user_fpxregs_struct):
Define.

ChangeLog
locale/programs/ld-address.c

index 3ea6906..8780963 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,12 @@
 2000-06-24  Ulrich Drepper  <drepper@redhat.com>
 
-       * sysdeps/unix/sysv/linux/i386/sys/elf.h (elf_fpxregset_t):
-       Define.
+       * locale/programs/ld-address.c (iso639): Correct length of string
+       elements.
 
-       * sysdeps/unix/sysv/linux/i386/sys/user.h (struct
-       user_fpxregs_struct): Define.
+       * sysdeps/unix/sysv/linux/i386/sys/elf.h (elf_fpxregset_t): Define.
+
+       * sysdeps/unix/sysv/linux/i386/sys/user.h (struct user_fpxregs_struct):
+       Define.
 
        * elf/elf.h (NT_PRFPXREG): Define.
 
index da801d0..3e94e11 100644 (file)
@@ -48,9 +48,9 @@ static struct
 
 static struct
 {
-  const char ab[2];
-  const char term[3];
-  const char lib[3];
+  const char ab[3];
+  const char term[4];
+  const char lib[4];
 } iso639[] =
 {
 #define DEFINE_LANGUAGE_CODE(Name, Ab, Term, Lib) \
@@ -499,12 +499,48 @@ address_read (struct linereader *ldfile, struct localedef_t *result,
          STR_ELEM (country_ab2);
          STR_ELEM (country_ab3);
          STR_ELEM (country_car);
-         STR_ELEM (country_isbn);
          STR_ELEM (lang_name);
          STR_ELEM (lang_ab);
          STR_ELEM (lang_term);
          STR_ELEM (lang_lib);
 
+#define INT_STR_ELEM(cat) \
+       case tok_##cat:                                                       \
+         /* Ignore the rest of the line if we don't need the input of        \
+            this line.  */                                                   \
+         if (ignore_content)                                                 \
+           {                                                                 \
+             lr_ignore_rest (ldfile, 0);                                     \
+             break;                                                          \
+           }                                                                 \
+                                                                             \
+         arg = lr_token (ldfile, charmap, NULL);                             \
+         if (arg->tok != tok_string && arg->tok != tok_number)               \
+           goto err_label;                                                   \
+         if (address->cat != NULL)                                           \
+           lr_error (ldfile, _("\
+%s: field `%s' declared more than once"), "LC_ADDRESS", #cat);               \
+         else if (!ignore_content && arg->val.str.startmb == NULL)           \
+           {                                                                 \
+             lr_error (ldfile, _("\
+%s: unknown character in field `%s'"), "LC_ADDRESS", #cat);                  \
+             address->cat = "";                                              \
+           }                                                                 \
+         else if (!ignore_content)                                           \
+           {                                                                 \
+             if (arg->tok == tok_string)                                     \
+               address->cat = arg->val.str.startmb;                          \
+             else                                                            \
+               {                                                             \
+                 char *numbuf = (char *) xmalloc (11);                       \
+                 snprintf (numbuf, 11, "%ld", arg->val.num);                 \
+                 address->cat = numbuf;                                      \
+               }                                                             \
+           }                                                                 \
+         break
+
+         INT_STR_ELEM (country_isbn);
+
 #define INT_ELEM(cat) \
        case tok_##cat:                                                       \
          /* Ignore the rest of the line if we don't need the input of        \