From: siena@... (Siena. / SHINAGAWA, Norihide) Date: 2003-12-12T20:48:23+09:00 Subject: [ruby-dev:22249] Re: errors in test/fileutils Siena. です。 》charset=US-ASCIIでShift_JISなメールになってます。 すみません。こっちも確認不足でした。 》> 起動時のカレントディレクトリと Dir.tmpdir が異なる 》> ドライブにあると、teardown で tmproot の削除に失敗します。 》> これは、Dir.chdir @prevdir しても tmproot のドライブの 》> カレントディレクトリはそのままになるためです。 》> tmproot のドライブのカレントディレクトリをあらかじめ変更する 》> 必要があります。DOSISH 全般で発生する問題だと思います。 》 》DJGPPもmsvcrtもbccもchdirでカレントドライブも移動します。 》Rubyの挙動としてはDir.chdirでカレントドライブも含めて移 》動することを期待していました。 》 》というわけで、missing/os2.cでchdirを置き換えて同じ挙動になる 》ような変更をしたほうがいいと思います。 いえ。説明が悪くて問題としている事を誤解されてしまったようです。 [ruby-dev:21945] で報告したように、(手元では) カレントドライブ込みで chdir するように変更してあります。 改めて説明をさせていただきます。 例えば、始めに次のようになっているとします。 (A) カレントドライブ C: カレントディレクトリ C:/foo, D:/ あたしの理解では、DOSISH ではドライブ毎にカレントディレクトリが存在 するため、cd D:/bar とすると C: のカレントディレクトリはそのままで、 カレントドライブが D: になり、D: のカレントディレクトリが変更されます。 (B) カレントドライブ D: カレントディレクトリ C:/foo, D:/bar 最近の他の DOSISH では、このような場合には変更元ドライブ C: のカレント ディレクトリが強制的に / になるなど、従来の (古の?) 複数ドライブでの カレントディレクトリ管理とは異なる動作をするようになっているのでしょうか。 (C) カレントドライブ D: カレントディレクトリ C:/, D:/bar このように (A)->(C) となるならば、今回お尋ねした問題は起こりえません。 この動作が期待されているなら、missing/os2.c を再変更したいと思います。 もし (A)->(B) となるならば、[ruby-dev:22238] の問題が起きそうですが、 いかがでしょうか。 --- Siena.