ahlongxp 发表于 2009-3-16 17:04:47

bash+多字节+宽度超出一行时的bug ?

使用bash时碰到一个问题,希望有兴趣的人能研究一下。

重现这个bug有两个前提:
1:提示(prompt)含有多字节文字,比如汉字。对应到代码应该是if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0)2:命令长到需要换行。>_rl_screenwidth重现:
1:随便输入shell命令,有效无效的都行。回车执行。反复几次,制造历史记录。
2:按方向键上或下即可看到提示与命令重叠等现象。这时候的普通的编辑操作(插入,删除)已经很难正常进行。

经验证,此现象在bash 3.2(ubuntu 8.10), bash 3.2.48, bash 4.0里都存在。
读了一下代码,发现lib/readline/display.c中的rl_redisplay函数比较可疑。但此函数实在是太长,太复杂,涉及的全局/非全局变量太多。没找出问题在哪:(

希望能得到大家的帮忙将这个问题解决!!!

BOoRFGOnZ 发表于 2009-3-17 15:14:49

贴图看看

ahlongxp 发表于 2009-3-17 18:53:06

原帖由 BOoRFGOnZ 于 2009-3-17 15:14 发表 http://www.linuxfans.org/bbs/images/common/back.gif
贴图看看
请看图。截图的时候又发现了这种重现方式。让命令行长到要换行,然后ctrl+u看光标位置是否正常。

BOoRFGOnZ 发表于 2009-3-18 09:21:25

不会是    gnome-terminal 设置的事情吧 如字体 或者什么的
页: [1]
查看完整版本: bash+多字节+宽度超出一行时的bug ?