QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2119|回复: 3

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

[复制链接]
发表于 2009-3-16 17:04:47 | 显示全部楼层 |阅读模式
使用bash时碰到一个问题,希望有兴趣的人能研究一下。

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

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

希望能得到大家的帮忙将这个问题解决!!!
发表于 2009-3-17 15:14:49 | 显示全部楼层
贴图看看
回复

使用道具 举报

 楼主| 发表于 2009-3-17 18:53:06 | 显示全部楼层
原帖由 BOoRFGOnZ 于 2009-3-17 15:14 发表
贴图看看

请看图。截图的时候又发现了这种重现方式。让命令行长到要换行,然后ctrl+u看光标位置是否正常。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2009-3-18 09:21:25 | 显示全部楼层
不会是    gnome-terminal 设置的事情吧 如字体 或者什么的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-19 16:10 , Processed in 0.062962 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表