From: "jmthomas (Jason Thomas)" Date: 2012-03-21T22:37:47+09:00 Subject: [ruby-core:43530] [ruby-trunk - Bug #6179] File::pos broken in Windows 1.9.3p125 Issue #6179 has been updated by jmthomas (Jason Thomas). This is an issue on 1.9.3p125 on Windows and doesn't just affect binary mode. Try the following program: # This example shows File#pos moving the file position with Ruby 1.9.3p125 on Windows File.open("test.txt", "w") {|file| file.write("Jason says\nThat Ruby shouldn't\nbe broken\n")} def test_read (call_pos) lines = ["Jason says\n", "That Ruby shouldn't\n", "be broken\n"] File.open("test.txt", "r") do |file| lines.each do |line| file.pos if call_pos # Moves file position on Ruby 1.9.3p125 on Windows read_line = file.readline puts read_line raise "Error!" if line != read_line end end end # Works test_read(false) puts # Fails test_read(true) ---------------------------------------- Bug #6179: File::pos broken in Windows 1.9.3p125 https://bugs.ruby-lang.org/issues/6179#change-25009 Author: jmthomas (Jason Thomas) Status: Closed Priority: Normal Assignee: Category: core Target version: 1.9.3 ruby -v: 1.9.3p125 Calling the pos method on a File in the Windows version of Ruby on 1.9.3p125 moves the file pointer. Thus it can not be called without side effect. -- http://bugs.ruby-lang.org/