summaryrefslogtreecommitdiff
path: root/strings/ctype-win1250ch.c
diff options
context:
space:
mode:
authorserg@serg.mylan <>2004-06-11 20:55:08 +0200
committerserg@serg.mylan <>2004-06-11 20:55:08 +0200
commit035e03c1f64888851887f6015a3db22b1f1cf477 (patch)
treea0c5ea824118f68eea18cf241187a6ebd8d91648 /strings/ctype-win1250ch.c
parent1bedda607257af92fa1ea1c32c97daccb855386b (diff)
parent683a8893a8a616199e658ab400831ccfc5158422 (diff)
downloadmariadb-git-035e03c1f64888851887f6015a3db22b1f1cf477.tar.gz
merged
Diffstat (limited to 'strings/ctype-win1250ch.c')
-rw-r--r--strings/ctype-win1250ch.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/strings/ctype-win1250ch.c b/strings/ctype-win1250ch.c
index a2c5768b16c..83aaa6839e4 100644
--- a/strings/ctype-win1250ch.c
+++ b/strings/ctype-win1250ch.c
@@ -448,20 +448,25 @@ static struct wordvalue doubles[] = {
static int my_strnncoll_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
const uchar * s1, uint len1,
- const uchar * s2, uint len2)
+ const uchar * s2, uint len2,
+ my_bool s2_is_prefix)
{
int v1, v2;
const uchar * p1, * p2;
int pass1 = 0, pass2 = 0;
int diff;
+ if (s2_is_prefix && len1 > len2)
+ len1=len2;
+
p1 = s1; p2 = s2;
- do {
+ do
+ {
NEXT_CMP_VALUE(s1, p1, pass1, v1, (int)len1);
NEXT_CMP_VALUE(s2, p2, pass2, v2, (int)len2);
- diff = v1 - v2;
- if (diff != 0) return diff;
+ if ((diff = v1 - v2))
+ return diff;
} while (v1);
return 0;
}
@@ -478,7 +483,7 @@ int my_strnncollsp_win1250ch(CHARSET_INFO * cs,
{
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
- return my_strnncoll_win1250ch(cs,s,slen,t,tlen);
+ return my_strnncoll_win1250ch(cs,s,slen,t,tlen,0);
}