繁体   English   中英

为什么GNU Readline弄乱了ANSI颜色代码?

[英]Why is GNU Readline messing up ANSI color codes?

我正在尝试使用带有彩色提示的GNU Readline。 归结为一个最小的测试用例,我的readline()调用看起来像这样:

readline("\x1b[34m" "prompt>" "\x1b[m");

我希望看到这样的提示(只是想象它是蓝色的):

prompt>

但是我看到了:

[34mprompt>[m

我读到有关文档中迅速扩展的信息,并认为那里可能发生了一些奇怪的事情。 但是扩展提示符很好,并且可以按预期工作:

rl_set_prompt("\x1b[34m" "prompt>" "\x1b[m");
printf("%s", rl_prompt); // Prints "prompt>" in blue

这在Gnome Terminal和Xterm中都会发生。 我在Ubuntu 18.04上使用libreadline 7。 我一辈子都无法弄清楚这里发生了什么,而且似乎没人在网上遇到这个问题。

我可能永远都不知道出了什么问题。 在测试此项目时,我已经多次彻底清理了项目中的版本(重新生成整个CMake构建树等),但是只需删除并重新下载自己的存储库即可解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM