18 .
name =
"euc2004_sjis2004",
80 const unsigned char *
start = euc;
97 (
const char *) euc,
len);
112 (
const char *) euc,
len);
115 if (c1 ==
SS2 && l == 2)
119 else if (c1 ==
SS3 && l == 3)
135 *p++ = ((ku + 0x1df) >> 1) - (ku >> 3) * 3;
138 if (ku >= 78 && ku <= 94)
140 *p++ = (ku + 0x19b) >> 1;
147 (
const char *) euc,
len);
153 if (ten >= 1 && ten <= 63)
155 else if (ten >= 64 && ten <= 94)
162 (
const char *) euc,
len);
174 if (ku >= 1 && ku <= 62)
175 *p++ = (ku + 0x101) >> 1;
176 else if (ku >= 63 && ku <= 94)
177 *p++ = (ku + 0x181) >> 1;
183 (
const char *) euc,
len);
188 if (ten >= 1 && ten <= 63)
190 else if (ten >= 64 && ten <= 94)
197 (
const char *) euc,
len);
208 (
const char *) euc,
len);
229 if (
b >= 0x40 &&
b <= 0x7e)
234 else if (
b >= 0x80 &&
b <= 0x9e)
239 else if (
b >= 0x9f &&
b <= 0xfc)
259 const unsigned char *
start = sjis;
279 (
const char *) sjis,
len);
289 if (l < 0 || l >
len)
294 (
const char *) sjis,
len);
297 if (c1 >= 0xa1 && c1 <= 0xdf && l == 1)
314 if (c1 >= 0x81 && c1 <= 0x9f)
316 ku = (c1 << 1) - 0x100;
323 (
const char *) sjis,
len);
327 else if (c1 >= 0xe0 && c1 <= 0xef)
329 ku = (c1 << 1) - 0x180;
336 (
const char *) sjis,
len);
340 else if (c1 >= 0xf0 && c1 <= 0xf3)
350 (
const char *) sjis,
len);
355 ku = kubun == 0 ? 8 : 1;
358 ku = kubun == 0 ? 4 : 3;
361 ku = kubun == 0 ? 12 : 5;
364 ku = kubun == 0 ? 14 : 13;
368 else if (c1 >= 0xf4 && c1 <= 0xfc)
377 (
const char *) sjis,
len);
379 if (c1 == 0xf4 && kubun == 1)
382 ku = (c1 << 1) - 0x19a - kubun;
389 (
const char *) sjis,
len);
#define IS_HIGHBIT_SET(ch)
static int euc_jis_20042shift_jis_2004(const unsigned char *euc, unsigned char *p, int len, bool noError)
static int get_ten(int b, int *ku)
Datum shift_jis_2004_to_euc_jis_2004(PG_FUNCTION_ARGS)
PG_FUNCTION_INFO_V1(euc_jis_2004_to_shift_jis_2004)
static int shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len, bool noError)
PG_MODULE_MAGIC_EXT(.name="euc2004_sjis2004",.version=PG_VERSION)
Datum euc_jis_2004_to_shift_jis_2004(PG_FUNCTION_ARGS)
#define PG_GETARG_CSTRING(n)
#define PG_RETURN_INT32(x)
#define PG_GETARG_INT32(n)
#define PG_GETARG_BOOL(n)
void report_invalid_encoding(int encoding, const char *mbstr, int len)
#define CHECK_ENCODING_CONVERSION_ARGS(srcencoding, destencoding)
int pg_encoding_verifymbchar(int encoding, const char *mbstr, int len)