xmake-io / xmake

🔥 A cross-platform build utility based on Lua
https://xmake.io
Apache License 2.0
10.04k stars 785 forks source link

输出显示问题 #670

Closed OpportunityLiu closed 4 years ago

OpportunityLiu commented 4 years ago

注:提问题时若使用不能用/没效果/有问题/报错此类模糊表达,但又没有根据下面的模板给出任何相关辅助信息的,将绝对不会有任何反馈。

描述问题

请尽量清晰精准地描述你碰到的问题。 图片

期待的结果

请尽量清晰精准地描述你所期待的结果。

错误信息

xmake l os.getwinsize
{
  height = 30,
  width = 65
}
xmake f -h

如果可能,请尽量附加程序运行过程中的错误输出信息。

如果是xmake相关编译问题,请加上-v -D参数运行,并给出详细编译输出信息。

相关环境

xmake -dev, win 10

其他信息

请提供其他附加信息帮助我们诊断问题。

OpportunityLiu commented 4 years ago

感觉是stdout的buffer的问题

idealvin commented 4 years ago

应该是 vscode 的 terminal,没有识别 ansi 的 color 序列

idealvin commented 4 years ago

老版本的 powershell, cmd,不支持 ^[38;5;2m 这种东西,win10 才开始支持的

OpportunityLiu commented 4 years ago

都是一样的序列,哪有上一行识别不了下一行就能识别了的。。 而且改变teminal的宽度,出现这种情况的位置也会变

感觉是一个转义序列存在buffer里分两次写导致的问题

idealvin commented 4 years ago

可能是 vscode terminal 的 bug,我这边也遇到过颜色混乱的问题

OpportunityLiu commented 4 years ago

好像吧,同样的宽度conhost没啥问题

idealvin commented 4 years ago

@OpportunityLiu 可否帮忙看看 这里 ?

waruqi commented 4 years ago

这。。。xmake里面怎么解? 控制每行输出 color code 不被截断?这有点蛋疼哈~

OpportunityLiu commented 4 years ago

这。。。xmake里面怎么解? 控制每行输出 color code 不被截断?这有点蛋疼哈~

不是截断问题,就是vscode的console问题,ansi escape code不能分两次写,我们在c里面实现的缓冲和他的缓冲冲突了

OpportunityLiu commented 4 years ago

https://github.com/tboox/tbox/blob/f2f7fb594e2642ea3c9be2cc564cb2550330f7fb/src/tbox/platform/windows/stdfile.c#L452

这里加上

 tb_stream_sync(stdfile->ofstream, tb_false);

就好了,每遇到一个换行就应该强制flush一次

waruqi commented 4 years ago

https://github.com/tboox/tbox/blob/f2f7fb594e2642ea3c9be2cc564cb2550330f7fb/src/tbox/platform/windows/stdfile.c#L452

哦哦 我回头加一下试试,最近tbox正改到一半 暂时先不更新到xmake了,等后面我改完 一并merge过去好了。。

waruqi commented 4 years ago

https://github.com/tboox/tbox/blob/f2f7fb594e2642ea3c9be2cc564cb2550330f7fb/src/tbox/platform/windows/stdfile.c#L452

这里加上

 tb_stream_sync(stdfile->ofstream, tb_false);

就好了,每遇到一个换行就应该强制flush一次

我tbox更新了,这个地方改过了,可以再试试 dev上。

OpportunityLiu commented 4 years ago

我这里转头就复现不了了。。。

waruqi commented 4 years ago

额 好吧

waruqi commented 4 years ago

等回头复现了再看看吧 这里我先close了 core里面flush我之前也改进过了