lib/autobuild/subcommand.rb in autobuild-1.16.0 vs lib/autobuild/subcommand.rb in autobuild-1.17.0

- old
+ new

@@ -346,16 +346,21 @@ cwrite.write([CONTROL_UNEXPECTED].pack('I')) exit(100) end end + readbuffer = StringIO.new + # Feed the input if !input_streams.empty? pread.close begin input_streams.each do |instream| - instream.each_line { |line| pwrite.write(line) } + instream.each_line do |line| + readbuffer.write(outread.readpartial(128)) while IO.select([outread], nil, nil, 0) + pwrite.write(line) + end end rescue Errno::ENOENT => e raise Failed.new(nil, false), "cannot open input files: #{e.message}", retry: false end @@ -385,9 +390,17 @@ end # If the caller asked for process output, provide it to him # line-by-line. outwrite.close + + if !input_streams.empty? + readbuffer.write(outread.read) + readbuffer.seek(0) + outread.close + outread = readbuffer + end + outread.each_line do |line| line.force_encoding(options[:encoding]) line = line.chomp subcommand_output << line