From: usa@... Date: 2019-08-26T14:19:23+00:00 Subject: [ruby-core:94564] [Ruby master Bug#15199] scanf.rb broken with io from IO.pipe (MinGW or Windows?) Issue #15199 has been updated by usa (Usaku NAKAMURA). Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE ruby_2_5 r67754 merged revision(s) d118c84b0b9110462e479487ffaf175a75e5718e. ---------------------------------------- Bug #15199: scanf.rb broken with io from IO.pipe (MinGW or Windows?) https://bugs.ruby-lang.org/issues/15199#change-81020 * Author: MSP-Greg (Greg L) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE ---------------------------------------- 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 ```ruby 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... -- https://bugs.ruby-lang.org/ Unsubscribe: