summaryrefslogtreecommitdiff
path: root/strings/ctype-cp932.c
diff options
context:
space:
mode:
authorunknown <bar@bar.myoffice.izhnet.ru>2007-07-05 15:00:36 +0500
committerunknown <bar@bar.myoffice.izhnet.ru>2007-07-05 15:00:36 +0500
commitdb8deb537f86252265335906316f5d9f9dc0db11 (patch)
treeba03c2c9a5e1f5846982cae5b21326af29434775 /strings/ctype-cp932.c
parent31d750bf8815896bdbcaa7cd24c039e4b5433bb4 (diff)
parentb15bd3086e6385f7d057d5db4766844734dcf30f (diff)
downloadmariadb-git-db8deb537f86252265335906316f5d9f9dc0db11.tar.gz
Merge mysql.com:/home/bar/mysql-work/mysql-5.0-rpl
into mysql.com:/home/bar/mysql-work/mysql-5.1-new-rpl strings/ctype-cp932.c: Auto merged strings/ctype-utf8.c: Auto merged mysql-test/extra/binlog_tests/ctype_cp932.test: Auto merged mysql-test/r/binlog_stm_ctype_cp932.result: Auto merged
Diffstat (limited to 'strings/ctype-cp932.c')
-rw-r--r--strings/ctype-cp932.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/strings/ctype-cp932.c b/strings/ctype-cp932.c
index 72b00679e1c..a0ff0314246 100644
--- a/strings/ctype-cp932.c
+++ b/strings/ctype-cp932.c
@@ -250,9 +250,16 @@ static int my_strnncollsp_cp932(CHARSET_INFO *cs __attribute__((unused)),
const uchar *a_end= a + a_length;
const uchar *b_end= b + b_length;
int res= my_strnncoll_cp932_internal(cs, &a, a_length, &b, b_length);
+
+#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
+ diff_if_only_endspace_difference= 0;
+#endif
+
if (!res && (a != a_end || b != b_end))
{
- int swap= 0;
+ int swap= 1;
+ if (diff_if_only_endspace_difference)
+ res= 1; /* Assume 'a' is bigger */
/*
Check the next not space character of the longer key. If it's < ' ',
then it's smaller than the other key.
@@ -263,11 +270,12 @@ static int my_strnncollsp_cp932(CHARSET_INFO *cs __attribute__((unused)),
a_end= b_end;
a= b;
swap= -1; /* swap sign of result */
+ res= -res;
}
for (; a < a_end ; a++)
{
- if (*a != ' ')
- return ((int) *a - (int) ' ') ^ swap;
+ if (*a != (uchar) ' ')
+ return (*a < (uchar) ' ') ? -swap : swap;
}
}
return res;