From: cardoso_tiago@... Date: 2016-07-07T15:12:13+00:00 Subject: [ruby-core:76294] [Ruby trunk Bug#12566] IO.copy_stream : tty/command-line events not being passed around Issue #12566 has been reported by Tiago Cardoso. ---------------------------------------- Bug #12566: IO.copy_stream : tty/command-line events not being passed around https://bugs.ruby-lang.org/issues/12566 * Author: Tiago Cardoso * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Coming from here: http://stackoverflow.com/questions/38248911/ruby-when-copying-streams-how-to-make-it-pass-input-characters I don't know if the stdin is not flushing the special characters down the stack, or the leaf process stdout is not flushing upwards, but something is fishy in this:
#!/usr/bin/env
require 'open3'                              
Open3.popen3("expect -") do |i, o, e, t|     
  Thread.start { IO.copy_stream(o, $stdout) }
  Thread.start { IO.copy_stream(e, $stderr) }
  i << "spawn bash\ninteract\nwait\nexit\n"  
  Thread.start { IO.copy_stream($stdin, i) } 
  t.value                                    
end  
#=> after executing, try "ls" and press tab
-- https://bugs.ruby-lang.org/ Unsubscribe: