Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
db90bcf8
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
db90bcf8
编写于
1月 29, 2014
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add more C comments to entab.c.
上级
25b1dafa
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
5 deletion
+28
-5
src/tools/entab/entab.c
src/tools/entab/entab.c
+28
-5
未找到文件。
src/tools/entab/entab.c
浏览文件 @
db90bcf8
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
extern
char
*
optarg
;
extern
char
*
optarg
;
extern
int
optind
;
extern
int
optind
;
int
int
main
(
int
argc
,
char
**
argv
)
main
(
int
argc
,
char
**
argv
)
{
{
...
@@ -88,6 +89,7 @@ main(int argc, char **argv)
...
@@ -88,6 +89,7 @@ main(int argc, char **argv)
argv
+=
optind
;
argv
+=
optind
;
argc
-=
optind
;
argc
-=
optind
;
/* process arguments */
do
do
{
{
if
(
argc
<
1
)
if
(
argc
<
1
)
...
@@ -104,6 +106,7 @@ main(int argc, char **argv)
...
@@ -104,6 +106,7 @@ main(int argc, char **argv)
escaped
=
FALSE
;
escaped
=
FALSE
;
/* process lines */
while
(
fgets
(
in_line
,
sizeof
(
in_line
),
in_file
)
!=
NULL
)
while
(
fgets
(
in_line
,
sizeof
(
in_line
),
in_file
)
!=
NULL
)
{
{
col_in_tab
=
0
;
col_in_tab
=
0
;
...
@@ -114,9 +117,11 @@ main(int argc, char **argv)
...
@@ -114,9 +117,11 @@ main(int argc, char **argv)
quote_char
=
' '
;
quote_char
=
' '
;
escaped
=
FALSE
;
escaped
=
FALSE
;
/* process line */
while
(
*
src
!=
NUL
)
while
(
*
src
!=
NUL
)
{
{
col_in_tab
++
;
col_in_tab
++
;
/* Is this a potential space/tab replacement? */
if
(
quote_char
==
' '
&&
(
*
src
==
' '
||
*
src
==
'\t'
))
if
(
quote_char
==
' '
&&
(
*
src
==
' '
||
*
src
==
'\t'
))
{
{
if
(
*
src
==
'\t'
)
if
(
*
src
==
'\t'
)
...
@@ -127,22 +132,26 @@ main(int argc, char **argv)
...
@@ -127,22 +132,26 @@ main(int argc, char **argv)
else
else
prv_spaces
++
;
prv_spaces
++
;
/* Are we at a tab stop? */
if
(
col_in_tab
==
tab_size
)
if
(
col_in_tab
==
tab_size
)
{
{
/*
/*
* Is the next character going to be a tab?
Needed t
o
* Is the next character going to be a tab?
We d
o
*
do tab replacement in current spot if next char is
*
tab replacement in the current spot if the next
*
going to be a tab, ignoring min_spaces
*
char is going to be a tab and ignore min_spaces.
*/
*/
nxt_spaces
=
0
;
nxt_spaces
=
0
;
while
(
1
)
while
(
1
)
{
{
/* Have we reached non-whitespace? */
if
(
*
(
src
+
nxt_spaces
+
1
)
==
NUL
||
if
(
*
(
src
+
nxt_spaces
+
1
)
==
NUL
||
(
*
(
src
+
nxt_spaces
+
1
)
!=
' '
&&
(
*
(
src
+
nxt_spaces
+
1
)
!=
' '
&&
*
(
src
+
nxt_spaces
+
1
)
!=
'\t'
))
*
(
src
+
nxt_spaces
+
1
)
!=
'\t'
))
break
;
break
;
/* count spaces */
if
(
*
(
src
+
nxt_spaces
+
1
)
==
' '
)
if
(
*
(
src
+
nxt_spaces
+
1
)
==
' '
)
++
nxt_spaces
;
++
nxt_spaces
;
/* Have we found a forward tab? */
if
(
*
(
src
+
nxt_spaces
+
1
)
==
'\t'
||
if
(
*
(
src
+
nxt_spaces
+
1
)
==
'\t'
||
nxt_spaces
==
tab_size
)
nxt_spaces
==
tab_size
)
{
{
...
@@ -150,6 +159,7 @@ main(int argc, char **argv)
...
@@ -150,6 +159,7 @@ main(int argc, char **argv)
break
;
break
;
}
}
}
}
/* Do tab replacment for spaces? */
if
((
prv_spaces
>=
min_spaces
||
if
((
prv_spaces
>=
min_spaces
||
nxt_spaces
==
tab_size
)
&&
nxt_spaces
==
tab_size
)
&&
del_tabs
==
FALSE
)
del_tabs
==
FALSE
)
...
@@ -158,40 +168,51 @@ main(int argc, char **argv)
...
@@ -158,40 +168,51 @@ main(int argc, char **argv)
prv_spaces
=
0
;
prv_spaces
=
0
;
}
}
else
else
/* output accumulated spaces */
{
{
for
(;
prv_spaces
>
0
;
prv_spaces
--
)
for
(;
prv_spaces
>
0
;
prv_spaces
--
)
*
(
dst
++
)
=
' '
;
*
(
dst
++
)
=
' '
;
}
}
}
}
}
}
/* Not a potential space/tab replacement */
else
else
{
{
/* output accumulated spaces */
for
(;
prv_spaces
>
0
;
prv_spaces
--
)
for
(;
prv_spaces
>
0
;
prv_spaces
--
)
*
(
dst
++
)
=
' '
;
*
(
dst
++
)
=
' '
;
if
(
*
src
==
'\t'
)
/* only when in quote */
/* This can only happen in a quote. */
if
(
*
src
==
'\t'
)
col_in_tab
=
0
;
col_in_tab
=
0
;
/* visual backspace? */
if
(
*
src
==
'\b'
)
if
(
*
src
==
'\b'
)
col_in_tab
-=
2
;
col_in_tab
-=
2
;
/* Do we process quotes? */
if
(
escaped
==
FALSE
&&
protect_quotes
==
TRUE
)
if
(
escaped
==
FALSE
&&
protect_quotes
==
TRUE
)
{
{
if
(
*
src
==
'\\'
)
if
(
*
src
==
'\\'
)
escaped
=
TRUE
;
escaped
=
TRUE
;
/* Is this a quote character? */
if
(
*
src
==
'"'
||
*
src
==
'\''
)
if
(
*
src
==
'"'
||
*
src
==
'\''
)
{
{
/* toggle quote mode */
if
(
quote_char
==
' '
)
if
(
quote_char
==
' '
)
quote_char
=
*
src
;
quote_char
=
*
src
;
else
if
(
*
src
==
quote_char
)
else
if
(
*
src
==
quote_char
)
quote_char
=
' '
;
quote_char
=
' '
;
}
}
}
}
/* newlines/CRs do not terminate escapes */
else
if
(
*
src
!=
'\r'
&&
*
src
!=
'\n'
)
else
if
(
*
src
!=
'\r'
&&
*
src
!=
'\n'
)
escaped
=
FALSE
;
escaped
=
FALSE
;
/* reached newline/CR; clip line? */
if
((
*
src
==
'\r'
||
*
src
==
'\n'
)
&&
if
((
*
src
==
'\r'
||
*
src
==
'\n'
)
&&
quote_char
==
' '
&&
clip_lines
==
TRUE
&&
clip_lines
==
TRUE
&&
quote_char
==
' '
&&
escaped
==
FALSE
)
escaped
==
FALSE
)
{
{
/* trim spaces starting from the end */
while
(
dst
>
out_line
&&
while
(
dst
>
out_line
&&
(
*
(
dst
-
1
)
==
' '
||
*
(
dst
-
1
)
==
'\t'
))
(
*
(
dst
-
1
)
==
' '
||
*
(
dst
-
1
)
==
'\t'
))
dst
--
;
dst
--
;
...
@@ -210,9 +231,11 @@ main(int argc, char **argv)
...
@@ -210,9 +231,11 @@ main(int argc, char **argv)
dst
--
;
dst
--
;
prv_spaces
=
0
;
prv_spaces
=
0
;
}
}
/* output accumulated spaces */
for
(;
prv_spaces
>
0
;
prv_spaces
--
)
for
(;
prv_spaces
>
0
;
prv_spaces
--
)
*
(
dst
++
)
=
' '
;
*
(
dst
++
)
=
' '
;
*
dst
=
NUL
;
*
dst
=
NUL
;
if
(
fputs
(
out_line
,
stdout
)
==
EOF
)
if
(
fputs
(
out_line
,
stdout
)
==
EOF
)
{
{
fprintf
(
stderr
,
"Cannot write to output file %s: %s
\n
"
,
argv
[
0
],
strerror
(
errno
));
fprintf
(
stderr
,
"Cannot write to output file %s: %s
\n
"
,
argv
[
0
],
strerror
(
errno
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录