From d251be1eeb84022a28193d03a4f6ebcfaa1ed9ee Mon Sep 17 00:00:00 2001
From: Markus Reiter <me@reitermark.us>
Date: Thu, 20 Apr 2017 04:47:03 +0200
Subject: [PATCH] Ensure `readline_nonblock` returns an UTF-8 string.

---
 Library/Homebrew/extend/io.rb | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/Library/Homebrew/extend/io.rb b/Library/Homebrew/extend/io.rb
index 1357293cdc..53bca196e1 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
-- 
GitLab