mysql:869
From: 民斗 <民斗 <tommy@xxxxxxxxxx>>
Date: Fri, 14 May 1999 11:37:29 +0900
Subject: [mysql 00869] Re: VineLinux の egcs でコンパイル
民斗です。 [Subject: [mysql 00868] Re: VineLinux のegcs でコンパイル] [Date: Fri, 14 May 1999 10:54:24 +0900 From:民斗] > たしかにコンパイラのバグ(のよう)なので、「コンパイラを変えれば良い」 > だけでもいいんですけど、現在もっとも使われていると思われるコンパイラ > の gcc-2.8.x や egcs で問題が発生してるので、この問題を回避するための > パッチでも作った方がいいかな…という気もしてます。 > > SJIS だけじゃなくて EUC の場合でも同様ですし。EUC は '\' を含んでない > ので問題が表面化してないだけで…。 色々試してたら "(uchar)(c)" を "((c)&0xff)" に変更するだけで、回避 できたようなので、パッチを作りました。 mysql-3.22.22 に対するパッチです。まだ試してませんが、多分大丈夫でしょう。 原因はあくまでもコンパイラのバグ(多分)なので、本家にこのパッチを取り込ん でもらうつもりはありません。 私の Web ページに置いておこうと思います。もしよろしければ SoftAgency さん の Web にも置いてください。 -- 民斗 <tommy@xxxxxxxxxx> *** include/m_ctype.h.in.orig Sat Feb 27 19:40:09 1999 --- include/m_ctype.h.in Fri May 14 11:11:07 1999 *************** *** 102,107 **** #define USE_MB_IDENT ! #define isujis(c) ((0xa1<=(uchar)(c) && (uchar)(c)<=0xfe)) ! #define iskata(c) ((0xa1<=(uchar)(c) && (uchar)(c)<=0xdf)) ! #define isujis_ss2(c) ((unsigned char)(c) == 0x8e) ! #define isujis_ss3(c) ((unsigned char)(c) == 0x8f) #define ismbchar(p, end) ((*(uchar*)(p)<0x80)? 0:\ --- 102,107 ---- #define USE_MB_IDENT ! #define isujis(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xfe)) ! #define iskata(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xdf)) ! #define isujis_ss2(c) (((c)&0xff) == 0x8e) ! #define isujis_ss3(c) (((c)&0xff) == 0x8f) #define ismbchar(p, end) ((*(uchar*)(p)<0x80)? 0:\ *************** *** 120,123 **** #define USE_MB_IDENT ! #define issjishead(c) ((0x81<=(uchar)(c) && (uchar)(c)<=0x9f) || (0xe0<=(uchar)(c) && (uchar)(c)<=0xfc)) ! #define issjistail(c) ((0x40<=(uchar)(c) && (uchar)(c)<=0x7e) || (0x80<=(uchar)(c) && (uchar)(c)<=0xfc)) #define ismbchar(p, end) (issjishead(*(p)) && (end)-(p)>1 && issjistail(*((p)+1))? 2: 0) --- 120,123 ---- #define USE_MB_IDENT ! #define issjishead(c) ((0x81<=((c)&0xff) && ((c)&0xff)<=0x9f) || (0xe0<=((c)&0xff) && ((c)&0xff)<=0xfc)) ! #define issjistail(c) ((0x40<=((c)&0xff) && ((c)&0xff)<=0x7e) || (0x80<=((c)&0xff) && ((c)&0xff)<=0xfc)) #define ismbchar(p, end) (issjishead(*(p)) && (end)-(p)>1 && issjistail(*((p)+1))? 2: 0)
866 1999-05-14 00:52 [Hiroshi Marui <bant@] VineLinux の egcs でコンパイル 867 1999-05-14 10:10 ┗[<takeshi@xxxxxxxxxx>] 868 1999-05-14 10:54 ┣[民斗 <tommy@xxxxxxxx] -> 869 1999-05-14 11:37 ┃┣[民斗 <tommy@xxxxxxxx] 871 1999-05-14 11:47 ┃┃┗[<takeshi@xxxxxxxxxx>] 870 1999-05-14 11:39 ┃┗[<takeshi@xxxxxxxxxx>] 872 1999-05-14 12:11 ┃ ┗[民斗 <tommy@xxxxxxxx] 873 1999-05-14 12:23 ┃ ┗[<takeshi@xxxxxxxxxx>] 875 1999-05-14 14:49 ┃ ┗[民斗 <tommy@xxxxxxxx] 883 1999-05-14 23:43 ┗[Hiroshi Marui <bant@]