Siena. です。

》In message "[ruby-cvs] ruby, ruby/lib, ruby/test/fileutils: * lib/fileutils.rb (fu_same?): check by inode instead of path name, to detect two hard links pointing to the same content."|     * lib/fileutils.rb (fu_same?): check by inode instead of path name, to detect two hard links pointing to the same content.
》
》遺憾ながら、MSVCRT.dllを利用するプラットフォームでは、inoは常に0です...

OS/2 with EMX でも、次のような制限があるようですので、
have_st_ino? に emx も加えてやっていただけないでしょうか。
その他のファイル関係のライブラリ/ユニットテストを見てみると、
RUBY_PLATFORM で場合分けしている所で気になった箇所が
幾つかありますので、併せて文末のパッチにしておきました。

| stat(), fstat():
| Restrictions: 
| st_dev and st_rdev are set to zero. 
| Each call to stat() returns a different value for st_ino. 


それと細かい話ですが、test/fileutils/test_fileutils.rb の windows? は
djgpp とかもあるので dosish? とかに改名した方が妥当かもしれません。
それと、使ってないので分からないのですが、wince 辺りは含めなくて
良いのでしょうか?

こういう場合分けが幾つかのファイルに見られるのですが、DOSISH か
否かを判別する手段が標準であっても良さそうな気がしました。
判別するコードがあちこちに分散して確認するのがちょっと手間でした。
実装の細かい違いは、今まで通り RUBY_PLATFORM で場合分けするとして、
複数ドライブとか、オーナ/グループ別のパーミッションとか、そういう
概念の有無というくらいで。違いがあり過ぎてやるだけ無駄かしら。


ついでに RUBY_PLATFORM を grep してたら見つかったのですが、
lib/xsd/charset.rb にも変更した方が良さそうな所がありました。
二つ目のパッチがこの変更になります。

それぞれ、問題なければパッチを取り込んでいただけないでしょうか。
よろしくお願いします。


# ユニットテストを回してみたら、まだ Error/Failure が幾つか。
# drb に至っては壊滅的 ;_;  まだまだだ...
---
Siena. <mailto:siena / faculty.chiba-u.jp>

Index: ruby/lib/fileutils.rb =================================================================== RCS file: /src/ruby/lib/fileutils.rb,v retrieving revision 1.27 diff -u -p -2 -r1.27 fileutils.rb --- ruby/lib/fileutils.rb 19 Nov 2003 05:33:07 -0000 1.27 +++ ruby/lib/fileutils.rb 19 Nov 2003 14:40:54 -0000 @@ -752,5 +752,5 @@ module FileUtils def have_st_ino? - /djgpp|mswin|mingw|bccwin|wince/ !~ RUBY_PLATFORM + /djgpp|mswin|mingw|bccwin|wince|emx/ !~ RUBY_PLATFORM end Index: ruby/test/fileutils/test_fileutils.rb =================================================================== RCS file: /src/ruby/test/fileutils/test_fileutils.rb,v retrieving revision 1.5 diff -u -p -2 -r1.5 test_fileutils.rb --- ruby/test/fileutils/test_fileutils.rb 18 Nov 2003 10:05:21 -0000 1.5 +++ ruby/test/fileutils/test_fileutils.rb 19 Nov 2003 14:40:58 -0000 @@ -11,5 +11,5 @@ require 'fileasserts' def windows? - /mswin|mingw|bcc|djgpp/ === RUBY_PLATFORM + /mswin|mingw|bcc|djgpp|emx/ === RUBY_PLATFORM end Index: ruby/test/ruby/test_file.rb =================================================================== RCS file: /src/ruby/test/ruby/test_file.rb,v retrieving revision 1.1 diff -u -p -2 -r1.1 test_file.rb --- ruby/test/ruby/test_file.rb 26 Sep 2003 20:00:03 -0000 1.1 +++ ruby/test/ruby/test_file.rb 19 Nov 2003 14:40:58 -0000 @@ -14,5 +14,5 @@ class TestFile < Test::Unit::TestCase r = File.open(filename, "r") begin - if /(mswin|bccwin|mingw)/ =~ RUBY_PLATFORM + if /(mswin|bccwin|mingw|emx)/ =~ RUBY_PLATFORM begin File.unlink(filename)
Index: ruby/lib/xsd/charset.rb =================================================================== RCS file: /src/ruby/lib/xsd/charset.rb,v retrieving revision 1.2 diff -u -p -2 -r1.2 charset.rb --- ruby/lib/xsd/charset.rb 28 Sep 2003 09:33:59 -0000 1.2 +++ ruby/lib/xsd/charset.rb 19 Nov 2003 14:40:56 -0000 @@ -42,5 +42,5 @@ public EncodingConvertMap[['EUC' , 'UTF8']] = Proc.new { |str| IconvCharset.safe_iconv("utf-8", "euc-jp", str) } EncodingConvertMap[['EUC' , 'SJIS']] = Proc.new { |str| IconvCharset.safe_iconv("shift-jis", "euc-jp", str) } - if /(mswin|bccwin|mingw|cygwin)/ =~ RUBY_PLATFORM + if /(mswin|bccwin|mingw|cygwin|emx)/ =~ RUBY_PLATFORM EncodingConvertMap[['UTF8', 'SJIS']] = Proc.new { |str| IconvCharset.safe_iconv("cp932", "utf-8", str) } EncodingConvertMap[['SJIS', 'UTF8']] = Proc.new { |str| IconvCharset.safe_iconv("utf-8", "cp932", str) }