diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | locale/programs/locale.c | 15 | ||||
-rw-r--r-- | localedata/ChangeLog | 5 | ||||
-rw-r--r-- | localedata/tests-mbwc/dat_mblen.c | 2 | ||||
-rw-r--r-- | localedata/tests-mbwc/dat_mbtowc.c | 9 | ||||
-rw-r--r-- | localedata/tests-mbwc/dat_wctob.c | 8 |
6 files changed, 32 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog index 1add3ad047..9ff26439eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-07-07 Ulrich Drepper <drepper@redhat.com> + + * 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 <drepper@redhat.com> * iconvdata/euc-jp.c: Map characters in C1 area to itself. diff --git a/locale/programs/locale.c b/locale/programs/locale.c index 0fcc2599e1..c37dad8649 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 6f64baaed3..226e83e0f5 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,5 +1,10 @@ 2000-07-06 Ulrich Drepper <drepper@redhat.com> + * 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 0868ec4e82..7e9ba747fb 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 b23653b7d9..fc90769e1d 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 d40b74a85a..e4cae62d23 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 } }, /* <WAIVER> */ -#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. */ |