Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

在 screen 4.1.0 中 ncurses 程式位置不正確
post by tommy @ 02 四月, 2013 16:00

印象中這個問題出現很久了, 不過因為我也很少用到 ncurses 的程式 (應該也只有偶而用用 aptitude 與 build kernel 時可能會用到 make menuconfig 這兩個吧), 所以就將就著用.

不過最近幫人裝了一台新的伺服器, 用的還是 Debian Squeeze 的版本, 突然發現用到的 screen 是正常的.... 看來是自從我把機器由 Squeeze 升級到 Wheezy 的時候, 就把 screen 由 4.0.3 升到 4.1.0 後就出現這個問題了.

用 git 把 screen 給 clone 回來,  試著 checkout 到某些時間點, 重新編譯一個版本出來試, 終於發現是因為這一個 patch 所造成的.

這一個 patch 原本是修正 CJK 的字寬問題, 不過.... 看起來目前加上這個之後反而有問題, 沒加反而是正常的. 反正... 目前參考原本 Debian 中在 4.0.3 的修正, 自己弄了一個版本 (其實直接拿掉那個 patch 也可以), 看起來在我常用的程式裡頭, 畫面都正常了.

--- encoding.c.orig     2013-04-02 15:39:21.292403088 +0800
+++ encoding.c 2013-04-02 15:40:47.769878488 +0800
@@ -877,6 +877,7 @@
utf8_isdouble(c)
int c;
{
+#if 0
/* sorted list of non-overlapping intervals of East Asian Ambiguous
* characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */
static const struct interval ambiguous[] = {
@@ -949,6 +950,11 @@
(cjkwidth &&
bisearch(c, ambiguous,
sizeof(ambiguous) / sizeof(struct interval) - 1)));
+#endif
+ /* convert Unicode to UCS-4 */
+ wchar_t w = c;
+
+ return wcswidth(&w, 1) > 1;
}
#endif

有需要就自己改一下吧.

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
迴響

  

Bad Behavior 已經阻擋了 68 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS