diff options
-rw-r--r-- | Docs/manual.texi | 3 | ||||
-rw-r--r-- | client/mysqldump.c | 15 | ||||
-rw-r--r-- | include/raid.h | 2 | ||||
-rw-r--r-- | libmysql/Makefile.am | 2 | ||||
-rw-r--r-- | libmysql_r/Makefile.am | 2 | ||||
-rw-r--r-- | myisam/mi_check.c | 2 | ||||
-rw-r--r-- | myisam/mi_dynrec.c | 2 | ||||
-rw-r--r-- | mysql-test/r/isam.result | 10 | ||||
-rw-r--r-- | mysql-test/r/myisam.result | 10 | ||||
-rw-r--r-- | mysql-test/t/isam.test | 19 | ||||
-rw-r--r-- | mysql-test/t/myisam.test | 20 | ||||
-rw-r--r-- | sql/log_event.cc | 18 | ||||
-rw-r--r-- | strings/ctype-euc_kr.c | 96 | ||||
-rw-r--r-- | strings/ctype-sjis.c | 96 |
14 files changed, 184 insertions, 113 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 396fa83e726..7e3f07e6d25 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -46908,6 +46908,9 @@ not yet 100% confident in this code. @appendixsubsec Changes in release 3.23.42 @itemize @bullet @item +Fixed problem with @code{REPAIR TABLE} on MyISAM tables with row lengths +between 65517 - 65520 bytes +@item Fixed rare hang when doing @code{mysqladmin shutdown} when there was a lot of activity in other threads. @item diff --git a/client/mysqldump.c b/client/mysqldump.c index b296d24290d..9d8e15a7942 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -37,7 +37,7 @@ ** Tõnu Samuel <tonu@please.do.not.remove.this.spam.ee> **/ -#define DUMP_VERSION "8.15" +#define DUMP_VERSION "8.16" #include <global.h> #include <my_sys.h> @@ -1060,7 +1060,12 @@ static void dumpTable(uint numFields, char *table) dynstr_append(&extended_row,"\'"); } else - dynstr_append(&extended_row,row[i]); + { + /* change any strings ("inf","nan",..) into NULL */ + char *ptr = row[i]; + dynstr_append(&extended_row, + (!isalpha(*ptr)) ? ptr : "NULL"); + } } else dynstr_append(&extended_row,"\'\'"); @@ -1080,7 +1085,11 @@ static void dumpTable(uint numFields, char *table) if (!IS_NUM_FIELD(field)) unescape(md_result_file, row[i], lengths[i]); else - fputs(row[i],md_result_file); + { + /* change any strings ("inf","nan",..) into NULL */ + char *ptr = row[i]; + fputs((!isalpha(*ptr)) ? ptr : "NULL", md_result_file); + } } else { diff --git a/include/raid.h b/include/raid.h index e7261bb4998..8cbd0f1a442 100644 --- a/include/raid.h +++ b/include/raid.h @@ -33,7 +33,7 @@ const char *my_raid_type(int raid_type); } #endif -#ifdef USE_RAID +#if defined(USE_RAID) && !defined(DONT_USE_RAID) #ifdef __GNUC__ #pragma interface /* gcc class implementation */ diff --git a/libmysql/Makefile.am b/libmysql/Makefile.am index 6c471090533..02291d75e7c 100644 --- a/libmysql/Makefile.am +++ b/libmysql/Makefile.am @@ -18,7 +18,7 @@ # This file is public domain and comes with NO WARRANTY of any kind target = libmysqlclient.la -target_defs = -DUNDEF_THREADS_HACK +target_defs = -DUNDEF_THREADS_HACK -DDONT_USE_RAID LIBS = @CLIENT_LIBS@ INCLUDES = -I$(srcdir)/../include -I../include \ -I$(srcdir)/.. -I$(top_srcdir) -I.. $(openssl_includes) diff --git a/libmysql_r/Makefile.am b/libmysql_r/Makefile.am index 154c3df431b..88a566bdbf9 100644 --- a/libmysql_r/Makefile.am +++ b/libmysql_r/Makefile.am @@ -18,7 +18,7 @@ target = libmysqlclient_r.la -target_defs = +target_defs = -DDONT_USE_RAID ## LIBS = @LIBS@ INCLUDES = @MT_INCLUDES@ -I$(srcdir)/../include -I../include \ diff --git a/myisam/mi_check.c b/myisam/mi_check.c index 09f5dcc1ec9..a15427b7838 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -2542,7 +2542,7 @@ int sort_write_record(SORT_INFO *sort_info) info->checksum=mi_checksum(info,sort_info->record); reclength=_mi_rec_pack(info,from,sort_info->record); info->s->state.checksum+=info->checksum; - block_length=reclength+ 3 +test(reclength > 65532L); + block_length=reclength+ 3 + test(reclength >= (65520-3)); if (block_length < share->base.min_block_length) block_length=share->base.min_block_length; flag=0; diff --git a/myisam/mi_dynrec.c b/myisam/mi_dynrec.c index e090498f3fe..c9fe493744d 100644 --- a/myisam/mi_dynrec.c +++ b/myisam/mi_dynrec.c @@ -178,7 +178,7 @@ static int _mi_find_writepos(MI_INFO *info, { /* No deleted blocks; Allocate a new block */ *filepos=info->state->data_file_length; - if ((*length=reclength+3 + test(reclength > 65520)) < + if ((*length=reclength+3 + test(reclength >= (65520-3))) < info->s->base.min_block_length) *length=info->s->base.min_block_length; else diff --git a/mysql-test/r/isam.result b/mysql-test/r/isam.result new file mode 100644 index 00000000000..ba12ca05feb --- /dev/null +++ b/mysql-test/r/isam.result @@ -0,0 +1,10 @@ +Table Op Msg_type Msg_text +test.t1 check status OK +Table Op Msg_type Msg_text +test.t1 repair status OK +Table Op Msg_type Msg_text +test.t1 check status OK +Table Op Msg_type Msg_text +test.t1 repair status OK +Table Op Msg_type Msg_text +test.t1 check status OK diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 694d7429a14..1152ca24f38 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1,2 +1,12 @@ Table Op Msg_type Msg_text test.t1 check status OK +Table Op Msg_type Msg_text +test.t1 check status OK +Table Op Msg_type Msg_text +test.t1 repair status OK +Table Op Msg_type Msg_text +test.t1 check status OK +Table Op Msg_type Msg_text +test.t1 repair status OK +Table Op Msg_type Msg_text +test.t1 check status OK diff --git a/mysql-test/t/isam.test b/mysql-test/t/isam.test new file mode 100644 index 00000000000..1cf068b42ba --- /dev/null +++ b/mysql-test/t/isam.test @@ -0,0 +1,19 @@ +# +# Test possible problem with rows that are about 65535 bytes long +# + +create table t1 (a tinyint not null auto_increment, b blob not null, primary key (a)); + +let $1=100; +while ($1) +{ + eval insert into t1 (b) values(repeat(char(65+$1),65540-$1)); + dec $1; +} +check table t1; +repair table t1; +delete from t1 where (a & 1); +check table t1; +repair table t1; +check table t1; +drop table t1; diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index 84feb5de6d7..0dc7f84efc5 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -16,3 +16,23 @@ INSERT INTO t1 VALUES ('HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH INSERT INTO t1 VALUES ('WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW'); CHECK TABLE t1; drop table t1; + +# +# Test problem with rows that are 65517-65520 bytes long +# + +create table t1 (a tinyint not null auto_increment, b blob not null, primary key (a)); + +let $1=100; +while ($1) +{ + eval insert into t1 (b) values(repeat(char(65+$1),65550-$1)); + dec $1; +} +check table t1; +repair table t1; +delete from t1 where (a & 1); +check table t1; +repair table t1; +check table t1; +drop table t1; diff --git a/sql/log_event.cc b/sql/log_event.cc index 64ad4cadf8e..ce0873f0be6 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -548,24 +548,24 @@ void Log_event::print_header(FILE* file) void Log_event::print_timestamp(FILE* file, time_t* ts) { - struct tm tm_tmp; + struct tm tm_tmp, *res; if (!ts) { ts = &when; } #ifdef MYSQL_SERVER - localtime_r(ts,&tm_tmp); + res=localtime_r(ts,&tm_tmp); #else - localtime(ts); + res=localtime(ts); #endif fprintf(file,"%02d%02d%02d %2d:%02d:%02d", - tm_tmp.tm_year % 100, - tm_tmp.tm_mon+1, - tm_tmp.tm_mday, - tm_tmp.tm_hour, - tm_tmp.tm_min, - tm_tmp.tm_sec); + res->tm_year % 100, + res->tm_mon+1, + res->tm_mday, + res->tm_hour, + res->tm_min, + res->tm_sec); } diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index 13d4513ce2d..df6f8c496bc 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -85,22 +85,22 @@ uchar NEAR to_lower_euc_kr[]= 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\177', - '\200','\201','\202','\203','\204','\205','\206','\207', - '\210','\211','\212','\213','\214','\215','\216','\217', - '\220','\221','\222','\223','\224','\225','\226','\227', - '\230','\231','\232','\233','\234','\235','\236','\237', - '\240','\241','\242','\243','\244','\245','\246','\247', - '\250','\251','\252','\253','\254','\255','\256','\257', - '\260','\261','\262','\263','\264','\265','\266','\267', - '\270','\271','\272','\273','\274','\275','\276','\277', - '\300','\301','\302','\303','\304','\305','\306','\307', - '\310','\311','\312','\313','\314','\315','\316','\317', - '\320','\321','\322','\323','\324','\325','\326','\327', - '\330','\331','\332','\333','\334','\335','\336','\337', - '\340','\341','\342','\343','\344','\345','\346','\347', - '\350','\351','\352','\353','\354','\355','\356','\357', - '\360','\361','\362','\363','\364','\365','\366','\367', - '\370','\371','\372','\373','\374','\375','\376','\377', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', }; uchar NEAR to_upper_euc_kr[]= @@ -121,22 +121,22 @@ uchar NEAR to_upper_euc_kr[]= 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', - '\200','\201','\202','\203','\204','\205','\206','\207', - '\210','\211','\212','\213','\214','\215','\216','\217', - '\220','\221','\222','\223','\224','\225','\226','\227', - '\230','\231','\232','\233','\234','\235','\236','\237', - '\240','\241','\242','\243','\244','\245','\246','\247', - '\250','\251','\252','\253','\254','\255','\256','\257', - '\260','\261','\262','\263','\264','\265','\266','\267', - '\270','\271','\272','\273','\274','\275','\276','\277', - '\300','\301','\302','\303','\304','\305','\306','\307', - '\310','\311','\312','\313','\314','\315','\316','\317', - '\320','\321','\322','\323','\324','\325','\326','\327', - '\330','\331','\332','\333','\334','\335','\336','\337', - '\340','\341','\342','\343','\344','\345','\346','\347', - '\350','\351','\352','\353','\354','\355','\356','\357', - '\360','\361','\362','\363','\364','\365','\366','\367', - '\370','\371','\372','\373','\374','\375','\376','\377', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', }; uchar NEAR sort_order_euc_kr[]= @@ -157,22 +157,22 @@ uchar NEAR sort_order_euc_kr[]= 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', - '\200','\201','\202','\203','\204','\205','\206','\207', - '\210','\211','\212','\213','\214','\215','\216','\217', - '\220','\221','\222','\223','\224','\225','\226','\227', - '\230','\231','\232','\233','\234','\235','\236','\237', - '\240','\241','\242','\243','\244','\245','\246','\247', - '\250','\251','\252','\253','\254','\255','\256','\257', - '\260','\261','\262','\263','\264','\265','\266','\267', - '\270','\271','\272','\273','\274','\275','\276','\277', - '\300','\301','\302','\303','\304','\305','\306','\307', - '\310','\311','\312','\313','\314','\315','\316','\317', - '\320','\321','\322','\323','\324','\325','\326','\327', - '\330','\331','\332','\333','\334','\335','\336','\337', - '\340','\341','\342','\343','\344','\345','\346','\347', - '\350','\351','\352','\353','\354','\355','\356','\357', - '\360','\361','\362','\363','\364','\365','\366','\367', - '\370','\371','\372','\373','\374','\375','\376','\377', + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377', }; /* Support for Korean(EUC_KR) characters, by powerm90@tinc.co.kr and mrpark@tinc.co.kr */ diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index 566271be845..9f23d69eb12 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -85,22 +85,22 @@ uchar NEAR to_lower_sjis[]= 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\177', - '\200','\201','\202','\203','\204','\205','\206','\207', - '\210','\211','\212','\213','\214','\215','\216','\217', - '\220','\221','\222','\223','\224','\225','\226','\227', - '\230','\231','\232','\233','\234','\235','\236','\237', - '\240','\241','\242','\243','\244','\245','\246','\247', - '\250','\251','\252','\253','\254','\255','\256','\257', - '\260','\261','\262','\263','\264','\265','\266','\267', - '\270','\271','\272','\273','\274','\275','\276','\277', - '\300','\301','\302','\303','\304','\305','\306','\307', - '\310','\311','\312','\313','\314','\315','\316','\317', - '\320','\321','\322','\323','\324','\325','\326','\327', - '\330','\331','\332','\333','\334','\335','\336','\337', - '\340','\341','\342','\343','\344','\345','\346','\347', - '\350','\351','\352','\353','\354','\355','\356','\357', - '\360','\361','\362','\363','\364','\365','\366','\367', - '\370','\371','\372','\373','\374','\375','\376','\377' + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' }; uchar NEAR to_upper_sjis[]= @@ -121,22 +121,22 @@ uchar NEAR to_upper_sjis[]= 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', - '\200','\201','\202','\203','\204','\205','\206','\207', - '\210','\211','\212','\213','\214','\215','\216','\217', - '\220','\221','\222','\223','\224','\225','\226','\227', - '\230','\231','\232','\233','\234','\235','\236','\237', - '\240','\241','\242','\243','\244','\245','\246','\247', - '\250','\251','\252','\253','\254','\255','\256','\257', - '\260','\261','\262','\263','\264','\265','\266','\267', - '\270','\271','\272','\273','\274','\275','\276','\277', - '\300','\301','\302','\303','\304','\305','\306','\307', - '\310','\311','\312','\313','\314','\315','\316','\317', - '\320','\321','\322','\323','\324','\325','\326','\327', - '\330','\331','\332','\333','\334','\335','\336','\337', - '\340','\341','\342','\343','\344','\345','\346','\347', - '\350','\351','\352','\353','\354','\355','\356','\357', - '\360','\361','\362','\363','\364','\365','\366','\367', - '\370','\371','\372','\373','\374','\375','\376','\377' + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' }; uchar NEAR sort_order_sjis[]= @@ -157,22 +157,22 @@ uchar NEAR sort_order_sjis[]= 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', '\177', - '\200','\201','\202','\203','\204','\205','\206','\207', - '\210','\211','\212','\213','\214','\215','\216','\217', - '\220','\221','\222','\223','\224','\225','\226','\227', - '\230','\231','\232','\233','\234','\235','\236','\237', - '\240','\241','\242','\243','\244','\245','\246','\247', - '\250','\251','\252','\253','\254','\255','\256','\257', - '\260','\261','\262','\263','\264','\265','\266','\267', - '\270','\271','\272','\273','\274','\275','\276','\277', - '\300','\301','\302','\303','\304','\305','\306','\307', - '\310','\311','\312','\313','\314','\315','\316','\317', - '\320','\321','\322','\323','\324','\325','\326','\327', - '\330','\331','\332','\333','\334','\335','\336','\337', - '\340','\341','\342','\343','\344','\345','\346','\347', - '\350','\351','\352','\353','\354','\355','\356','\357', - '\360','\361','\362','\363','\364','\365','\366','\367', - '\370','\371','\372','\373','\374','\375','\376','\377' + (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207', + (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217', + (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227', + (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237', + (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247', + (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257', + (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267', + (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277', + (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307', + (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317', + (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327', + (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337', + (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347', + (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357', + (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367', + (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377' }; #define issjishead(c) ((0x81<=(c) && (c)<=0x9f) || \ |