Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
3c6cd8a1
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,发现更多精彩内容 >>
提交
3c6cd8a1
编写于
11月 22, 2005
作者:
T
Teodor Sigaev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes motivated by snake and spoonbill pgbuildfarm members
上级
725ace44
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
13 deletion
+18
-13
contrib/tsearch2/ts_locale.c
contrib/tsearch2/ts_locale.c
+13
-8
contrib/tsearch2/ts_locale.h
contrib/tsearch2/ts_locale.h
+2
-2
contrib/tsearch2/wordparser/parser.c
contrib/tsearch2/wordparser/parser.c
+3
-3
未找到文件。
contrib/tsearch2/ts_locale.c
浏览文件 @
3c6cd8a1
...
...
@@ -8,23 +8,29 @@
#if defined(TS_USE_WIDE) && defined(WIN32)
size_t
wchar2char
(
c
onst
c
har
*
to
,
const
wchar_t
*
from
,
size_t
len
)
{
wchar2char
(
char
*
to
,
const
wchar_t
*
from
,
size_t
len
)
{
if
(
GetDatabaseEncoding
()
==
PG_UTF8
)
{
int
r
;
int
r
,
nbytes
;
if
(
len
==
0
)
return
0
;
/* in any case, *to should be allocated with enough space */
nbytes
=
WideCharToMultiByte
(
CP_UTF8
,
0
,
from
,
len
,
NULL
,
0
,
NULL
,
NULL
);
if
(
nbytes
==
0
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_CHARACTER_NOT_IN_REPERTOIRE
),
errmsg
(
"UTF-16 to UTF-8 translation failed: %lu"
,
GetLastError
())));
r
=
WideCharToMultiByte
(
CP_UTF8
,
0
,
from
,
len
,
to
,
nbytes
,
NULL
,
NULL
);
if
(
r
==
0
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_CHARACTER_NOT_IN_REPERTOIRE
),
errmsg
(
"UTF-16 to UTF-8 translation failed: %lu"
,
GetLastError
())));
return
r
;
}
...
...
@@ -32,15 +38,14 @@ wchar2char( const char *to, const wchar_t *from, size_t len ) {
}
size_t
char2wchar
(
const
wchar_t
*
to
,
const
char
*
from
,
size_t
len
)
{
char2wchar
(
wchar_t
*
to
,
const
char
*
from
,
size_t
len
)
{
if
(
GetDatabaseEncoding
()
==
PG_UTF8
)
{
int
r
;
if
(
len
==
0
)
return
0
;
r
=
MultiByteToWideChar
(
CP_UTF8
,
0
,
from
,
len
,
to
,
len
);
r
=
MultiByteToWideChar
(
CP_UTF8
,
0
,
from
,
len
,
to
,
len
);
if
(
!
r
)
{
pg_verifymbstr
(
from
,
len
,
false
);
...
...
@@ -50,7 +55,7 @@ char2wchar( const wchar_t *to, const char *from, size_t len ) {
errhint
(
"The server's LC_CTYPE locale is probably incompatible with the database encoding."
)));
}
Assert
(
r
<=
nbytes
);
Assert
(
r
<=
len
);
return
r
;
}
...
...
contrib/tsearch2/ts_locale.h
浏览文件 @
3c6cd8a1
...
...
@@ -22,8 +22,8 @@
#ifdef WIN32
size_t
wchar2char
(
c
onst
c
har
*
to
,
const
wchar_t
*
from
,
size_t
len
);
size_t
char2wchar
(
const
wchar_t
*
to
,
const
char
*
from
,
size_t
len
);
size_t
wchar2char
(
char
*
to
,
const
wchar_t
*
from
,
size_t
len
);
size_t
char2wchar
(
wchar_t
*
to
,
const
char
*
from
,
size_t
len
);
#else
/* WIN32 */
...
...
contrib/tsearch2/wordparser/parser.c
浏览文件 @
3c6cd8a1
...
...
@@ -79,7 +79,7 @@ TParserClose( TParser* prs ) {
static int \
p_is##type(TParser *prs) { \
Assert( prs->state ); \
return ( ( prs->usewide ) ? isw##type( (wint_t)*( prs->wstr + prs->state->poschar ) ) :
\
return ( ( prs->usewide ) ? isw##type( (wint_t)*( prs->wstr + prs->state->poschar ) ) :
\
is##type( (unsigned char)*( prs->str + prs->state->posbyte ) ) ); \
} \
\
...
...
@@ -104,7 +104,7 @@ p_iseq(TParser *prs, char c) {
static int \
p_is##type(TParser *prs) { \
Assert( prs->state ); \
return is##type( (unsigned char)*( prs->str + prs->state->posbyte ) )
);
\
return is##type( (unsigned char)*( prs->str + prs->state->posbyte ) )
;
\
} \
\
static int \
...
...
@@ -116,7 +116,7 @@ p_isnot##type(TParser *prs) { \
static
int
p_iseq
(
TParser
*
prs
,
char
c
)
{
Assert
(
prs
->
state
);
return
(
*
(
prs
->
str
+
prs
->
state
->
posbyte
)
==
c
)
)
?
1
:
0
;
return
(
*
(
prs
->
str
+
prs
->
state
->
posbyte
)
==
c
)
?
1
:
0
;
}
#endif
/* TS_USE_WIDE */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录