From 97be53b426f7f0a762130b54623faa6946f2c09a Mon Sep 17 00:00:00 2001 From: Carlos Palhares Date: Sun, 6 Sep 2020 17:37:52 -0300 Subject: Escape non-printing characters --- lib/pry/helpers/text.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/pry/helpers/text.rb b/lib/pry/helpers/text.rb index b1fee03f..b7301e99 100644 --- a/lib/pry/helpers/text.rb +++ b/lib/pry/helpers/text.rb @@ -21,20 +21,20 @@ class Pry COLORS.each_pair do |color, value| define_method color do |text| - "\033[0;#{30 + value}m#{text}\033[0m" + "\001\033[0;#{30 + value}m\002#{text}\001\033[0m\002" end define_method "bright_#{color}" do |text| - "\033[1;#{30 + value}m#{text}\033[0m" + "\001\033[1;#{30 + value}m\002#{text}\001\033[0m\002" end COLORS.each_pair do |bg_color, bg_value| define_method "#{color}_on_#{bg_color}" do |text| - "\033[0;#{30 + value};#{40 + bg_value}m#{text}\033[0m" + "\001\033[0;#{30 + value};#{40 + bg_value}m\002#{text}\001\033[0m\002" end define_method "bright_#{color}_on_#{bg_color}" do |text| - "\033[1;#{30 + value};#{40 + bg_value}m#{text}\033[0m" + "\001\033[1;#{30 + value};#{40 + bg_value}m\002#{text}\001\033[0m\002" end end end @@ -52,7 +52,7 @@ class Pry # @param [String, #to_s] text # @return [String] _text_ def bold(text) - "\e[1m#{text}\e[0m" + "\001\e[1m\002#{text}\001\e[0m\002" end # Returns `text` in the default foreground colour. -- cgit v1.2.1 From 8b5a70b234433c5533dab7bfa468a4be5056f38e Mon Sep 17 00:00:00 2001 From: Carlos Palhares Date: Mon, 7 Sep 2020 13:02:16 -0300 Subject: Update Wtf spec to match non-printing chars wrapping --- spec/commands/wtf_spec.rb | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/spec/commands/wtf_spec.rb b/spec/commands/wtf_spec.rb index 52ad0251..c4af0cc5 100644 --- a/spec/commands/wtf_spec.rb +++ b/spec/commands/wtf_spec.rb @@ -38,7 +38,7 @@ RSpec.describe Pry::Command::Wtf do it "prints only a part of the exception backtrace" do subject.process expect(subject.output.string).to eq( - "\e[1mException:\e[0m RuntimeError: oops\n" \ + "\001\e[1m\002Exception:\001\e[0m\002 RuntimeError: oops\n" \ "--\n" \ "0: /bin/pry:23:in `
'\n" \ "1: /bin/pry:23:in `
'\n" \ @@ -55,7 +55,7 @@ RSpec.describe Pry::Command::Wtf do it "prints full exception backtrace" do subject.process expect(subject.output.string).to eq( - "\e[1mException:\e[0m RuntimeError: oops\n" \ + "\001\e[1m\002Exception:\001\e[0m\002 RuntimeError: oops\n" \ "--\n" \ "0: /bin/pry:23:in `
'\n" \ "1: /bin/pry:23:in `
'\n" \ @@ -73,7 +73,7 @@ RSpec.describe Pry::Command::Wtf do it "prints more of backtrace" do subject.process expect(subject.output.string).to eq( - "\e[1mException:\e[0m RuntimeError: oops\n" \ + "\001\e[1m\002Exception:\001\e[0m\002 RuntimeError: oops\n" \ "--\n" \ "0: /bin/pry:23:in `
'\n" \ "1: /bin/pry:23:in `
'\n" \ @@ -116,14 +116,14 @@ RSpec.describe Pry::Command::Wtf do it "prints parts of both original and nested exception backtrace" do subject.process expect(subject.output.string).to eq( - "\e[1mException:\e[0m RuntimeError: outer\n" \ + "\001\e[1m\002Exception:\001\e[0m\002 RuntimeError: outer\n" \ "--\n" \ "0: /bin/pry:23:in `
'\n" \ "1: /bin/pry:23:in `
'\n" \ "2: /bin/pry:23:in `
'\n" \ "3: /bin/pry:23:in `
'\n" \ "4: /bin/pry:23:in `
'\n" \ - "\e[1mCaused by:\e[0m RuntimeError: inner\n" \ + "\001\e[1m\002Caused by:\001\e[0m\002 RuntimeError: inner\n" \ "--\n" \ "0: /bin/pry:23:in `
'\n" \ "1: /bin/pry:23:in `
'\n" \ @@ -140,7 +140,7 @@ RSpec.describe Pry::Command::Wtf do it "prints both original and nested exception backtrace" do subject.process expect(subject.output.string).to eq( - "\e[1mException:\e[0m RuntimeError: outer\n" \ + "\001\e[1m\002Exception:\001\e[0m\002 RuntimeError: outer\n" \ "--\n" \ "0: /bin/pry:23:in `
'\n" \ "1: /bin/pry:23:in `
'\n" \ @@ -148,7 +148,7 @@ RSpec.describe Pry::Command::Wtf do "3: /bin/pry:23:in `
'\n" \ "4: /bin/pry:23:in `
'\n" \ "5: /bin/pry:23:in `
'\n" \ - "\e[1mCaused by:\e[0m RuntimeError: inner\n" \ + "\001\e[1m\002Caused by:\001\e[0m\002 RuntimeError: inner\n" \ "--\n" \ "0: /bin/pry:23:in `
'\n" \ "1: /bin/pry:23:in `
'\n" \ @@ -177,17 +177,17 @@ RSpec.describe Pry::Command::Wtf do it "prints lines of code that exception frame references" do subject.process expect(subject.output.string).to eq( - "\e[1mException:\e[0m RuntimeError: oops\n" \ + "\001\e[1m\002Exception:\001\e[0m\002 RuntimeError: oops\n" \ "--\n" \ - "0: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ + "0: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ " Array.new(6) { \"\#{__FILE__}:\#{__LINE__}:in `
'\" }\n" \ - "1: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ + "1: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ " Array.new(6) { \"\#{__FILE__}:\#{__LINE__}:in `
'\" }\n" \ - "2: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ + "2: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ " Array.new(6) { \"\#{__FILE__}:\#{__LINE__}:in `
'\" }\n" \ - "3: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ + "3: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ " Array.new(6) { \"\#{__FILE__}:\#{__LINE__}:in `
'\" }\n" \ - "4: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ + "4: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ " Array.new(6) { \"\#{__FILE__}:\#{__LINE__}:in `
'\" }\n" ) end @@ -200,13 +200,13 @@ RSpec.describe Pry::Command::Wtf do it "skips code and prints only the backtrace frame" do subject.process expect(subject.output.string).to eq( - "\e[1mException:\e[0m RuntimeError: oops\n" \ + "\001\e[1m\002Exception:\001\e[0m\002 RuntimeError: oops\n" \ "--\n" \ - "0: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ - "1: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ - "2: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ - "3: \e[1m#{__FILE__}:168:in `
'\e[0m\n" \ - "4: \e[1m#{__FILE__}:168:in `
'\e[0m\n" + "0: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ + "1: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ + "2: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ + "3: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" \ + "4: \001\e[1m\002#{__FILE__}:168:in `
'\001\e[0m\002\n" ) end end -- cgit v1.2.1