diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-11-05 22:33:33 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-11-05 22:33:33 +0000 |
commit | a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d (patch) | |
tree | 035ac3d3ad9bf7326cc1798ddc0b0960d498bc16 /locale/programs/ld-ctype.c | |
parent | 9532eb67a4a92baab960d8d37bfa28048285dabb (diff) | |
download | glibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.tar.gz glibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.tar.xz glibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.zip |
Update.
1999-11-05 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Adjust for kernel changes. * sysdeps/unix/sysv/linux/bits/types.h (__rlim_t, __rlim64_t): Make unsigned. 1999-10-04 Tim Waugh <twaugh@redhat.com> * posix/wordexp-test.c: More tests. * posix/wordexp.c (wordexp): Explicit null words should be kept. 1999-11-04 Shinya Hanataka <hanataka@abyss.rim.or.jp> * locale/programs/linereader.c (get_string): Correct type of buf2 variable. * locale/programs/ld-ctype.c (ctype_output): Store index correctly for _NL_CTYPE_INDIGITS_MB_LEN, _NL_CTYPE_INDIGITS_WC_LEN, _NL_CTYPE_INDIGITS*_MB, _NL_CTYPE_OUTDIGIT*_MB, and _NL_CTYPE_OUTDIGIT*_WC. (allocate_arrays): Completely initialize mapping tables. * locale/programs/ld-time.c (time_startup): We need the wide car string. (time_finish): Correct handling of era. (time_output): Fix a few array indeces. (time_read): Pass the repertoire map to lr_token.
Diffstat (limited to 'locale/programs/ld-ctype.c')
-rw-r--r-- | locale/programs/ld-ctype.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c index ffc759b272..6378c131bf 100644 --- a/locale/programs/ld-ctype.c +++ b/locale/programs/ld-ctype.c @@ -836,6 +836,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap, iov[2 + elem + offset].iov_len = sizeof (uint32_t); *(uint32_t *) iov[2 + elem + offset].iov_base = ctype->mbdigits_act / 10; + idx[elem + 1] = idx[elem] + sizeof (uint32_t); break; case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_WC_LEN): @@ -843,6 +844,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap, iov[2 + elem + offset].iov_len = sizeof (uint32_t); *(uint32_t *) iov[2 + elem + offset].iov_base = ctype->wcdigits_act / 10; + idx[elem + 1] = idx[elem] + sizeof (uint32_t); break; case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_MB) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_MB): @@ -865,6 +867,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap, ctype->mbdigits[cnt]->nbytes); *cp++ = '\0'; } + idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len; break; case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_MB) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_MB): @@ -880,6 +883,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap, *(char *) mempcpy (iov[2 + elem + offset].iov_base, ctype->mbdigits[cnt]->bytes, ctype->mbdigits[cnt]->nbytes) = '\0'; + idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len; break; case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_WC) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_WC): @@ -893,12 +897,14 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap, cnt < ctype->wcdigits_act; cnt += 10) ((uint32_t *) iov[2 + elem + offset].iov_base)[cnt / 10] = ctype->wcdigits[cnt]; + idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len; break; case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_WC) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_WC): cnt = elem - _NL_CTYPE_OUTDIGIT0_WC; iov[2 + elem + offset].iov_base = &ctype->wcoutdigits[cnt]; iov[2 + elem + offset].iov_len = sizeof (uint32_t); + idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len; break; default: @@ -2933,6 +2939,12 @@ Computing table size for character classes might take a while..."), /* EOF must map to EOF. */ ctype->map[idx][127] = EOF; + + /* The 32 bit map collection. */ + for (idx2 = 0; idx2 < ctype->map_collection_act[idx]; ++idx2) + if (ctype->map_collection[idx][idx2] != 0) + ctype->map[idx][128 + ctype->charnames[idx2]] + = ctype->map_collection[idx][idx2]; } /* Extra array for class and map names. */ @@ -3041,7 +3053,8 @@ Computing table size for character classes might take a while..."), } /* Next we allocate an array large enough and fill in the values. */ - sorted = alloca (number * sizeof (struct translit_t **)); + sorted = (struct translit_t **) alloca (number + * sizeof (struct translit_t **)); runp = ctype->translit; number = 0; do |