mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-08 18:30:18 +00:00
Update.
2000-04-06 Ulrich Drepper <drepper@redhat.com> * locale/programs/charmap.c (parse_charmap): Recognize <Uxxxx> values as character names. * locale/programs/ld-ctype.c (get_character): Handle missing repertoire map correctly.
This commit is contained in:
parent
a1303dc8dc
commit
723faa38f9
@ -1,3 +1,11 @@
|
|||||||
|
2000-04-06 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* locale/programs/charmap.c (parse_charmap): Recognize <Uxxxx>
|
||||||
|
values as character names.
|
||||||
|
|
||||||
|
* locale/programs/ld-ctype.c (get_character): Handle missing
|
||||||
|
repertoire map correctly.
|
||||||
|
|
||||||
2000-04-05 Cristian Gafton <gafton@redhat.com>
|
2000-04-05 Cristian Gafton <gafton@redhat.com>
|
||||||
|
|
||||||
* ctype/ctype.h (__isctype_l): Define even if not __OPTIMIZE__
|
* ctype/ctype.h (__isctype_l): Define even if not __OPTIMIZE__
|
||||||
|
@ -441,7 +441,7 @@ character sets with locking states are not supported"));
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nowtok != tok_bsymbol)
|
if (nowtok != tok_bsymbol && nowtok != tok_ucs4)
|
||||||
{
|
{
|
||||||
lr_error (cmfile, _("syntax error in %s definition: %s"),
|
lr_error (cmfile, _("syntax error in %s definition: %s"),
|
||||||
"CHARMAP", _("no symbolic name given"));
|
"CHARMAP", _("no symbolic name given"));
|
||||||
@ -455,9 +455,17 @@ character sets with locking states are not supported"));
|
|||||||
if (from_name != NULL)
|
if (from_name != NULL)
|
||||||
obstack_free (&result->mem_pool, from_name);
|
obstack_free (&result->mem_pool, from_name);
|
||||||
|
|
||||||
from_name = (char *) obstack_copy0 (&result->mem_pool,
|
if (nowtok == tok_bsymbol)
|
||||||
now->val.str.startmb,
|
from_name = (char *) obstack_copy0 (&result->mem_pool,
|
||||||
now->val.str.lenmb);
|
now->val.str.startmb,
|
||||||
|
now->val.str.lenmb);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
obstack_printf (&result->mem_pool, "<%08X>",
|
||||||
|
cmfile->token.val.ucs4);
|
||||||
|
obstack_1grow (&result->mem_pool, '\0');
|
||||||
|
from_name = (char *) obstack_finish (&result->mem_pool);
|
||||||
|
}
|
||||||
to_name = NULL;
|
to_name = NULL;
|
||||||
|
|
||||||
state = 3;
|
state = 3;
|
||||||
@ -506,7 +514,7 @@ character sets with locking states are not supported"));
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
if (nowtok != tok_bsymbol)
|
if (nowtok != tok_bsymbol && nowtok != tok_ucs4)
|
||||||
{
|
{
|
||||||
lr_error (cmfile, _("syntax error in %s definition: %s"),
|
lr_error (cmfile, _("syntax error in %s definition: %s"),
|
||||||
"CHARMAP",
|
"CHARMAP",
|
||||||
@ -517,9 +525,17 @@ character sets with locking states are not supported"));
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Copy the to-name in a safe place. */
|
/* Copy the to-name in a safe place. */
|
||||||
to_name = (char *) obstack_copy0 (&result->mem_pool,
|
if (nowtok == tok_bsymbol)
|
||||||
cmfile->token.val.str.startmb,
|
to_name = (char *) obstack_copy0 (&result->mem_pool,
|
||||||
cmfile->token.val.str.lenmb);
|
cmfile->token.val.str.startmb,
|
||||||
|
cmfile->token.val.str.lenmb);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
obstack_printf (&result->mem_pool, "<%08X>",
|
||||||
|
cmfile->token.val.ucs4);
|
||||||
|
obstack_1grow (&result->mem_pool, '\0');
|
||||||
|
to_name = (char *) obstack_finish (&result->mem_pool);
|
||||||
|
}
|
||||||
|
|
||||||
state = 5;
|
state = 5;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1192,15 +1192,18 @@ get_character (struct token *now, struct charmap_t *charmap,
|
|||||||
|
|
||||||
if (*seqp == NULL)
|
if (*seqp == NULL)
|
||||||
{
|
{
|
||||||
/* Insert a negative entry. */
|
if (repertoire != NULL)
|
||||||
static const struct charseq negative
|
{
|
||||||
= { .ucs4 = ILLEGAL_CHAR_VALUE };
|
/* Insert a negative entry. */
|
||||||
uint32_t *newp = obstack_alloc (&repertoire->mem_pool,
|
static const struct charseq negative
|
||||||
sizeof (uint32_t));
|
= { .ucs4 = ILLEGAL_CHAR_VALUE };
|
||||||
*newp = now->val.ucs4;
|
uint32_t *newp = obstack_alloc (&repertoire->mem_pool,
|
||||||
|
sizeof (uint32_t));
|
||||||
|
*newp = now->val.ucs4;
|
||||||
|
|
||||||
insert_entry (&repertoire->seq_table, newp, sizeof (uint32_t),
|
insert_entry (&repertoire->seq_table, newp,
|
||||||
(void *) &negative);
|
sizeof (uint32_t), (void *) &negative);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
(*seqp)->ucs4 = now->val.ucs4;
|
(*seqp)->ucs4 = now->val.ucs4;
|
||||||
|
Loading…
Reference in New Issue
Block a user