From: Hidetoshi NAGAI Date: 2003-07-29T10:30:40+09:00 Subject: [ruby-dev:20984] Re: ruby 1.8.0 preview5 永井@知能.九工大です. From: matz@ruby-lang.org (Yukihiro Matsumoto) Subject: [ruby-dev:20954] ruby 1.8.0 preview5 Date: Mon, 28 Jul 2003 17:42:13 +0900 Message-ID: <1059381732.696112.25370.nullmailer@picachu.netlab.jp> > うちではtcltklib.cが > > tcltklib.c:963: warning: passing arg 4 of pointer to function from incompatible pointer type > > と文句を言います。Tclは8.4を使ってます。> 永井さん 連絡をありがとうございます.確認しました. 調べてみますと,どうやら Tcl/Tk8.4b2 から定義が変更になったようですね. ただ,CONST84 というマクロ定義の名前が 「Tcl/Tk8.5 になってもこの名前をつかうつもりだろうか?」 と気になりました. で,しばらく考えてみて,次のような記述にして commit しました. --------------------------------------------- #if TCL_MAJOR_VERSION >= 8 # ifdef CONST84 /* Tcl8.4.x -- ?.?.? (current latest version is 8.4.4) */ ptr->return_value = (*info.proc)(info.clientData, ptr->ip, argc, (CONST84 char **)av); # else # if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION <= 4 /* Tcl8.0.x -- 8.4b1 */ ptr->return_value = (*info.proc)(info.clientData, ptr->ip, argc, av); # else /* unknown (maybe TCL_VERSION >= 8.5) */ # ifdef CONST ptr->return_value = (*info.proc)(info.clientData, ptr->ip, argc, (CONST char **)av); # else ptr->return_value = (*info.proc)(info.clientData, ptr->ip, argc, av); # endif # endif # endif #else /* TCL_MAJOR_VERSION < 8 */ ptr->return_value = (*info.proc)(info.clientData, ptr->ip, argc, av); #endif --------------------------------------------- Tcl/Tk8.5 以降になって CONST84 の名前が消えても, CONST 定義の形は残るだろうと期待しての定義です. ハズレたときはそのときということで.(^_^) -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp