Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 2003/11/07 -> 2003/11/08 update gets no Warning



寺西です。

# ちょっと混乱しています。誤解も多いかもしれません。

knok@xxxxxxxxxxxxx wrote:
> 
> At Tue, 18 Nov 2003 15:57:22 +0900,
> knok@xxxxxxxxxxxxx wrote:
> >   1.5 ではこうなっています。
> >
> >       exec $progdir/$program ${1+"$@"}
> >
> >   ltmain.sh のこの個所だけ 1.4 と同じようにしたら問題なく check が通り
> > ました。うーん、どうしたものでしょうか。
> 
>   解法は2通り考えられると思います。
> 
> 1. autogen.sh を hack して必要なら ltmain.sh を修正する
> 2. src/namazu-cgi.cmd を修正して combine_pathname によって生成されたファ
>    イル名がなければ current directory にアクセスを試みるようにする

1.5 でダメなのは
  exec $progdir/$program ${1+"$@"}
として呼び出されるので、src/.libs/.namazurc が見つからないため
でしたよね。

1.4 で動くのは
  exec $program ${1+"$@"}
として呼び出されているので、カレントディレクトリの .namazurc 
(つまり src/.namazurc)が読み込まれているのですね。

もう少し言うと、1.4 では src/.libs/namazu.cgi が起動した時の
argv[0] はパスを指定していないので namazu.cgi となり、
combine_pathname で .namazurc を生成して、カレントの .namazurc 
を読みに行っています。

ここの処理は、おそらく namazu.cgi のあるディレクトリの .namazurc
を読みたいはずで、カレントの .namazurc を読みたかったはず
ではないと思います。
なぜなら、namazu.cgi をパスなしで起動した時はカレントディレクトリ
の .namazurc を読むがパス付きで namazu.cgi を起動すると、
namazu.cgi のあるディレクトリの .namazurc を読むからです。

# これってバグでは? ちょっと不自然な振る舞いかと思います。

もっとも、CGI プログラムをパス指定なしで使うことはないでしょうし、
パス指定なしで使うにしても、カレントディレクトリ以外にあるという
ケースは稀なので、これがどうということはまずないでしょう。
(今回のようなケースでなければ)

で、話を戻すと、1.4 で src/.namazurc を読み込んで動作する方が
変じゃないかなと思うわけです。
実態のある src/.libs/ に .namazurc を置いてこれを読み込むのが
本来正しいのではないかと思うわけです。

# だがしかし、直すのも面倒かな。メリットないし。

> 2. src/namazu-cgi.cmd を修正して combine_pathname によって生成されたファ
>    イル名がなければ current directory にアクセスを試みるようにする

パス指定なしで起動した際に、きちんと namazu.cgi のあるディレクトリを
取り出せるようにデバッグすることも必要かと。
その上で、namazu.cgi のあるディレクトリに .namazurc がなければ、
カレントディレクトリの .namazurc を読むというのが良いでしょう。

そうしないと、namazu.cgi のあるディレクトリとカレントパスの
両方に .namazurc がある場合、1.4 ではカレントパスのものを読み込み、
1.5 では namazu.cgi のあるディレクトリのものを読み込むといった
差が生じます。
make check にしか関係しそうにないので、この差が後々、別の問題を
生じる可能性はすくないとは思いますが、何にしても挙動が変わるのは
気持ちが悪いです。

> 3. namazu-cgi-xxx で生成する .namazurc を src/.libs/ の下にも作る

とするにしても、
パス指定なしで起動した際に、きちんと namazu.cgi のあるディレクトリを
取り出せるようにデバッグすることはやっておいた方がよさそうです。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E