diff options
| author | Markus Reiter | 2017-04-20 04:47:03 +0200 |
|---|---|---|
| committer | Markus Reiter | 2017-04-20 04:47:03 +0200 |
| commit | d251be1eeb84022a28193d03a4f6ebcfaa1ed9ee (patch) | |
| tree | 2012a86ad465ecfe26dd20181965bfd748df0c5c | |
| parent | 625a950b461b8373e4728c6ad01de33d1abd13d8 (diff) | |
| download | brew-d251be1eeb84022a28193d03a4f6ebcfaa1ed9ee.tar.bz2 | |
Ensure `readline_nonblock` returns an UTF-8 string.
| -rw-r--r-- | Library/Homebrew/extend/io.rb | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/Library/Homebrew/extend/io.rb b/Library/Homebrew/extend/io.rb index 1357293cd..53bca196e 100644 --- a/Library/Homebrew/extend/io.rb +++ b/Library/Homebrew/extend/io.rb @@ -1,10 +1,17 @@ class IO def readline_nonblock(sep = $INPUT_RECORD_SEPARATOR) + line = "" buffer = "" - buffer.concat(read_nonblock(1)) while buffer[-1] != sep - buffer + + loop do + break if buffer == sep + read_nonblock(1, buffer) + line.concat(buffer) + end + + line rescue IO::WaitReadable, EOFError => e - raise e if buffer.empty? - buffer + raise e if line.empty? + line end end |
