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

	* locale/programs/ld-collate.c (insert_value): Now take string and
	length instead of struct token* parameter.  Adjust use of token.
	(handle_ellipsis): Likewise.
	(collate_read): Allow <Uxxxx> names and transform them into names
	to be passed to insert_value and handle_ellipsis.

	* locale/programs/ld-ctype.c (uninames): New array with names of
	digits in <Uxxxxxxxx> format.
	(ctype_finish): Correct search for space character value.  Likewise
	for default outdigits values.
This commit is contained in:
Ulrich Drepper 2000-06-21 04:11:39 +00:00
parent 6183edbbb1
commit 1b97149de8
2 changed files with 37 additions and 34 deletions

View File

@ -1,3 +1,16 @@
2000-06-20 Ulrich Drepper <drepper@redhat.com>
* locale/programs/ld-collate.c (insert_value): Now take string and
length instead of struct token* parameter. Adjust use of token.
(handle_ellipsis): Likewise.
(collate_read): Allow <Uxxxx> names and transform them into names
to be passed to insert_value and handle_ellipsis.
* locale/programs/ld-ctype.c (uninames): New array with names of
digits in <Uxxxxxxxx> format.
(ctype_finish): Correct search for space character value. Likewise
for default outdigits values.
2000-06-20 Greg McGary <greg@mcgary.org>
* Makerules (objects): Add BP thunks.

View File

@ -214,6 +214,11 @@ static const char *longnames[] =
"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine"
};
static const char *uninames[] =
{
"U00000030", "U00000031", "U00000032", "U00000033", "U00000034",
"U00000035", "U00000036", "U00000037", "U00000038", "U00000039"
};
static const unsigned char digits[] = "0123456789";
@ -537,7 +542,7 @@ character '%s' in class `%s' must not be in class `%s'"),
if (space_seq == NULL)
space_seq = charmap_find_value (charmap, "space", 5);
if (space_seq == NULL)
space_seq = charmap_find_value (charmap, "U00000020", 5);
space_seq = charmap_find_value (charmap, "U00000020", 9);
if (space_seq == NULL || space_seq->nbytes != 1)
{
if (!be_quiet)
@ -3116,45 +3121,30 @@ character `%s' not defined while needed as default value"),
digits + cnt, 1);
if (ctype->mboutdigits[cnt] == NULL)
{
ctype->mboutdigits[cnt] = charmap_find_symbol (charmap,
longnames[cnt],
strlen (longnames[cnt]));
ctype->mboutdigits[cnt] = charmap_find_symbol (charmap,
longnames[cnt],
strlen (longnames[cnt]));
if (ctype->mboutdigits[cnt] == NULL)
{
/* Provide a replacement. */
error (0, 0, _("\
if (ctype->mboutdigits[cnt] == NULL)
ctype->mboutdigits[cnt] = charmap_find_symbol (charmap,
uninames[cnt], 9);
if (ctype->mboutdigits[cnt] == NULL)
{
/* Provide a replacement. */
error (0, 0, _("\
no output digits defined and none of the standard names in the charmap"));
ctype->mboutdigits[cnt] = obstack_alloc (&charmap->mem_pool,
sizeof (struct charseq) + 1);
ctype->mboutdigits[cnt] = obstack_alloc (&charmap->mem_pool,
sizeof (struct charseq)
+ 1);
/* This is better than nothing. */
ctype->mboutdigits[cnt]->bytes[0] = digits[cnt];
ctype->mboutdigits[cnt]->nbytes = 1;
}
/* This is better than nothing. */
ctype->mboutdigits[cnt]->bytes[0] = digits[cnt];
ctype->mboutdigits[cnt]->nbytes = 1;
}
ctype->wcoutdigits[cnt] = repertoire_find_value (repertoire,
digits + cnt, 1);
if (ctype->wcoutdigits[cnt] == ILLEGAL_CHAR_VALUE)
{
ctype->wcoutdigits[cnt] = repertoire_find_value (repertoire,
longnames[cnt],
strlen (longnames[cnt]));
if (ctype->wcoutdigits[cnt] == ILLEGAL_CHAR_VALUE)
{
/* Provide a replacement. */
error (0, 0, _("\
no output digits defined and none of the standard names in the repertoire"));
/* This is better than nothing. */
ctype->wcoutdigits[cnt] = (uint32_t) digits[cnt];
}
}
ctype->wcoutdigits[cnt] = L'0' + cnt;
}
ctype->outdigits_act = 10;