summaryrefslogtreecommitdiff
path: root/locale/programs
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-04-06 17:49:18 +0000
committerUlrich Drepper <drepper@redhat.com>2001-04-06 17:49:18 +0000
commite7f21fa6fbbad55ff2654e39732f54bf147cbfce (patch)
tree9797799d8e0cc2e33746ec176d611cac4571916e /locale/programs
parentee62473f2bd030dc42b601c06dae78e69b6cdaec (diff)
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.c5
-rw-r--r--locale/programs/ld-collate.c6
-rw-r--r--locale/programs/ld-identification.c12
-rw-r--r--locale/programs/ld-measurement.c5
-rw-r--r--locale/programs/ld-messages.c5
-rw-r--r--locale/programs/ld-monetary.c5
-rw-r--r--locale/programs/ld-name.c5
-rw-r--r--locale/programs/ld-numeric.c5
-rw-r--r--locale/programs/ld-paper.c5
-rw-r--r--locale/programs/ld-telephone.c5
-rw-r--r--locale/programs/ld-time.c6
11 files changed, 62 insertions, 2 deletions
diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c
index ed5860dcf6..4e1c5819f7 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 2ce4d46105..ddaf3ed847 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 12e32f859e..9a6dfdf1fd 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 07eb3cb032..e2cfa6a6ba 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 cbf240eff4..dd5de42333 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 7779e87392..3eeb305c78 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 7940c0362a..8d7b863284 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 77633ef1f9..6bf6c25819 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 d0ca850863..b55f98578d 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 2d59079c66..a2c8d5123f 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 1475953cce..37615c4795 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;