diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-11-21 18:11:05 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-11-21 18:11:05 +0000 |
commit | 87372aa9cf3b26291bfbd74e68e221da06ea953d (patch) | |
tree | 9b573413af42fac008083cc986747e46e4617888 /locale | |
parent | a2236316645f0e4c3c9b286a7f908da786b9726f (diff) | |
download | glibc-87372aa9cf3b26291bfbd74e68e221da06ea953d.tar.gz glibc-87372aa9cf3b26291bfbd74e68e221da06ea953d.tar.xz glibc-87372aa9cf3b26291bfbd74e68e221da06ea953d.zip |
Update.
1999-11-21 Ulrich Drepper <drepper@cygnus.com> * locale/programs/ld-ctype.c (ctype_read): Correctly implement 14652-style definition of new maps and classes.
Diffstat (limited to 'locale')
-rw-r--r-- | locale/programs/ld-ctype.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c index a08095bbf5..d9a560783f 100644 --- a/locale/programs/ld-ctype.c +++ b/locale/programs/ld-ctype.c @@ -1764,7 +1764,7 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result, now = lr_token (ldfile, charmap, NULL); if (now->tok == tok_ident || now->tok == tok_string) { - /* Must be one of the predefined class names. */ + /* Must can be one of the predefined class names. */ for (cnt = 0; cnt < ctype->nr_charclass; ++cnt) if (strcmp (ctype->classnames[cnt], now->val.str.startmb) == 0) break; @@ -1783,13 +1783,10 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result, else #endif { - lr_error (ldfile, _("\ -unknown character class `%s' in category `LC_CTYPE'"), - now->val.str.startmb); - free (now->val.str.startmb); + /* OK, it's a new class. */ + ctype_class_new (ldfile, ctype, now->val.str.startmb); - lr_ignore_rest (ldfile, 0); - continue; + class_bit = _ISwbit (ctype->nr_charclass - 1); } } else @@ -2073,15 +2070,11 @@ with character code range values one must use the absolute ellipsis `...'")); if (strcmp (now->val.str.startmb, ctype->mapnames[cnt]) == 0) break; - if (cnt < ctype->map_collection_nr) - mapidx = cnt; - else - { - lr_error (ldfile, _("unknown map `%s'"), - now->val.str.startmb); - lr_ignore_rest (ldfile, 0); - break; - } + if (cnt >= ctype->map_collection_nr) + /* OK, it's a new map. */ + ctype_map_new (ldfile, ctype, now->val.str.startmb, charmap); + + mapidx = cnt; } else if (now->tok < tok_toupper || now->tok > tok_tolower) goto err_label; |