summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKamil TrzciƄski <ayufan@ayufan.eu>2017-04-18 10:44:12 +0000
committerLin Jen-Shin <godfat@godfat.org>2017-04-18 18:45:10 +0800
commit68bf7edfb42babe042c12d9324894759062c586b (patch)
treefa6a53113f3c0e8574d2a70e245fb76d7aee83be /lib
parent00b993ae48d475867b3c59d3cb1f5fc85fea6c1e (diff)
downloadgitlab-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.rb2
-rw-r--r--lib/gitlab/ci/trace/stream.rb13
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)