fix ab9fb5a8ad9a - private area characters were not handled correctly in non-UTF-8 locales
authorjenda
Mon, 06 Jun 2011 11:36:07 +0200
changeset 140 494b657b5f1d
parent 139 ab9fb5a8ad9a
child 141 23b21efdeb7e
fix ab9fb5a8ad9a - private area characters were not handled correctly in non-UTF-8 locales
misc/patches/cldr_tools/21_default_repertire.patch
--- a/misc/patches/cldr_tools/21_default_repertire.patch	Fri Jun 03 10:10:10 2011 +0200
+++ b/misc/patches/cldr_tools/21_default_repertire.patch	Mon Jun 06 11:36:07 2011 +0200
@@ -1,5 +1,8 @@
 repertoire is all assigned unicode characters
 
+To reduce locale object size, PUA characters are not included in collation tables for UTF-8 locales.
+To generate correct ctype information for the chars, we have to add them to POSIX_LCCtype repertoire
+
 diff -ruN cldr_tools.orig//tools/java/org/unicode/cldr/posix/POSIXLocale.java cldr_tools/tools/java/org/unicode/cldr/posix/POSIXLocale.java
 --- cldr_tools.orig//tools/java/org/unicode/cldr/posix/POSIXLocale.java	2011-04-15 15:33:44.072439117 +0200
 +++ cldr_tools/tools/java/org/unicode/cldr/posix/POSIXLocale.java	2011-04-15 15:37:17.712439014 +0200
@@ -11,16 +14,14 @@
          
       }
       else if ( ! codeset.equals("UTF-8") )
-diff -ruN cldr_tools.orig/tools/java/org/unicode/cldr/posix/POSIX_LCCtype.java cldr_tools/tools/java/org/unicode/cldr/posix/POSIX_LCCtype.java
---- cldr_tools.orig/tools/java/org/unicode/cldr/posix/POSIX_LCCtype.java	2011-06-03 09:46:06.410896606 +0200
-+++ cldr_tools/tools/java/org/unicode/cldr/posix/POSIX_LCCtype.java	2011-06-03 09:50:03.086126397 +0200
-@@ -44,7 +44,8 @@
-          System.out.println("    The resulting locale source might not compile.");
-       }
- 
--      this.chars = chars;
-+      this.chars = new UnicodeSet(chars);
-+      this.chars.addAll(new UnicodeSet("[:Co:]"));
- 
-    }
- 
+      {
+@@ -152,6 +153,9 @@
+          }
+        }
+       
++      if (codeset.equals("UTF-8"))
++         repertoire.addAll(new UnicodeSet("[:Co:]"));
++
+       lc_ctype = new POSIX_LCCtype ( doc, repertoire );
+       lc_numeric = new POSIX_LCNumeric( doc );
+       lc_monetary = new POSIX_LCMonetary( doc , supp , variant );