about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--locale/programs/locale.c15
-rw-r--r--localedata/ChangeLog5
-rw-r--r--localedata/tests-mbwc/dat_mblen.c2
-rw-r--r--localedata/tests-mbwc/dat_mbtowc.c9
-rw-r--r--localedata/tests-mbwc/dat_wctob.c8
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.  */