diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-04-06 17:49:18 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-04-06 17:49:18 +0000 |
commit | e7f21fa6fbbad55ff2654e39732f54bf147cbfce (patch) | |
tree | 9797799d8e0cc2e33746ec176d611cac4571916e /locale/programs | |
parent | ee62473f2bd030dc42b601c06dae78e69b6cdaec (diff) | |
download | glibc-e7f21fa6fbbad55ff2654e39732f54bf147cbfce.zip glibc-e7f21fa6fbbad55ff2654e39732f54bf147cbfce.tar.gz glibc-e7f21fa6fbbad55ff2654e39732f54bf147cbfce.tar.bz2 |
Update.
2001-04-06 Ulrich Drepper <drepper@redhat.com>
* iconv/iconv_open.c: Move strip and upstr definitions...
* iconv/gconv_charset.h: ...here. New file.
* iconv/gconv_db.c (once): Move to file level.
(do_lookup_alias): Split out from __gconv_find_transform.
(__gconv_find_transform): Call do_lookup_alias.
(__gconv_loopup_alias): New function.
* locale/langinfo.h: Define _NL_*_CODESET values for all categories
but LC_CTYPE.
* locale/categories.def: Add entries for new _NL_*_CODESET values.
* locale/C-ctype.c: Use _nl_C_codeset to initialize CODESET entry.
* locale/C-address.c: Initialize _NL_*_CODESET element.
* locale/C-collate.c: Likewise.
* locale/C-identification.c: Likewise.
* locale/C-measurement.c: Likewise.
* locale/C-messages.c: Likewise.
* locale/C-monetary.c: Likewise.
* locale/C-name.c: Likewise.
* locale/C-numeric.c: Likewise.
* locale/C-paper.c: Likewise.
* locale/C-telephone.c: Likewise.
* locale/C-time.c: Likewise.
* locale/localeinfo.h: Declare _nl_C_codeset.
* locale/C_name.c: Define _nl_C_codeset.
* locale/findlocale.c: Before accepting locale check that the used
charset does not conflict with what the locale name said.
* locale/programs/ld-address.c: Emit codeset information.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/ld-identification.c: Likewise.
* locale/programs/ld-measurement.c: Likewise.
* locale/programs/ld-messages.c: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-name.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/ld-paper.c: Likewise.
* locale/programs/ld-telephone.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* localedata/tests-mbwc/tst_funcs.h (TST_HEAD_LOCALE): It is an error
if the locale data couldn't be found.
* string/Makefile: Define tst-strxfrm-ENV.
* ysdeps/unix/sysv/linux/ia64/getcontext.S: Fix comment.
Diffstat (limited to 'locale/programs')
-rw-r--r-- | locale/programs/ld-address.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-collate.c | 6 | ||||
-rw-r--r-- | locale/programs/ld-identification.c | 12 | ||||
-rw-r--r-- | locale/programs/ld-measurement.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-messages.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-monetary.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-name.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-numeric.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-paper.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-telephone.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-time.c | 6 |
11 files changed, 62 insertions, 2 deletions
diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c index ed5860d..4e1c581 100644 --- a/locale/programs/ld-address.c +++ b/locale/programs/ld-address.c @@ -410,6 +410,11 @@ address_output (struct localedef_t *locale, struct charmap_t *charmap, iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1; ++cnt; + idx[cnt - 3] = idx[cnt - 4] + 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 == 3 + _NL_ITEM_INDEX (_NL_NUM_LC_ADDRESS)); write_locale_data (output_path, "LC_ADDRESS", diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 2ce4d46..ddaf3ed 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -2522,9 +2522,15 @@ collate_output (struct localedef_t *locale, struct charmap_t *charmap, assert (cnt == _NL_ITEM_INDEX (_NL_COLLATE_COLLSEQWC)); iov[2 + cnt].iov_base = collate->wcseqorder.result; iov[2 + cnt].iov_len = collate->wcseqorder.result_size; + idx[1 + cnt] = idx[cnt] + iov[2 + cnt].iov_len; assert (idx[cnt] % __alignof__ (int32_t) == 0); ++cnt; + assert (cnt == _NL_ITEM_INDEX (_NL_COLLATE_CODESET)); + iov[2 + cnt].iov_base = (void *) charmap->code_set_name; + iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1; + ++cnt; + assert (cnt == _NL_ITEM_INDEX (_NL_NUM_LC_COLLATE)); write_locale_data (output_path, "LC_COLLATE", 2 + cnt, iov); diff --git a/locale/programs/ld-identification.c b/locale/programs/ld-identification.c index 12e32f8..9a6dfdf 100644 --- a/locale/programs/ld-identification.c +++ b/locale/programs/ld-identification.c @@ -185,6 +185,7 @@ identification_output (struct localedef_t *locale, struct charmap_t *charmap, uint32_t idx[_NL_ITEM_INDEX (_NL_NUM_LC_IDENTIFICATION)]; size_t cnt = 0; size_t num; + size_t last_idx; data.magic = LIMAGIC (LC_IDENTIFICATION); data.n = _NL_ITEM_INDEX (_NL_NUM_LC_IDENTIFICATION); @@ -267,19 +268,26 @@ identification_output (struct localedef_t *locale, struct charmap_t *charmap, ++cnt; idx[cnt - 2] = idx[cnt - 3] + iov[cnt - 1].iov_len; + last_idx = cnt - 1; + idx[last_idx] = idx[cnt - 2]; for (num = 0; num < __LC_LAST; ++num) if (num != LC_ALL) { iov[cnt].iov_base = (void *) identification->category[num]; iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1; + idx[last_idx] += iov[cnt].iov_len; ++cnt; } + assert (last_idx == _NL_ITEM_INDEX (_NL_NUM_LC_IDENTIFICATION) - 1); + 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_IDENTIFICATION) + (__LC_LAST - 2))); - write_locale_data (output_path, "LC_IDENTIFICATION", - 2 + _NL_ITEM_INDEX (_NL_NUM_LC_IDENTIFICATION), iov); + write_locale_data (output_path, "LC_IDENTIFICATION", cnt, iov); } diff --git a/locale/programs/ld-measurement.c b/locale/programs/ld-measurement.c index 07eb3cb..e2cfa6a 100644 --- a/locale/programs/ld-measurement.c +++ b/locale/programs/ld-measurement.c @@ -141,6 +141,11 @@ measurement_output (struct localedef_t *locale, struct charmap_t *charmap, iov[cnt].iov_len = 1; ++cnt; + idx[cnt - 2] = iov[0].iov_len + iov[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_MEASUREMENT)); write_locale_data (output_path, "LC_MEASUREMENT", diff --git a/locale/programs/ld-messages.c b/locale/programs/ld-messages.c index cbf240e..dd5de42 100644 --- a/locale/programs/ld-messages.c +++ b/locale/programs/ld-messages.c @@ -216,6 +216,11 @@ messages_output (struct localedef_t *locale, struct charmap_t *charmap, idx[cnt - 2] = idx[cnt - 3] + iov[cnt - 1].iov_len; iov[cnt].iov_base = (char *) messages->nostr; iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1; + ++cnt; + + idx[cnt - 2] = idx[cnt - 3] + iov[cnt - 1].iov_len; + iov[cnt].iov_base = (char *) charmap->code_set_name; + iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1; assert (cnt + 1 == 2 + _NL_ITEM_INDEX (_NL_NUM_LC_MESSAGES)); diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c index 7779e87..3eeb305 100644 --- a/locale/programs/ld-monetary.c +++ b/locale/programs/ld-monetary.c @@ -608,6 +608,11 @@ monetary_output (struct localedef_t *locale, struct charmap_t *charmap, iov[cnt].iov_len = sizeof (uint32_t); ++cnt; + idx[cnt - 3] = idx[cnt - 4] + 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 == 3 + _NL_ITEM_INDEX (_NL_NUM_LC_MONETARY)); write_locale_data (output_path, "LC_MONETARY", diff --git a/locale/programs/ld-name.c b/locale/programs/ld-name.c index 7940c03..8d7b863 100644 --- a/locale/programs/ld-name.c +++ b/locale/programs/ld-name.c @@ -200,6 +200,11 @@ name_output (struct localedef_t *locale, struct charmap_t *charmap, iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1; ++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_NAME)); write_locale_data (output_path, "LC_NAME", diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c index 77633ef..6bf6c25 100644 --- a/locale/programs/ld-numeric.c +++ b/locale/programs/ld-numeric.c @@ -178,6 +178,11 @@ numeric_output (struct localedef_t *locale, struct charmap_t *charmap, idx[cnt - 3] = idx[cnt - 4] + iov[cnt - 1].iov_len; iov[cnt].iov_base = (void *) &numeric->thousands_sep_wc; iov[cnt].iov_len = sizeof (uint32_t); + ++cnt; + + idx[cnt - 3] = idx[cnt - 4] + iov[cnt - 1].iov_len; + iov[cnt].iov_base = (void *) charmap->code_set_name; + iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1; assert (cnt + 1 == 3 + _NL_ITEM_INDEX (_NL_NUM_LC_NUMERIC)); diff --git a/locale/programs/ld-paper.c b/locale/programs/ld-paper.c index d0ca850..b55f985 100644 --- a/locale/programs/ld-paper.c +++ b/locale/programs/ld-paper.c @@ -143,6 +143,11 @@ paper_output (struct localedef_t *locale, struct charmap_t *charmap, 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", diff --git a/locale/programs/ld-telephone.c b/locale/programs/ld-telephone.c index 2d59079..a2c8d51 100644 --- a/locale/programs/ld-telephone.c +++ b/locale/programs/ld-telephone.c @@ -210,6 +210,11 @@ telephone_output (struct localedef_t *locale, struct charmap_t *charmap, iov[cnt].iov_len = strlen (iov[cnt].iov_base) + 1; ++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_TELEPHONE)); write_locale_data (output_path, "LC_TELEPHONE", diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c index 1475953..37615c4 100644 --- a/locale/programs/ld-time.c +++ b/locale/programs/ld-time.c @@ -869,6 +869,12 @@ time_output (struct localedef_t *locale, struct charmap_t *charmap, iov[2 + cnt].iov_base = (void *) time->wdate_fmt; iov[2 + cnt].iov_len = ((wcslen (iov[2 + cnt].iov_base) + 1) * sizeof (uint32_t)); + idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len; + ++cnt; + ++last_idx; + + iov[2 + cnt].iov_base = (void *) charmap->code_set_name; + iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1; ++cnt; ++last_idx; |