Issue #7220 has been updated by brixen (Brian Ford). drbrain (Eric Hodel) wrote: > This is intentional behavior which has existed since 1998. It is not a bug. > > When I am working with IOs I expect the ruby methods to follow POSIX conventions more than ruby conventions. This method is not the only one in the standard library that doesn't follow ruby conventions. Ruby's accidental POSIX semantics are a problem that eg JRuby and any attempt to make Ruby function well on Windows must constantly struggle with. They are not a reason to defend a poor design decision. ---------------------------------------- Feature #7220: Separate IO#dup, StringIO#initialize_copy from dup(2) https://bugs.ruby-lang.org/issues/7220#change-31772 Author: brixen (Brian Ford) Status: Open Priority: Normal Assignee: Category: Target version: Next Major Calling StringIO#initialize_copy causes the two objects to share the position, and eof status. Is this a bug? sasha:rubinius brian$ irb 1.9.3p286 :001 > require 'stringio' => true 1.9.3p286 :002 > a = StringIO.new "abcdefuq" => #<StringIO:0x00000101016a88> 1.9.3p286 :003 > b = StringIO.new => #<StringIO:0x00000101010728> 1.9.3p286 :004 > b.send :initialize_copy, a => #<StringIO:0x00000101010728> 1.9.3p286 :005 > a.pos => 0 1.9.3p286 :006 > b.pos => 0 1.9.3p286 :007 > b.getc => "a" 1.9.3p286 :008 > a.pos => 1 1.9.3p286 :009 > a.getc => "b" 1.9.3p286 :010 > b.pos => 2 1.9.3p286 :011 > b.read => "cdefuq" 1.9.3p286 :012 > a.eof? => true Thanks, Brian -- http://bugs.ruby-lang.org/