diff options
author | serg@serg.mylan <> | 2004-06-11 20:55:08 +0200 |
---|---|---|
committer | serg@serg.mylan <> | 2004-06-11 20:55:08 +0200 |
commit | 035e03c1f64888851887f6015a3db22b1f1cf477 (patch) | |
tree | a0c5ea824118f68eea18cf241187a6ebd8d91648 /strings/ctype-win1250ch.c | |
parent | 1bedda607257af92fa1ea1c32c97daccb855386b (diff) | |
parent | 683a8893a8a616199e658ab400831ccfc5158422 (diff) | |
download | mariadb-git-035e03c1f64888851887f6015a3db22b1f1cf477.tar.gz |
merged
Diffstat (limited to 'strings/ctype-win1250ch.c')
-rw-r--r-- | strings/ctype-win1250ch.c | 15 |
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); } |