aboutsummaryrefslogtreecommitdiff
path: root/locale
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-07-29 06:45:51 +0000
committerUlrich Drepper <drepper@redhat.com>2000-07-29 06:45:51 +0000
commit69c69fe11da745ee591a17570c2be5b529ec2fa6 (patch)
treea6a20ad924fc78b78dc855d9c12cda1649f5ad71 /locale
parent5e4633932782f08412e8cee75236f4f458591a3d (diff)
downloadglibc-69c69fe11da745ee591a17570c2be5b529ec2fa6.zip
glibc-69c69fe11da745ee591a17570c2be5b529ec2fa6.tar.gz
glibc-69c69fe11da745ee591a17570c2be5b529ec2fa6.tar.bz2
Update.
2000-07-28 Ulrich Drepper <drepper@redhat.com> * stdio-common/_i18n_itoa.c: Removed. * stdio-common/_i18n_itoa.h: Removed. * stdio-common/_i18n_itowa.c: Removed. * stdio-common/_i18n_itowa.h: Removed. * stdio-common/_i18n_number.h: New file. * stdio-common/Depend: New file. * stdio-common/printf-parse.h: Handle I modifier correctly. Optimize. * stdio-common/vfprintf.c: Rewrite buffer handling for integer printing. Change printing of numbers with locale specific digits to use new code in _i18n_number.h. * stdio-common/bug13.c: Improve messages. * locale/programs/ld-ctype.c (ctype_read): Improve error message. (set_class_defaults): Always search also for Uxxxx names. Detect insufficient number of outdigits. * locale/Makefile (C-translit.h): Use mv not $(move-if-changed).
Diffstat (limited to 'locale')
-rw-r--r--locale/Makefile2
-rw-r--r--locale/programs/ld-ctype.c29
2 files changed, 27 insertions, 4 deletions
diff --git a/locale/Makefile b/locale/Makefile
index 2825a69..5d7594a 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -76,7 +76,7 @@ $(objpfx)localedef $(objpfx)locale: $(lib-modules:%=$(objpfx)%.o)
C-translit.h: C-translit.h.in gen-translit.pl
$(PERL) gen-translit.pl < $< > $@.tmp
- $(move-if-change) $@.tmp $@
+ mv -f $@.tmp $@
ifeq ($(with-cvs),yes)
test ! -d CVS || cvs $(CVSOPTS) commit -mRegenerated $@
endif
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index ebfc1e4..1c1c492 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -2274,7 +2274,8 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
lr_error (ldfile, _("\
%s: field `%s' does not contain exactly ten entries"),
"LC_CTYPE", "outdigit");
- goto err_label;
+ lr_ignore_rest (ldfile, 0);
+ break;
}
ctype->mboutdigits[ctype->outdigits_act] = seq;
@@ -2781,6 +2782,12 @@ set_class_defaults (struct locale_ctype_t *ctype, struct charmap_t *charmap,
seq = charmap_find_value (charmap, tmp, 1);
if (seq == NULL)
{
+ char buf[10];
+ sprintf (buf, "U%08X", ch);
+ seq = charmap_find_value (charmap, buf, 9);
+ }
+ if (seq == NULL)
+ {
if (!be_quiet)
error (0, 0, _("\
%s: character `%s' not defined in charmap while needed as default value"),
@@ -3133,6 +3140,12 @@ character `%s' not defined while needed as default value"),
seq_from = charmap_find_value (charmap, &tmp[1], 1);
if (seq_from == NULL)
{
+ char buf[10];
+ sprintf (buf, "U%08X", ch);
+ seq_from = charmap_find_value (charmap, buf, 9);
+ }
+ if (seq_from == NULL)
+ {
if (!be_quiet)
error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
@@ -3152,6 +3165,12 @@ character `%s' not defined while needed as default value"),
seq_to = charmap_find_value (charmap, &tmp[1], 1);
if (seq_to == NULL)
{
+ char buf[10];
+ sprintf (buf, "U%08X", ch + ('A' - 'a'));
+ seq_to = charmap_find_value (charmap, buf, 9);
+ }
+ if (seq_to == NULL)
+ {
if (!be_quiet)
error (0, 0, _("\
%s: character `%s' not defined while needed as default value"),
@@ -3191,9 +3210,13 @@ character `%s' not defined while needed as default value"),
ctype->map256_collection[1][ctype->map256_collection[0][cnt]] = cnt;
}
- if (ctype->outdigits_act == 0)
+ if (ctype->outdigits_act != 10)
{
- for (cnt = 0; cnt < 10; ++cnt)
+ if (ctype->outdigits_act != 0)
+ error (0,0, _("%s: field `%s' does not contain exactly ten entries"),
+ "LC_CTYPE", "outdigit");
+
+ for (cnt = ctype->outdigits_act; cnt < 10; ++cnt)
{
ctype->mboutdigits[cnt] = charmap_find_symbol (charmap,
digits + cnt, 1);