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) }