blob: bc6a228fb0cc71fa1d6fe1dc9084483acf98d523 [file] [log] [blame]
diff -Nru scim-pinyin-0.5.91.orig/src/scim_pinyin_imengine.cpp scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp
--- scim-pinyin-0.5.91.orig/src/scim_pinyin_imengine.cpp 2005-08-06 23:31:08.000000000 +0800
+++ scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp 2009-02-18 00:06:34.000000000 +0800
@@ -706,8 +706,12 @@
m_sys_phrase_lib = m_pinyin_global->get_sys_phrase_lib ();
m_user_phrase_lib = m_pinyin_global->get_user_phrase_lib ();
}
-
- if (encoding == "GBK" || encoding == "GB2312") {
+
+ if (encoding == "GBK") {
+ m_simplified = true;
+ m_traditional = true;
+ m_chinese_iconv.set_encoding ("GBK");
+ } else if (encoding == "GB2312") {
m_simplified = true;
m_traditional = false;
m_chinese_iconv.set_encoding ("GB2312");
@@ -930,10 +934,39 @@
m_iconv.set_encoding (encoding);
- if (encoding == "GBK" || encoding == "GB2312") {
- m_simplified = true;
- m_traditional = false;
- m_chinese_iconv.set_encoding ("GB2312");
+ if (encoding == "GBK") {
+ if (m_simplified == false) {
+ if(m_traditional == true){
+ ; //Big5. Big5togbk is not implemented. Set to next available.
+ m_simplified = true;
+ m_chinese_iconv.set_encoding ("GBK");
+ }else{ // nochinese mode. Should not happen.
+ m_forward = true;
+ m_chinese_iconv.set_encoding ("");
+ }
+ }else{
+ if( m_traditional == false) //GB2312
+ m_chinese_iconv.set_encoding("GB2312");
+ else m_chinese_iconv.set_encoding ("GBK"); //ALL
+ }
+ } else if (encoding == "GB2312") {
+ if ( m_simplified == false ) {
+ if(m_traditional == true) {
+ ; //partly map big5 to gb2312 is not done. Set to next.
+ m_forward = true;
+ m_chinese_iconv.set_encoding ("");
+ }else{//Should not happen.
+ m_forward = true;
+ m_chinese_iconv.set_encoding("");
+ }
+ }else{
+ if (m_traditional == true) { //Should not happen.
+ m_forward = true;
+ m_chinese_iconv.set_encoding ("");
+ }else{
+ m_chinese_iconv.set_encoding ("GB2312");
+ }
+ }
} else if (encoding == "BIG5" || encoding == "BIG5-HKSCS") {
m_simplified = false;
m_traditional = true;