summaryrefslogtreecommitdiff
path: root/strings/ctype-gbk.c
diff options
context:
space:
mode:
Diffstat (limited to 'strings/ctype-gbk.c')
-rw-r--r--strings/ctype-gbk.c109
1 files changed, 109 insertions, 0 deletions
diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c
index 617d72dc4d9..d24b77950c2 100644
--- a/strings/ctype-gbk.c
+++ b/strings/ctype-gbk.c
@@ -10625,6 +10625,21 @@ my_mb_wc_gbk(CHARSET_INFO *cs __attribute__((unused)),
#include "strcoll.ic"
+#define DEFINE_STRNNCOLLSP_NOPAD
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gbk_chinese_nopad_ci
+#define WEIGHT_MB1(x) (sort_order_gbk[(uchar) (x)])
+#define WEIGHT_MB2(x,y) (gbksortorder(gbkcode(x,y)))
+#define DEFINE_STRNXFRM
+#include "strcoll.ic"
+
+
+#define DEFINE_STRNNCOLLSP_NOPAD
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gbk_nopad_bin
+#define WEIGHT_MB1(x) ((uchar) (x))
+#define WEIGHT_MB2(x,y) (gbkcode(x,y))
+#include "strcoll.ic"
+
+
static MY_COLLATION_HANDLER my_collation_handler_gbk_chinese_ci=
{
NULL, /* init */
@@ -10657,6 +10672,36 @@ static MY_COLLATION_HANDLER my_collation_handler_gbk_bin=
};
+static MY_COLLATION_HANDLER my_collation_handler_gbk_chinese_nopad_ci=
+{
+ NULL, /* init */
+ my_strnncoll_gbk_chinese_ci,
+ my_strnncollsp_gbk_chinese_nopad_ci,
+ my_strnxfrm_gbk_chinese_nopad_ci,
+ 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_handler_gbk_nopad_bin=
+{
+ NULL, /* init */
+ my_strnncoll_gbk_bin,
+ my_strnncollsp_gbk_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=
{
@@ -10757,4 +10802,68 @@ struct charset_info_st my_charset_gbk_bin=
};
+struct charset_info_st my_charset_gbk_chinese_nopad_ci=
+{
+ MY_NOPAD_ID(28),0,0,/* number */
+ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NOPAD, /* state */
+ "gbk", /* cs name */
+ "gbk_chinese_nopad_ci",/* name */
+ "", /* comment */
+ NULL, /* tailoring */
+ ctype_gbk,
+ to_lower_gbk,
+ to_upper_gbk,
+ sort_order_gbk,
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_caseinfo_gbk, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 1, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 2, /* mbmaxlen */
+ 0, /* min_sort_char */
+ 0xA967, /* max_sort_char */
+ ' ', /* pad char */
+ 1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_handler,
+ &my_collation_handler_gbk_chinese_nopad_ci
+};
+
+struct charset_info_st my_charset_gbk_nopad_bin=
+{
+ MY_NOPAD_ID(87),0,0,/* number */
+ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
+ "gbk", /* cs name */
+ "gbk_nopad_bin", /* name */
+ "", /* comment */
+ NULL, /* tailoring */
+ ctype_gbk,
+ to_lower_gbk,
+ to_upper_gbk,
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_caseinfo_gbk, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 1, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 2, /* mbmaxlen */
+ 0, /* min_sort_char */
+ 0xFEFE, /* max_sort_char */
+ ' ', /* pad char */
+ 1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_handler,
+ &my_collation_handler_gbk_nopad_bin
+};
+
#endif