diff options
author | Kamil TrzciĆski <ayufan@ayufan.eu> | 2017-04-18 10:44:12 +0000 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2017-04-18 18:45:10 +0800 |
commit | 68bf7edfb42babe042c12d9324894759062c586b (patch) | |
tree | fa6a53113f3c0e8574d2a70e245fb76d7aee83be /lib | |
parent | 00b993ae48d475867b3c59d3cb1f5fc85fea6c1e (diff) | |
download | gitlab-ce-68bf7edfb42babe042c12d9324894759062c586b.tar.gz |
Merge branch 'enforce-Ansi2html-output-encoding' into 'master'
Just enforce the output encoding for Ansi2html
See merge request !10758
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ci/ansi2html.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/ci/trace/stream.rb | 13 |
2 files changed, 4 insertions, 11 deletions
diff --git a/lib/ci/ansi2html.rb b/lib/ci/ansi2html.rb index 1020452480a..b439b0ee29b 100644 --- a/lib/ci/ansi2html.rb +++ b/lib/ci/ansi2html.rb @@ -172,7 +172,7 @@ module Ci close_open_tags() OpenStruct.new( - html: @out, + html: @out.force_encoding(Encoding.default_external), state: state, append: append, truncated: truncated, diff --git a/lib/gitlab/ci/trace/stream.rb b/lib/gitlab/ci/trace/stream.rb index b929bdd55bc..68b14c7c04c 100644 --- a/lib/gitlab/ci/trace/stream.rb +++ b/lib/gitlab/ci/trace/stream.rb @@ -14,14 +14,7 @@ module Gitlab def initialize @stream = yield - if @stream - @stream.binmode - # Ci::Ansi2html::Converter would read from @stream directly, - # using @stream.each_line to be specific. It's safe to set - # the encoding here because IO#seek(bytes) and IO#read(bytes) - # are not characters based, so encoding doesn't matter to them. - @stream.set_encoding(Encoding.default_external) - end + @stream&.binmode end def valid? @@ -68,8 +61,8 @@ module Gitlab def html(last_lines: nil) text = raw(last_lines: last_lines) - stream = StringIO.new(text) - ::Ci::Ansi2html.convert(stream).html + buffer = StringIO.new(text) + ::Ci::Ansi2html.convert(buffer).html end def extract_coverage(regex) |