summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorserg@serg.mylan <>2005-04-06 23:12:10 +0200
committerserg@serg.mylan <>2005-04-06 23:12:10 +0200
commit5cd866610df606253827d5495343365af0cc9134 (patch)
tree263f1e6f72b80f3bf548474ea002eb8969128eb3 /strings
parente1e5b97dea1ec945939a711e31ff7e0bb73dd3e9 (diff)
downloadmariadb-git-5cd866610df606253827d5495343365af0cc9134.tar.gz
after merge fix
Diffstat (limited to 'strings')
-rw-r--r--strings/ctype-cp932.c4
-rw-r--r--strings/ctype-eucjpms.c11
2 files changed, 10 insertions, 5 deletions
diff --git a/strings/ctype-cp932.c b/strings/ctype-cp932.c
index c47f2c2d8ce..47bf1167c8c 100644
--- a/strings/ctype-cp932.c
+++ b/strings/ctype-cp932.c
@@ -5413,9 +5413,10 @@ uint my_numcells_cp932(CHARSET_INFO *cs __attribute__((unused)),
*/
static
uint my_well_formed_len_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e, uint pos)
+ const char *b, const char *e, uint pos, int *error)
{
const char *b0= b;
+ *error= 0;
while (pos && b < e)
{
/*
@@ -5441,6 +5442,7 @@ uint my_well_formed_len_cp932(CHARSET_INFO *cs __attribute__((unused)),
else
{
/* Wrong byte sequence */
+ *error= 1;
break;
}
}
diff --git a/strings/ctype-eucjpms.c b/strings/ctype-eucjpms.c
index 8c8d237cf48..346b5ecdf6b 100644
--- a/strings/ctype-eucjpms.c
+++ b/strings/ctype-eucjpms.c
@@ -8380,17 +8380,18 @@ my_jisx0212_uni_onechar(int code){
/*
EUC-JP encoding subcomponents:
- [x00-x7F] # ASCII/JIS-Roman (one-byte/character)
- [x8E][xA0-xDF] # half-width katakana (two bytes/char)
- [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char)
+ [x00-x7F] # ASCII/JIS-Roman (one-byte/character)
+ [x8E][xA0-xDF] # half-width katakana (two bytes/char)
+ [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char)
[xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char)
*/
static
uint my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
- const char *beg, const char *end, uint pos)
+ const char *beg, const char *end, uint pos, int *error)
{
const uchar *b= (uchar *) beg;
+ *error=0;
for ( ; pos && b < (uchar*) end; pos--, b++)
{
@@ -8408,6 +8409,7 @@ uint my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
{
if (*b >= 0xA0 && *b <= 0xDF)
continue;
+ *error=1;
return chbeg - beg; /* invalid sequence */
}
@@ -8421,6 +8423,7 @@ uint my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
if (ch >= 0xA1 && ch <= 0xFE &&
*b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */
continue;
+ *error=1;
return chbeg - beg; /* invalid sequence */
}
return b - (uchar *) beg;