25 #ifndef _LOCALE_SUPPORT_H_ 26 #define _LOCALE_SUPPORT_H_ 37 #define MAX_UNICODE_CHARS 65536 42 #define INTL_CASING_EXPANSION_MULTIPLIER 2 56 #define INTL_IDENTIFIER_CASING_SIZE_MULTIPLIER 2 63 #define INTL_MASK_CONTR 0x80000000 65 #define INTL_IS_NEXT_CONTR(v) \ 66 (((v) & INTL_MASK_CONTR) == INTL_MASK_CONTR) 68 #define INTL_GET_NEXT_CONTR_ID(v) ((v) & (~INTL_MASK_CONTR)) 77 #define UCA_GET_L1_W(v) ((v) & 0x0000ffff) 78 #define UCA_GET_L2_W(v) (((v) & 0x01ff0000) >> 16) 79 #define UCA_GET_L3_W(v) (((v) & 0xfe000000) >> 25) 81 #define LOC_LOCALE_STR_SIZE 10 82 #define LOC_DATA_BUFF_SIZE 256 84 #define COLL_NAME_SIZE 32 85 #define LOC_LIB_SYMBOL_NAME_SIZE 64 89 #define CAL_MONTH_COUNT 12 90 #define CAL_DAY_COUNT 7 91 #define CAL_AM_PM_COUNT 12 94 #define LOC_CAL_FMT_MONTH_ABBR_LEN 3 96 #define LOC_CAL_FMT_MONTH_WIDE_LEN 5 98 #define LOC_CAL_FMT_DAY_ABBR_LEN 2 100 #define LOC_CAL_FMT_DAY_WIDE_LEN 3 102 #define LOC_CAL_FMT_AM_LEN 2 108 #define LOC_PARSE_FRMT_TO_TOKEN_MULT 5 110 #define LOC_DATA_MONTH_ABBR_SIZE (LOC_CAL_FMT_MONTH_ABBR_LEN) * \ 111 (LOC_PARSE_FRMT_TO_TOKEN_MULT) * \ 112 (INTL_UTF8_MAX_CHAR_SIZE) 113 #define LOC_DATA_MONTH_WIDE_SIZE (LOC_CAL_FMT_MONTH_WIDE_LEN) * \ 114 (LOC_PARSE_FRMT_TO_TOKEN_MULT) * \ 115 (INTL_UTF8_MAX_CHAR_SIZE) 117 #define LOC_DATA_DAY_ABBR_SIZE (LOC_CAL_FMT_DAY_ABBR_LEN) * \ 118 (LOC_PARSE_FRMT_TO_TOKEN_MULT) * \ 119 (INTL_UTF8_MAX_CHAR_SIZE) 121 #define LOC_DATA_DAY_WIDE_SIZE (LOC_CAL_FMT_DAY_WIDE_LEN) * \ 122 (LOC_PARSE_FRMT_TO_TOKEN_MULT) * \ 123 (INTL_UTF8_MAX_CHAR_SIZE) 125 #define LOC_DATA_AM_PM_SIZE (LOC_CAL_FMT_AM_LEN) * \ 126 (LOC_PARSE_FRMT_TO_TOKEN_MULT) * \ 127 (INTL_UTF8_MAX_CHAR_SIZE) 129 #define LOC_DATA_CURRENCY_ISO_CODE_LEN 3 131 #define LOC_DATA_COLL_TWO_CHARS 13 132 #define LOC_DATA_TAILOR_RULES_COUNT_GROW 128 133 #define LOC_DATA_COLL_CUBRID_TAILOR_COUNT_GROW 8 134 #define MAX_STRLEN_FOR_COLLATION_ELEMENT 136 136 #define DUMPLOCALE_IS_CALENDAR 1 137 #define DUMPLOCALE_IS_NUMBERING (1 << 1) 138 #define DUMPLOCALE_IS_ALPHABET (1 << 2) 139 #define DUMPLOCALE_IS_ALPHABET_LOWER (1 << 3) 140 #define DUMPLOCALE_IS_ALPHABET_UPPER (1 << 4) 141 #define DUMPLOCALE_IS_IDENTIFIER_ALPHABET (1 << 5) 142 #define DUMPLOCALE_IS_IDENTIFIER_ALPHABET_LOWER (1 << 6) 143 #define DUMPLOCALE_IS_IDENTIFIER_ALPHABET_UPPER (1 << 7) 144 #define DUMPLOCALE_IS_COLLATION_CP_ORDER (1 << 8) 145 #define DUMPLOCALE_IS_COLLATION_WEIGHT_ORDER (1 << 9) 146 #define DUMPLOCALE_IS_NORMALIZATION (1 << 10) 147 #define DUMPLOCALE_IS_TEXT_CONV (1 << 11) 149 #define ERR_MSG_SIZE 512 151 #define LOG_LOCALE_ERROR(msg, er_status, do_print) \ 153 er_set (ER_ERROR_SEVERITY, ARG_FILE_LINE, er_status, 1, msg); \ 156 fprintf (stderr, "Error processing locales: %s\n", msg); \ 157 util_log_write_errstr ("Error processing locales: %s\n", msg); \ 161 #define MAPPING_INDEX_MASK 0x100000 163 #define SET_MAPPING_INDEX(val, is_used, offset) \ 168 val |= MAPPING_INDEX_MASK; \ 172 #define CP_HAS_MAPPINGS(val) \ 173 (((val) & MAPPING_INDEX_MASK) == MAPPING_INDEX_MASK) 175 #define GET_MAPPING_OFFSET(val) ((val) & ~MAPPING_INDEX_MASK) 388 char checksum[32 + 1];
483 char unicode_data_file[PATH_MAX];
501 #define TXT_CONV_SYSTEM_STR_SIZE 256 511 unsigned char byte_flag[256];
523 int (*utf8_to_text_func) (
const char *,
const int,
char **,
int *);
524 int (*text_to_utf8_func) (
const char *,
const int,
char **,
int *);
525 void (*init_conv_func) (void);
536 char conv_file[PATH_MAX];
539 #define UNICODE_NORMALIZATION_DECORATOR "std" 552 #define CAL_SIMPLE_DATE_FORMAT_SIZE 30 553 #define CAL_COMP_DATE_FORMAT_SIZE 48 554 #define CAL_SIMPLE_DATE_TZ_FORMAT_SIZE 52 555 #define CAL_COMP_DATE_TZ_FORMAT_SIZE 70 612 char unicode_data_file[PATH_MAX];
642 char checksum[32 + 1];
void locale_destroy_normalization_data(UNICODE_NORMALIZATION *norm)
void locale_free_shared_data(void)
#define CAL_COMP_DATE_TZ_FORMAT_SIZE
CONV_CP_TO_BYTES * utf8_to_text
#define LOC_DATA_MONTH_ABBR_SIZE
LDML_CONTEXT ldml_context
CP_BUF_TYPE start_cp_buf_type
ALPHABET_DATA identif_alphabet
COLL_MATCH_CONTR sett_match_contr
RULE_POS_TYPE last_rule_pos_type
unsigned int * weights_ti
void locale_mark_duplicate_collations(LOCALE_DATA **ld, int start_index, int end_index, bool is_verbose)
#define LOC_LIB_SYMBOL_NAME_SIZE
#define LOC_DATA_DAY_ABBR_SIZE
#define LOC_DATA_AM_PM_SIZE
int locale_save_all_to_C_file(LOCALE_DATA **ld, int start_index, int end_index, LOCALE_FILE *lf)
#define CAL_SIMPLE_DATE_FORMAT_SIZE
int locale_get_cfg_locales(LOCALE_FILE **p_locale_files, int *p_num_locales, bool is_lang_init)
UNICODE_MAPPING * unicode_mappings
CONV_CP_TO_BYTES * text_to_utf8
LOCALE_COLLATION * collations
unsigned int text_first_cp
#define MAX_STRLEN_FOR_COLLATION_ELEMENT
unsigned int utf8_first_cp
int * unicode_mapping_index
#define LOC_DATA_MONTH_WIDE_SIZE
CUBRID_TAILOR_RULE * cub_rules
unsigned int cp_first_contr_count
void locale_destroy_data(LOCALE_DATA *ld)
CP_BUF_TYPE end_cp_buf_type
#define CAL_COMP_DATE_FORMAT_SIZE
int * cp_first_contr_array
unsigned int utf8_last_cp
void locale_init_data(LOCALE_DATA *ld, const char *locale_name)
UNICODE_NORMALIZATION unicode_normalization
COLL_CONTRACTION * contr_list
int locale_compile_locale(LOCALE_FILE *lf, LOCALE_DATA *ld, bool is_verbose)
int locale_check_and_set_default_files(LOCALE_FILE *lf, bool is_lang_init)
#define CAL_SIMPLE_DATE_TZ_FORMAT_SIZE
int locale_dump(void *data, LOCALE_FILE *lf, int dl_settings, int start_value, int end_value)
#define LOC_LOCALE_STR_SIZE
int unicode_mappings_count
DB_CURRENCY default_currency_code
TEXT_CONVERSION_PRM txt_conv_prm
#define TXT_CONV_SYSTEM_STR_SIZE
LDML_CONTEXT ldml_context
void locale_destroy_alphabet_data(const ALPHABET_DATA *a)
unsigned short int UCA_L4_W
int locale_dump_lib_collations(void *lib_handle, const LOCALE_FILE *lf, int dl_settings, int start_value, int end_value)
int locale_prepare_C_file(void)
LDML_CONTEXT ldml_context
#define LOC_DATA_DAY_WIDE_SIZE
unsigned int text_last_cp
ALPHABET_TAILORING alpha_tailoring
unsigned int * next_cp_ti
#define LOC_DATA_BUFF_SIZE
#define LOC_DATA_COLL_TWO_CHARS
unsigned int cp_first_contr_offset