diff options
Diffstat (limited to 'strings/ctype-ujis.c')
-rw-r--r-- | strings/ctype-ujis.c | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index 786ae991aef..8c08e906284 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -220,6 +220,26 @@ static const uchar sort_order_ujis[]= #include "strcoll.ic" +#define DEFINE_STRNNCOLLSP_NOPAD +#define MY_FUNCTION_NAME(x) my_ ## x ## _ujis_japanese_nopad_ci +#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) +#define WEIGHT_MB1(x) ((int) sort_order_ujis[(uchar) (x)]) +#define WEIGHT_MB2(x,y) ((((uint) (uchar)(x)) << 16) | \ + (((uint) (uchar) (y)) << 8)) +#define WEIGHT_MB3(x,y,z) (WEIGHT_MB2(x,y) | ((uint) (uchar) z)) +#include "strcoll.ic" + + +#define DEFINE_STRNNCOLLSP_NOPAD +#define MY_FUNCTION_NAME(x) my_ ## x ## _ujis_nopad_bin +#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x)) +#define WEIGHT_MB1(x) ((int) (uchar) (x)) +#define WEIGHT_MB2(x,y) ((((uint) (uchar)(x)) << 16) | \ + (((uint) (uchar) (y)) << 8)) +#define WEIGHT_MB3(x,y,z) (WEIGHT_MB2(x,y) | ((uint) (uchar) z)) +#include "strcoll.ic" + + static size_t my_numcells_eucjp(CHARSET_INFO *cs __attribute__((unused)), const char *str, const char *str_end) @@ -67246,6 +67266,38 @@ static MY_COLLATION_HANDLER my_collation_ujis_bin_handler = }; +static MY_COLLATION_HANDLER my_collation_ujis_japanese_nopad_ci_handler = +{ + NULL, /* init */ + my_strnncoll_ujis_japanese_ci, + my_strnncollsp_ujis_japanese_nopad_ci, + my_strnxfrm_mb_nopad, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_mb, + my_strcasecmp_mb, + my_instr_mb, + my_hash_sort_simple_nopad, + my_propagate_simple +}; + + +static MY_COLLATION_HANDLER my_collation_ujis_nopad_bin_handler = +{ + NULL, /* init */ + my_strnncoll_ujis_bin, + my_strnncollsp_ujis_nopad_bin, + my_strnxfrm_mb_nopad, + my_strnxfrmlen_simple, + my_like_range_mb, + my_wildcmp_mb_bin, + my_strcasecmp_mb_bin, + my_instr_mb, + my_hash_sort_mb_nopad_bin, + my_propagate_simple +}; + + static MY_CHARSET_HANDLER my_charset_handler= { NULL, /* init */ @@ -67347,4 +67399,70 @@ struct charset_info_st my_charset_ujis_bin= }; +struct charset_info_st my_charset_ujis_japanese_nopad_ci= +{ + MY_NOPAD_ID(12),0,0,/* number */ + MY_CS_COMPILED|MY_CS_NOPAD, /* state */ + "ujis", /* cs name */ + "ujis_japanese_nopad_ci", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ujis, + to_lower_ujis, + to_upper_ujis, + sort_order_ujis, + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_ujis, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ujis_japanese_nopad_ci_handler +}; + + +struct charset_info_st my_charset_ujis_nopad_bin= +{ + MY_NOPAD_ID(91),0,0,/* number */ + MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ + "ujis", /* cs name */ + "ujis_nopad_bin", /* name */ + "", /* comment */ + NULL, /* tailoring */ + ctype_ujis, + to_lower_ujis, + to_upper_ujis, + NULL, /* sort_order */ + NULL, /* uca */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + &my_caseinfo_ujis, /* caseinfo */ + NULL, /* state_map */ + NULL, /* ident_map */ + 1, /* strxfrm_multiply */ + 1, /* caseup_multiply */ + 2, /* casedn_multiply */ + 1, /* mbminlen */ + 3, /* mbmaxlen */ + 0, /* min_sort_char */ + 0xFEFE, /* max_sort_char */ + ' ', /* pad char */ + 0, /* escape_with_backslash_is_dangerous */ + 1, /* levels_for_order */ + &my_charset_handler, + &my_collation_ujis_nopad_bin_handler +}; + + #endif /* HAVE_CHARSET_ujis */ |