summaryrefslogtreecommitdiff
path: root/locale
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-06-21 04:11:39 +0000
committerUlrich Drepper <drepper@redhat.com>2000-06-21 04:11:39 +0000
commit1b97149de806a27fe8f52cd5841c252df168a5b8 (patch)
tree3fada165da85dd854ba6a510661855635f94c38a /locale
parent6183edbbb1c1c2cc35defc75f8ad0f3b71c675af (diff)
downloadglibc-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.c58
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;