6929715 Xutf8TextListToTextProperty does not work for Korean text
authorNaoyuki Ishimura <Naoyuki.Ishimura@Sun.COM>
Wed, 21 Jul 2010 22:22:22 -0700
changeset 986 4c9f2c882fac
parent 985 a6102f6ccba8
child 987 343664522591
6929715 Xutf8TextListToTextProperty does not work for Korean text
open-src/lib/libX11/lc-gb18030.patch
open-src/lib/libX11/lc-ksc5601.1992-3.patch
open-src/lib/libX11/sun-src/src/xlibi18n/lcUniConv/ksc5601_1992.h
--- a/open-src/lib/libX11/lc-gb18030.patch	Wed Jul 21 13:24:01 2010 -0700
+++ b/open-src/lib/libX11/lc-gb18030.patch	Wed Jul 21 22:22:22 2010 -0700
@@ -72,8 +72,8 @@
      { "BIG5-0:GLGR", "\033%/2"},
      { "BIG5HKSCS-0:GLGR", "\033%/2"},
      { "GBK-0:GLGR", "\033%/2"},
-+    { "GB18030-0:GLGR", "\033%/2??GB18030-0" },
-+    { "GB18030-1:GLGR", "\033%/2??GB18030-1" },
++    { "GB18030-0:GLGR", "\033%/2" },
++    { "GB18030-1:GLGR", "\033%/2" },
      /* used by Emacs, but not backed by ISO-IR */
      { "BIG5-E0:GL", "\033$(0" },
      { "BIG5-E0:GR", "\033$)0" },
--- a/open-src/lib/libX11/lc-ksc5601.1992-3.patch	Wed Jul 21 13:24:01 2010 -0700
+++ b/open-src/lib/libX11/lc-ksc5601.1992-3.patch	Wed Jul 21 22:22:22 2010 -0700
@@ -24,11 +24,20 @@
 diff -urp -x '*~' -x '*.orig' src/xlibi18n/lcCT.c src/xlibi18n/lcCT.c
 --- src/xlibi18n/lcCT.c	2009-01-28 21:09:42.000000000 -0800
 +++ src/xlibi18n/lcCT.c	2009-04-08 00:20:25.037179000 -0700
+@@ -51,7 +51,7 @@
+  * Static representation of a character set that can be used in Compound Text.
+  */
+ typedef struct _CTDataRec {
+-    const char name[19];
++    const char name[20];
+     const char ct_sequence[5];	/* Compound Text encoding, ESC sequence */
+ } CTDataRec, *CTData;
+ 
 @@ -97,6 +97,7 @@ static const CTDataRec default_ct_data[]
      { "JISX0212.1990-0:GR", /* JIS_X0212-1990      159   */ "\033$)D" },
      { "KSC5601.1987-0:GL",  /* KS_C_5601-1987      149   */ "\033$(C" },
      { "KSC5601.1987-0:GR",  /* KS_C_5601-1987      149   */ "\033$)C" },
-+    { "KSC5601.1992-3:GLGR",  /* KS_C_5601-1992    149   */ "\033%/2??SUN-KSC5601.1992-3" },
++    { "KSC5601.1992-3:GLGR",  /* KS_C_5601-1992    149   */ "\033%/2" },
      { "CNS11643.1986-1:GL", /* CNS 11643-1992 pl.1 171   */ "\033$(G" },
      { "CNS11643.1986-1:GR", /* CNS 11643-1992 pl.1 171   */ "\033$)G" },
      { "CNS11643.1986-2:GL", /* CNS 11643-1992 pl.2 172   */ "\033$(H" },
--- a/open-src/lib/libX11/sun-src/src/xlibi18n/lcUniConv/ksc5601_1992.h	Wed Jul 21 13:24:01 2010 -0700
+++ b/open-src/lib/libX11/sun-src/src/xlibi18n/lcUniConv/ksc5601_1992.h	Wed Jul 21 22:22:22 2010 -0700
@@ -4195,6 +4195,11 @@
         h = 0xD9B0;
     } else if (wc==0x25C9) {
         h = 0xD9C1;
+    } else if ((wc >= 0x3041 && wc <= 0x309F) || (wc >= 0x30A0 && wc <= 0x30FF)) {
+        /* Hiragana and Katakana should be handled in jis0208 as below else block
+          is KSC specific and breaks Hiragana/Katakana */
+        return RET_ILSEQ;
+
     } else {
         /* Try KSC5601, now KS X 1001. */
         ret = ksc5601_wctomb(conv, buf, wc, 2);