Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
9d6f0606
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,发现更多精彩内容 >>
提交
9d6f0606
编写于
12月 18, 1998
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix for HAVE_LONG bug in snprintf.c.
上级
6b7cf132
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
31 deletion
+18
-31
src/backend/port/snprintf.c
src/backend/port/snprintf.c
+18
-31
未找到文件。
src/backend/port/snprintf.c
浏览文件 @
9d6f0606
...
...
@@ -41,9 +41,6 @@
#include "regex/cdefs.h"
#include <stdarg.h>
#define VA_LOCAL_DECL va_list args;
#define VA_START(f) va_start(args, f)
#define VA_END va_end(args)
#include <sys/ioctl.h>
#include <sys/param.h>
...
...
@@ -75,34 +72,30 @@ typedef long long long_long;
* causing nast effects.
**************************************************************/
/*static char _id[] = "$Id: snprintf.c,v 1.1
2 1998/12/18 06:59:39
momjian Exp $";*/
/*static char _id[] = "$Id: snprintf.c,v 1.1
3 1998/12/18 07:03:06
momjian Exp $";*/
static
char
*
end
;
static
int
SnprfOverflow
;
int
snprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,...);
int
vsnprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,
...
);
static
void
dopr
(
char
*
buffer
,
const
char
*
format
,
...
);
int
vsnprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,
va_list
args
);
static
void
dopr
(
char
*
buffer
,
const
char
*
format
,
va_list
args
);
int
snprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,...)
{
int
len
;
va_list
args
;
VA_LOCAL_DECL
VA_START
(
fmt
);
va_start
(
args
,
fmt
);
len
=
vsnprintf
(
str
,
count
,
fmt
,
args
);
VA_END
;
va_end
(
args
)
;
return
len
;
}
int
vsnprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,
...
)
vsnprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,
va_list
args
)
{
VA_LOCAL_DECL
VA_START
(
fmt
);
str
[
0
]
=
0
;
end
=
str
+
count
-
1
;
SnprfOverflow
=
0
;
...
...
@@ -112,7 +105,6 @@ vsnprintf(char *str, size_t count, const char *fmt,...)
if
(
SnprfOverflow
)
elog
(
NOTICE
,
"vsnprintf overflow, len = %d, str = %s"
,
count
,
str
);
VA_END
;
return
strlen
(
str
);
}
...
...
@@ -122,7 +114,7 @@ vsnprintf(char *str, size_t count, const char *fmt,...)
static
void
fmtstr
__P
((
char
*
value
,
int
ljust
,
int
len
,
int
zpad
,
int
maxwidth
));
#ifndef HAVE_LONG_
LONG_
INT_64
#ifndef HAVE_LONG_INT_64
static
void
fmtnum
__P
((
long
value
,
int
base
,
int
dosign
,
int
ljust
,
int
len
,
int
zpad
));
#else
static
void
fmtnum
__P
((
long_long
value
,
int
base
,
int
dosign
,
int
ljust
,
int
len
,
int
zpad
));
...
...
@@ -133,16 +125,16 @@ static char *output;
static
void
dopr_outch
__P
((
int
c
));
static
void
dopr
(
char
*
buffer
,
const
char
*
format
,
...
)
dopr
(
char
*
buffer
,
const
char
*
format
,
va_list
args
)
{
int
ch
;
#ifdef HAVE_LONG_LONG_INT_64
long_long
value
;
int
longlongflag
=
0
;
#else
long
value
;
#endif
int
longflag
=
0
;
int
longlongflag
=
0
;
int
pointflag
=
0
;
int
maxwidth
=
0
;
char
*
strvalue
;
...
...
@@ -150,10 +142,6 @@ dopr(char *buffer, const char *format,...)
int
len
;
int
zpad
;
VA_LOCAL_DECL
VA_START
(
format
);
output
=
buffer
;
while
((
ch
=
*
format
++
))
{
...
...
@@ -162,13 +150,15 @@ dopr(char *buffer, const char *format,...)
case
'%'
:
ljust
=
len
=
zpad
=
maxwidth
=
0
;
longflag
=
pointflag
=
0
;
#ifdef HAVE_LONG_LONG_INT_64
longlongflag
=
0
;
#endif
nextch:
ch
=
*
format
++
;
switch
(
ch
)
{
case
0
:
dostr
(
"**end of format**"
,
0
);
VA_END
;
return
;
case
'-'
:
ljust
=
1
;
...
...
@@ -200,16 +190,13 @@ dopr(char *buffer, const char *format,...)
pointflag
=
1
;
goto
nextch
;
case
'l'
:
#ifdef HAVE_LONG_LONG_INT_64
if
(
longflag
)
{
longlongflag
=
1
;
goto
nextch
;
}
else
{
#endif
longflag
=
1
;
goto
nextch
;
}
goto
nextch
;
case
'u'
:
case
'U'
:
/* fmtnum(value,base,dosign,ljust,len,zpad) */
...
...
@@ -255,6 +242,7 @@ dopr(char *buffer, const char *format,...)
}
else
value
=
va_arg
(
args
,
int
);
fmtnum
(
value
,
10
,
1
,
ljust
,
len
,
zpad
);
break
;
case
'x'
:
...
...
@@ -311,7 +299,6 @@ dopr(char *buffer, const char *format,...)
}
}
*
output
=
0
;
VA_END
;
}
static
void
...
...
@@ -362,7 +349,7 @@ int base,
zpad
;
{
int
signvalue
=
0
;
#ifdef HAVE_LONG_
LONG_
INT_64
#ifdef HAVE_LONG_INT_64
unsigned
long_long
uvalue
;
#else
unsigned
long
uvalue
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录