Fwd: [Patch] Fix multibyte key string conversion problem in 0.9.4.1
AbiWord 0.9.4.1 裏面的 CJK 支援問題終於有解決了!
非常感謝 Yong LI <rigel863@yahoo.com> 大俠再次為大家解決問題。 :-)
AbiSource 的 developer 已經把這個修正加入了,相信下一版的 AbiWord
不會再有這個問題。我稍後也會請 Debian developer Aaron Lehmann 加入這個
patch。 :-)
東東
----- Forwarded message from Yong LI <rigel863@yahoo.com> -----
Date: Sun, 07 Oct 2001 23:42:44 -0700
From: Yong LI <rigel863@yahoo.com>
Subject: [Patch] Fix multibyte key string conversion problem in 0.9.4.1
To: patches@abisource.com
Cc: abiword-dev@abisource.com
Content-type: text/plain; charset=us-ascii; format=flowed
In the method ev_UnixKeyboard::keyPressEvent, a "UT_Mbtowc" object
is used to convert multibyte sequence to wchar. However the declaration
of this "UT_Mbtowc" object is placed inside the conversion loop, which
means for every byte to be converted a new "UT_Mbtowc" object is
constructed. This effectively disables the conversion of
multibyte-encoded characters which requires accumulation of multiple
bytes. One visible consequence of this problem is that input for all CJK
languages fail to work in 0.9.4.1.
A patch is attached.
regards,
rigel
diff -u abi.orig/src/af/ev/unix/ev_UnixKeyboard.cpp
abi/src/af/ev/unix/ev_UnixKeyboard.cpp
--- abi.orig/src/af/ev/unix/ev_UnixKeyboard.cpp Mon Sep 10 09:53:44 2001
+++ abi/src/af/ev/unix/ev_UnixKeyboard.cpp Sun Oct 7 15:04:38 2001
@@ -185,10 +185,10 @@
}
else
{
+ UT_Mbtowc m;
ucs=new UT_UCSChar[mLength];
for(int i=0;i<mLength;++i)
{
- UT_Mbtowc m;
wchar_t wc;
if(m.mbtowc(wc,mbs[i]))
ucs[uLength++]=wc;
----- End forwarded message -----
--
Anthony Fok Tung-Ling 霍東靈
ThizLinux Laboratory <anthony@thizlinux.com> http://www.thizlinux.com/
Debian Chinese Project <foka@debian.org> http://www.debian.org/intl/zh/
Come visit Our Lady of Victory Camp! http://www.olvc.ab.ca/
Reply to: