summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-09-16 15:43:17 +0500
committerunknown <bar@bar.mysql.r18.ru>2003-09-16 15:43:17 +0500
commit62f2cb14eebf3f06cc26ad25a530328c69cca823 (patch)
treea274da12cc2ccf98ae8d30d2f11971f5c52e8946 /strings
parenta0c238f6414483080417e761045420b0b76d79af (diff)
downloadmariadb-git-62f2cb14eebf3f06cc26ad25a530328c69cca823.tar.gz
Bug fix:
http://bugs.mysql.com/bug.php?id=1264
Diffstat (limited to 'strings')
-rw-r--r--strings/ctype-big5.c1
-rw-r--r--strings/ctype-bin.c1
-rw-r--r--strings/ctype-euc_kr.c1
-rw-r--r--strings/ctype-gb2312.c1
-rw-r--r--strings/ctype-gbk.c1
-rw-r--r--strings/ctype-latin1.c1
-rw-r--r--strings/ctype-simple.c11
-rw-r--r--strings/ctype-sjis.c1
-rw-r--r--strings/ctype-tis620.c1
-rw-r--r--strings/ctype-ucs2.c21
-rw-r--r--strings/ctype-ujis.c1
-rw-r--r--strings/ctype-utf8.c1
12 files changed, 41 insertions, 1 deletions
diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c
index 88309aadaa0..ddcec46474d 100644
--- a/strings/ctype-big5.c
+++ b/strings/ctype-big5.c
@@ -6243,6 +6243,7 @@ static MY_CHARSET_HANDLER my_charset_big5_handler=
mbcharlen_big5,
my_numchars_mb,
my_charpos_mb,
+ my_lengthsp_8bit,
my_mb_wc_big5, /* mb_wc */
my_wc_mb_big5, /* wc_mb */
my_caseup_str_mb,
diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c
index 10ea23e07eb..9441268739a 100644
--- a/strings/ctype-bin.c
+++ b/strings/ctype-bin.c
@@ -280,6 +280,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
+ my_lengthsp_8bit,
my_mb_wc_bin,
my_wc_mb_bin,
my_caseup_str_bin,
diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c
index e8d2c8c4d1d..bb3e66a8c6f 100644
--- a/strings/ctype-euc_kr.c
+++ b/strings/ctype-euc_kr.c
@@ -8652,6 +8652,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
mbcharlen_euc_kr,
my_numchars_mb,
my_charpos_mb,
+ my_lengthsp_8bit,
my_mb_wc_euc_kr, /* mb_wc */
my_wc_mb_euc_kr, /* wc_mb */
my_caseup_str_mb,
diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c
index 72548305ad1..b8cee35b186 100644
--- a/strings/ctype-gb2312.c
+++ b/strings/ctype-gb2312.c
@@ -5702,6 +5702,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
mbcharlen_gb2312,
my_numchars_mb,
my_charpos_mb,
+ my_lengthsp_8bit,
my_mb_wc_gb2312, /* mb_wc */
my_wc_mb_gb2312, /* wc_mb */
my_caseup_str_mb,
diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c
index 84819d2e1a8..4a84eabaf8c 100644
--- a/strings/ctype-gbk.c
+++ b/strings/ctype-gbk.c
@@ -9899,6 +9899,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
mbcharlen_gbk,
my_numchars_mb,
my_charpos_mb,
+ my_lengthsp_8bit,
my_mb_wc_gbk,
my_wc_mb_gbk,
my_caseup_str_mb,
diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c
index d40e7b4b18f..edbd350f364 100644
--- a/strings/ctype-latin1.c
+++ b/strings/ctype-latin1.c
@@ -180,6 +180,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
NULL,
my_numchars_8bit,
my_charpos_8bit,
+ my_lengthsp_8bit,
my_mb_wc_latin1,
my_wc_mb_latin1,
my_caseup_str_8bit,
diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c
index 8f3e66f782e..ca0097579bd 100644
--- a/strings/ctype-simple.c
+++ b/strings/ctype-simple.c
@@ -1020,12 +1020,23 @@ uint my_charpos_8bit(CHARSET_INFO *cs __attribute__((unused)),
return pos;
}
+uint my_lengthsp_8bit(CHARSET_INFO *cs __attribute__((unused)),
+ const char *ptr, uint length)
+{
+ const char *end= ptr+length;
+ while (end > ptr && end[-1] == ' ')
+ end--;
+ return (uint) (end-ptr);
+}
+
+
MY_CHARSET_HANDLER my_charset_8bit_handler=
{
NULL, /* ismbchar */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
+ my_lengthsp_8bit,
my_mb_wc_8bit,
my_wc_mb_8bit,
my_caseup_str_8bit,
diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c
index d8443165462..9827c19e7fb 100644
--- a/strings/ctype-sjis.c
+++ b/strings/ctype-sjis.c
@@ -4486,6 +4486,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
mbcharlen_sjis,
my_numchars_mb,
my_charpos_mb,
+ my_lengthsp_8bit,
my_mb_wc_sjis, /* mb_wc */
my_wc_mb_sjis, /* wc_mb */
my_caseup_str_8bit,
diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c
index 33bd41f3236..8a6e00b973a 100644
--- a/strings/ctype-tis620.c
+++ b/strings/ctype-tis620.c
@@ -719,6 +719,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
+ my_lengthsp_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c
index 6c0cfd3e874..a20502c65d4 100644
--- a/strings/ctype-ucs2.c
+++ b/strings/ctype-ucs2.c
@@ -1001,6 +1001,24 @@ uint my_charpos_ucs2(CHARSET_INFO *cs __attribute__((unused)),
return pos*2;
}
+static
+void my_fill_ucs2(CHARSET_INFO *cs __attribute__((unused)),
+ char *s, uint l, int fill)
+{
+ for ( ; l >= 2; s[0]= 0, s[1]= fill, s+=2, l-=2);
+}
+
+static
+uint my_lengthsp_ucs2(CHARSET_INFO *cs __attribute__((unused)),
+ const char *ptr, uint length)
+{
+ const char *end= ptr+length;
+ while (end > ptr+1 && end[-1] == ' ' && end[-2] == '\0')
+ end-=2;
+ return (uint) (end-ptr);
+}
+
+
static MY_COLLATION_HANDLER my_collation_ci_handler =
{
@@ -1019,6 +1037,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_mbcharlen_ucs2, /* mbcharlen */
my_numchars_ucs2,
my_charpos_ucs2,
+ my_lengthsp_ucs2,
my_ucs2_uni, /* mb_wc */
my_uni_ucs2, /* wc_mb */
my_caseup_str_ucs2,
@@ -1028,7 +1047,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_snprintf_ucs2,
my_l10tostr_ucs2,
my_ll10tostr_ucs2,
- my_fill_8bit,
+ my_fill_ucs2,
my_strntol_ucs2,
my_strntoul_ucs2,
my_strntoll_ucs2,
diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c
index c6cf6ff79ba..5ef6c1b7486 100644
--- a/strings/ctype-ujis.c
+++ b/strings/ctype-ujis.c
@@ -8443,6 +8443,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
mbcharlen_ujis,
my_numchars_mb,
my_charpos_mb,
+ my_lengthsp_8bit,
my_mb_wc_euc_jp, /* mb_wc */
my_wc_mb_euc_jp, /* wc_mb */
my_caseup_str_mb,
diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c
index 4ac397c4c48..450c2d7aa93 100644
--- a/strings/ctype-utf8.c
+++ b/strings/ctype-utf8.c
@@ -1968,6 +1968,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_mbcharlen_utf8,
my_numchars_mb,
my_charpos_mb,
+ my_lengthsp_8bit,
my_utf8_uni,
my_uni_utf8,
my_caseup_str_utf8,