From e7f21fa6fbbad55ff2654e39732f54bf147cbfce Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 6 Apr 2001 17:49:18 +0000 Subject: Update. 2001-04-06 Ulrich Drepper * 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. --- locale/programs/ld-identification.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'locale/programs/ld-identification.c') 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); } -- cgit v1.2.3