diff --git a/Library/Homebrew/vendor/okjson.rb b/Library/Homebrew/vendor/okjson.rb index f4a4d215acb2fa58dfaca4301068bd5d905e6b8b..bbec99e8da1dafe35e4570187e44acf3628c9005 100644 --- a/Library/Homebrew/vendor/okjson.rb +++ b/Library/Homebrew/vendor/okjson.rb @@ -29,7 +29,7 @@ require 'stringio' # http://golang.org/src/pkg/utf8/utf8.go module Vendor module OkJson - Upstream = '42' + Upstream = '43' extend self @@ -462,11 +462,16 @@ module Vendor # In ruby >= 1.9, s[r] is a codepoint, not a byte. if rubydoesenc? begin - c.ord # will raise an error if c is invalid UTF-8 + # c.ord will raise an error if c is invalid UTF-8 + if c.ord < Spc.ord + c = "\\u%04x" % [c.ord] + end t.write(c) rescue t.write(Ustrerr) end + elsif c < Spc + t.write("\\u%04x" % c) elsif Spc <= c && c <= ?~ t.putc(c) else