--- 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);