Emit codeset information.
[kopensolaris-gnu/glibc.git] / locale / programs / ld-paper.c
index 19cf225..b55f985 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -133,16 +133,21 @@ paper_output (struct localedef_t *locale, struct charmap_t *charmap,
   iov[cnt].iov_len = sizeof (idx);
   ++cnt;
 
-  idx[cnt - 2] = iov[0].iov_len + iov[1].iov_len;
+  idx[cnt - 2] = iov[cnt - 2].iov_len + iov[cnt - 1].iov_len;
   iov[cnt].iov_base = &paper->height;
   iov[cnt].iov_len = 4;
   ++cnt;
 
-  idx[cnt - 2] = iov[0].iov_len + iov[1].iov_len;
+  idx[cnt - 2] = idx[cnt - 3] + iov[cnt - 1].iov_len;
   iov[cnt].iov_base = &paper->width;
   iov[cnt].iov_len = 4;
   ++cnt;
 
+  idx[cnt - 2] = idx[cnt - 3] + iov[cnt - 1].iov_len;
+  iov[cnt].iov_base = (void *) charmap->code_set_name;
+  iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1;
+  ++cnt;
+
   assert (cnt == 2 + _NL_ITEM_INDEX (_NL_NUM_LC_PAPER));
 
   write_locale_data (output_path, "LC_PAPER",
@@ -166,7 +171,7 @@ paper_read (struct linereader *ldfile, struct localedef_t *result,
 
   do
     {
-      now = lr_token (ldfile, charmap, NULL);
+      now = lr_token (ldfile, charmap, NULL, verbose);
       nowtok = now->tok;
     }
   while (nowtok == tok_eol);
@@ -192,7 +197,7 @@ paper_read (struct linereader *ldfile, struct localedef_t *result,
       /* Ingore empty lines.  */
       if (nowtok == tok_eol)
        {
-         now = lr_token (ldfile, charmap, NULL);
+         now = lr_token (ldfile, charmap, NULL, verbose);
          nowtok = now->tok;
          continue;
        }
@@ -209,7 +214,7 @@ paper_read (struct linereader *ldfile, struct localedef_t *result,
              break;                                                          \
            }                                                                 \
                                                                              \
-         arg = lr_token (ldfile, charmap, NULL);                             \
+         arg = lr_token (ldfile, charmap, NULL, verbose);                    \
          if (arg->tok != tok_number)                                         \
            goto err_label;                                                   \
          else if (paper->cat != 0)                                           \
@@ -224,7 +229,7 @@ paper_read (struct linereader *ldfile, struct localedef_t *result,
 
        case tok_end:
          /* Next we assume `LC_PAPER'.  */
-         arg = lr_token (ldfile, charmap, NULL);
+         arg = lr_token (ldfile, charmap, NULL, verbose);
          if (arg->tok == tok_eof)
            break;
          if (arg->tok == tok_eol)
@@ -241,7 +246,7 @@ paper_read (struct linereader *ldfile, struct localedef_t *result,
        }
 
       /* Prepare for the next round.  */
-      now = lr_token (ldfile, charmap, NULL);
+      now = lr_token (ldfile, charmap, NULL, verbose);
       nowtok = now->tok;
     }