2000-06-20  Ulrich Drepper  <drepper@redhat.com>

	* locale/programs/charmap.c (parse_charmap): Handle UCS names also
	in width definitions.
This commit is contained in:
Ulrich Drepper 2000-06-20 22:30:32 +00:00
parent 8d6120a9cc
commit 620cdffb58
2 changed files with 38 additions and 14 deletions

View File

@ -1,3 +1,8 @@
2000-06-20 Ulrich Drepper <drepper@redhat.com>
* locale/programs/charmap.c (parse_charmap): Handle UCS names also
in width definitions.
2000-06-20 Andreas Jaeger <aj@suse.de>
* sysdeps/mips/fpu/libm-test-ulps: New file.

View File

@ -720,7 +720,7 @@ only WIDTH definitions are allowed to follow the CHARMAP definition"));
continue;
}
if (nowtok != tok_bsymbol)
if (nowtok != tok_bsymbol && nowtok != tok_ucs4)
{
lr_error (cmfile, _("syntax error in %s definition: %s"),
"WIDTH_VARIABLE", _("no symbolic name given"));
@ -733,9 +733,17 @@ only WIDTH definitions are allowed to follow the CHARMAP definition"));
if (from_name != NULL)
obstack_free (&result->mem_pool, from_name);
from_name = (char *) obstack_copy0 (&result->mem_pool,
now->val.str.startmb,
now->val.str.lenmb);
if (nowtok == tok_bsymbol)
from_name = (char *) obstack_copy0 (&result->mem_pool,
now->val.str.startmb,
now->val.str.lenmb);
else
{
obstack_printf (&result->mem_pool, "U%08X",
cmfile->token.val.ucs4);
obstack_1grow (&result->mem_pool, '\0');
from_name = (char *) obstack_finish (&result->mem_pool);
}
to_name = NULL;
state = 99;
@ -753,19 +761,30 @@ only WIDTH definitions are allowed to follow the CHARMAP definition"));
continue;
case 100:
if (nowtok != tok_bsymbol)
lr_error (cmfile, _("syntax error in %s definition: %s"),
"WIDTH_VARIABLE",
_("no symbolic name given for end of range"));
else
if (nowtok != tok_bsymbol && nowtok != tok_ucs4)
{
to_name = (char *) obstack_copy0 (&result->mem_pool,
now->val.str.startmb,
now->val.str.lenmb);
/* XXX Enter value into table. */
lr_error (cmfile, _("syntax error in %s definition: %s"),
"WIDTH_VARIABLE",
_("no symbolic name given for end of range"));
lr_ignore_rest (cmfile, 0);
continue;
}
lr_ignore_rest (cmfile, nowtok == tok_bsymbol);
if (nowtok == tok_bsymbol)
to_name = (char *) obstack_copy0 (&result->mem_pool,
now->val.str.startmb,
now->val.str.lenmb);
else
{
obstack_printf (&result->mem_pool, "U%08X",
cmfile->token.val.ucs4);
obstack_1grow (&result->mem_pool, '\0');
to_name = (char *) obstack_finish (&result->mem_pool);
}
/* XXX Enter value into table. */
lr_ignore_rest (cmfile, 1);
state = 98;
continue;