diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-06-21 04:11:39 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-06-21 04:11:39 +0000 |
commit | 1b97149de806a27fe8f52cd5841c252df168a5b8 (patch) | |
tree | 3fada165da85dd854ba6a510661855635f94c38a /locale | |
parent | 6183edbbb1c1c2cc35defc75f8ad0f3b71c675af (diff) | |
download | glibc-1b97149de806a27fe8f52cd5841c252df168a5b8.tar.gz |
Update.
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.
Diffstat (limited to 'locale')
-rw-r--r-- | locale/programs/ld-ctype.c | 58 |
1 files changed, 24 insertions, 34 deletions
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c index 5b570ba00e..e05df68cad 100644 --- a/locale/programs/ld-ctype.c +++ b/locale/programs/ld-ctype.c @@ -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, _("\ -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); - - /* 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->mboutdigits[cnt] == NULL) + ctype->mboutdigits[cnt] = charmap_find_symbol (charmap, + uninames[cnt], 9); - if (ctype->wcoutdigits[cnt] == ILLEGAL_CHAR_VALUE) + if (ctype->mboutdigits[cnt] == NULL) { - ctype->wcoutdigits[cnt] = repertoire_find_value (repertoire, - longnames[cnt], - strlen (longnames[cnt])); + /* Provide a replacement. */ + error (0, 0, _("\ +no output digits defined and none of the standard names in the charmap")); - 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")); + ctype->mboutdigits[cnt] = obstack_alloc (&charmap->mem_pool, + sizeof (struct charseq) + + 1); - /* This is better than nothing. */ - ctype->wcoutdigits[cnt] = (uint32_t) digits[cnt]; - } + /* This is better than nothing. */ + ctype->mboutdigits[cnt]->bytes[0] = digits[cnt]; + ctype->mboutdigits[cnt]->nbytes = 1; } + + ctype->wcoutdigits[cnt] = L'0' + cnt; } ctype->outdigits_act = 10; |