From 625a950b461b8373e4728c6ad01de33d1abd13d8 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Thu, 20 Apr 2017 02:41:41 +0200 Subject: [PATCH 1/2] Fix `plist` parser failing when encoded with ASCII. --- Library/Homebrew/vendor/plist/plist/parser.rb | 5 +++++ 1 file changed, 5 insertions(+) mode change 100644 => 100755 Library/Homebrew/vendor/plist/plist/parser.rb diff --git a/Library/Homebrew/vendor/plist/plist/parser.rb b/Library/Homebrew/vendor/plist/plist/parser.rb old mode 100644 new mode 100755 index de441fcc50..7d8bfab07f --- a/Library/Homebrew/vendor/plist/plist/parser.rb +++ b/Library/Homebrew/vendor/plist/plist/parser.rb @@ -69,6 +69,11 @@ module Plist @xml = plist_data_or_file end + # TODO: Update vendored `plist` parser when + # https://github.com/patsplat/plist/pull/38 + # is merged. + @xml.force_encoding("UTF-8") + @listener = listener end From d251be1eeb84022a28193d03a4f6ebcfaa1ed9ee Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Thu, 20 Apr 2017 04:47:03 +0200 Subject: [PATCH 2/2] 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