24 #ifndef _INTL_SUPPORT_H_ 25 #define _INTL_SUPPORT_H_ 39 #elif defined(SOLARIS) 45 #elif defined(WINDOWS) 57 #define WEOF (wint_t)(-1) 61 #if !defined(LC_MESSAGES) 62 #define LC_MESSAGES LC_ALL 67 #define INTL_NEXTCHAR_UTF8(c) \ 68 (unsigned char*)((c) + intl_Len_utf8_char[*(unsigned char*)(c)]) 71 #define INTL_GET_NEXTCHAR_UTF8(c,l) { \ 72 l = intl_Len_utf8_char[*(unsigned char*)(c)]; \ 77 #define INTL_CODESET_MULT(codeset) \ 78 (((codeset) == INTL_CODESET_UTF8) ? INTL_UTF8_MAX_CHAR_SIZE : \ 79 ((codeset) == INTL_CODESET_KSC5601_EUC) ? 3 : 1) 87 #define INTL_CAN_STEAL_CS(cs_from,cs_to) \ 88 ((cs_from) == (cs_to) || (cs_to) == INTL_CODESET_RAW_BYTES) 97 #define INTL_CAN_COERCE_CS(cs_from,cs_to) true 99 #define INTL_NEXT_CHAR(ptr, s, codeset, current_char_size) \ 102 if (((codeset) == INTL_CODESET_ISO88591) \ 103 || ((codeset) == INTL_CODESET_RAW_BYTES)) \ 105 (*(current_char_size)) = 1; \ 108 else if ((codeset) == INTL_CODESET_UTF8) \ 110 (ptr) = intl_nextchar_utf8 ((s), (current_char_size)); \ 112 else if ((codeset) == INTL_CODESET_KSC5601_EUC) \ 114 (ptr) = intl_nextchar_euc ((s), (current_char_size)); \ 119 (*(current_char_size)) = 0; \ 202 extern const unsigned char *
intl_nextchar_euc (
const unsigned char *s,
int *curr_length);
203 extern const unsigned char *
intl_prevchar_euc (
const unsigned char *s,
const unsigned char *s_start,
205 extern const unsigned char *
intl_nextchar_utf8 (
const unsigned char *s,
int *curr_length);
206 extern const unsigned char *
intl_prevchar_utf8 (
const unsigned char *s,
const unsigned char *s_start,
209 #if defined (ENABLE_UNUSED_FUNCTION) 210 extern INTL_LANG intl_language (
int category);
215 unsigned char *dest,
INTL_CODESET dest_codeset,
int *unconverted);
216 #if defined (ENABLE_UNUSED_FUNCTION) 217 extern int intl_char_size_pseudo_kor (
const unsigned char *src,
int length_in_chars,
INTL_CODESET src_codeset,
220 extern const unsigned char *
intl_prev_char (
const unsigned char *s,
const unsigned char *s_start,
222 #if defined (ENABLE_UNUSED_FUNCTION) 223 extern unsigned char *intl_prev_char_pseudo_kor (
const unsigned char *s,
const unsigned char *s_start,
227 #if defined (ENABLE_UNUSED_FUNCTION) 228 extern unsigned char *intl_next_char_pseudo_kor (
const unsigned char *s,
INTL_CODESET codeset,
229 int *current_char_size);
232 #if defined (ENABLE_UNUSED_FUNCTION) 233 extern int intl_cmp_char_pseudo_kor (
const unsigned char *s1,
const unsigned char *s2,
INTL_CODESET codeset,
241 int length_in_chars);
245 int length_in_chars);
246 extern int intl_reverse_string (
const unsigned char *src,
unsigned char *dst,
int length_in_chars,
int size_in_bytes,
253 const int size_str1,
const int size_str2);
255 unsigned char *src,
const int size_tok,
const int size_src,
int *matched_size_src);
264 extern int intl_identifier_fix (
char *name,
int ident_max_size,
bool error_on_case_overflow);
266 #if defined (ENABLE_UNUSED_FUNCTION) 267 extern int intl_strncat (
unsigned char *dest,
const unsigned char *src,
int len);
273 #if defined (ENABLE_UNUSED_FUNCTION) 274 extern int intl_mbs_lower (
const char *mbs1,
char *mbs2);
275 extern int intl_mbs_nlower (
char *dest,
const char *src,
const int max_len);
276 extern int intl_mbs_upper (
const char *mbs1,
char *mbs2);
278 extern char *
intl_mbs_chr (
const char *mbs,
wchar_t the_char);
279 extern int intl_mbs_spn (
const char *mbs,
const wchar_t * chars);
282 extern const char *
intl_mbs_nth (
const char *mbs,
size_t n);
283 extern char *
intl_mbs_ncpy (
char *mbs1,
const char *mbs2,
size_t n);
284 #if defined (ENABLE_UNUSED_FUNCTION) 285 extern int intl_mbs_namecmp (
const char *mbs1,
const char *mbs2);
288 #if defined (ENABLE_UNUSED_FUNCTION) 289 extern int intl_mbs_cmp (
const char *mbs1,
const char *mbs2);
293 #if !defined (SERVER_MODE) 296 extern int intl_cp_to_utf8 (
const unsigned int codepoint,
unsigned char *utf8_seq);
297 extern int intl_cp_to_dbcs (
const unsigned int codepoint,
const unsigned char *byte_flag,
unsigned char *seq);
298 extern unsigned int intl_utf8_to_cp (
const unsigned char *utf8,
const int size,
unsigned char **next_char);
299 extern unsigned int intl_back_utf8_to_cp (
const unsigned char *utf8_start,
const unsigned char *utf8_last,
300 unsigned char **last_byte__prev_char);
301 extern unsigned int intl_dbcs_to_cp (
const unsigned char *seq,
const int size,
const unsigned char *byte_flag,
302 unsigned char **next_char);
303 extern int intl_utf8_to_cp_list (
const unsigned char *utf8,
const int size,
unsigned int *cp_array,
304 const int max_array_size,
int *array_count);
307 unsigned char **out_buf,
int *out_size);
311 unsigned char **out_buf,
int *out_size);
315 extern int intl_euckr_to_iso88591 (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
317 extern int intl_euckr_to_utf8 (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
319 extern int intl_utf8_to_euckr (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
321 extern int intl_iso88591_to_utf8 (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
323 extern int intl_iso88591_to_euckr (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
338 extern int intl_utf8_to_iso88591 (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
340 extern void intl_binary_to_utf8 (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
342 extern void intl_binary_to_euckr (
const unsigned char *in_buf,
const int in_size,
unsigned char **out_buf,
int intl_mbs_len(const char *mbs)
int intl_char_count(const unsigned char *src, int length_in_bytes, INTL_CODESET src_codeset, int *char_count)
int intl_identifier_namecmp(const char *str1, const char *str2)
int intl_char_size(const unsigned char *src, int length_in_chars, INTL_CODESET src_codeset, int *byte_count)
void intl_pad_char(const INTL_CODESET codeset, unsigned char *pad_char, int *pad_size)
int intl_text_dbcs_to_utf8_ext(void *t, const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
bool intl_is_max_bound_chr(INTL_CODESET codeset, const unsigned char *chr)
bool intl_String_validation
const unsigned char * intl_nextchar_euc(const unsigned char *s, int *curr_length)
int intl_reverse_string(const unsigned char *src, unsigned char *dst, int length_in_chars, int size_in_bytes, INTL_CODESET codeset)
INTL_UTF8_VALIDITY intl_check_string(const char *buf, int size, char **pos, const INTL_CODESET codeset)
int intl_set_max_bound_chr(INTL_CODESET codeset, char *chr)
void intl_binary_to_euckr(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
int intl_identifier_upper(const char *src, char *dst)
int intl_utf8_to_euckr(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
int intl_put_char(unsigned char *dest, const unsigned char *char_p, const INTL_CODESET codeset)
const char * intl_mbs_nth(const char *mbs, size_t n)
enum intl_utf8_validity INTL_UTF8_VALIDITY
int intl_identifier_casecmp(const char *str1, const char *str2)
int intl_case_match_tok(const INTL_LANG lang_id, const INTL_CODESET codeset, unsigned char *tok, unsigned char *src, const int size_tok, const int size_src, int *matched_size_src)
int intl_get_currency_symbol_position(const DB_CURRENCY currency)
int intl_mbs_spn(const char *mbs, const wchar_t *chars)
int intl_utf8_to_cp_list(const unsigned char *utf8, const int size, unsigned int *cp_array, const int max_array_size, int *array_count)
int intl_text_single_byte_to_utf8(const char *in_buf, const int in_size, char **out_buf, int *out_size)
int intl_convert_charset(const unsigned char *src, int length_in_chars, INTL_CODESET src_codeset, unsigned char *dest, INTL_CODESET dest_codeset, int *unconverted)
INTL_UTF8_VALIDITY intl_check_utf8(const unsigned char *buf, int size, char **pos)
int intl_toupper_iso8859(unsigned char *s, int length)
char * intl_get_money_ISO88591_symbol(const DB_CURRENCY currency)
int intl_identifier_casecmp_w_size(const INTL_LANG lang_id, unsigned char *str1, unsigned char *str2, const int size_str1, const int size_str2)
char * intl_mbs_chr(const char *mbs, wchar_t the_char)
int intl_cp_to_utf8(const unsigned int codepoint, unsigned char *utf8_seq)
int intl_identifier_upper_string_size(const char *src)
enum intl_builtin_lang INTL_BUILTIN_LANG
char * intl_get_money_symbol_grammar(const DB_CURRENCY currency)
enum currency_check_mode CURRENCY_CHECK_MODE
const char * intl_skip_spaces(const char *str, const char *str_end, const INTL_CODESET codeset)
const unsigned char * intl_prevchar_euc(const unsigned char *s, const unsigned char *s_start, int *prev_length)
int intl_identifier_fix(char *name, int ident_max_size, bool error_on_case_overflow)
int intl_lower_string(const ALPHABET_DATA *alphabet, const unsigned char *src, unsigned char *dst, int length_in_chars)
int intl_euckr_to_utf8(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
int intl_identifier_lower(const char *src, char *dst)
int intl_identifier_cmp(const char *str1, const char *str2)
char * intl_get_money_UTF8_symbol(const DB_CURRENCY currency)
int intl_lower_string_size(const ALPHABET_DATA *alphabet, const unsigned char *src, int src_size, int src_length)
int intl_set_min_bound_chr(INTL_CODESET codeset, char *chr)
int intl_iso88591_to_euckr(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
int intl_text_utf8_to_dbcs(const char *in_buf, const int in_size, char **out_buf, int *out_size)
int intl_text_utf8_to_single_byte(const char *in_buf, const int in_size, char **out_buf, int *out_size)
const unsigned char * intl_prevchar_utf8(const unsigned char *s, const unsigned char *s_start, int *prev_length)
char * intl_get_money_esc_ISO_symbol(const DB_CURRENCY currency)
void intl_binary_to_utf8(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
bool intl_is_bom_magic(const char *buf, const int size)
int intl_identifier_ncasecmp(const char *str1, const char *str2, const int len)
bool intl_is_currency_symbol(const char *src, DB_CURRENCY *currency, int *symbol_size, const CURRENCY_CHECK_MODE check_mode)
int intl_text_dbcs_to_utf8(const char *in_buf, const int in_size, char **out_buf, int *out_size)
int intl_mbs_ncasecmp(const char *mbs1, const char *mbs2, size_t n)
char * intl_get_money_symbol(const DB_CURRENCY currency, INTL_CODESET codeset)
const unsigned char * intl_nextchar_utf8(const unsigned char *s, int *curr_length)
int intl_pad_size(INTL_CODESET codeset)
int intl_identifier_lower_string_size(const char *src)
unsigned int intl_identifier_mht_1strlowerhash(const void *key, const unsigned int ht_size)
int intl_fast_iso88591_to_utf8(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
const unsigned char * intl_prev_char(const unsigned char *s, const unsigned char *s_start, INTL_CODESET codeset, int *prev_char_size)
int intl_count_utf8_chars(const unsigned char *s, int length_in_bytes)
char * intl_get_money_ISO_symbol(const DB_CURRENCY currency)
const unsigned char * intl_next_char(const unsigned char *s, INTL_CODESET codeset, int *current_char_size)
int intl_tolower_iso8859(unsigned char *s, int length)
const unsigned char *const intl_Len_utf8_char
int intl_cp_to_dbcs(const unsigned int codepoint, const unsigned char *byte_flag, unsigned char *seq)
enum intl_codeset INTL_CODESET
unsigned int intl_utf8_to_cp(const unsigned char *utf8, const int size, unsigned char **next_char)
char * intl_get_money_symbol_console(const DB_CURRENCY currency)
int intl_iso88591_to_utf8(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
int intl_text_single_byte_to_utf8_ext(void *txt_conv, const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
int intl_mbs_casecmp(const char *mbs1, const char *mbs2)
int intl_cmp_char(const unsigned char *s1, const unsigned char *s2, INTL_CODESET codeset, int *char_size)
const char * intl_backskip_spaces(const char *str_begin, const char *str_end, const INTL_CODESET codeset)
bool intl_is_space(const char *str, const char *str_end, const INTL_CODESET codeset, int *space_size)
int intl_euckr_to_iso88591(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
int intl_upper_string(const ALPHABET_DATA *alphabet, const unsigned char *src, unsigned char *dst, int length_in_chars)
unsigned int intl_dbcs_to_cp(const unsigned char *seq, const int size, const unsigned char *byte_flag, unsigned char **next_char)
int intl_upper_string_size(const ALPHABET_DATA *alphabet, const unsigned char *src, int src_size, int src_length)
char * intl_mbs_ncpy(char *mbs1, const char *mbs2, size_t n)
unsigned int intl_back_utf8_to_cp(const unsigned char *utf8_start, const unsigned char *utf8_last, unsigned char **last_byte__prev_char)
bool intl_is_min_bound_chr(INTL_CODESET codeset, const unsigned char *chr)
int intl_utf8_to_iso88591(const unsigned char *in_buf, const int in_size, unsigned char **out_buf, int *out_size)
INTL_UTF8_VALIDITY intl_check_euckr(const unsigned char *buf, int size, char **pos)