aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Reiter2017-04-20 04:47:03 +0200
committerMarkus Reiter2017-04-20 04:47:03 +0200
commitd251be1eeb84022a28193d03a4f6ebcfaa1ed9ee (patch)
tree2012a86ad465ecfe26dd20181965bfd748df0c5c
parent625a950b461b8373e4728c6ad01de33d1abd13d8 (diff)
downloadbrew-d251be1eeb84022a28193d03a4f6ebcfaa1ed9ee.tar.bz2
Ensure `readline_nonblock` returns an UTF-8 string.
-rw-r--r--Library/Homebrew/extend/io.rb15
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