From 89a4f6ff1f643aadc4d3e9e401d792b5198d9f52 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 7 Jul 2000 07:12:11 +0000 Subject: Update. 2000-07-07 Ulrich Drepper * locale/programs/locale.c (write_locales): Don't simply add all directories found in the subdir, test whether at least the LC_CTYPE file is in there. --- ChangeLog | 6 ++++++ locale/programs/locale.c | 15 ++++++++++++++- localedata/ChangeLog | 5 +++++ localedata/tests-mbwc/dat_mblen.c | 2 +- localedata/tests-mbwc/dat_mbtowc.c | 9 ++++----- localedata/tests-mbwc/dat_wctob.c | 8 ++------ 6 files changed, 32 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1add3ad..9ff2643 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-07-07 Ulrich Drepper + + * locale/programs/locale.c (write_locales): Don't simply add all + directories found in the subdir, test whether at least the + LC_CTYPE file is in there. + 2000-07-06 Ulrich Drepper * iconvdata/euc-jp.c: Map characters in C1 area to itself. diff --git a/locale/programs/locale.c b/locale/programs/locale.c index 0fcc259..c37dad8 100644 --- a/locale/programs/locale.c +++ b/locale/programs/locale.c @@ -336,7 +336,20 @@ write_locales (void) } if (S_ISDIR (mode)) - PUT (strdup (dirent->d_name)); + { + /* Test whether at least the LC_CTYPE data is there. Some + directories only contain translations. */ + char buf[sizeof (LOCALEDIR) + strlen (dirent->d_name) + + sizeof "/LC_CTYPE"]; + struct stat st; + + stpcpy (stpcpy (stpcpy (stpcpy (buf, LOCALEDIR), "/"), + dirent->d_name), + "/LC_CTYPE"); + + if (stat (buf, &st) == 0 && S_ISREG (st.st_mode)) + PUT (strdup (dirent->d_name)); + } } closedir (dir); diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 6f64baa..226e83e 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,5 +1,10 @@ 2000-07-06 Ulrich Drepper + * tests-mbwc/dat_mblen.c: Correct data after adding C1 characters + to EUC-JP. + * tests-mbwc/dat_mbtowc.c: Likewise. + * tests-mbwc/dat_wctob.c: Likewise. + * charmaps/EUC-JP: Make characters in C1 area map to themselves. * charmaps/EUC-KR: Likewise. diff --git a/localedata/tests-mbwc/dat_mblen.c b/localedata/tests-mbwc/dat_mblen.c index 0868ec4..7e9ba74 100644 --- a/localedata/tests-mbwc/dat_mblen.c +++ b/localedata/tests-mbwc/dat_mblen.c @@ -100,7 +100,7 @@ TST_MBLEN tst_mblen_loc [] = { /* 03: a character + an invalid byte. */ { { 1, "\260\241\200", USE_MBCURMAX }, { 0, 0, 1, 2 } }, /* 04: control/invalid characters. */ - { { 1, "\200\202", USE_MBCURMAX }, { 1, EILSEQ, 1, -1 } }, + { { 1, "\377\202", USE_MBCURMAX }, { 1, EILSEQ, 1, -1 } }, /* 05: a null string. */ { { 1, "", USE_MBCURMAX }, { 0, 0, 1, 0 } }, /* 06: a null pointer. */ diff --git a/localedata/tests-mbwc/dat_mbtowc.c b/localedata/tests-mbwc/dat_mbtowc.c index b23653b..fc90769 100644 --- a/localedata/tests-mbwc/dat_mbtowc.c +++ b/localedata/tests-mbwc/dat_mbtowc.c @@ -263,20 +263,19 @@ TST_MBTOWC tst_mbtowc_loc [] = { { { { 1, 1, "\177\244\242", MB_LEN_MAX }, - { 1, 1, "\200\244\242", MB_LEN_MAX }, + { 1, 1, "\377\244\242", MB_LEN_MAX }, { 1, 1, "\201\244\242", MB_LEN_MAX }, } }, { { - { 0, 0, 1, +1, 0x007F }, + { 0, 0, 1, +1, 0x007F }, #ifdef SHOJI_IS_RIGHT { 1, EILSEQ, 1, -1, 0x0000 }, - { 1, EILSEQ, 1, -1, 0x0000 }, #else - { 0, 0, 1, -1, 0x0000 }, - { 0, 0, 1, -1, 0x0000 }, + { 0, 0, 1, -1, 0x0000 }, #endif + { 0, 0, 1, +1, 0x0081 }, } } }, diff --git a/localedata/tests-mbwc/dat_wctob.c b/localedata/tests-mbwc/dat_wctob.c index d40b74a..e4cae62 100644 --- a/localedata/tests-mbwc/dat_wctob.c +++ b/localedata/tests-mbwc/dat_wctob.c @@ -42,12 +42,8 @@ TST_WCTOB tst_wctob_loc [] = { { { WEOF }, { 0,0, 1, EOF } }, { { 0x0020 }, { 0,0, 1, 0x20 } }, { { 0x0061 }, { 0,0, 1, 0x61 } }, -#ifdef SHOJI_IS_RIGHT - { { 0x0080 }, { 0,0, 1, 0x80 } }, /* */ -#else - /* XXX These are no valid characters. */ - { { 0x0080 }, { 0,0, 1, EOF } }, -#endif + { { 0x0080 }, { 0,0, 1, 0x80 } }, + { { 0x00FF }, { 0,0, 1, EOF } }, { { 0x00C4 }, { 0,0, 1, EOF } }, { { 0x30C4 }, { 0,0, 1, EOF } }, { is_last: 1 } /* Last element. */ -- cgit v1.1