1
1
/*
2
2
* conversion functions between pg_wchar and multibyte streams.
3
3
* Tatsuo Ishii
4
- * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.64 2007/09/18 17:41:17 adunstan Exp $
4
+ * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.65 2007/10/15 22:46:27 tgl Exp $
5
5
*
6
6
*/
7
7
/* can be used in either frontend or backend */
38
38
* SQL/ASCII
39
39
*/
40
40
static int
41
- pg_ascii2wchar_with_len
42
- (const unsigned char * from , pg_wchar * to , int len )
41
+ pg_ascii2wchar_with_len (const unsigned char * from , pg_wchar * to , int len )
43
42
{
44
43
int cnt = 0 ;
45
44
@@ -73,8 +72,8 @@ pg_ascii_dsplen(const unsigned char *s)
73
72
/*
74
73
* EUC
75
74
*/
76
- static int pg_euc2wchar_with_len
77
- (const unsigned char * from , pg_wchar * to , int len )
75
+ static int
76
+ pg_euc2wchar_with_len (const unsigned char * from , pg_wchar * to , int len )
78
77
{
79
78
int cnt = 0 ;
80
79
@@ -148,8 +147,8 @@ pg_euc_dsplen(const unsigned char *s)
148
147
/*
149
148
* EUC_JP
150
149
*/
151
- static int pg_eucjp2wchar_with_len
152
- (const unsigned char * from , pg_wchar * to , int len )
150
+ static int
151
+ pg_eucjp2wchar_with_len (const unsigned char * from , pg_wchar * to , int len )
153
152
{
154
153
return pg_euc2wchar_with_len (from , to , len );
155
154
}
@@ -179,8 +178,8 @@ pg_eucjp_dsplen(const unsigned char *s)
179
178
/*
180
179
* EUC_KR
181
180
*/
182
- static int pg_euckr2wchar_with_len
183
- (const unsigned char * from , pg_wchar * to , int len )
181
+ static int
182
+ pg_euckr2wchar_with_len (const unsigned char * from , pg_wchar * to , int len )
184
183
{
185
184
return pg_euc2wchar_with_len (from , to , len );
186
185
}
@@ -201,8 +200,8 @@ pg_euckr_dsplen(const unsigned char *s)
201
200
* EUC_CN
202
201
*
203
202
*/
204
- static int pg_euccn2wchar_with_len
205
- (const unsigned char * from , pg_wchar * to , int len )
203
+ static int
204
+ pg_euccn2wchar_with_len (const unsigned char * from , pg_wchar * to , int len )
206
205
{
207
206
int cnt = 0 ;
208
207
@@ -268,8 +267,8 @@ pg_euccn_dsplen(const unsigned char *s)
268
267
* EUC_TW
269
268
*
270
269
*/
271
- static int pg_euctw2wchar_with_len
272
- (const unsigned char * from , pg_wchar * to , int len )
270
+ static int
271
+ pg_euctw2wchar_with_len (const unsigned char * from , pg_wchar * to , int len )
273
272
{
274
273
int cnt = 0 ;
275
274
@@ -343,12 +342,6 @@ pg_euctw_dsplen(const unsigned char *s)
343
342
/*
344
343
* JOHAB
345
344
*/
346
- static int
347
- pg_johab2wchar_with_len (const unsigned char * from , pg_wchar * to , int len )
348
- {
349
- return pg_euc2wchar_with_len (from , to , len );
350
- }
351
-
352
345
static int
353
346
pg_johab_mblen (const unsigned char * s )
354
347
{
@@ -1307,6 +1300,7 @@ pg_utf8_islegal(const unsigned char *source, int length)
1307
1300
/*
1308
1301
*-------------------------------------------------------------------
1309
1302
* encoding info table
1303
+ * XXX must be sorted by the same order as enum pg_enc (in mb/pg_wchar.h)
1310
1304
*-------------------------------------------------------------------
1311
1305
*/
1312
1306
pg_wchar_tbl pg_wchar_table [] = {
@@ -1315,41 +1309,41 @@ pg_wchar_tbl pg_wchar_table[] = {
1315
1309
{pg_euccn2wchar_with_len , pg_euccn_mblen , pg_euccn_dsplen , pg_euccn_verifier , 2 }, /* 2; PG_EUC_CN */
1316
1310
{pg_euckr2wchar_with_len , pg_euckr_mblen , pg_euckr_dsplen , pg_euckr_verifier , 3 }, /* 3; PG_EUC_KR */
1317
1311
{pg_euctw2wchar_with_len , pg_euctw_mblen , pg_euctw_dsplen , pg_euctw_verifier , 4 }, /* 4; PG_EUC_TW */
1318
- {pg_utf2wchar_with_len , pg_utf_mblen , pg_utf_dsplen , pg_utf8_verifier , 4 }, /* 5; PG_UTF8 */
1319
- {pg_mule2wchar_with_len , pg_mule_mblen , pg_mule_dsplen , pg_mule_verifier , 4 }, /* 6; PG_MULE_INTERNAL */
1320
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 7; PG_LATIN1 */
1321
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 8; PG_LATIN2 */
1322
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 9; PG_LATIN3 */
1323
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 10; PG_LATIN4 */
1324
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 11; PG_LATIN5 */
1325
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 12; PG_LATIN6 */
1326
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 13; PG_LATIN7 */
1327
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 14; PG_LATIN8 */
1328
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 15; PG_LATIN9 */
1329
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 16; PG_LATIN10 */
1330
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 17; PG_WIN1256 */
1331
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 18; PG_WIN1258 */
1332
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 19; PG_WIN874 */
1333
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 21; PG_KOI8 */
1334
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 22; PG_WIN1251 */
1335
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 23; PG_WIN1252 */
1336
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 24; PG_WIN866 */
1312
+ {pg_eucjp2wchar_with_len , pg_eucjp_mblen , pg_eucjp_dsplen , pg_eucjp_verifier , 3 }, /* 5; PG_EUC_JIS_2004 */
1313
+ {pg_utf2wchar_with_len , pg_utf_mblen , pg_utf_dsplen , pg_utf8_verifier , 4 }, /* 6; PG_UTF8 */
1314
+ {pg_mule2wchar_with_len , pg_mule_mblen , pg_mule_dsplen , pg_mule_verifier , 4 }, /* 7; PG_MULE_INTERNAL */
1315
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 8; PG_LATIN1 */
1316
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 9; PG_LATIN2 */
1317
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 10; PG_LATIN3 */
1318
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 11; PG_LATIN4 */
1319
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 12; PG_LATIN5 */
1320
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 13; PG_LATIN6 */
1321
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 14; PG_LATIN7 */
1322
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 15; PG_LATIN8 */
1323
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 16; PG_LATIN9 */
1324
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 17; PG_LATIN10 */
1325
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 18; PG_WIN1256 */
1326
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 19; PG_WIN1258 */
1327
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 20; PG_WIN866 */
1328
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 21; PG_WIN874 */
1329
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 22; PG_KOI8R */
1330
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 23; PG_WIN1251 */
1331
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 24; PG_WIN1252 */
1337
1332
{pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 25; ISO-8859-5 */
1338
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 25; ISO-8859-6 */
1339
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 26; ISO-8859-7 */
1340
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 27; ISO-8859-8 */
1341
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 28; PG_WIN1250 */
1342
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 29; PG_WIN1253 */
1343
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 30; PG_WIN1254 */
1344
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 31; PG_WIN1255 */
1345
- {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 32; PG_WIN1257 */
1346
- {pg_eucjp2wchar_with_len , pg_eucjp_mblen , pg_eucjp_dsplen , pg_eucjp_verifier , 3 }, /* 33; PG_EUC_JIS_2004 */
1333
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 26; ISO-8859-6 */
1334
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 27; ISO-8859-7 */
1335
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 28; ISO-8859-8 */
1336
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 29; PG_WIN1250 */
1337
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 30; PG_WIN1253 */
1338
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 31; PG_WIN1254 */
1339
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 32; PG_WIN1255 */
1340
+ {pg_latin12wchar_with_len , pg_latin1_mblen , pg_latin1_dsplen , pg_latin1_verifier , 1 }, /* 33; PG_WIN1257 */
1347
1341
{0 , pg_sjis_mblen , pg_sjis_dsplen , pg_sjis_verifier , 2 }, /* 34; PG_SJIS */
1348
1342
{0 , pg_big5_mblen , pg_big5_dsplen , pg_big5_verifier , 2 }, /* 35; PG_BIG5 */
1349
1343
{0 , pg_gbk_mblen , pg_gbk_dsplen , pg_gbk_verifier , 2 }, /* 36; PG_GBK */
1350
1344
{0 , pg_uhc_mblen , pg_uhc_dsplen , pg_uhc_verifier , 2 }, /* 37; PG_UHC */
1351
- {pg_johab2wchar_with_len , pg_johab_mblen , pg_johab_dsplen , pg_johab_verifier , 3 }, /* 38; PG_JOHAB */
1352
- {0 , pg_gb18030_mblen , pg_gb18030_dsplen , pg_gb18030_verifier , 4 }, /* 39; PG_GB18030 */
1345
+ {0 , pg_gb18030_mblen , pg_gb18030_dsplen , pg_gb18030_verifier , 4 }, /* 38; PG_GB18030 */
1346
+ {0 , pg_johab_mblen , pg_johab_dsplen , pg_johab_verifier , 3 }, /* 39; PG_JOHAB */
1353
1347
{0 , pg_sjis_mblen , pg_sjis_dsplen , pg_sjis_verifier , 2 } /* 40; PG_SHIFT_JIS_2004 */
1354
1348
};
1355
1349
@@ -1440,7 +1434,6 @@ pg_verifymbstr(const char *mbstr, int len, bool noError)
1440
1434
/*
1441
1435
* Verify mbstr to make sure that it is validly encoded in the specified
1442
1436
* encoding.
1443
- *
1444
1437
*/
1445
1438
bool
1446
1439
pg_verify_mbstr (int encoding , const char * mbstr , int len , bool noError )
0 commit comments