From 2e82008bacf85acafa1d657616690e442f997686 Mon Sep 17 00:00:00 2001 From: unknown <serg@serg.mylan> Date: Sat, 6 Dec 2003 19:05:26 +0100 Subject: [PATCH] fix for my_mbcharlen(charset, c) to return 1 for single-byte characters (isn't it obvious ?) mysys/charset.c: all charsets support my_mbcharlen - no need to protect it with use_mb() sql/sql_load.cc: all charsets support my_mbcharlen - no need to protect it with use_mb() --- mysys/charset.c | 2 +- sql/sql_load.cc | 5 ++--- strings/ctype-big5.c | 2 +- strings/ctype-euc_kr.c | 2 +- strings/ctype-gb2312.c | 2 +- strings/ctype-gbk.c | 2 +- strings/ctype-sjis.c | 2 +- strings/ctype-ujis.c | 2 +- 8 files changed, 9 insertions(+), 10 deletions(-) diff --git a/mysys/charset.c b/mysys/charset.c index e97ac0675d6..4111dd246cb 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -82,7 +82,7 @@ static void init_state_maps(CHARSET_INFO *cs) else if (my_isdigit(cs,i)) state_map[i]=(uchar) MY_LEX_NUMBER_IDENT; #if defined(USE_MB) && defined(USE_MB_IDENT) - else if (use_mb(cs) && (my_mbcharlen(cs, i)>1)) + else if (my_mbcharlen(cs, i)>1) state_map[i]=(uchar) MY_LEX_IDENT; #endif else if (!my_isgraph(cs,i)) diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 0e7895689b5..0f39ab2663f 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -759,8 +759,7 @@ int READ_INFO::read_field() { chr = GET; #ifdef USE_MB - if (use_mb(read_charset) && - (my_mbcharlen(read_charset, chr) >1 )&& + if ((my_mbcharlen(read_charset, chr) > 1) && to+my_mbcharlen(read_charset, chr) <= end_of_buff) { uchar* p = (uchar*)to; @@ -946,7 +945,7 @@ int READ_INFO::next_line() { int chr = GET; #ifdef USE_MB - if (use_mb(read_charset) && (my_mbcharlen(read_charset, chr) >1 )) + if (my_mbcharlen(read_charset, chr) > 1) { for (int i=1; chr != my_b_EOF && i<my_mbcharlen(read_charset, chr); diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c index 878493bc31f..b7a87e21f0f 100644 --- a/strings/ctype-big5.c +++ b/strings/ctype-big5.c @@ -401,7 +401,7 @@ static int ismbchar_big5(CHARSET_INFO *cs __attribute__((unused)), static int mbcharlen_big5(CHARSET_INFO *cs __attribute__((unused)), uint c) { - return (isbig5head(c)? 2: 0); + return (isbig5head(c)? 2 : 1); } /* page 0 0xA140-0xC7FC */ diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index d47c4268642..ace0c4aef5d 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -193,7 +193,7 @@ static int ismbchar_euc_kr(CHARSET_INFO *cs __attribute__((unused)), static int mbcharlen_euc_kr(CHARSET_INFO *cs __attribute__((unused)),uint c) { - return (iseuc_kr(c) ? 2 : 0); + return (iseuc_kr(c) ? 2 : 1); } diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c index d429fa34eea..248755785f1 100644 --- a/strings/ctype-gb2312.c +++ b/strings/ctype-gb2312.c @@ -174,7 +174,7 @@ static int ismbchar_gb2312(CHARSET_INFO *cs __attribute__((unused)), static int mbcharlen_gb2312(CHARSET_INFO *cs __attribute__((unused)),uint c) { - return (isgb2312head(c)? 2:0); + return (isgb2312head(c)? 2 : 1); } diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c index fa7aa175103..3b2f5b784ed 100644 --- a/strings/ctype-gbk.c +++ b/strings/ctype-gbk.c @@ -2721,7 +2721,7 @@ static int ismbchar_gbk(CHARSET_INFO *cs __attribute__((unused)), static int mbcharlen_gbk(CHARSET_INFO *cs __attribute__((unused)),uint c) { - return (isgbkhead(c)? 2:0); + return (isgbkhead(c)? 2 : 1); } /* page 0 0x8140-0xFE4F */ diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index f302e678b9f..d1cabbd72d6 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -191,7 +191,7 @@ static int ismbchar_sjis(CHARSET_INFO *cs __attribute__((unused)), static int mbcharlen_sjis(CHARSET_INFO *cs __attribute__((unused)),uint c) { - return (issjishead((uchar) c) ? 2: 0); + return (issjishead((uchar) c) ? 2 : 1); } diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index 29375aca727..484ee605273 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -196,7 +196,7 @@ static int ismbchar_ujis(CHARSET_INFO *cs __attribute__((unused)), static int mbcharlen_ujis(CHARSET_INFO *cs __attribute__((unused)),uint c) { - return (isujis(c)? 2: isujis_ss2(c)? 2: isujis_ss3(c)? 3: 0); + return (isujis(c)? 2: isujis_ss2(c)? 2: isujis_ss3(c)? 3: 1); }