Skip to content

Commit

Permalink
Merge pull request #2158 from andrehjr/fix-color-off-overwrite
Browse files Browse the repository at this point in the history
Fix breakage in output with colors disabled
  • Loading branch information
kyrylo committed Mar 27, 2021
2 parents 438ce37 + 8e8f2d5 commit 033f69b
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lib/pry/helpers/text.rb
Expand Up @@ -44,7 +44,7 @@ module Text
# @param [String, #to_s] text
# @return [String] _text_ stripped of any color codes.
def strip_color(text)
text.to_s.gsub(/(\001)?\e\[.*?(\d)+m(\002)?/, '')
text.to_s.gsub(/(\001)?(\e\[(\d[;\d]?)*m)(\002)?/, '')
end

# Returns _text_ as bold text for use on a terminal.
Expand Down
18 changes: 18 additions & 0 deletions spec/helpers/text_spec.rb
@@ -0,0 +1,18 @@
# frozen_string_literal: true

describe Pry::Helpers::Text do
describe "#strip_color" do
[
["\e[1A\e[0G[2] pry(main)> puts \e[31m\e[1;31m'\e[0m\e[31m"\
"hello\e[1;31m'\e[0m\e[31m\e[0m\e[1B\e[0G",
"\e[1A\e[0G[2] pry(main)> puts 'hello'\e[1B\e[0G"],
["\e[31m\e[1;31m'\e[0m\e[31mhello\e[1;31m'\e[0m\e[31m\e[0m\e[1B\e[0G",
"'hello'\e[1B\e[0G"],
%w[string string]
].each do |(text, text_without_color)|
it "removes color code from text #{text.inspect}" do
expect(subject.strip_color(text)).to eql(text_without_color)
end
end
end
end
2 changes: 1 addition & 1 deletion spec/pry_repl_spec.rb
Expand Up @@ -135,7 +135,7 @@ def output.tty?
break #note the tab here
end
TAB
output("do\n break #note the tab here\nend\n\e[1B\e[0G=> nil")
output("do\n break #note the tab here\nend\n\e\\[1B\e\\[0G=> nil")
end
end
end
Expand Down

0 comments on commit 033f69b

Please sign in to comment.