Project

General

Profile

Actions

Bug #15199

closed

scanf.rb broken with io from IO.pipe (MinGW or Windows?)

Added by MSP-Greg (Greg L) about 6 years ago. Updated over 5 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:89271]

Description

scanf.rb seems to be broken when using an io from a pipe.

The following code is used in IO#scanf:

link: https://github.com/ruby/ruby/blob/d4b0efc010a45e904ecdad2dd74374b5c74e61e3/lib/scanf.rb#L661-L664

begin
  seek(start_position + matched_so_far, IO::SEEK_SET)
rescue Errno::ESPIPE
end

if the rescue statement is replaced with:

rescue Errno::ESPIPE, Errno::EINVAL

It seems to work. I assume at some point, a 'pipe' io raised an Errno::ESPIPE error when called with #seek, but trunk & 2.3 respond with Errno::EINVAL...


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #12230: Wrong exception raised when IO.read from a pipe is passed an offset on WindowsClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0