From 46aa022aa6cf40801518d1be2c9e8e7ffcee9928 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 2 Nov 2004 09:00:46 +0400 Subject: ctype_sjis.result, ctype_sjis.test, ctype-sjis.c: Bug #6223 Japanese half-width kana characters get truncated. Bytes 0xA1..0xDF were not treated as a single byte sequence in a mistake. strings/ctype-sjis.c: Bug #6223 Japanese half-width kana characters get truncated. Bytes 0xA1..0xDF were not treated as a single byte sequence in a mistake. mysql-test/t/ctype_sjis.test: Bug #6223 Japanese half-width kana characters get truncated. Bytes 0xA1..0xDF were not treated as a single byte sequence in a mistake. mysql-test/r/ctype_sjis.result: Bug #6223 Japanese half-width kana characters get truncated. Bytes 0xA1..0xDF were not treated as a single byte sequence in a mistake. --- strings/ctype-sjis.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'strings') diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index 4176ff2e538..a8b5394f8c5 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -4581,14 +4581,19 @@ uint my_well_formed_len_sjis(CHARSET_INFO *cs __attribute__((unused)), */ if (((int8)b[0]) >= 0) { - /* Single byte character */ - b+= 1; + /* Single byte ascii character */ + b++; } else if (issjishead((uchar)*b) && (e-b)>1 && issjistail((uchar)b[1])) { /* Double byte character */ b+= 2; } + else if (((uchar)*b) >= 0xA1 && ((uchar)*b) <= 0xDF) + { + /* Half width kana */ + b++; + } else { /* Wrong byte sequence */ -- cgit v1.2.1