mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 02:40:08 +00:00
Update.
* locale/programs/ld-collate.c (collate_output): Also handle IGNOREd characters in the simple way when generating the multibyte table. * locale/programs/ld-ctype.c (allocate_arrays): Move codeset_name handling to ... (ctype_finish): ...here. Check for missing codeset name.
This commit is contained in:
parent
973209d8b0
commit
db76d9433c
@ -1,5 +1,13 @@
|
|||||||
2000-01-24 Ulrich Drepper <drepper@cygnus.com>
|
2000-01-24 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* locale/programs/ld-collate.c (collate_output): Also handle
|
||||||
|
IGNOREd characters in the simple way when generating the multibyte
|
||||||
|
table.
|
||||||
|
|
||||||
|
* locale/programs/ld-ctype.c (allocate_arrays): Move codeset_name
|
||||||
|
handling to ...
|
||||||
|
(ctype_finish): ...here. Check for missing codeset name.
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/Dist: Add ipc_priv.h.
|
* sysdeps/unix/sysv/linux/Dist: Add ipc_priv.h.
|
||||||
* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
|
* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
|
||||||
|
|
||||||
|
@ -2000,7 +2000,7 @@ collate_output (struct localedef_t *locale, struct charmap_t *charmap,
|
|||||||
|
|
||||||
for (ch = 1; ch < 256; ++ch)
|
for (ch = 1; ch < 256; ++ch)
|
||||||
if (collate->mbheads[ch]->mbnext == NULL
|
if (collate->mbheads[ch]->mbnext == NULL
|
||||||
&& collate->mbheads[ch]->nmbs == 1)
|
&& collate->mbheads[ch]->nmbs <= 1)
|
||||||
{
|
{
|
||||||
tablemb[ch] = output_weight (&weightpool, collate,
|
tablemb[ch] = output_weight (&weightpool, collate,
|
||||||
collate->mbheads[ch]);
|
collate->mbheads[ch]);
|
||||||
@ -2025,6 +2025,9 @@ collate_output (struct localedef_t *locale, struct charmap_t *charmap,
|
|||||||
struct element_t *runp = collate->mbheads[ch];
|
struct element_t *runp = collate->mbheads[ch];
|
||||||
struct element_t *lastp;
|
struct element_t *lastp;
|
||||||
|
|
||||||
|
assert ((obstack_object_size (&extrapool)
|
||||||
|
& (__alignof__ (int32_t) - 1)) == 0);
|
||||||
|
|
||||||
tablemb[ch] = -obstack_object_size (&extrapool);
|
tablemb[ch] = -obstack_object_size (&extrapool);
|
||||||
|
|
||||||
do
|
do
|
||||||
@ -2081,6 +2084,7 @@ collate_output (struct localedef_t *locale, struct charmap_t *charmap,
|
|||||||
/* Now walk backward from here to the beginning. */
|
/* Now walk backward from here to the beginning. */
|
||||||
curp = runp;
|
curp = runp;
|
||||||
|
|
||||||
|
assert (runp->nmbs <= 256);
|
||||||
obstack_1grow_fast (&extrapool, curp->nmbs - 1);
|
obstack_1grow_fast (&extrapool, curp->nmbs - 1);
|
||||||
for (i = 1; i < curp->nmbs; ++i)
|
for (i = 1; i < curp->nmbs; ++i)
|
||||||
obstack_1grow_fast (&extrapool, curp->mbs[i]);
|
obstack_1grow_fast (&extrapool, curp->mbs[i]);
|
||||||
@ -2125,13 +2129,17 @@ collate_output (struct localedef_t *locale, struct charmap_t *charmap,
|
|||||||
added = ((sizeof (int32_t) + 1 + runp->nmbs - 1
|
added = ((sizeof (int32_t) + 1 + runp->nmbs - 1
|
||||||
+ __alignof__ (int32_t) - 1)
|
+ __alignof__ (int32_t) - 1)
|
||||||
& ~(__alignof__ (int32_t) - 1));
|
& ~(__alignof__ (int32_t) - 1));
|
||||||
|
assert ((obstack_object_size (&extrapool)
|
||||||
|
& (__alignof__ (int32_t) - 1)) == 0);
|
||||||
obstack_make_room (&extrapool, added);
|
obstack_make_room (&extrapool, added);
|
||||||
|
|
||||||
if (sizeof (int32_t) == sizeof (int))
|
if (sizeof (int32_t) == sizeof (int))
|
||||||
obstack_int_grow_fast (&extrapool, weightidx);
|
obstack_int_grow_fast (&extrapool, weightidx);
|
||||||
else
|
else
|
||||||
obstack_grow (&extrapool, &weightidx, sizeof (int32_t));
|
obstack_grow (&extrapool, &weightidx, sizeof (int32_t));
|
||||||
|
assert (runp->nmbs <= 256);
|
||||||
obstack_1grow_fast (&extrapool, runp->nmbs - 1);
|
obstack_1grow_fast (&extrapool, runp->nmbs - 1);
|
||||||
|
|
||||||
for (i = 1; i < runp->nmbs; ++i)
|
for (i = 1; i < runp->nmbs; ++i)
|
||||||
obstack_1grow_fast (&extrapool, runp->mbs[i]);
|
obstack_1grow_fast (&extrapool, runp->mbs[i]);
|
||||||
}
|
}
|
||||||
@ -2147,11 +2155,14 @@ collate_output (struct localedef_t *locale, struct charmap_t *charmap,
|
|||||||
}
|
}
|
||||||
while (runp != NULL);
|
while (runp != NULL);
|
||||||
|
|
||||||
|
assert ((obstack_object_size (&extrapool)
|
||||||
|
& (__alignof__ (int32_t) - 1)) == 0);
|
||||||
|
|
||||||
/* If the final entry in the list is not a single character we
|
/* If the final entry in the list is not a single character we
|
||||||
add an UNDEFINED entry here. */
|
add an UNDEFINED entry here. */
|
||||||
if (lastp->nmbs != 1)
|
if (lastp->nmbs != 1)
|
||||||
{
|
{
|
||||||
int added = ((sizeof (int32_t) + 1 + 1 + __alignof__ (int32_t))
|
int added = ((sizeof (int32_t) + 1 + 1 + __alignof__ (int32_t) - 1)
|
||||||
& ~(__alignof__ (int32_t) - 1));
|
& ~(__alignof__ (int32_t) - 1));
|
||||||
obstack_make_room (&extrapool, added);
|
obstack_make_room (&extrapool, added);
|
||||||
|
|
||||||
|
@ -379,6 +379,17 @@ ctype_finish (struct localedef_t *locale, struct charmap_t *charmap)
|
|||||||
ctype->repertoire = repertoire_read (repertoire_name);
|
ctype->repertoire = repertoire_read (repertoire_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* We need the name of the currently used 8-bit character set to
|
||||||
|
make correct conversion between this 8-bit representation and the
|
||||||
|
ISO 10646 character set used internally for wide characters. */
|
||||||
|
ctype->codeset_name = charmap->code_set_name;
|
||||||
|
if (ctype->codeset_name == NULL)
|
||||||
|
{
|
||||||
|
if (! be_quiet)
|
||||||
|
error (0, 0, "no character set name specified in charmap");
|
||||||
|
ctype->codeset_name = "//UNKNOWN//";
|
||||||
|
}
|
||||||
|
|
||||||
/* Set default value for classes not specified. */
|
/* Set default value for classes not specified. */
|
||||||
set_class_defaults (ctype, charmap, ctype->repertoire);
|
set_class_defaults (ctype, charmap, ctype->repertoire);
|
||||||
|
|
||||||
@ -3304,11 +3315,6 @@ Computing table size for character classes might take a while..."),
|
|||||||
/* Set MB_CUR_MAX. */
|
/* Set MB_CUR_MAX. */
|
||||||
ctype->mb_cur_max = charmap->mb_cur_max;
|
ctype->mb_cur_max = charmap->mb_cur_max;
|
||||||
|
|
||||||
/* We need the name of the currently used 8-bit character set to
|
|
||||||
make correct conversion between this 8-bit representation and the
|
|
||||||
ISO 10646 character set used internally for wide characters. */
|
|
||||||
ctype->codeset_name = charmap->code_set_name;
|
|
||||||
|
|
||||||
/* Now determine the table for the transliteration information.
|
/* Now determine the table for the transliteration information.
|
||||||
|
|
||||||
XXX It is not yet clear to me whether it is worth implementing a
|
XXX It is not yet clear to me whether it is worth implementing a
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2000-01-24 Ulrich Drepper <drepper@cygnus.com>
|
2000-01-24 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* tst-locale.sh: Also enable test5.
|
||||||
|
* tests/test5.ds: New file.
|
||||||
|
|
||||||
* locales/gl_ES: New file.
|
* locales/gl_ES: New file.
|
||||||
Contributed by Jacobo Tarrio <jtarrio@ceu.fi.udc.es>.
|
Contributed by Jacobo Tarrio <jtarrio@ceu.fi.udc.es>.
|
||||||
|
|
||||||
|
24
localedata/tests/test5.ds
Normal file
24
localedata/tests/test5.ds
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
escape_char /
|
||||||
|
<k0101> <UAC00>
|
||||||
|
<k0102> <UAC01>
|
||||||
|
<k0103> <UAC02>
|
||||||
|
<k4001> <U2170>
|
||||||
|
<k4002> <U2171>
|
||||||
|
<k4003> <U2172>
|
||||||
|
<k4036> <U0394>
|
||||||
|
<k5001> <U2500>
|
||||||
|
<k5002> <U2502>
|
||||||
|
<k5003> <U250C>
|
||||||
|
<k6001> <U3395>
|
||||||
|
<k6002> <U3396>
|
||||||
|
<k6003> <U3397>
|
||||||
|
<0> <U0030>
|
||||||
|
<1> <U0031>
|
||||||
|
<2> <U0032>
|
||||||
|
<3> <U0033>
|
||||||
|
<4> <U0034>
|
||||||
|
<5> <U0035>
|
||||||
|
<6> <U0036>
|
||||||
|
<7> <U0037>
|
||||||
|
<8> <U0038>
|
||||||
|
<9> <U0039>
|
@ -44,8 +44,7 @@ test_locale tests/test1.cm tests/test1.def test1 mnemonic.ds
|
|||||||
test_locale tests/test2.cm tests/test2.def test2 mnemonic.ds
|
test_locale tests/test2.cm tests/test2.def test2 mnemonic.ds
|
||||||
test_locale tests/test3.cm tests/test3.def test3 mnemonic.ds
|
test_locale tests/test3.cm tests/test3.def test3 mnemonic.ds
|
||||||
test_locale tests/test4.cm tests/test4.def test4 mnemonic.ds
|
test_locale tests/test4.cm tests/test4.def test4 mnemonic.ds
|
||||||
# I know that multi-byte charsets do not yet work. --drepper
|
test_locale tests/test5.cm tests/test5.def test5 tests/test5.ds
|
||||||
# test_locale tests/test5.cm tests/test5.def test5 mnemonic.ds
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user