Sunday, August 17, 2008

[MAC] Leopard中screen的UAO patch

在Leopard的screen下,進PTT,會發現日文字都是亂碼,或是出現錯誤的日文。
例如:
【板主:muzume/nemesis0】夢シ未S ゾアアズやペ 看板《JapanStudy》
正確的應該是
【板主:muzume/nemesis0】夢と未来はここにある 看板《JapanStudy》

解決方法如下:
1. 下載screen的source code。
http://www.freshports.org/sysutils/screen
這邊可以找到screen的下載點。

2. 下載UAO Patch
http://mail.cs.nchu.edu.tw/~s9256043/screen-4.0.2-uao-2.tar.gz

3. 解壓縮source code與patch
tar xvfz screen-4.0.3.tar.gz
tar xvfz screen-4.0.2-uao-2.tar.gz

4. 將screen-4.0.2-uao-2.tar.gz內的18這個檔案copy到utf8encodings的目錄下
cp screen-4.0.2-uao-2/18 screen-4.0.3/utf8encodings

5. 修改ansi.c與encoding.c
diff -Nurbs screen-4.0.2.orig/ansi.c screen-4.0.2/ansi.c
--- ansi.c.orig Fri Dec 5 21:57:05 2003
+++ ansi.c Fri Nov 25 18:18:23 2005
@@ -816,7 +816,7 @@
c = 0xa4;
else
c &= 0x7f;
- if (c < ' ' && font != 031)
+ if (c < ' ' && font != 030 && font != 031)
goto tryagain;
#else
c &= 0x7f;
diff -Nurbs screen-4.0.2.orig/encoding.c screen-4.0.2/encoding.c
--- encoding.c.orig Mon Sep 8 22:25:23 2003
+++ encoding.c Fri Nov 25 18:19:24 2005
@@ -65,7 +65,7 @@
{ "SJIS", "BIBB01", 0, 1, 1, "\002I" },
{ "eucKR", "B\003BB01", 0, 1, 0, "\003" },
{ "eucCN", "B\001BB01", 0, 1, 0, "\001" },
- { "Big5", "B\030BB01", 0, 1, 0, "\030" },
+ { "Big5", "B\030BB01", 0, 1, 1, "\030" },
{ "KOI8-R", 0, 0x80|'!', 0, 1, 0 },
{ "CP1251", 0, 0x80|'?', 0, 1, 0 },
{ "UTF-8", 0, -1, 0, 0, 0 },

6. configure and make
cd ~/screen-4.0.3
./configure --prefix=/opt/local
sudo make
sudo make install

7. 取代掉原來的screen
sudo mv /usr/bin/screen /usr/bin/screen.org
sudo ln -s /opt/local/bin/screen-4.0.3 /usr/bin/screen

8. 執行screen
screen -U

--
Reference :
http://sbt.idv.tw/tBoard/index.py?f=25&m=pl&t=564

No comments:

Post a Comment