|
|
|
@ -251,13 +251,16 @@ int my_strcasecmp_mb(CHARSET_INFO * cs,const char *s, const char *t) |
|
|
|
|
|
|
|
#define likeconv(s,A) (uchar) (s)->sort_order[(uchar) (A)] |
|
|
|
|
|
|
|
int my_wildcmp_mb(CHARSET_INFO *cs, |
|
|
|
const char *str,const char *str_end, |
|
|
|
const char *wildstr,const char *wildend, |
|
|
|
int escape, int w_one, int w_many) |
|
|
|
static |
|
|
|
int my_wildcmp_mb_impl(CHARSET_INFO *cs, |
|
|
|
const char *str,const char *str_end, |
|
|
|
const char *wildstr,const char *wildend, |
|
|
|
int escape, int w_one, int w_many, int recurse_level) |
|
|
|
{ |
|
|
|
int result= -1; /* Not found, using wildcards */ |
|
|
|
|
|
|
|
if (my_string_stack_guard && my_string_stack_guard(recurse_level)) |
|
|
|
return 1; |
|
|
|
while (wildstr != wildend) |
|
|
|
{ |
|
|
|
while (*wildstr != w_many && *wildstr != w_one) |
|
|
|
@ -346,8 +349,8 @@ int my_wildcmp_mb(CHARSET_INFO *cs, |
|
|
|
INC_PTR(cs,str, str_end); |
|
|
|
} |
|
|
|
{ |
|
|
|
int tmp=my_wildcmp_mb(cs,str,str_end,wildstr,wildend,escape,w_one, |
|
|
|
w_many); |
|
|
|
int tmp=my_wildcmp_mb_impl(cs,str,str_end,wildstr,wildend,escape,w_one, |
|
|
|
w_many, recurse_level + 1); |
|
|
|
if (tmp <= 0) |
|
|
|
return (tmp); |
|
|
|
} |
|
|
|
@ -358,6 +361,16 @@ int my_wildcmp_mb(CHARSET_INFO *cs, |
|
|
|
return (str != str_end ? 1 : 0); |
|
|
|
} |
|
|
|
|
|
|
|
int my_wildcmp_mb(CHARSET_INFO *cs, |
|
|
|
const char *str,const char *str_end, |
|
|
|
const char *wildstr,const char *wildend, |
|
|
|
int escape, int w_one, int w_many) |
|
|
|
{ |
|
|
|
return my_wildcmp_mb_impl(cs, str, str_end, |
|
|
|
wildstr, wildend, |
|
|
|
escape, w_one, w_many, 1); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
size_t my_numchars_mb(CHARSET_INFO *cs __attribute__((unused)), |
|
|
|
const char *pos, const char *end) |
|
|
|
@ -988,14 +1001,15 @@ pad_min_max: |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int |
|
|
|
my_wildcmp_mb_bin(CHARSET_INFO *cs, |
|
|
|
const char *str,const char *str_end, |
|
|
|
const char *wildstr,const char *wildend, |
|
|
|
int escape, int w_one, int w_many) |
|
|
|
static int my_wildcmp_mb_bin_impl(CHARSET_INFO *cs, |
|
|
|
const char *str,const char *str_end, |
|
|
|
const char *wildstr,const char *wildend, |
|
|
|
int escape, int w_one, int w_many, int recurse_level) |
|
|
|
{ |
|
|
|
int result= -1; /* Not found, using wildcards */ |
|
|
|
|
|
|
|
if (my_string_stack_guard && my_string_stack_guard(recurse_level)) |
|
|
|
return 1; |
|
|
|
while (wildstr != wildend) |
|
|
|
{ |
|
|
|
while (*wildstr != w_many && *wildstr != w_one) |
|
|
|
@ -1082,7 +1096,9 @@ my_wildcmp_mb_bin(CHARSET_INFO *cs, |
|
|
|
INC_PTR(cs,str, str_end); |
|
|
|
} |
|
|
|
{ |
|
|
|
int tmp=my_wildcmp_mb_bin(cs,str,str_end,wildstr,wildend,escape,w_one,w_many); |
|
|
|
int tmp=my_wildcmp_mb_bin_impl(cs,str,str_end, |
|
|
|
wildstr,wildend,escape, |
|
|
|
w_one,w_many, recurse_level+1); |
|
|
|
if (tmp <= 0) |
|
|
|
return (tmp); |
|
|
|
} |
|
|
|
@ -1093,6 +1109,17 @@ my_wildcmp_mb_bin(CHARSET_INFO *cs, |
|
|
|
return (str != str_end ? 1 : 0); |
|
|
|
} |
|
|
|
|
|
|
|
int |
|
|
|
my_wildcmp_mb_bin(CHARSET_INFO *cs, |
|
|
|
const char *str,const char *str_end, |
|
|
|
const char *wildstr,const char *wildend, |
|
|
|
int escape, int w_one, int w_many) |
|
|
|
{ |
|
|
|
return my_wildcmp_mb_bin_impl(cs, str, str_end, |
|
|
|
wildstr, wildend, |
|
|
|
escape, w_one, w_many, 1); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
Data was produced from EastAsianWidth.txt |
|
|
|
|