ミムラ aka takkanm です。

rubyspec(./core/io/reopen_spec.rb +114)で落ちている IO::reopen の挙動が
意図しているものかがわからないので、質問させてください。

1.8 と 1.9 で、一度IO::reopenしたファイルに対して、同一ファイルで
IO::reopenしたときの挙動が異なるのですが、これは意図したものでしょうか?

1.8 で再reopenした後 gets を行なうと先頭行が読みこまれるのですが、
1.9 では nil が返ってきます。

% cat file1.txt
line 1
line 2
line 3
line 4
% cat file2.txt
Line 1
Line 2
Line 3
Line 4
% ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]
% irb
irb(main):001:0> RUBY_VERSION
=> "1.8.7"
irb(main):002:0> f1 = File.open "file1.txt"
=> #<File:file1.txt>
irb(main):003:0> f2 = File.open "file2.txt"
=> #<File:file2.txt>
irb(main):004:0> f1.reopen f2
=> #<File:file2.txt>
irb(main):005:0> f1.gets
=> "Line 1\n"
irb(main):006:0> f1.gets
=> "Line 2\n"
irb(main):007:0> f1.reopen(f2).gets
=> "Line 1\n"
irb(main):008:0> quit

% rvm use 1.9.2 --rev head
% ruby -v
ruby 1.9.2dev (2009-10-06 trunk 25243) [i386-darwin9.8.0]
% irb
ruby-1.9.2-head > RUBY_VERSION
 => "1.9.2"
ruby-1.9.2-head > f1 = File.open "file1.txt"
 => #<File:file1.txt>
ruby-1.9.2-head > f2 = File.open "file2.txt"
 => #<File:file2.txt>
ruby-1.9.2-head > f1.reopen f2
 => #<File:file2.txt>
ruby-1.9.2-head > f1.gets
 => "Line 1\n"
ruby-1.9.2-head > f1.gets
 => "Line 2\n"
ruby-1.9.2-head > f1.reopen(f2).gets
 => nil

以上、よろしくお願いいたします。