Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
394024e6
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
394024e6
编写于
12月 11, 2020
作者:
H
haojun Liao
提交者:
GitHub
12月 11, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4515 from taosdata/feature/td-1680
[TD-1680]<feature>: print ellipsis when binary/nchar is too long
上级
6248b986
7d7c9a1b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
6 deletion
+45
-6
src/kit/shell/src/shellEngine.c
src/kit/shell/src/shellEngine.c
+45
-6
未找到文件。
src/kit/shell/src/shellEngine.c
浏览文件 @
394024e6
...
...
@@ -509,7 +509,9 @@ static int dumpResultToFile(const char* fname, TAOS_RES* tres) {
static
void
shellPrintNChar
(
const
char
*
str
,
int
length
,
int
width
)
{
int
pos
=
0
,
cols
=
0
;
wchar_t
tail
[
3
];
int
pos
=
0
,
cols
=
0
,
totalCols
=
0
,
tailLen
=
0
;
while
(
pos
<
length
)
{
wchar_t
wc
;
int
bytes
=
mbtowc
(
&
wc
,
str
+
pos
,
MB_CUR_MAX
);
...
...
@@ -526,15 +528,44 @@ static void shellPrintNChar(const char *str, int length, int width) {
#else
int
w
=
wcwidth
(
wc
);
#endif
if
(
w
>
0
)
{
if
(
width
>
0
&&
cols
+
w
>
width
)
{
break
;
}
if
(
w
<=
0
)
{
continue
;
}
if
(
width
<=
0
)
{
printf
(
"%lc"
,
wc
);
continue
;
}
totalCols
+=
w
;
if
(
totalCols
>
width
)
{
break
;
}
if
(
totalCols
<=
(
width
-
3
))
{
printf
(
"%lc"
,
wc
);
cols
+=
w
;
}
else
{
tail
[
tailLen
]
=
wc
;
tailLen
++
;
}
}
if
(
totalCols
>
width
)
{
// width could be 1 or 2, so printf("...") cannot be used
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
if
(
cols
>=
width
)
{
break
;
}
putchar
(
'.'
);
++
cols
;
}
}
else
{
for
(
int
i
=
0
;
i
<
tailLen
;
i
++
)
{
printf
(
"%lc"
,
tail
[
i
]);
}
cols
=
totalCols
;
}
for
(;
cols
<
width
;
cols
++
)
{
putchar
(
' '
);
}
...
...
@@ -656,13 +687,21 @@ static int calcColWidth(TAOS_FIELD* field, int precision) {
return
MAX
(
25
,
width
);
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
if
(
field
->
bytes
>
tsMaxBinaryDisplayWidth
)
{
return
MAX
(
tsMaxBinaryDisplayWidth
,
width
);
}
else
{
return
MAX
(
field
->
bytes
,
width
);
}
case
TSDB_DATA_TYPE_NCHAR
:
{
int16_t
bytes
=
field
->
bytes
*
TSDB_NCHAR_SIZE
;
if
(
bytes
>
tsMaxBinaryDisplayWidth
)
{
return
MAX
(
tsMaxBinaryDisplayWidth
,
width
);
}
else
{
return
MAX
(
bytes
,
width
);
}
}
case
TSDB_DATA_TYPE_TIMESTAMP
:
if
(
args
.
is_raw_time
)
{
return
MAX
(
14
,
width
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录