CUBRID Engine  latest
intl_support.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 
20 /*
21  * intl_support.h : internationalization support interfaces
22  */
23 
24 #ifndef _INTL_SUPPORT_H_
25 #define _INTL_SUPPORT_H_
26 
27 #ident "$Id$"
28 
29 #include <stdlib.h>
30 #include <string.h>
31 #include <locale.h>
32 #include <limits.h>
33 #include <assert.h>
34 
35 #if defined(AIX)
36 #include <ctype.h>
37 #elif defined(HPUX)
38 #include <wchar.h>
39 #elif defined(SOLARIS)
40 #include <wctype.h>
41 #include <wchar.h>
42 #include <widec.h>
43 #elif defined(LINUX)
44 #include <wchar.h>
45 #elif defined(WINDOWS)
46 #include <wchar.h>
47 #endif
48 
49 #include "dbtype_def.h"
50 #include "locale_support.h"
51 
52 #ifndef MB_LEN_MAX
53 #define MB_LEN_MAX 1
54 #endif
55 
56 #ifndef WEOF
57 #define WEOF (wint_t)(-1)
58 #endif
59 
60 #if defined(WINDOWS)
61 #if !defined(LC_MESSAGES)
62 #define LC_MESSAGES LC_ALL
63 #endif /* !LC_MESSAGE */
64 #endif /* WINDOWS */
65 
66 /* next UTF-8 char */
67 #define INTL_NEXTCHAR_UTF8(c) \
68  (unsigned char*)((c) + intl_Len_utf8_char[*(unsigned char*)(c)])
69 
70 /* next UTF-8 char and its length */
71 #define INTL_GET_NEXTCHAR_UTF8(c,l) { \
72  l = intl_Len_utf8_char[*(unsigned char*)(c)]; \
73  c += (l); \
74  }
75 
76 /* !!! Do not use this for BIT type !!! see STR_SIZE macro */
77 #define INTL_CODESET_MULT(codeset) \
78  (((codeset) == INTL_CODESET_UTF8) ? INTL_UTF8_MAX_CHAR_SIZE : \
79  ((codeset) == INTL_CODESET_KSC5601_EUC) ? 3 : 1)
80 
81 /* Checks if string having charset 'cs_from' can be safely reinterpreted as
82  * having charset 'cs_to'.
83  * All strings can be reinterpreted as Binary charset.
84  * Other combinations are not compatible, since 8 bit values are starter for
85  * mutibyte characters.
86  */
87 #define INTL_CAN_STEAL_CS(cs_from,cs_to) \
88  ((cs_from) == (cs_to) || (cs_to) == INTL_CODESET_RAW_BYTES)
89 
90 /* Checks if string having charset 'cs_from' can be coerced (transformed) as
91  * having charset 'cs_to'.
92  * All strings can be transformed to Binary charset by reinterpreting data
93  * The other transformations require charset conversion.
94  * In some cases, the destination charset may not contain an encoding of the
95  * original character, and is replaced with '?' character (ASCII 3f)
96  */
97 #define INTL_CAN_COERCE_CS(cs_from,cs_to) true
98 
99 #define INTL_NEXT_CHAR(ptr, s, codeset, current_char_size) \
100  do \
101  { \
102  if (((codeset) == INTL_CODESET_ISO88591) \
103  || ((codeset) == INTL_CODESET_RAW_BYTES)) \
104  { \
105  (*(current_char_size)) = 1; \
106  (ptr) = (s) + 1; \
107  } \
108  else if ((codeset) == INTL_CODESET_UTF8) \
109  { \
110  (ptr) = intl_nextchar_utf8 ((s), (current_char_size)); \
111  } \
112  else if ((codeset) == INTL_CODESET_KSC5601_EUC) \
113  { \
114  (ptr) = intl_nextchar_euc ((s), (current_char_size)); \
115  } \
116  else \
117  { \
118  assert (false); \
119  (*(current_char_size)) = 0; \
120  ptr = (s); \
121  } \
122  } \
123  while (0)
124 
125 extern bool intl_Mbs_support;
126 extern bool intl_String_validation;
127 
128 /* language identifier : we support built-in languages and user defined
129  * languages (through locale definition);
130  * User defined languages are assigned IDs after built-in languages IDs
131  * It is not guaranteed that user defined languages keep their IDs */
132 typedef unsigned int INTL_LANG;
133 
135 {
140 };
142 
144 {
149 };
150 typedef enum intl_zone INTL_ZONE;
151 
153 {
161 };
163 
165 {
169 };
171 
172 /* map of lengths of UTF-8 characters */
173 extern const unsigned char *const intl_Len_utf8_char;
174 
176 {
179  INTL_CODESET_ASCII, /* US English charset, ASCII encoding */
180  INTL_CODESET_RAW_BITS, /* Uninterpreted bits, Raw encoding */
181  INTL_CODESET_RAW_BYTES, /* Uninterpreted bytes, Raw encoding */
182  INTL_CODESET_ISO88591, /* Latin 1 charset, ISO 8859 encoding */
183  INTL_CODESET_KSC5601_EUC, /* KSC 5601 1990 charset , EUC encoding */
184  INTL_CODESET_UTF8, /* UNICODE charset, UTF-8 encoding */
185 
187 
189 };
191 
192 #ifdef __cplusplus
193 extern "C"
194 {
195 #endif
196  extern int intl_char_count (const unsigned char *src, int length_in_bytes, INTL_CODESET src_codeset, int *char_count);
197  extern int intl_char_size (const unsigned char *src, int length_in_chars, INTL_CODESET src_codeset, int *byte_count);
198 
199  extern int intl_tolower_iso8859 (unsigned char *s, int length);
200  extern int intl_toupper_iso8859 (unsigned char *s, int length);
201 
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,
204  int *prev_length);
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,
207  int *prev_length);
208 
209 #if defined (ENABLE_UNUSED_FUNCTION)
210  extern INTL_LANG intl_language (int category);
211 #endif /* ENABLE_UNUSED_FUNCTION */
212  extern INTL_ZONE intl_zone (int category);
213 
214  extern int intl_convert_charset (const unsigned char *src, int length_in_chars, INTL_CODESET src_codeset,
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,
218  int *byte_count);
219 #endif
220  extern const unsigned char *intl_prev_char (const unsigned char *s, const unsigned char *s_start,
221  INTL_CODESET codeset, int *prev_char_size);
222 #if defined (ENABLE_UNUSED_FUNCTION)
223  extern unsigned char *intl_prev_char_pseudo_kor (const unsigned char *s, const unsigned char *s_start,
224  INTL_CODESET codeset, int *prev_char_size);
225 #endif
226  extern const unsigned char *intl_next_char (const unsigned char *s, INTL_CODESET codeset, int *current_char_size);
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);
230 #endif
231  extern int intl_cmp_char (const unsigned char *s1, const unsigned char *s2, INTL_CODESET codeset, int *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,
234  int *char_size);
235 #endif
236  extern void intl_pad_char (const INTL_CODESET codeset, unsigned char *pad_char, int *pad_size);
237  extern int intl_pad_size (INTL_CODESET codeset);
238  extern int intl_upper_string_size (const ALPHABET_DATA * alphabet, const unsigned char *src, int src_size,
239  int src_length);
240  extern int intl_upper_string (const ALPHABET_DATA * alphabet, const unsigned char *src, unsigned char *dst,
241  int length_in_chars);
242  extern int intl_lower_string_size (const ALPHABET_DATA * alphabet, const unsigned char *src, int src_size,
243  int src_length);
244  extern int intl_lower_string (const ALPHABET_DATA * alphabet, const unsigned char *src, unsigned char *dst,
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,
247  INTL_CODESET codeset);
248  extern bool intl_is_max_bound_chr (INTL_CODESET codeset, const unsigned char *chr);
249  extern bool intl_is_min_bound_chr (INTL_CODESET codeset, const unsigned char *chr);
250  extern int intl_set_min_bound_chr (INTL_CODESET codeset, char *chr);
251  extern int intl_set_max_bound_chr (INTL_CODESET codeset, char *chr);
252  extern int intl_identifier_casecmp_w_size (const INTL_LANG lang_id, unsigned char *str1, unsigned char *str2,
253  const int size_str1, const int size_str2);
254  extern int intl_case_match_tok (const INTL_LANG lang_id, const INTL_CODESET codeset, unsigned char *tok,
255  unsigned char *src, const int size_tok, const int size_src, int *matched_size_src);
256  extern int intl_identifier_casecmp (const char *str1, const char *str2);
257  extern int intl_identifier_ncasecmp (const char *str1, const char *str2, const int len);
258  extern int intl_identifier_cmp (const char *str1, const char *str2);
259  extern int intl_identifier_namecmp (const char *str1, const char *str2);
260  extern int intl_identifier_lower_string_size (const char *src);
261  extern int intl_identifier_lower (const char *src, char *dst);
262  extern int intl_identifier_upper_string_size (const char *src);
263  extern int intl_identifier_upper (const char *src, char *dst);
264  extern int intl_identifier_fix (char *name, int ident_max_size, bool error_on_case_overflow);
265  extern unsigned int intl_identifier_mht_1strlowerhash (const void *key, const unsigned int ht_size);
266 #if defined (ENABLE_UNUSED_FUNCTION)
267  extern int intl_strncat (unsigned char *dest, const unsigned char *src, int len);
268 #endif
269  extern int intl_put_char (unsigned char *dest, const unsigned char *char_p, const INTL_CODESET codeset);
270  extern bool intl_is_space (const char *str, const char *str_end, const INTL_CODESET codeset, int *space_size);
271  extern const char *intl_skip_spaces (const char *str, const char *str_end, const INTL_CODESET codeset);
272  extern const char *intl_backskip_spaces (const char *str_begin, const char *str_end, const INTL_CODESET codeset);
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);
277 #endif
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);
280  extern int intl_mbs_len (const char *mbs);
281 
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);
286 #endif
287  extern int intl_mbs_casecmp (const char *mbs1, const char *mbs2);
288 #if defined (ENABLE_UNUSED_FUNCTION)
289  extern int intl_mbs_cmp (const char *mbs1, const char *mbs2);
290 #endif
291  extern int intl_mbs_ncasecmp (const char *mbs1, const char *mbs2, size_t n);
292  extern INTL_UTF8_VALIDITY intl_check_string (const char *buf, int size, char **pos, const INTL_CODESET codeset);
293 #if !defined (SERVER_MODE)
294  extern bool intl_is_bom_magic (const char *buf, const int size);
295 #endif
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);
305  extern int intl_text_single_byte_to_utf8 (const char *in_buf, const int in_size, char **out_buf, int *out_size);
306  extern int intl_text_single_byte_to_utf8_ext (void *txt_conv, const unsigned char *in_buf, const int in_size,
307  unsigned char **out_buf, int *out_size);
308  extern int intl_text_utf8_to_single_byte (const char *in_buf, const int in_size, char **out_buf, int *out_size);
309  extern int intl_text_dbcs_to_utf8 (const char *in_buf, const int in_size, char **out_buf, int *out_size);
310  extern int intl_text_dbcs_to_utf8_ext (void *t, const unsigned char *in_buf, const int in_size,
311  unsigned char **out_buf, int *out_size);
312  extern int intl_text_utf8_to_dbcs (const char *in_buf, const int in_size, char **out_buf, int *out_size);
313  extern int intl_fast_iso88591_to_utf8 (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
314  int *out_size);
315  extern int intl_euckr_to_iso88591 (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
316  int *out_size);
317  extern int intl_euckr_to_utf8 (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
318  int *out_size);
319  extern int intl_utf8_to_euckr (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
320  int *out_size);
321  extern int intl_iso88591_to_utf8 (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
322  int *out_size);
323  extern int intl_iso88591_to_euckr (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
324  int *out_size);
325  extern bool intl_is_currency_symbol (const char *src, DB_CURRENCY * currency, int *symbol_size,
326  const CURRENCY_CHECK_MODE check_mode);
327  extern char *intl_get_money_symbol (const DB_CURRENCY currency, INTL_CODESET codeset);
328  extern char *intl_get_money_ISO_symbol (const DB_CURRENCY currency);
329  extern char *intl_get_money_esc_ISO_symbol (const DB_CURRENCY currency);
330  extern char *intl_get_money_symbol_console (const DB_CURRENCY currency);
331  extern char *intl_get_money_symbol_grammar (const DB_CURRENCY currency);
332  extern char *intl_get_money_UTF8_symbol (const DB_CURRENCY currency);
333  extern char *intl_get_money_ISO88591_symbol (const DB_CURRENCY currency);
334  extern int intl_get_currency_symbol_position (const DB_CURRENCY currency);
335  extern int intl_count_utf8_chars (const unsigned char *s, int length_in_bytes);
336  extern INTL_UTF8_VALIDITY intl_check_utf8 (const unsigned char *buf, int size, char **pos);
337  extern INTL_UTF8_VALIDITY intl_check_euckr (const unsigned char *buf, int size, char **pos);
338  extern int intl_utf8_to_iso88591 (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
339  int *out_size);
340  extern void intl_binary_to_utf8 (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
341  int *out_size);
342  extern void intl_binary_to_euckr (const unsigned char *in_buf, const int in_size, unsigned char **out_buf,
343  int *out_size);
344 #ifdef __cplusplus
345 }
346 #endif
347 
348 #endif /* _INTL_SUPPORT_H_ */
int intl_mbs_len(const char *mbs)
Definition: intl_support.c:183
int intl_char_count(const unsigned char *src, int length_in_bytes, INTL_CODESET src_codeset, int *char_count)
Definition: intl_support.c:983
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
Definition: intl_support.c:87
const unsigned char * intl_nextchar_euc(const unsigned char *s, int *curr_length)
Definition: intl_support.c:777
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)
intl_zone
Definition: intl_support.h:143
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)
Definition: intl_support.c:219
enum intl_utf8_validity INTL_UTF8_VALIDITY
Definition: intl_support.h:170
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)
Definition: intl_support.c:269
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)
Definition: intl_support.c:953
INTL_UTF8_VALIDITY intl_check_utf8(const unsigned char *buf, int size, char **pos)
int intl_toupper_iso8859(unsigned char *s, int length)
Definition: intl_support.c:747
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)
Definition: intl_support.c:149
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
Definition: intl_support.h:141
DB_CURRENCY
Definition: dbtype_def.h:799
currency_check_mode
Definition: intl_support.h:152
char * intl_get_money_symbol_grammar(const DB_CURRENCY currency)
enum currency_check_mode CURRENCY_CHECK_MODE
Definition: intl_support.h:162
const char * intl_skip_spaces(const char *str, const char *str_end, const INTL_CODESET codeset)
intl_utf8_validity
Definition: intl_support.h:164
const unsigned char * intl_prevchar_euc(const unsigned char *s, const unsigned char *s_start, int *prev_length)
Definition: intl_support.c:806
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)
intl_builtin_lang
Definition: intl_support.h:134
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)
INTL_LANG lang_id(void)
enum intl_zone INTL_ZONE
Definition: intl_support.h:150
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)
Definition: intl_support.c:441
char * intl_get_money_symbol(const DB_CURRENCY currency, INTL_CODESET codeset)
bool intl_Mbs_support
Definition: intl_support.c:86
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)
unsigned int INTL_LANG
Definition: intl_support.h:132
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)
Definition: intl_support.c:721
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
Definition: intl_support.h:190
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)
Definition: intl_support.c:358
intl_codeset
Definition: intl_support.h:175
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)
Definition: intl_support.c:489
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)