|
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.69 2009/01/29 19:23:42 tgl Exp $ |
| 4 | + * $PostgreSQL: pgsql/src/backend/utils/mb/wchar.c,v 1.70 2009/02/10 16:44:44 petere Exp $ |
5 | 5 | *
|
6 | 6 | */
|
7 | 7 | /* can be used in either frontend or backend */
|
@@ -1339,47 +1339,47 @@ pg_utf8_islegal(const unsigned char *source, int length)
|
1339 | 1339 | *-------------------------------------------------------------------
|
1340 | 1340 | */
|
1341 | 1341 | pg_wchar_tblpg_wchar_table[]= {
|
1342 |
| -{pg_ascii2wchar_with_len,pg_ascii_mblen,pg_ascii_dsplen,pg_ascii_verifier,1},/*0;PG_SQL_ASCII*/ |
1343 |
| -{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/*1;PG_EUC_JP */ |
1344 |
| -{pg_euccn2wchar_with_len,pg_euccn_mblen,pg_euccn_dsplen,pg_euccn_verifier,2},/*2;PG_EUC_CN */ |
1345 |
| -{pg_euckr2wchar_with_len,pg_euckr_mblen,pg_euckr_dsplen,pg_euckr_verifier,3},/*3;PG_EUC_KR */ |
1346 |
| -{pg_euctw2wchar_with_len,pg_euctw_mblen,pg_euctw_dsplen,pg_euctw_verifier,4},/*4;PG_EUC_TW */ |
1347 |
| -{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/*5;PG_EUC_JIS_2004 */ |
1348 |
| -{pg_utf2wchar_with_len,pg_utf_mblen,pg_utf_dsplen,pg_utf8_verifier,4},/*6;PG_UTF8 */ |
1349 |
| -{pg_mule2wchar_with_len,pg_mule_mblen,pg_mule_dsplen,pg_mule_verifier,4},/*7;PG_MULE_INTERNAL */ |
1350 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*8;PG_LATIN1 */ |
1351 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*9;PG_LATIN2 */ |
1352 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*10;PG_LATIN3 */ |
1353 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*11;PG_LATIN4 */ |
1354 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*12;PG_LATIN5 */ |
1355 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*13;PG_LATIN6 */ |
1356 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*14;PG_LATIN7 */ |
1357 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*15;PG_LATIN8 */ |
1358 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*16;PG_LATIN9 */ |
1359 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*17;PG_LATIN10 */ |
1360 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*18;PG_WIN1256 */ |
1361 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*19;PG_WIN1258 */ |
1362 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*20;PG_WIN866 */ |
1363 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*21;PG_WIN874 */ |
1364 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*22;PG_KOI8R */ |
1365 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*23;PG_WIN1251 */ |
1366 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*24;PG_WIN1252 */ |
1367 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*25;ISO-8859-5 */ |
1368 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*26;ISO-8859-6 */ |
1369 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*27;ISO-8859-7 */ |
1370 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*28;ISO-8859-8 */ |
1371 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*29;PG_WIN1250 */ |
1372 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*30;PG_WIN1253 */ |
1373 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*31;PG_WIN1254 */ |
1374 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*32;PG_WIN1255 */ |
1375 |
| -{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/*33;PG_WIN1257 */ |
1376 |
| -{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2},/*34;PG_SJIS */ |
1377 |
| -{0,pg_big5_mblen,pg_big5_dsplen,pg_big5_verifier,2},/*35;PG_BIG5 */ |
1378 |
| -{0,pg_gbk_mblen,pg_gbk_dsplen,pg_gbk_verifier,2},/*36;PG_GBK */ |
1379 |
| -{0,pg_uhc_mblen,pg_uhc_dsplen,pg_uhc_verifier,2},/*37;PG_UHC */ |
1380 |
| -{0,pg_gb18030_mblen,pg_gb18030_dsplen,pg_gb18030_verifier,4},/*38;PG_GB18030 */ |
1381 |
| -{0,pg_johab_mblen,pg_johab_dsplen,pg_johab_verifier,3},/*39;PG_JOHAB */ |
1382 |
| -{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2}/*40;PG_SHIFT_JIS_2004 */ |
| 1342 | +{pg_ascii2wchar_with_len,pg_ascii_mblen,pg_ascii_dsplen,pg_ascii_verifier,1},/* PG_SQL_ASCII*/ |
| 1343 | +{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/* PG_EUC_JP */ |
| 1344 | +{pg_euccn2wchar_with_len,pg_euccn_mblen,pg_euccn_dsplen,pg_euccn_verifier,2},/* PG_EUC_CN */ |
| 1345 | +{pg_euckr2wchar_with_len,pg_euckr_mblen,pg_euckr_dsplen,pg_euckr_verifier,3},/* PG_EUC_KR */ |
| 1346 | +{pg_euctw2wchar_with_len,pg_euctw_mblen,pg_euctw_dsplen,pg_euctw_verifier,4},/* PG_EUC_TW */ |
| 1347 | +{pg_eucjp2wchar_with_len,pg_eucjp_mblen,pg_eucjp_dsplen,pg_eucjp_verifier,3},/* PG_EUC_JIS_2004 */ |
| 1348 | +{pg_utf2wchar_with_len,pg_utf_mblen,pg_utf_dsplen,pg_utf8_verifier,4},/* PG_UTF8 */ |
| 1349 | +{pg_mule2wchar_with_len,pg_mule_mblen,pg_mule_dsplen,pg_mule_verifier,4},/* PG_MULE_INTERNAL */ |
| 1350 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN1 */ |
| 1351 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN2 */ |
| 1352 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN3 */ |
| 1353 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN4 */ |
| 1354 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN5 */ |
| 1355 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN6 */ |
| 1356 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN7 */ |
| 1357 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN8 */ |
| 1358 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN9 */ |
| 1359 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_LATIN10 */ |
| 1360 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1256 */ |
| 1361 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1258 */ |
| 1362 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN866 */ |
| 1363 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN874 */ |
| 1364 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_KOI8R */ |
| 1365 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1251 */ |
| 1366 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1252 */ |
| 1367 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-5 */ |
| 1368 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-6 */ |
| 1369 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-7 */ |
| 1370 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* ISO-8859-8 */ |
| 1371 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1250 */ |
| 1372 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1253 */ |
| 1373 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1254 */ |
| 1374 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1255 */ |
| 1375 | +{pg_latin12wchar_with_len,pg_latin1_mblen,pg_latin1_dsplen,pg_latin1_verifier,1},/* PG_WIN1257 */ |
| 1376 | +{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2},/* PG_SJIS */ |
| 1377 | +{0,pg_big5_mblen,pg_big5_dsplen,pg_big5_verifier,2},/* PG_BIG5 */ |
| 1378 | +{0,pg_gbk_mblen,pg_gbk_dsplen,pg_gbk_verifier,2},/* PG_GBK */ |
| 1379 | +{0,pg_uhc_mblen,pg_uhc_dsplen,pg_uhc_verifier,2},/* PG_UHC */ |
| 1380 | +{0,pg_gb18030_mblen,pg_gb18030_dsplen,pg_gb18030_verifier,4},/* PG_GB18030 */ |
| 1381 | +{0,pg_johab_mblen,pg_johab_dsplen,pg_johab_verifier,3},/* PG_JOHAB */ |
| 1382 | +{0,pg_sjis_mblen,pg_sjis_dsplen,pg_sjis_verifier,2}/* PG_SHIFT_JIS_2004 */ |
1383 | 1383 | };
|
1384 | 1384 |
|
1385 | 1385 | /* returns the byte length of a word for mule internal code */
|
|