summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorunknown <bar@mysql.com>2005-07-22 14:47:13 +0500
committerunknown <bar@mysql.com>2005-07-22 14:47:13 +0500
commitf0e62d624a9b1c2a6bd1dfdb67f0eefa75d5682c (patch)
tree65e83990edeb620a973b518042feb621d01efbfc /strings
parentf1029fd7a79b24a0fa904a37e74f6e3c2684dba1 (diff)
parentd1e96a25d733c3d17ba564fe77efe8f8bf2a4960 (diff)
downloadmariadb-git-f0e62d624a9b1c2a6bd1dfdb67f0eefa75d5682c.tar.gz
Merge mysql.com:/usr/home/bar/mysql-4.1.b11754
into mysql.com:/usr/home/bar/mysql-5.0 mysql-test/r/ctype_utf8.result: Auto merged mysql-test/t/ctype_utf8.test: Auto merged strings/ctype-utf8.c: Auto merged
Diffstat (limited to 'strings')
-rw-r--r--strings/ctype-utf8.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c
index de08c080b3b..2b5f5883abf 100644
--- a/strings/ctype-utf8.c
+++ b/strings/ctype-utf8.c
@@ -1739,7 +1739,7 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
}
wildstr+= scan;
- if (w_wc == (my_wc_t)escape)
+ if (w_wc == (my_wc_t)escape && wildstr < wildend)
{
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
(const uchar*)wildend)) <= 0)
@@ -1811,13 +1811,17 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
(const uchar*)wildend)) <=0)
return 1;
+ wildstr+= scan;
if (w_wc == (my_wc_t)escape)
{
- wildstr+= scan;
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <=0)
- return 1;
+ if (wildstr < wildend)
+ {
+ if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
+ (const uchar*)wildend)) <=0)
+ return 1;
+ wildstr+= scan;
+ }
}
while (1)
@@ -1843,14 +1847,12 @@ int my_wildcmp_unicode(CHARSET_INFO *cs,
if (str == str_end)
return -1;
+ str+= scan;
result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
escape, w_one, w_many,
weights);
-
if (result <= 0)
return result;
-
- str+= scan;
}
}
}